From b04a356827ab73c745fdfcc2e15665c3b40c637f Mon Sep 17 00:00:00 2001 From: G Date: Sat, 16 Dec 2023 00:27:39 +0800 Subject: [PATCH 001/134] =?UTF-8?q?docs:=20:memo:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/Readme.md b/Readme.md index 17768b40..7535a6c4 100644 --- a/Readme.md +++ b/Readme.md @@ -1,11 +1,30 @@ -## qiankun monorepo集成方案 +## monorepo react-admin集成方案 ---- +### 简介 + +方案集成当下最流行的一些前端框架和库做集成,致力于构建一套通用型强的前端后台管理系统解决方案。 + +### 动机 | 为什么想做这个 + +antd5已经发布很久了,之前一直在维护的一套基于antd4版本的方案由于一直在内部项目中迭代,没办法抽出时间升级,随着前端技术的迭代更新和业务需求的不断扩展,趁着内部升级的机会,也把这一年多在项目中沉淀的一些技术方案做一次整理分享。 + +### 特性 + +> 它能做什么 + +本方案中会集成当下主流的前端设计思路,虽然当下关于react的后台模板,市面上可选择性很多,但与其他方案不同的是,关注功能组件与业务组件开发的同时,更多的精力会放在代码本身的原子化设计和解耦上,具备的特性包括(**_持续补充_**) + +- 组件库设计 +- admin设计 +- CICD持续集成 +- 容器化部署 +- 代码规范设计 +- ... ### 建设目标 - [x] pnpm turbo vite 集成方案搭建 -- [x] 配置代码提交规范 +- [x] 配置代码提交规范与自动化部署 - [ ] antd5组件库开发 - [ ] 分包设计与应用设计 - [ ] 微前端接入 @@ -19,8 +38,12 @@ - [ ] 发布组件库文档 - [ ] 发布gitPage -### 第二阶段: react-antd-admin模板搭建 +### 第二阶段:react-antd-admin模板搭建 - [ ] 技术选型 + + - [ ] 框架设计 From 253975db6251fab94bf169697918bd130a2dfcdf Mon Sep 17 00:00:00 2001 From: G Date: Sat, 16 Dec 2023 00:41:04 +0800 Subject: [PATCH 002/134] =?UTF-8?q?chore:=20:hammer:=20=E6=96=B0=E5=A2=9Ea?= =?UTF-8?q?dmin=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/.env.development | 0 apps/admin/.env.production | 0 apps/admin/README.en-US.md | 90 + apps/admin/README.md | 91 + apps/admin/build/.env.development | 0 apps/admin/build/.env.production | 0 apps/admin/build/README.en-US.md | 90 + apps/admin/build/README.md | 91 + apps/admin/build/build/utils.ts | 39 + apps/admin/build/eslint.config.js | 128 + apps/admin/build/index.html | 13 + apps/admin/build/mock/_utils.ts | 59 + apps/admin/build/mock/data/table.ts | 61 + apps/admin/build/mock/data/user.ts | 68 + apps/admin/build/package.json | 101 + apps/admin/build/pnpm-lock.yaml | 25067 ++++++++++++++++ apps/admin/build/postcss.config.js | 6 + apps/admin/build/prettier.config.js | 27 + apps/admin/build/public/favicon.ico | Bin 0 -> 1446 bytes apps/admin/build/src/App.tsx | 11 + apps/admin/build/src/api/index.ts | 40 + apps/admin/build/src/assets/icons/bug.svg | 2 + .../build/src/assets/icons/collapsed.svg | 1 + apps/admin/build/src/assets/icons/compo.svg | 2 + .../admin/build/src/assets/icons/document.svg | 1 + apps/admin/build/src/assets/icons/editor.svg | 2 + apps/admin/build/src/assets/icons/excel.svg | 2 + apps/admin/build/src/assets/icons/flow.svg | 2 + apps/admin/build/src/assets/icons/form.svg | 2 + apps/admin/build/src/assets/icons/github.svg | 1 + apps/admin/build/src/assets/icons/heart.svg | 1 + apps/admin/build/src/assets/icons/hints.svg | 1 + apps/admin/build/src/assets/icons/home.svg | 2 + apps/admin/build/src/assets/icons/image.svg | 2 + apps/admin/build/src/assets/icons/like.svg | 1 + apps/admin/build/src/assets/icons/linking.svg | 1 + apps/admin/build/src/assets/icons/locale.svg | 1 + .../admin/build/src/assets/icons/location.svg | 1 + apps/admin/build/src/assets/icons/message.svg | 1 + apps/admin/build/src/assets/icons/moon.svg | 16 + apps/admin/build/src/assets/icons/person.svg | 1 + .../build/src/assets/icons/pushpin-fill.svg | 2 + .../build/src/assets/icons/pushpin-line.svg | 2 + .../build/src/assets/icons/screen-full.svg | 1 + .../build/src/assets/icons/screen-normal.svg | 1 + apps/admin/build/src/assets/icons/search.svg | 1 + apps/admin/build/src/assets/icons/sun.svg | 42 + apps/admin/build/src/assets/icons/table.svg | 2 + apps/admin/build/src/assets/icons/tree.svg | 2 + apps/admin/build/src/assets/icons/unfold.svg | 1 + apps/admin/build/src/assets/icons/video.svg | 2 + .../admin/build/src/assets/images/avatar.jpeg | Bin 0 -> 35510 bytes apps/admin/build/src/assets/images/avatar.png | Bin 0 -> 265579 bytes .../src/assets/images/login-background.jpg | Bin 0 -> 89379 bytes apps/admin/build/src/assets/images/logo.png | Bin 0 -> 11266 bytes .../build/src/assets/images/logo_name.png | Bin 0 -> 5866 bytes apps/admin/build/src/assets/images/name.png | Bin 0 -> 5202 bytes .../build/src/assets/images/name_white.png | Bin 0 -> 5080 bytes apps/admin/build/src/assets/react.svg | 1 + .../build/src/components/AppLogo/index.ts | 3 + .../src/components/AppLogo/src/AppLogo.tsx | 26 + .../AppLogo/src/app-logo.module.less | 24 + .../build/src/components/LazyLoad/index.ts | 3 + .../src/components/LazyLoad/src/LazyLoad.tsx | 29 + apps/admin/build/src/components/Page/index.ts | 3 + .../src/components/Page/src/PageWrapper.tsx | 43 + .../src/components/Page/src/compo.module.less | 26 + .../src/components/SvgIcon/index.module.less | 6 + .../build/src/components/SvgIcon/index.tsx | 22 + .../build/src/components/SvgIcon/types.ts | 6 + .../build/src/components/Upload/index.ts | 3 + .../src/components/Upload/src/UploadImage.tsx | 60 + apps/admin/build/src/design/antd.less | 35 + apps/admin/build/src/design/index.less | 102 + apps/admin/build/src/design/public.less | 23 + apps/admin/build/src/design/scroll-bar.less | 29 + .../build/src/design/variable/color.less | 5 + .../build/src/design/variable/index.less | 5 + apps/admin/build/src/enums/appEnum.ts | 32 + apps/admin/build/src/enums/cacheEnum.ts | 18 + apps/admin/build/src/enums/exceptionEnum.ts | 10 + apps/admin/build/src/enums/menuEnum.ts | 26 + apps/admin/build/src/enums/tagsEnum.ts | 8 + apps/admin/build/src/hooks/web/useECharts.ts | 75 + apps/admin/build/src/hooks/web/useMessage.tsx | 54 + apps/admin/build/src/hooks/web/useTitle.ts | 18 + .../src/layout/feature/components/DocLink.tsx | 16 + .../layout/feature/components/FullScreen.tsx | 15 + .../layout/feature/components/GithubLink.tsx | 27 + .../feature/components/UserDropdown.tsx | 98 + .../src/layout/feature/components/index.ts | 6 + .../src/layout/feature/index.module.less | 19 + apps/admin/build/src/layout/feature/index.tsx | 21 + .../layout/header/components/Breadcrumb.tsx | 33 + .../components/FoldTrigger/index.module.less | 14 + .../header/components/FoldTrigger/index.tsx | 23 + .../src/layout/header/components/index.ts | 4 + apps/admin/build/src/layout/header/index.tsx | 30 + apps/admin/build/src/layout/index.less | 14 + apps/admin/build/src/layout/index.tsx | 33 + apps/admin/build/src/layout/menu/index.tsx | 113 + .../tags/components/TagItem/index.module.less | 47 + .../layout/tags/components/TagItem/index.tsx | 28 + .../build/src/layout/tags/components/index.ts | 3 + .../build/src/layout/tags/index.module.less | 30 + apps/admin/build/src/layout/tags/index.tsx | 210 + apps/admin/build/src/main.tsx | 20 + .../build/src/router/guard/guardRoute.tsx | 24 + apps/admin/build/src/router/guard/index.tsx | 10 + apps/admin/build/src/router/helpers/index.ts | 63 + apps/admin/build/src/router/index.tsx | 59 + apps/admin/build/src/router/menus/index.ts | 13 + apps/admin/build/src/router/routes/compo.tsx | 66 + apps/admin/build/src/router/routes/excel.tsx | 35 + .../build/src/router/routes/exception.tsx | 47 + apps/admin/build/src/router/routes/form.tsx | 43 + .../build/src/router/routes/graph-editor.tsx | 35 + apps/admin/build/src/router/routes/home.tsx | 31 + apps/admin/build/src/router/routes/images.tsx | 43 + apps/admin/build/src/router/routes/table.tsx | 35 + .../build/src/router/routes/text-editor.tsx | 43 + apps/admin/build/src/router/routes/tree.tsx | 35 + apps/admin/build/src/router/routes/video.tsx | 35 + apps/admin/build/src/router/types.ts | 37 + .../build/src/settings/appBaseSetting.ts | 78 + .../admin/build/src/settings/designSetting.ts | 40 + .../build/src/settings/encryptionSetting.ts | 13 + .../build/src/settings/websiteSetting.ts | 151 + apps/admin/build/src/stores/index.ts | 37 + apps/admin/build/src/stores/modules/app.ts | 38 + apps/admin/build/src/stores/modules/menu.ts | 24 + apps/admin/build/src/stores/modules/tags.ts | 76 + apps/admin/build/src/stores/modules/user.ts | 40 + apps/admin/build/src/stores/types.ts | 47 + apps/admin/build/src/types/config.ts | 84 + apps/admin/build/src/types/index.ts | 18 + apps/admin/build/src/utils/auth.ts | 25 + apps/admin/build/src/utils/axios.ts | 45 + apps/admin/build/src/utils/cache/index.ts | 30 + apps/admin/build/src/utils/cache/memory.ts | 88 + .../admin/build/src/utils/cache/persistent.ts | 113 + .../build/src/utils/cache/storageCache.ts | 110 + apps/admin/build/src/utils/cipher.ts | 41 + apps/admin/build/src/utils/download.ts | 111 + apps/admin/build/src/utils/echarts.ts | 54 + apps/admin/build/src/utils/env.ts | 15 + .../build/src/utils/helper/menuHelper.ts | 16 + .../build/src/utils/helper/treeHelper.ts | 182 + apps/admin/build/src/utils/image.ts | 44 + apps/admin/build/src/utils/index.ts | 44 + apps/admin/build/src/utils/is.ts | 49 + apps/admin/build/src/views/blank.tsx | 11 + apps/admin/build/src/views/compo/count-up.tsx | 136 + .../build/src/views/compo/drag/drag-list.tsx | 110 + .../src/views/compo/drag/drag-resize.tsx | 69 + .../build/src/views/compo/image-upload.tsx | 129 + .../build/src/views/compo/transfer/data.ts | 56 + .../build/src/views/compo/transfer/index.tsx | 145 + .../code-mirror/components/CodeInfo.tsx | 31 + .../editor/code-mirror/components/Toolbar.tsx | 64 + .../src/views/editor/code-mirror/index.tsx | 68 + .../src/views/editor/code-mirror/types.ts | 13 + .../admin/build/src/views/editor/markdown.tsx | 26 + .../editor/rich-text/components/Editor.tsx | 91 + .../editor/rich-text/components/Toolbar.tsx | 31 + .../src/views/editor/rich-text/index.tsx | 49 + .../src/views/excel/export-excel/data.ts | 91 + .../src/views/excel/export-excel/index.tsx | 125 + .../build/src/views/excel/import-excel.tsx | 76 + apps/admin/build/src/views/excel/types.ts | 12 + apps/admin/build/src/views/excel/useExcel.ts | 119 + .../admin/build/src/views/exception/index.tsx | 48 + .../build/src/views/form/basic-form/data.ts | 248 + .../build/src/views/form/basic-form/index.tsx | 264 + .../build/src/views/form/form-designer.tsx | 15 + .../src/views/form/gbeata-form/index.tsx | 27 + .../src/views/home/components/ChartsCard.tsx | 32 + .../src/views/home/components/CountUpCard.tsx | 55 + apps/admin/build/src/views/home/data.ts | 278 + apps/admin/build/src/views/home/index.tsx | 56 + .../build/src/views/image/image-cropper.tsx | 74 + apps/admin/build/src/views/login/index.less | 42 + apps/admin/build/src/views/login/index.tsx | 144 + .../src/views/table/table-basic/index.tsx | 172 + .../src/views/table/table-basic/types.ts | 20 + .../src/views/table/table-edit-row/data.ts | 75 + .../src/views/table/table-edit-row/index.tsx | 305 + .../build/src/views/tree/antd-tree/data.ts | 48 + .../build/src/views/tree/antd-tree/index.tsx | 79 + .../build/src/views/tree/org-tree/data.ts | 78 + .../build/src/views/tree/org-tree/index.tsx | 54 + .../build/src/views/video/video-player.tsx | 47 + apps/admin/build/tsconfig.json | 45 + apps/admin/build/typings/global.d.ts | 3 + apps/admin/build/typings/index.d.ts | 9 + apps/admin/build/utils.ts | 39 + apps/admin/build/vite.config.ts | 60 + apps/admin/eslint.config.js | 128 + apps/admin/index.html | 13 + apps/admin/mock/_utils.ts | 59 + apps/admin/mock/data/table.ts | 61 + apps/admin/mock/data/user.ts | 68 + apps/admin/package.json | 101 + apps/admin/pnpm-lock.yaml | 25067 ++++++++++++++++ apps/admin/postcss.config.js | 6 + apps/admin/prettier.config.js | 27 + apps/admin/public/favicon.ico | Bin 0 -> 1446 bytes apps/admin/src/App.tsx | 11 + apps/admin/src/api/index.ts | 40 + apps/admin/src/assets/icons/bug.svg | 2 + apps/admin/src/assets/icons/collapsed.svg | 1 + apps/admin/src/assets/icons/compo.svg | 2 + apps/admin/src/assets/icons/document.svg | 1 + apps/admin/src/assets/icons/editor.svg | 2 + apps/admin/src/assets/icons/excel.svg | 2 + apps/admin/src/assets/icons/flow.svg | 2 + apps/admin/src/assets/icons/form.svg | 2 + apps/admin/src/assets/icons/github.svg | 1 + apps/admin/src/assets/icons/heart.svg | 1 + apps/admin/src/assets/icons/hints.svg | 1 + apps/admin/src/assets/icons/home.svg | 2 + apps/admin/src/assets/icons/image.svg | 2 + apps/admin/src/assets/icons/like.svg | 1 + apps/admin/src/assets/icons/linking.svg | 1 + apps/admin/src/assets/icons/locale.svg | 1 + apps/admin/src/assets/icons/location.svg | 1 + apps/admin/src/assets/icons/message.svg | 1 + apps/admin/src/assets/icons/moon.svg | 16 + apps/admin/src/assets/icons/person.svg | 1 + apps/admin/src/assets/icons/pushpin-fill.svg | 2 + apps/admin/src/assets/icons/pushpin-line.svg | 2 + apps/admin/src/assets/icons/screen-full.svg | 1 + apps/admin/src/assets/icons/screen-normal.svg | 1 + apps/admin/src/assets/icons/search.svg | 1 + apps/admin/src/assets/icons/sun.svg | 42 + apps/admin/src/assets/icons/table.svg | 2 + apps/admin/src/assets/icons/tree.svg | 2 + apps/admin/src/assets/icons/unfold.svg | 1 + apps/admin/src/assets/icons/video.svg | 2 + apps/admin/src/assets/images/avatar.jpeg | Bin 0 -> 35510 bytes apps/admin/src/assets/images/avatar.png | Bin 0 -> 265579 bytes .../src/assets/images/login-background.jpg | Bin 0 -> 89379 bytes apps/admin/src/assets/images/logo.png | Bin 0 -> 11266 bytes apps/admin/src/assets/images/logo_name.png | Bin 0 -> 5866 bytes apps/admin/src/assets/images/name.png | Bin 0 -> 5202 bytes apps/admin/src/assets/images/name_white.png | Bin 0 -> 5080 bytes apps/admin/src/assets/react.svg | 1 + apps/admin/src/components/AppLogo/index.ts | 3 + .../src/components/AppLogo/src/AppLogo.tsx | 26 + .../AppLogo/src/app-logo.module.less | 24 + apps/admin/src/components/LazyLoad/index.ts | 3 + .../src/components/LazyLoad/src/LazyLoad.tsx | 29 + apps/admin/src/components/Page/index.ts | 3 + .../src/components/Page/src/PageWrapper.tsx | 43 + .../src/components/Page/src/compo.module.less | 26 + .../src/components/SvgIcon/index.module.less | 6 + apps/admin/src/components/SvgIcon/index.tsx | 22 + apps/admin/src/components/SvgIcon/types.ts | 6 + apps/admin/src/components/Upload/index.ts | 3 + .../src/components/Upload/src/UploadImage.tsx | 60 + apps/admin/src/design/antd.less | 35 + apps/admin/src/design/index.less | 102 + apps/admin/src/design/public.less | 23 + apps/admin/src/design/scroll-bar.less | 29 + apps/admin/src/design/variable/color.less | 5 + apps/admin/src/design/variable/index.less | 5 + apps/admin/src/enums/appEnum.ts | 32 + apps/admin/src/enums/cacheEnum.ts | 18 + apps/admin/src/enums/exceptionEnum.ts | 10 + apps/admin/src/enums/menuEnum.ts | 26 + apps/admin/src/enums/tagsEnum.ts | 8 + apps/admin/src/hooks/web/useECharts.ts | 75 + apps/admin/src/hooks/web/useMessage.tsx | 54 + apps/admin/src/hooks/web/useTitle.ts | 18 + .../src/layout/feature/components/DocLink.tsx | 16 + .../layout/feature/components/FullScreen.tsx | 15 + .../layout/feature/components/GithubLink.tsx | 27 + .../feature/components/UserDropdown.tsx | 98 + .../src/layout/feature/components/index.ts | 6 + .../src/layout/feature/index.module.less | 19 + apps/admin/src/layout/feature/index.tsx | 21 + .../layout/header/components/Breadcrumb.tsx | 33 + .../components/FoldTrigger/index.module.less | 14 + .../header/components/FoldTrigger/index.tsx | 23 + .../src/layout/header/components/index.ts | 4 + apps/admin/src/layout/header/index.tsx | 30 + apps/admin/src/layout/index.less | 14 + apps/admin/src/layout/index.tsx | 33 + apps/admin/src/layout/menu/index.tsx | 113 + .../tags/components/TagItem/index.module.less | 47 + .../layout/tags/components/TagItem/index.tsx | 28 + .../admin/src/layout/tags/components/index.ts | 3 + apps/admin/src/layout/tags/index.module.less | 30 + apps/admin/src/layout/tags/index.tsx | 210 + apps/admin/src/main.tsx | 20 + apps/admin/src/router/guard/guardRoute.tsx | 24 + apps/admin/src/router/guard/index.tsx | 10 + apps/admin/src/router/helpers/index.ts | 63 + apps/admin/src/router/index.tsx | 59 + apps/admin/src/router/menus/index.ts | 13 + apps/admin/src/router/routes/compo.tsx | 66 + apps/admin/src/router/routes/excel.tsx | 35 + apps/admin/src/router/routes/exception.tsx | 47 + apps/admin/src/router/routes/form.tsx | 43 + apps/admin/src/router/routes/graph-editor.tsx | 35 + apps/admin/src/router/routes/home.tsx | 31 + apps/admin/src/router/routes/images.tsx | 43 + apps/admin/src/router/routes/table.tsx | 35 + apps/admin/src/router/routes/text-editor.tsx | 43 + apps/admin/src/router/routes/tree.tsx | 35 + apps/admin/src/router/routes/video.tsx | 35 + apps/admin/src/router/types.ts | 37 + apps/admin/src/settings/appBaseSetting.ts | 78 + apps/admin/src/settings/designSetting.ts | 40 + apps/admin/src/settings/encryptionSetting.ts | 13 + apps/admin/src/settings/websiteSetting.ts | 151 + apps/admin/src/stores/index.ts | 37 + apps/admin/src/stores/modules/app.ts | 38 + apps/admin/src/stores/modules/menu.ts | 24 + apps/admin/src/stores/modules/tags.ts | 76 + apps/admin/src/stores/modules/user.ts | 40 + apps/admin/src/stores/types.ts | 47 + apps/admin/src/types/config.ts | 84 + apps/admin/src/types/index.ts | 18 + apps/admin/src/utils/auth.ts | 25 + apps/admin/src/utils/axios.ts | 45 + apps/admin/src/utils/cache/index.ts | 30 + apps/admin/src/utils/cache/memory.ts | 88 + apps/admin/src/utils/cache/persistent.ts | 113 + apps/admin/src/utils/cache/storageCache.ts | 110 + apps/admin/src/utils/cipher.ts | 41 + apps/admin/src/utils/download.ts | 111 + apps/admin/src/utils/echarts.ts | 54 + apps/admin/src/utils/env.ts | 15 + apps/admin/src/utils/helper/menuHelper.ts | 16 + apps/admin/src/utils/helper/treeHelper.ts | 182 + apps/admin/src/utils/image.ts | 44 + apps/admin/src/utils/index.ts | 44 + apps/admin/src/utils/is.ts | 49 + apps/admin/src/views/blank.tsx | 11 + apps/admin/src/views/compo/count-up.tsx | 136 + apps/admin/src/views/compo/drag/drag-list.tsx | 110 + .../src/views/compo/drag/drag-resize.tsx | 69 + apps/admin/src/views/compo/image-upload.tsx | 129 + apps/admin/src/views/compo/transfer/data.ts | 56 + apps/admin/src/views/compo/transfer/index.tsx | 145 + .../code-mirror/components/CodeInfo.tsx | 31 + .../editor/code-mirror/components/Toolbar.tsx | 64 + .../src/views/editor/code-mirror/index.tsx | 68 + .../src/views/editor/code-mirror/types.ts | 13 + apps/admin/src/views/editor/markdown.tsx | 26 + .../editor/rich-text/components/Editor.tsx | 91 + .../editor/rich-text/components/Toolbar.tsx | 31 + .../src/views/editor/rich-text/index.tsx | 49 + .../src/views/excel/export-excel/data.ts | 91 + .../src/views/excel/export-excel/index.tsx | 125 + apps/admin/src/views/excel/import-excel.tsx | 76 + apps/admin/src/views/excel/types.ts | 12 + apps/admin/src/views/excel/useExcel.ts | 119 + apps/admin/src/views/exception/index.tsx | 48 + apps/admin/src/views/form/basic-form/data.ts | 248 + .../admin/src/views/form/basic-form/index.tsx | 264 + apps/admin/src/views/form/form-designer.tsx | 15 + .../src/views/form/gbeata-form/index.tsx | 27 + .../src/views/home/components/ChartsCard.tsx | 32 + .../src/views/home/components/CountUpCard.tsx | 55 + apps/admin/src/views/home/data.ts | 278 + apps/admin/src/views/home/index.tsx | 56 + apps/admin/src/views/image/image-cropper.tsx | 74 + apps/admin/src/views/login/index.less | 42 + apps/admin/src/views/login/index.tsx | 144 + .../src/views/table/table-basic/index.tsx | 172 + .../src/views/table/table-basic/types.ts | 20 + .../src/views/table/table-edit-row/data.ts | 75 + .../src/views/table/table-edit-row/index.tsx | 305 + apps/admin/src/views/tree/antd-tree/data.ts | 48 + apps/admin/src/views/tree/antd-tree/index.tsx | 79 + apps/admin/src/views/tree/org-tree/data.ts | 78 + apps/admin/src/views/tree/org-tree/index.tsx | 54 + apps/admin/src/views/video/video-player.tsx | 47 + apps/admin/tsconfig.json | 45 + apps/admin/typings/global.d.ts | 3 + apps/admin/typings/index.d.ts | 9 + apps/admin/vite.config.ts | 60 + 384 files changed, 66792 insertions(+) create mode 100644 apps/admin/.env.development create mode 100644 apps/admin/.env.production create mode 100644 apps/admin/README.en-US.md create mode 100644 apps/admin/README.md create mode 100644 apps/admin/build/.env.development create mode 100644 apps/admin/build/.env.production create mode 100644 apps/admin/build/README.en-US.md create mode 100644 apps/admin/build/README.md create mode 100644 apps/admin/build/build/utils.ts create mode 100644 apps/admin/build/eslint.config.js create mode 100644 apps/admin/build/index.html create mode 100644 apps/admin/build/mock/_utils.ts create mode 100644 apps/admin/build/mock/data/table.ts create mode 100644 apps/admin/build/mock/data/user.ts create mode 100644 apps/admin/build/package.json create mode 100644 apps/admin/build/pnpm-lock.yaml create mode 100644 apps/admin/build/postcss.config.js create mode 100644 apps/admin/build/prettier.config.js create mode 100644 apps/admin/build/public/favicon.ico create mode 100644 apps/admin/build/src/App.tsx create mode 100644 apps/admin/build/src/api/index.ts create mode 100644 apps/admin/build/src/assets/icons/bug.svg create mode 100644 apps/admin/build/src/assets/icons/collapsed.svg create mode 100644 apps/admin/build/src/assets/icons/compo.svg create mode 100644 apps/admin/build/src/assets/icons/document.svg create mode 100644 apps/admin/build/src/assets/icons/editor.svg create mode 100644 apps/admin/build/src/assets/icons/excel.svg create mode 100644 apps/admin/build/src/assets/icons/flow.svg create mode 100644 apps/admin/build/src/assets/icons/form.svg create mode 100644 apps/admin/build/src/assets/icons/github.svg create mode 100644 apps/admin/build/src/assets/icons/heart.svg create mode 100644 apps/admin/build/src/assets/icons/hints.svg create mode 100644 apps/admin/build/src/assets/icons/home.svg create mode 100644 apps/admin/build/src/assets/icons/image.svg create mode 100644 apps/admin/build/src/assets/icons/like.svg create mode 100644 apps/admin/build/src/assets/icons/linking.svg create mode 100644 apps/admin/build/src/assets/icons/locale.svg create mode 100644 apps/admin/build/src/assets/icons/location.svg create mode 100644 apps/admin/build/src/assets/icons/message.svg create mode 100644 apps/admin/build/src/assets/icons/moon.svg create mode 100644 apps/admin/build/src/assets/icons/person.svg create mode 100644 apps/admin/build/src/assets/icons/pushpin-fill.svg create mode 100644 apps/admin/build/src/assets/icons/pushpin-line.svg create mode 100644 apps/admin/build/src/assets/icons/screen-full.svg create mode 100644 apps/admin/build/src/assets/icons/screen-normal.svg create mode 100644 apps/admin/build/src/assets/icons/search.svg create mode 100644 apps/admin/build/src/assets/icons/sun.svg create mode 100644 apps/admin/build/src/assets/icons/table.svg create mode 100644 apps/admin/build/src/assets/icons/tree.svg create mode 100644 apps/admin/build/src/assets/icons/unfold.svg create mode 100644 apps/admin/build/src/assets/icons/video.svg create mode 100644 apps/admin/build/src/assets/images/avatar.jpeg create mode 100644 apps/admin/build/src/assets/images/avatar.png create mode 100644 apps/admin/build/src/assets/images/login-background.jpg create mode 100644 apps/admin/build/src/assets/images/logo.png create mode 100644 apps/admin/build/src/assets/images/logo_name.png create mode 100644 apps/admin/build/src/assets/images/name.png create mode 100644 apps/admin/build/src/assets/images/name_white.png create mode 100644 apps/admin/build/src/assets/react.svg create mode 100644 apps/admin/build/src/components/AppLogo/index.ts create mode 100644 apps/admin/build/src/components/AppLogo/src/AppLogo.tsx create mode 100644 apps/admin/build/src/components/AppLogo/src/app-logo.module.less create mode 100644 apps/admin/build/src/components/LazyLoad/index.ts create mode 100644 apps/admin/build/src/components/LazyLoad/src/LazyLoad.tsx create mode 100644 apps/admin/build/src/components/Page/index.ts create mode 100644 apps/admin/build/src/components/Page/src/PageWrapper.tsx create mode 100644 apps/admin/build/src/components/Page/src/compo.module.less create mode 100644 apps/admin/build/src/components/SvgIcon/index.module.less create mode 100644 apps/admin/build/src/components/SvgIcon/index.tsx create mode 100644 apps/admin/build/src/components/SvgIcon/types.ts create mode 100644 apps/admin/build/src/components/Upload/index.ts create mode 100644 apps/admin/build/src/components/Upload/src/UploadImage.tsx create mode 100644 apps/admin/build/src/design/antd.less create mode 100644 apps/admin/build/src/design/index.less create mode 100644 apps/admin/build/src/design/public.less create mode 100644 apps/admin/build/src/design/scroll-bar.less create mode 100644 apps/admin/build/src/design/variable/color.less create mode 100644 apps/admin/build/src/design/variable/index.less create mode 100644 apps/admin/build/src/enums/appEnum.ts create mode 100644 apps/admin/build/src/enums/cacheEnum.ts create mode 100644 apps/admin/build/src/enums/exceptionEnum.ts create mode 100644 apps/admin/build/src/enums/menuEnum.ts create mode 100644 apps/admin/build/src/enums/tagsEnum.ts create mode 100644 apps/admin/build/src/hooks/web/useECharts.ts create mode 100644 apps/admin/build/src/hooks/web/useMessage.tsx create mode 100644 apps/admin/build/src/hooks/web/useTitle.ts create mode 100644 apps/admin/build/src/layout/feature/components/DocLink.tsx create mode 100644 apps/admin/build/src/layout/feature/components/FullScreen.tsx create mode 100644 apps/admin/build/src/layout/feature/components/GithubLink.tsx create mode 100644 apps/admin/build/src/layout/feature/components/UserDropdown.tsx create mode 100644 apps/admin/build/src/layout/feature/components/index.ts create mode 100644 apps/admin/build/src/layout/feature/index.module.less create mode 100644 apps/admin/build/src/layout/feature/index.tsx create mode 100644 apps/admin/build/src/layout/header/components/Breadcrumb.tsx create mode 100644 apps/admin/build/src/layout/header/components/FoldTrigger/index.module.less create mode 100644 apps/admin/build/src/layout/header/components/FoldTrigger/index.tsx create mode 100644 apps/admin/build/src/layout/header/components/index.ts create mode 100644 apps/admin/build/src/layout/header/index.tsx create mode 100644 apps/admin/build/src/layout/index.less create mode 100644 apps/admin/build/src/layout/index.tsx create mode 100644 apps/admin/build/src/layout/menu/index.tsx create mode 100644 apps/admin/build/src/layout/tags/components/TagItem/index.module.less create mode 100644 apps/admin/build/src/layout/tags/components/TagItem/index.tsx create mode 100644 apps/admin/build/src/layout/tags/components/index.ts create mode 100644 apps/admin/build/src/layout/tags/index.module.less create mode 100644 apps/admin/build/src/layout/tags/index.tsx create mode 100644 apps/admin/build/src/main.tsx create mode 100644 apps/admin/build/src/router/guard/guardRoute.tsx create mode 100644 apps/admin/build/src/router/guard/index.tsx create mode 100644 apps/admin/build/src/router/helpers/index.ts create mode 100644 apps/admin/build/src/router/index.tsx create mode 100644 apps/admin/build/src/router/menus/index.ts create mode 100644 apps/admin/build/src/router/routes/compo.tsx create mode 100644 apps/admin/build/src/router/routes/excel.tsx create mode 100644 apps/admin/build/src/router/routes/exception.tsx create mode 100644 apps/admin/build/src/router/routes/form.tsx create mode 100644 apps/admin/build/src/router/routes/graph-editor.tsx create mode 100644 apps/admin/build/src/router/routes/home.tsx create mode 100644 apps/admin/build/src/router/routes/images.tsx create mode 100644 apps/admin/build/src/router/routes/table.tsx create mode 100644 apps/admin/build/src/router/routes/text-editor.tsx create mode 100644 apps/admin/build/src/router/routes/tree.tsx create mode 100644 apps/admin/build/src/router/routes/video.tsx create mode 100644 apps/admin/build/src/router/types.ts create mode 100644 apps/admin/build/src/settings/appBaseSetting.ts create mode 100644 apps/admin/build/src/settings/designSetting.ts create mode 100644 apps/admin/build/src/settings/encryptionSetting.ts create mode 100644 apps/admin/build/src/settings/websiteSetting.ts create mode 100644 apps/admin/build/src/stores/index.ts create mode 100644 apps/admin/build/src/stores/modules/app.ts create mode 100644 apps/admin/build/src/stores/modules/menu.ts create mode 100644 apps/admin/build/src/stores/modules/tags.ts create mode 100644 apps/admin/build/src/stores/modules/user.ts create mode 100644 apps/admin/build/src/stores/types.ts create mode 100644 apps/admin/build/src/types/config.ts create mode 100644 apps/admin/build/src/types/index.ts create mode 100644 apps/admin/build/src/utils/auth.ts create mode 100644 apps/admin/build/src/utils/axios.ts create mode 100644 apps/admin/build/src/utils/cache/index.ts create mode 100644 apps/admin/build/src/utils/cache/memory.ts create mode 100644 apps/admin/build/src/utils/cache/persistent.ts create mode 100644 apps/admin/build/src/utils/cache/storageCache.ts create mode 100644 apps/admin/build/src/utils/cipher.ts create mode 100644 apps/admin/build/src/utils/download.ts create mode 100644 apps/admin/build/src/utils/echarts.ts create mode 100644 apps/admin/build/src/utils/env.ts create mode 100644 apps/admin/build/src/utils/helper/menuHelper.ts create mode 100644 apps/admin/build/src/utils/helper/treeHelper.ts create mode 100644 apps/admin/build/src/utils/image.ts create mode 100644 apps/admin/build/src/utils/index.ts create mode 100644 apps/admin/build/src/utils/is.ts create mode 100644 apps/admin/build/src/views/blank.tsx create mode 100644 apps/admin/build/src/views/compo/count-up.tsx create mode 100644 apps/admin/build/src/views/compo/drag/drag-list.tsx create mode 100644 apps/admin/build/src/views/compo/drag/drag-resize.tsx create mode 100644 apps/admin/build/src/views/compo/image-upload.tsx create mode 100644 apps/admin/build/src/views/compo/transfer/data.ts create mode 100644 apps/admin/build/src/views/compo/transfer/index.tsx create mode 100644 apps/admin/build/src/views/editor/code-mirror/components/CodeInfo.tsx create mode 100644 apps/admin/build/src/views/editor/code-mirror/components/Toolbar.tsx create mode 100644 apps/admin/build/src/views/editor/code-mirror/index.tsx create mode 100644 apps/admin/build/src/views/editor/code-mirror/types.ts create mode 100644 apps/admin/build/src/views/editor/markdown.tsx create mode 100644 apps/admin/build/src/views/editor/rich-text/components/Editor.tsx create mode 100644 apps/admin/build/src/views/editor/rich-text/components/Toolbar.tsx create mode 100644 apps/admin/build/src/views/editor/rich-text/index.tsx create mode 100644 apps/admin/build/src/views/excel/export-excel/data.ts create mode 100644 apps/admin/build/src/views/excel/export-excel/index.tsx create mode 100644 apps/admin/build/src/views/excel/import-excel.tsx create mode 100644 apps/admin/build/src/views/excel/types.ts create mode 100644 apps/admin/build/src/views/excel/useExcel.ts create mode 100644 apps/admin/build/src/views/exception/index.tsx create mode 100644 apps/admin/build/src/views/form/basic-form/data.ts create mode 100644 apps/admin/build/src/views/form/basic-form/index.tsx create mode 100644 apps/admin/build/src/views/form/form-designer.tsx create mode 100644 apps/admin/build/src/views/form/gbeata-form/index.tsx create mode 100644 apps/admin/build/src/views/home/components/ChartsCard.tsx create mode 100644 apps/admin/build/src/views/home/components/CountUpCard.tsx create mode 100644 apps/admin/build/src/views/home/data.ts create mode 100644 apps/admin/build/src/views/home/index.tsx create mode 100644 apps/admin/build/src/views/image/image-cropper.tsx create mode 100644 apps/admin/build/src/views/login/index.less create mode 100644 apps/admin/build/src/views/login/index.tsx create mode 100644 apps/admin/build/src/views/table/table-basic/index.tsx create mode 100644 apps/admin/build/src/views/table/table-basic/types.ts create mode 100644 apps/admin/build/src/views/table/table-edit-row/data.ts create mode 100644 apps/admin/build/src/views/table/table-edit-row/index.tsx create mode 100644 apps/admin/build/src/views/tree/antd-tree/data.ts create mode 100644 apps/admin/build/src/views/tree/antd-tree/index.tsx create mode 100644 apps/admin/build/src/views/tree/org-tree/data.ts create mode 100644 apps/admin/build/src/views/tree/org-tree/index.tsx create mode 100644 apps/admin/build/src/views/video/video-player.tsx create mode 100644 apps/admin/build/tsconfig.json create mode 100644 apps/admin/build/typings/global.d.ts create mode 100644 apps/admin/build/typings/index.d.ts create mode 100644 apps/admin/build/utils.ts create mode 100644 apps/admin/build/vite.config.ts create mode 100644 apps/admin/eslint.config.js create mode 100644 apps/admin/index.html create mode 100644 apps/admin/mock/_utils.ts create mode 100644 apps/admin/mock/data/table.ts create mode 100644 apps/admin/mock/data/user.ts create mode 100644 apps/admin/package.json create mode 100644 apps/admin/pnpm-lock.yaml create mode 100644 apps/admin/postcss.config.js create mode 100644 apps/admin/prettier.config.js create mode 100644 apps/admin/public/favicon.ico create mode 100644 apps/admin/src/App.tsx create mode 100644 apps/admin/src/api/index.ts create mode 100644 apps/admin/src/assets/icons/bug.svg create mode 100644 apps/admin/src/assets/icons/collapsed.svg create mode 100644 apps/admin/src/assets/icons/compo.svg create mode 100644 apps/admin/src/assets/icons/document.svg create mode 100644 apps/admin/src/assets/icons/editor.svg create mode 100644 apps/admin/src/assets/icons/excel.svg create mode 100644 apps/admin/src/assets/icons/flow.svg create mode 100644 apps/admin/src/assets/icons/form.svg create mode 100644 apps/admin/src/assets/icons/github.svg create mode 100644 apps/admin/src/assets/icons/heart.svg create mode 100644 apps/admin/src/assets/icons/hints.svg create mode 100644 apps/admin/src/assets/icons/home.svg create mode 100644 apps/admin/src/assets/icons/image.svg create mode 100644 apps/admin/src/assets/icons/like.svg create mode 100644 apps/admin/src/assets/icons/linking.svg create mode 100644 apps/admin/src/assets/icons/locale.svg create mode 100644 apps/admin/src/assets/icons/location.svg create mode 100644 apps/admin/src/assets/icons/message.svg create mode 100644 apps/admin/src/assets/icons/moon.svg create mode 100644 apps/admin/src/assets/icons/person.svg create mode 100644 apps/admin/src/assets/icons/pushpin-fill.svg create mode 100644 apps/admin/src/assets/icons/pushpin-line.svg create mode 100644 apps/admin/src/assets/icons/screen-full.svg create mode 100644 apps/admin/src/assets/icons/screen-normal.svg create mode 100644 apps/admin/src/assets/icons/search.svg create mode 100644 apps/admin/src/assets/icons/sun.svg create mode 100644 apps/admin/src/assets/icons/table.svg create mode 100644 apps/admin/src/assets/icons/tree.svg create mode 100644 apps/admin/src/assets/icons/unfold.svg create mode 100644 apps/admin/src/assets/icons/video.svg create mode 100644 apps/admin/src/assets/images/avatar.jpeg create mode 100644 apps/admin/src/assets/images/avatar.png create mode 100644 apps/admin/src/assets/images/login-background.jpg create mode 100644 apps/admin/src/assets/images/logo.png create mode 100644 apps/admin/src/assets/images/logo_name.png create mode 100644 apps/admin/src/assets/images/name.png create mode 100644 apps/admin/src/assets/images/name_white.png create mode 100644 apps/admin/src/assets/react.svg create mode 100644 apps/admin/src/components/AppLogo/index.ts create mode 100644 apps/admin/src/components/AppLogo/src/AppLogo.tsx create mode 100644 apps/admin/src/components/AppLogo/src/app-logo.module.less create mode 100644 apps/admin/src/components/LazyLoad/index.ts create mode 100644 apps/admin/src/components/LazyLoad/src/LazyLoad.tsx create mode 100644 apps/admin/src/components/Page/index.ts create mode 100644 apps/admin/src/components/Page/src/PageWrapper.tsx create mode 100644 apps/admin/src/components/Page/src/compo.module.less create mode 100644 apps/admin/src/components/SvgIcon/index.module.less create mode 100644 apps/admin/src/components/SvgIcon/index.tsx create mode 100644 apps/admin/src/components/SvgIcon/types.ts create mode 100644 apps/admin/src/components/Upload/index.ts create mode 100644 apps/admin/src/components/Upload/src/UploadImage.tsx create mode 100644 apps/admin/src/design/antd.less create mode 100644 apps/admin/src/design/index.less create mode 100644 apps/admin/src/design/public.less create mode 100644 apps/admin/src/design/scroll-bar.less create mode 100644 apps/admin/src/design/variable/color.less create mode 100644 apps/admin/src/design/variable/index.less create mode 100644 apps/admin/src/enums/appEnum.ts create mode 100644 apps/admin/src/enums/cacheEnum.ts create mode 100644 apps/admin/src/enums/exceptionEnum.ts create mode 100644 apps/admin/src/enums/menuEnum.ts create mode 100644 apps/admin/src/enums/tagsEnum.ts create mode 100644 apps/admin/src/hooks/web/useECharts.ts create mode 100644 apps/admin/src/hooks/web/useMessage.tsx create mode 100644 apps/admin/src/hooks/web/useTitle.ts create mode 100644 apps/admin/src/layout/feature/components/DocLink.tsx create mode 100644 apps/admin/src/layout/feature/components/FullScreen.tsx create mode 100644 apps/admin/src/layout/feature/components/GithubLink.tsx create mode 100644 apps/admin/src/layout/feature/components/UserDropdown.tsx create mode 100644 apps/admin/src/layout/feature/components/index.ts create mode 100644 apps/admin/src/layout/feature/index.module.less create mode 100644 apps/admin/src/layout/feature/index.tsx create mode 100644 apps/admin/src/layout/header/components/Breadcrumb.tsx create mode 100644 apps/admin/src/layout/header/components/FoldTrigger/index.module.less create mode 100644 apps/admin/src/layout/header/components/FoldTrigger/index.tsx create mode 100644 apps/admin/src/layout/header/components/index.ts create mode 100644 apps/admin/src/layout/header/index.tsx create mode 100644 apps/admin/src/layout/index.less create mode 100644 apps/admin/src/layout/index.tsx create mode 100644 apps/admin/src/layout/menu/index.tsx create mode 100644 apps/admin/src/layout/tags/components/TagItem/index.module.less create mode 100644 apps/admin/src/layout/tags/components/TagItem/index.tsx create mode 100644 apps/admin/src/layout/tags/components/index.ts create mode 100644 apps/admin/src/layout/tags/index.module.less create mode 100644 apps/admin/src/layout/tags/index.tsx create mode 100644 apps/admin/src/main.tsx create mode 100644 apps/admin/src/router/guard/guardRoute.tsx create mode 100644 apps/admin/src/router/guard/index.tsx create mode 100644 apps/admin/src/router/helpers/index.ts create mode 100644 apps/admin/src/router/index.tsx create mode 100644 apps/admin/src/router/menus/index.ts create mode 100644 apps/admin/src/router/routes/compo.tsx create mode 100644 apps/admin/src/router/routes/excel.tsx create mode 100644 apps/admin/src/router/routes/exception.tsx create mode 100644 apps/admin/src/router/routes/form.tsx create mode 100644 apps/admin/src/router/routes/graph-editor.tsx create mode 100644 apps/admin/src/router/routes/home.tsx create mode 100644 apps/admin/src/router/routes/images.tsx create mode 100644 apps/admin/src/router/routes/table.tsx create mode 100644 apps/admin/src/router/routes/text-editor.tsx create mode 100644 apps/admin/src/router/routes/tree.tsx create mode 100644 apps/admin/src/router/routes/video.tsx create mode 100644 apps/admin/src/router/types.ts create mode 100644 apps/admin/src/settings/appBaseSetting.ts create mode 100644 apps/admin/src/settings/designSetting.ts create mode 100644 apps/admin/src/settings/encryptionSetting.ts create mode 100644 apps/admin/src/settings/websiteSetting.ts create mode 100644 apps/admin/src/stores/index.ts create mode 100644 apps/admin/src/stores/modules/app.ts create mode 100644 apps/admin/src/stores/modules/menu.ts create mode 100644 apps/admin/src/stores/modules/tags.ts create mode 100644 apps/admin/src/stores/modules/user.ts create mode 100644 apps/admin/src/stores/types.ts create mode 100644 apps/admin/src/types/config.ts create mode 100644 apps/admin/src/types/index.ts create mode 100644 apps/admin/src/utils/auth.ts create mode 100644 apps/admin/src/utils/axios.ts create mode 100644 apps/admin/src/utils/cache/index.ts create mode 100644 apps/admin/src/utils/cache/memory.ts create mode 100644 apps/admin/src/utils/cache/persistent.ts create mode 100644 apps/admin/src/utils/cache/storageCache.ts create mode 100644 apps/admin/src/utils/cipher.ts create mode 100644 apps/admin/src/utils/download.ts create mode 100644 apps/admin/src/utils/echarts.ts create mode 100644 apps/admin/src/utils/env.ts create mode 100644 apps/admin/src/utils/helper/menuHelper.ts create mode 100644 apps/admin/src/utils/helper/treeHelper.ts create mode 100644 apps/admin/src/utils/image.ts create mode 100644 apps/admin/src/utils/index.ts create mode 100644 apps/admin/src/utils/is.ts create mode 100644 apps/admin/src/views/blank.tsx create mode 100644 apps/admin/src/views/compo/count-up.tsx create mode 100644 apps/admin/src/views/compo/drag/drag-list.tsx create mode 100644 apps/admin/src/views/compo/drag/drag-resize.tsx create mode 100644 apps/admin/src/views/compo/image-upload.tsx create mode 100644 apps/admin/src/views/compo/transfer/data.ts create mode 100644 apps/admin/src/views/compo/transfer/index.tsx create mode 100644 apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx create mode 100644 apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx create mode 100644 apps/admin/src/views/editor/code-mirror/index.tsx create mode 100644 apps/admin/src/views/editor/code-mirror/types.ts create mode 100644 apps/admin/src/views/editor/markdown.tsx create mode 100644 apps/admin/src/views/editor/rich-text/components/Editor.tsx create mode 100644 apps/admin/src/views/editor/rich-text/components/Toolbar.tsx create mode 100644 apps/admin/src/views/editor/rich-text/index.tsx create mode 100644 apps/admin/src/views/excel/export-excel/data.ts create mode 100644 apps/admin/src/views/excel/export-excel/index.tsx create mode 100644 apps/admin/src/views/excel/import-excel.tsx create mode 100644 apps/admin/src/views/excel/types.ts create mode 100644 apps/admin/src/views/excel/useExcel.ts create mode 100644 apps/admin/src/views/exception/index.tsx create mode 100644 apps/admin/src/views/form/basic-form/data.ts create mode 100644 apps/admin/src/views/form/basic-form/index.tsx create mode 100644 apps/admin/src/views/form/form-designer.tsx create mode 100644 apps/admin/src/views/form/gbeata-form/index.tsx create mode 100644 apps/admin/src/views/home/components/ChartsCard.tsx create mode 100644 apps/admin/src/views/home/components/CountUpCard.tsx create mode 100644 apps/admin/src/views/home/data.ts create mode 100644 apps/admin/src/views/home/index.tsx create mode 100644 apps/admin/src/views/image/image-cropper.tsx create mode 100644 apps/admin/src/views/login/index.less create mode 100644 apps/admin/src/views/login/index.tsx create mode 100644 apps/admin/src/views/table/table-basic/index.tsx create mode 100644 apps/admin/src/views/table/table-basic/types.ts create mode 100644 apps/admin/src/views/table/table-edit-row/data.ts create mode 100644 apps/admin/src/views/table/table-edit-row/index.tsx create mode 100644 apps/admin/src/views/tree/antd-tree/data.ts create mode 100644 apps/admin/src/views/tree/antd-tree/index.tsx create mode 100644 apps/admin/src/views/tree/org-tree/data.ts create mode 100644 apps/admin/src/views/tree/org-tree/index.tsx create mode 100644 apps/admin/src/views/video/video-player.tsx create mode 100644 apps/admin/tsconfig.json create mode 100644 apps/admin/typings/global.d.ts create mode 100644 apps/admin/typings/index.d.ts create mode 100644 apps/admin/vite.config.ts diff --git a/apps/admin/.env.development b/apps/admin/.env.development new file mode 100644 index 00000000..e69de29b diff --git a/apps/admin/.env.production b/apps/admin/.env.production new file mode 100644 index 00000000..e69de29b diff --git a/apps/admin/README.en-US.md b/apps/admin/README.en-US.md new file mode 100644 index 00000000..b151048e --- /dev/null +++ b/apps/admin/README.en-US.md @@ -0,0 +1,90 @@ +

+ +

+

+ + react + + + react-router + + + redux-toolkit + + + vite + + + antd + + + typescript + + + less + +

+ +**English** | [中文](./README.md) + +## Introduction + +#### React-admin-design is a back-end management system solution based on React18 + ant-design5, it uses the latest front-end technology stack, and provides a wealth of functional components modules, can help you quickly build enterprise-level back-end front-end architecture. + +## Feature + +- **The Technology Stack**:Use React18, Vite4, TSX and other front-end technology development +- **Theming**: Configurable themes +- **International**:Built-in complete internationalization program +- **Mock Server** Built-in mock data scheme + +## Preview + +> ##### Preview Site:[https://baimingxuan.github.io/react-admin-design/](https://baimingxuan.github.io/react-admin-design/) +> +> ##### Github Site:[https://github.com/baimingxuan/react-admin-design](https://github.com/baimingxuan/react-admin-design) +> + +![](https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/home-vue3.png) + +## Development + +```bash +// clone +git clone https://github.com/baimingxuan/react-admin-design.git + +// install +pnpm install + +// dev +pnpm run dev +``` + +## Build + +```bash +// build +pnpm run build +``` + +## Browser support + +The `Chrome 80+` browser is recommended for local development + +Support modern browsers, not IE + +| [ Edge](http://godban.github.io/browsers-support-badges/)
IE | [ Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | +| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | + +## Git Contribution submission specification + +- `feat` Add new features +- `fix` Fix the problem/BUG +- `style` The code style is related and does not affect the running result +- `perf` Optimization/performance improvement +- `refactor` Refactor +- `revert` Undo edit +- `test` Test related +- `docs` Documentation/notes +- `chore` Dependency update/scaffolding configuration modification etc. \ No newline at end of file diff --git a/apps/admin/README.md b/apps/admin/README.md new file mode 100644 index 00000000..209043ef --- /dev/null +++ b/apps/admin/README.md @@ -0,0 +1,91 @@ +

+ +

+

+ + react + + + react-router + + + redux-toolkit + + + vite + + + antd + + + typescript + + + less + +

+ +**中文** | [English](./README.en-US.md) + +## 简介 + +#### react-admin-design是一个基于react18 + ant-design5的后台管理系统的解决方案,它使用了最新的前端技术栈,并且提供了丰富的功能组件模块,可以帮助你快速搭建企业级中后台的前端架构。 + +## 特性 + +- **技术栈**:使用 React18、Vite4、TSX 等前端前沿技术开发 +- **主题**:可配置的主题色 +- **国际化**:内置完善的国际化方案 +- **Mock 数据** 内置 Mock 数据方案 + +## 预览 + +> ##### 演示地址:[https://baimingxuan.github.io/react-admin-design/](https://baimingxuan.github.io/react-admin-design/) +> +> ##### Github地址:[https://github.com/baimingxuan/react-admin-design](https://github.com/baimingxuan/react-admin-design) +> + +![](https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/home-vue3.png) + +## 开发 + +```bash +// 克隆项目 +git clone https://github.com/baimingxuan/react-admin-design.git + +// 安装依赖 +pnpm install + +// 开发 +pnpm run dev +``` + +## 构建 + +```bash +// 构建 +pnpm run build +``` + +## 浏览器支持 + +本地开发推荐使用`Chrome 80+` 浏览器 + +支持现代浏览器, 不支持 IE + +| [ Edge](http://godban.github.io/browsers-support-badges/)
IE | [ Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | +| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | + +## Git 贡献提交规范 + +- `feat` 增加新功能 +- `fix` 修复问题/BUG +- `style` 代码风格相关无影响运行结果的 +- `perf` 优化/性能提升 +- `refactor` 重构 +- `revert` 撤销修改 +- `test` 测试相关 +- `docs` 文档/注释 +- `chore` 依赖更新/脚手架配置修改等 + diff --git a/apps/admin/build/.env.development b/apps/admin/build/.env.development new file mode 100644 index 00000000..e69de29b diff --git a/apps/admin/build/.env.production b/apps/admin/build/.env.production new file mode 100644 index 00000000..e69de29b diff --git a/apps/admin/build/README.en-US.md b/apps/admin/build/README.en-US.md new file mode 100644 index 00000000..b151048e --- /dev/null +++ b/apps/admin/build/README.en-US.md @@ -0,0 +1,90 @@ +

+ +

+

+ + react + + + react-router + + + redux-toolkit + + + vite + + + antd + + + typescript + + + less + +

+ +**English** | [中文](./README.md) + +## Introduction + +#### React-admin-design is a back-end management system solution based on React18 + ant-design5, it uses the latest front-end technology stack, and provides a wealth of functional components modules, can help you quickly build enterprise-level back-end front-end architecture. + +## Feature + +- **The Technology Stack**:Use React18, Vite4, TSX and other front-end technology development +- **Theming**: Configurable themes +- **International**:Built-in complete internationalization program +- **Mock Server** Built-in mock data scheme + +## Preview + +> ##### Preview Site:[https://baimingxuan.github.io/react-admin-design/](https://baimingxuan.github.io/react-admin-design/) +> +> ##### Github Site:[https://github.com/baimingxuan/react-admin-design](https://github.com/baimingxuan/react-admin-design) +> + +![](https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/home-vue3.png) + +## Development + +```bash +// clone +git clone https://github.com/baimingxuan/react-admin-design.git + +// install +pnpm install + +// dev +pnpm run dev +``` + +## Build + +```bash +// build +pnpm run build +``` + +## Browser support + +The `Chrome 80+` browser is recommended for local development + +Support modern browsers, not IE + +| [ Edge](http://godban.github.io/browsers-support-badges/)
IE | [ Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | +| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | + +## Git Contribution submission specification + +- `feat` Add new features +- `fix` Fix the problem/BUG +- `style` The code style is related and does not affect the running result +- `perf` Optimization/performance improvement +- `refactor` Refactor +- `revert` Undo edit +- `test` Test related +- `docs` Documentation/notes +- `chore` Dependency update/scaffolding configuration modification etc. \ No newline at end of file diff --git a/apps/admin/build/README.md b/apps/admin/build/README.md new file mode 100644 index 00000000..209043ef --- /dev/null +++ b/apps/admin/build/README.md @@ -0,0 +1,91 @@ +

+ +

+

+ + react + + + react-router + + + redux-toolkit + + + vite + + + antd + + + typescript + + + less + +

+ +**中文** | [English](./README.en-US.md) + +## 简介 + +#### react-admin-design是一个基于react18 + ant-design5的后台管理系统的解决方案,它使用了最新的前端技术栈,并且提供了丰富的功能组件模块,可以帮助你快速搭建企业级中后台的前端架构。 + +## 特性 + +- **技术栈**:使用 React18、Vite4、TSX 等前端前沿技术开发 +- **主题**:可配置的主题色 +- **国际化**:内置完善的国际化方案 +- **Mock 数据** 内置 Mock 数据方案 + +## 预览 + +> ##### 演示地址:[https://baimingxuan.github.io/react-admin-design/](https://baimingxuan.github.io/react-admin-design/) +> +> ##### Github地址:[https://github.com/baimingxuan/react-admin-design](https://github.com/baimingxuan/react-admin-design) +> + +![](https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/home-vue3.png) + +## 开发 + +```bash +// 克隆项目 +git clone https://github.com/baimingxuan/react-admin-design.git + +// 安装依赖 +pnpm install + +// 开发 +pnpm run dev +``` + +## 构建 + +```bash +// 构建 +pnpm run build +``` + +## 浏览器支持 + +本地开发推荐使用`Chrome 80+` 浏览器 + +支持现代浏览器, 不支持 IE + +| [ Edge](http://godban.github.io/browsers-support-badges/)
IE | [ Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | +| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | +| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | + +## Git 贡献提交规范 + +- `feat` 增加新功能 +- `fix` 修复问题/BUG +- `style` 代码风格相关无影响运行结果的 +- `perf` 优化/性能提升 +- `refactor` 重构 +- `revert` 撤销修改 +- `test` 测试相关 +- `docs` 文档/注释 +- `chore` 依赖更新/脚手架配置修改等 + diff --git a/apps/admin/build/build/utils.ts b/apps/admin/build/build/utils.ts new file mode 100644 index 00000000..39850141 --- /dev/null +++ b/apps/admin/build/build/utils.ts @@ -0,0 +1,39 @@ +declare type Recordable = Record + +interface ViteEnv { + VITE_PORT: number + VITE_PROXY: [string, string][] + VITE_DROP_CONSOLE: boolean +} + +// read all environment variable configuration files to process.env +export function wrapperEnv(envConf: Recordable): ViteEnv { + const result: any = {} + + for (const envName of Object.keys(envConf)) { + let realName = envConf[envName].replace(/\\n/g, '\n') + realName = realName === 'true' ? true : realName === 'false' ? false : realName + + if (envName === 'VITE_PORT') { + realName = Number(realName) + } + + if (envName === 'VITE_PROXY' && realName) { + try { + realName = JSON.parse(realName.replace(/'/g, '"')) + } catch (error) { + realName = '' + } + } + + result[envName] = realName + + if (typeof realName === 'string') { + process.env[envName] = realName + } else if (typeof realName === 'object') { + process.env[envName] = JSON.stringify(realName) + } + } + + return result +} \ No newline at end of file diff --git a/apps/admin/build/eslint.config.js b/apps/admin/build/eslint.config.js new file mode 100644 index 00000000..111e3f71 --- /dev/null +++ b/apps/admin/build/eslint.config.js @@ -0,0 +1,128 @@ +// 配置文档: https://eslint.nodejs.cn/ + +export default { + root: true, + env: { + browser: true, + node: true, + es6: true + }, + settings: { + react: { + version: 'detect' + } + }, + // 指定如何解析语法 + parser: '@typescript-eslint/parser', + // 优先级低于 parse 的语法解析配置 + parserOptions: { + ecmaVersion: 7, + sourceType: 'module', + jsxPragma: 'React', + ecmaFeatures: { + jsx: true + } + }, + plugins: ['react', '@typescript-eslint', 'react-hooks', 'prettier'], + // 继承某些已有的规则 + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + 'prettier', + 'plugin:prettier/recommended' + ], + /* + * 'off' 或 0 ==> 关闭规则 + * 'warn' 或 1 ==> 规则提示为警告(不影响代码执行) + * 'error' 或 2 ==> 规则提示为错误(代码不能执行,界面报错) + */ + rules: { + /* + * Eslint规则配置 + * 配置文档: https://eslint.nodejs.cn/docs/latest/rules/ + */ + // 需要 let 或 const 而不是 var + 'no-var': 'error', + // 禁止在定义变量之前使用变量 + 'no-use-before-define': 'off', + // 声明后永远不会重新分配的变量需要 const 声明 + 'prefer-const': 'error', + // 禁止不规则空格 + 'no-irregular-whitespace': 'off', + // 禁止使用 debugger + 'no-debugger': 'off', + // 禁止未使用的变量 + 'no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_' + } + ], + // 使用 prettier 插件 + 'prettier/prettier': [ + 'error', + { + endOfLine: 'auto' + } + ], + + /* + * TypeScript规则配置 + * 配置文档: https://typescript-eslint.nodejs.cn/rules/) + */ + // 根据参数、属性和变量的默认值或初始值推断其类型 + '@typescript-eslint/no-inferrable-types': 'off', + // 禁止使用自定义 ts 模块和命名空间 + '@typescript-eslint/no-namespace': 'off', + // 禁止使用 any 类型 + '@typescript-eslint/no-explicit-any': 'off', + // 禁止使用特定类型 + '@typescript-eslint/ban-types': 'off', + // 不允许对初始化为数字、字符串或布尔值的变量或参数进行显式返回类型声明 + '@typescript-eslint/explicit-function-return-type': 'off', + // 不允许在 import 语句中使用 require 语句 + '@typescript-eslint/no-var-requires': 'off', + // 禁止空函数 + '@typescript-eslint/no-empty-function': 'off', + // 禁止在变量定义之前使用它们 + '@typescript-eslint/no-use-before-define': 'off', + // 禁止 @ts- 注释代码 + '@typescript-eslint/ban-ts-comment': 'off', + // 不允许使用后缀运算符的非空断言(!) + '@typescript-eslint/no-non-null-assertion': 'off', + // 要求导出函数和类的公共类方法的显式返回和参数类型 + '@typescript-eslint/explicit-module-boundary-types': 'off', + // 使用顶层 type 限定符进行导入 + '@typescript-eslint/no-import-type-side-effects': 'error', + // 禁止定义未使用的变量 + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_' + } + ], + // 允许在导入上指定 type 关键字 + '@typescript-eslint/consistent-type-imports': [ + 'error', + { + disallowTypeAnnotations: false, + fixStyle: 'inline-type-imports' + } + ], + // 允许枚举成员的值是多种不同类型的有效 js 表达式 + '@typescript-eslint/prefer-literal-enum-member': [ + 'error', + { + allowBitwiseExpressions: true + } + ], + + 'react-hooks/rules-of-hooks': 'off', + 'react-hooks/exhaustive-deps': 'off' + } +} diff --git a/apps/admin/build/index.html b/apps/admin/build/index.html new file mode 100644 index 00000000..d33e7830 --- /dev/null +++ b/apps/admin/build/index.html @@ -0,0 +1,13 @@ + + + + + + + react-admin-design + + +
+ + + diff --git a/apps/admin/build/mock/_utils.ts b/apps/admin/build/mock/_utils.ts new file mode 100644 index 00000000..8701dbec --- /dev/null +++ b/apps/admin/build/mock/_utils.ts @@ -0,0 +1,59 @@ +// Interface data format used to return a unified format + +export interface requestParams { + headers?: { authorization?: string } + method: string + body: any + query: any +} + +export function resultSuccess(data: T, { message = '成功' } = {}) { + return { + type: 'success', + code: 0, + data, + message + } +} + +export function resultError(message = '失败', { code = -1, data = null } = {}) { + return { + type: 'error', + code, + data, + message + } +} + +// This function is used to get a token from the request data +export function getRequestToken({ headers }: requestParams): string | undefined { + return headers?.authorization +} + +export function pagination( + currentPage: number, + pageSize: number, + array: T[] +): T[] { + const offset = (currentPage - 1) * Number(pageSize) + return (offset + Number(pageSize)) >= array.length + ? array.slice(offset, array.length) + : array.slice(offset, offset + Number(pageSize)) +} + +export function resultPageSuccess ( + currentPage: number, + pageSize: number, + list: T[], + { message = 'ok' } = {} +) { + const pageData = pagination(currentPage, pageSize, list) + + return { + ...resultSuccess({ + list: pageData, + total: list.length + }), + message + } +} \ No newline at end of file diff --git a/apps/admin/build/mock/data/table.ts b/apps/admin/build/mock/data/table.ts new file mode 100644 index 00000000..05ed4caa --- /dev/null +++ b/apps/admin/build/mock/data/table.ts @@ -0,0 +1,61 @@ +import { MockMethod } from 'vite-plugin-mock' +import { Random } from 'mockjs' +import { resultPageSuccess } from '../_utils' + +const getPhone = () => { + const prefixList = [135, 136, 137, 138, 139, 155, 158, 183, 185, 189] + const randomNum = Math.floor(Math.random() * 10) + const phoneStr = prefixList[randomNum] + Math.random().toString().slice(-8) + return Number(phoneStr) +} + +const getEducation = () => { + const educationList = ['小学', '初中', '高中', '专科', '本科', '研究生'] + const randomNum = Math.floor(Math.random() * educationList.length) + return educationList[randomNum] +} + +const getMarried = () => { + return Math.floor(Math.random() * 4) +} + +const getHobby = () => { + const list: any[] = [] + const hobbyList = ['羽毛球', '乒乓球', '篮球', '排球', '网球', '游泳', '滑雪', '跳高', '滑翔', '潜水'] + const len = [3, 4][Number(Random.boolean())] + for (let key = 0; key < len; key++) { + const randomNum = Math.floor(Math.random() * 10) + list.push(hobbyList[randomNum]) + } + return list +} + +const genList = () => { + const list: any[] = [] + for (let index = 0; index < 100; index++) { + const num = index < 10 ? '0' + index : index + list.push({ + id: Number(`10${num}`) + 1, + name: Random.cname(), + sex: ['男', '女'][Number(Random.boolean())], + phone: getPhone(), + education: getEducation(), + married: getMarried(), + forbid: Random.boolean(), + hobby: getHobby() + }) + } + return list +} + +export default [ + { + url: '/api/table/getTableList', + timeout: 200, + method: 'get', + response: ({ query }) => { + const { current = 1, pageSize = 10 } = query + return resultPageSuccess(current, pageSize, genList()) + } + } +] as MockMethod[] \ No newline at end of file diff --git a/apps/admin/build/mock/data/user.ts b/apps/admin/build/mock/data/user.ts new file mode 100644 index 00000000..8718612d --- /dev/null +++ b/apps/admin/build/mock/data/user.ts @@ -0,0 +1,68 @@ +import { MockMethod } from 'vite-plugin-mock' +import { requestParams, resultSuccess, resultError, getRequestToken } from '../_utils' + +export function createFakeUserList() { + return [ + { + userId: '10000', + username: 'admin', + realName: 'react admin design', + avatar: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/avatar.png', + desc: 'super admin', + password: '123456', + token: 'fakeToken', + homePath: '/home' + } + ] +} + +// Mock user login +export default [ + { + url: '/api/login', + timeout: 500, + method: 'post', + response: ({ body }) => { + const { username, password } = body + const checkUser = createFakeUserList().find(item => item.username === username && password === item.password) + if (!checkUser) { + return resultError('Incorrect account or password!') + } + const { userId, username: _username, token, realName, desc } = checkUser + return resultSuccess({ + userId, + username: _username, + token, + realName, + desc + }) + } + }, + { + url: '/api/getUserInfo', + method: 'get', + response: (request: requestParams) => { + const token = getRequestToken(request) + if (!token) return resultError('Invalid token!') + const checkUser = createFakeUserList().find(item => item.token === token) + if (!checkUser) { + return resultError('The corresponding user information was not obtained!') + } + return resultSuccess(checkUser) + } + }, + { + url: '/api/logout', + timeout: 200, + method: 'get', + response: (request: requestParams) => { + const token = getRequestToken(request) + if (!token) return resultError('Invalid token!') + const checkUser = createFakeUserList().find(item => item.token === token) + if (!checkUser) { + return resultError('Invalid token!') + } + return resultSuccess(undefined, { message: 'Token has been destroyed!' }) + } + } +] as MockMethod[] diff --git a/apps/admin/build/package.json b/apps/admin/build/package.json new file mode 100644 index 00000000..06fa6c81 --- /dev/null +++ b/apps/admin/build/package.json @@ -0,0 +1,101 @@ +{ + "name": "react-admin-design", + "version": "0.0.0", + "type": "module", + "scripts": { + "serve": "vite", + "build": "rimraf dist && tsc && vite build", + "preview": "vite preview", + "clean:cache": "rimraf .eslintcache && rimraf node_modules && pnpm install", + "lint:eslint": "eslint --cache --fix \"{src,mock,build}/**/*.{js,ts,tsx}\"", + "lint:prettier": "prettier --write \"src/**/*.{js,json,ts,tsx,css,less,html,md}\"", + "lint:lint-staged": "lint-staged", + "prepare": "husky install" + }, + "dependencies": { + "@ant-design/icons": "^5.2.6", + "@codemirror/view": "^6.22.0", + "@reduxjs/toolkit": "^2.0.1", + "@uiw/react-codemirror": "^4.21.20", + "@uiw/react-md-editor": "^3.25.6", + "@wangeditor/editor": "^5.1.23", + "ahooks": "^3.7.8", + "antd": "^5.11.2", + "axios": "^1.6.2", + "classnames": "^2.3.2", + "cropperjs": "^1.6.1", + "crypto-js": "^4.2.0", + "dayjs": "^1.11.10", + "echarts": "^5.4.3", + "file-saver": "^2.0.5", + "gbeata": "^1.2.5", + "immer": "^10.0.3", + "lodash-es": "^4.17.21", + "mockjs": "^1.1.0", + "react": "^18.2.0", + "react-countup": "^6.5.0", + "react-cropper": "^2.3.3", + "react-dom": "^18.2.0", + "react-org-tree": "^1.0.1", + "react-redux": "^8.1.3", + "react-rnd": "^10.4.1", + "react-router-dom": "^6.19.0", + "react-sortablejs": "^6.1.4", + "redux": "^4.2.1", + "redux-persist": "^6.0.0", + "sortablejs": "^1.15.0", + "use-immer": "^0.9.0", + "video-react": "^0.16.0", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@babel/core": "^7.23.3", + "@commitlint/cli": "^18.4.3", + "@commitlint/config-conventional": "^18.4.3", + "@types/crypto-js": "^4.2.1", + "@types/file-saver": "^2.0.7", + "@types/lodash-es": "^4.17.11", + "@types/node": "^20.9.2", + "@types/react": "^18.2.37", + "@types/react-dom": "^18.2.15", + "@types/sortablejs": "^1.15.5", + "@types/video-react": "^0.15.4", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "@vitejs/plugin-react": "^4.2.0", + "autoprefixer": "^10.4.16", + "commitizen": "^4.3.0", + "cssnano": "^6.0.1", + "cz-git": "^1.7.1", + "esbuild": "^0.19.6", + "eslint": "^8.54.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "fast-glob": "^3.3.2", + "husky": "^8.0.3", + "less": "^4.2.0", + "lint-staged": "^15.1.0", + "postcss": "^8.4.31", + "prettier": "^3.1.0", + "rimraf": "^5.0.5", + "rollup": "^4.5.1", + "terser": "^5.24.0", + "typescript": "^5.2.2", + "vite": "4.5.0", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-mock": "2.9.8", + "vite-plugin-svg-icons": "^2.0.1" + }, + "lint-staged": { + "{src,mock,build}/**/*.{js,ts,tsx}": [ + "eslint --fix" + ] + }, + "config": { + "commitizen": { + "path": "node_modules/cz-git" + } + } +} diff --git a/apps/admin/build/pnpm-lock.yaml b/apps/admin/build/pnpm-lock.yaml new file mode 100644 index 00000000..754be048 --- /dev/null +++ b/apps/admin/build/pnpm-lock.yaml @@ -0,0 +1,25067 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@ant-design/icons': + specifier: ^5.2.6 + version: 5.2.6(react-dom@18.2.0)(react@18.2.0) + '@codemirror/view': + specifier: ^6.22.0 + version: 6.22.0 + '@reduxjs/toolkit': + specifier: ^2.0.1 + version: 2.0.1(react-redux@8.1.3)(react@18.2.0) + '@uiw/react-codemirror': + specifier: ^4.21.20 + version: 4.21.20(@babel/runtime@7.23.4)(@codemirror/autocomplete@6.11.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.22.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) + '@uiw/react-md-editor': + specifier: ^3.25.6 + version: 3.25.6(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0) + '@wangeditor/editor': + specifier: ^5.1.23 + version: 5.1.23 + ahooks: + specifier: ^3.7.8 + version: 3.7.8(react@18.2.0) + antd: + specifier: ^5.11.2 + version: 5.11.4(react-dom@18.2.0)(react@18.2.0) + axios: + specifier: ^1.6.2 + version: 1.6.2 + classnames: + specifier: ^2.3.2 + version: 2.3.2 + cropperjs: + specifier: ^1.6.1 + version: 1.6.1 + crypto-js: + specifier: ^4.2.0 + version: 4.2.0 + dayjs: + specifier: ^1.11.10 + version: 1.11.10 + echarts: + specifier: ^5.4.3 + version: 5.4.3 + file-saver: + specifier: ^2.0.5 + version: 2.0.5 + gbeata: + specifier: ^1.2.5 + version: registry.npmmirror.com/gbeata@1.2.5(@types/react@18.2.38)(antd-style@3.6.1)(antd@5.11.4)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + immer: + specifier: ^10.0.3 + version: 10.0.3 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + mockjs: + specifier: ^1.1.0 + version: 1.1.0 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-countup: + specifier: ^6.5.0 + version: 6.5.0(react@18.2.0) + react-cropper: + specifier: ^2.3.3 + version: 2.3.3(react@18.2.0) + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-org-tree: + specifier: ^1.0.1 + version: 1.0.1 + react-redux: + specifier: ^8.1.3 + version: 8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + react-rnd: + specifier: ^10.4.1 + version: 10.4.1(react-dom@18.2.0)(react@18.2.0) + react-router-dom: + specifier: ^6.19.0 + version: 6.20.0(react-dom@18.2.0)(react@18.2.0) + react-sortablejs: + specifier: ^6.1.4 + version: 6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0) + redux: + specifier: ^4.2.1 + version: 4.2.1 + redux-persist: + specifier: ^6.0.0 + version: 6.0.0(react@18.2.0)(redux@4.2.1) + sortablejs: + specifier: ^1.15.0 + version: 1.15.0 + use-immer: + specifier: ^0.9.0 + version: 0.9.0(immer@10.0.3)(react@18.2.0) + video-react: + specifier: ^0.16.0 + version: 0.16.0(react-dom@18.2.0)(react@18.2.0) + xlsx: + specifier: ^0.18.5 + version: 0.18.5 + +devDependencies: + '@babel/core': + specifier: ^7.23.3 + version: 7.23.3 + '@commitlint/cli': + specifier: ^18.4.3 + version: 18.4.3(typescript@5.3.2) + '@commitlint/config-conventional': + specifier: ^18.4.3 + version: 18.4.3 + '@types/crypto-js': + specifier: ^4.2.1 + version: 4.2.1 + '@types/file-saver': + specifier: ^2.0.7 + version: 2.0.7 + '@types/lodash-es': + specifier: ^4.17.11 + version: 4.17.12 + '@types/node': + specifier: ^20.9.2 + version: 20.10.0 + '@types/react': + specifier: ^18.2.37 + version: 18.2.38 + '@types/react-dom': + specifier: ^18.2.15 + version: 18.2.17 + '@types/sortablejs': + specifier: ^1.15.5 + version: 1.15.7 + '@types/video-react': + specifier: ^0.15.4 + version: 0.15.4 + '@typescript-eslint/eslint-plugin': + specifier: ^6.11.0 + version: 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': + specifier: ^6.11.0 + version: 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@vitejs/plugin-react': + specifier: ^4.2.0 + version: 4.2.0(vite@4.5.0) + autoprefixer: + specifier: ^10.4.16 + version: 10.4.16(postcss@8.4.31) + commitizen: + specifier: ^4.3.0 + version: 4.3.0(typescript@5.3.2) + cssnano: + specifier: ^6.0.1 + version: 6.0.1(postcss@8.4.31) + cz-git: + specifier: ^1.7.1 + version: 1.7.1 + esbuild: + specifier: ^0.19.6 + version: 0.19.7 + eslint: + specifier: ^8.54.0 + version: 8.54.0 + eslint-config-prettier: + specifier: ^9.0.0 + version: 9.0.0(eslint@8.54.0) + eslint-plugin-prettier: + specifier: ^5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0) + eslint-plugin-react: + specifier: ^7.33.2 + version: 7.33.2(eslint@8.54.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.54.0) + fast-glob: + specifier: ^3.3.2 + version: 3.3.2 + husky: + specifier: ^8.0.3 + version: 8.0.3 + less: + specifier: ^4.2.0 + version: 4.2.0 + lint-staged: + specifier: ^15.1.0 + version: 15.1.0 + postcss: + specifier: ^8.4.31 + version: 8.4.31 + prettier: + specifier: ^3.1.0 + version: 3.1.0 + rimraf: + specifier: ^5.0.5 + version: 5.0.5 + rollup: + specifier: ^4.5.1 + version: 4.5.2 + terser: + specifier: ^5.24.0 + version: 5.24.0 + typescript: + specifier: ^5.2.2 + version: 5.3.2 + vite: + specifier: 4.5.0 + version: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + vite-plugin-eslint: + specifier: ^1.8.1 + version: 1.8.1(eslint@8.54.0)(vite@4.5.0) + vite-plugin-mock: + specifier: 2.9.8 + version: 2.9.8(mockjs@1.1.0)(vite@4.5.0) + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: 2.0.1(vite@4.5.0) + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + + /@ant-design/colors@7.0.0: + resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==} + dependencies: + '@ctrl/tinycolor': 3.6.1 + dev: false + + /@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ed2rruHMxZTVYGPec6QBZkrh00Df5K1FAufmBpONai5iGYxoxIkg1sRD8YdCw0NvPRAa4r1nJP5LbwICGHzGiQ==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': 7.23.4 + '@emotion/hash': 0.8.0 + '@emotion/unitless': 0.7.5 + classnames: 2.3.2 + csstype: 3.1.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + stylis: 4.3.0 + dev: false + + /@ant-design/icons-svg@4.3.1: + resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==} + dev: false + + /@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==} + engines: {node: '>=8'} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@ant-design/colors': 7.0.0 + '@ant-design/icons-svg': 4.3.1 + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@ant-design/react-slick@1.0.2(react@18.2.0): + resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==} + peerDependencies: + react: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + json2mq: 0.2.0 + react: 18.2.0 + resize-observer-polyfill: 1.5.1 + throttle-debounce: 5.0.0 + dev: false + + /@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + + /@babel/compat-data@7.23.3: + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} + engines: {node: '>=6.9.0'} + + /@babel/core@7.23.3: + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/helpers': 7.23.4 + '@babel/parser': 7.23.4 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.4 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/generator@7.23.4: + resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.3 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.4 + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + + /@babel/helpers@7.23.4: + resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.4 + transitivePeerDependencies: + - supports-color + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.23.4: + resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.4 + + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/runtime@7.23.4: + resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.4 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 + + /@babel/traverse@7.23.4: + resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types@7.23.4: + resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@codemirror/commands@6.3.0: + resolution: {integrity: sha512-tFfcxRIlOWiQDFhjBSWJ10MxcvbCIsRr6V64SgrcaY0MwNk32cUOcCuNlWo8VjV4qRQCgNgUAnIeo0svkk4R5Q==} + dependencies: + '@codemirror/language': 6.9.2 + '@codemirror/state': 6.3.1 + '@codemirror/view': 6.22.0 + '@lezer/common': 1.1.1 + dev: false + + /@codemirror/language@6.9.2: + resolution: {integrity: sha512-QGTQXSpAKDIzaSE96zNK1UfIUhPgkT1CLjh1N5qVzZuxgsEOhz5RqaN8QCIdyOQklGLx3MgHd9YrE3X3+Pl1ow==} + dependencies: + '@codemirror/state': 6.3.1 + '@codemirror/view': 6.22.0 + '@lezer/common': 1.1.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.3.14 + style-mod: 4.1.0 + dev: false + + /@codemirror/state@6.3.1: + resolution: {integrity: sha512-88e4HhMtKJyw6fKprGaN/yZfiaoGYOi2nM45YCUC6R/kex9sxFWBDGatS1vk4lMgnWmdIIB9tk8Gj1LmL8YfvA==} + dev: false + + /@codemirror/view@6.22.0: + resolution: {integrity: sha512-6zLj4YIoIpfTGKrDMTbeZRpa8ih4EymMCKmddEDcJWrCdp/N1D46B38YEz4creTb4T177AVS9EyXkLeC/HL2jA==} + dependencies: + '@codemirror/state': 6.3.1 + style-mod: 4.1.0 + w3c-keyname: 2.2.8 + dev: false + + /@commitlint/cli@18.4.3(typescript@5.3.2): + resolution: {integrity: sha512-zop98yfB3A6NveYAZ3P1Mb6bIXuCeWgnUfVNkH4yhIMQpQfzFwseadazOuSn0OOfTt0lWuFauehpm9GcqM5lww==} + engines: {node: '>=v18'} + hasBin: true + dependencies: + '@commitlint/format': 18.4.3 + '@commitlint/lint': 18.4.3 + '@commitlint/load': 18.4.3(typescript@5.3.2) + '@commitlint/read': 18.4.3 + '@commitlint/types': 18.4.3 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - typescript + dev: true + + /@commitlint/config-conventional@18.4.3: + resolution: {integrity: sha512-729eRRaNta7JZF07qf6SAGSghoDEp9mH7yHU0m7ff0q89W97wDrWCyZ3yoV3mcQJwbhlmVmZPTkPcm7qiAu8WA==} + engines: {node: '>=v18'} + dependencies: + conventional-changelog-conventionalcommits: 7.0.2 + dev: true + + /@commitlint/config-validator@18.4.3: + resolution: {integrity: sha512-FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + ajv: 8.12.0 + dev: true + + /@commitlint/ensure@18.4.3: + resolution: {integrity: sha512-MI4fwD9TWDVn4plF5+7JUyLLbkOdzIRBmVeNlk4dcGlkrVA+/l5GLcpN66q9LkFsFv6G2X31y89ApA3hqnqIFg==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + dev: true + + /@commitlint/execute-rule@18.4.3: + resolution: {integrity: sha512-t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==} + engines: {node: '>=v18'} + dev: true + + /@commitlint/format@18.4.3: + resolution: {integrity: sha512-8b+ItXYHxAhRAXFfYki5PpbuMMOmXYuzLxib65z2XTqki59YDQJGpJ/wB1kEE5MQDgSTQWtKUrA8n9zS/1uIDQ==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + chalk: 4.1.2 + dev: true + + /@commitlint/is-ignored@18.4.3: + resolution: {integrity: sha512-ZseOY9UfuAI32h9w342Km4AIaTieeFskm2ZKdrG7r31+c6zGBzuny9KQhwI9puc0J3GkUquEgKJblCl7pMnjwg==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + semver: 7.5.4 + dev: true + + /@commitlint/lint@18.4.3: + resolution: {integrity: sha512-18u3MRgEXNbnYkMOWoncvq6QB8/90m9TbERKgdPqVvS+zQ/MsuRhdvHYCIXGXZxUb0YI4DV2PC4bPneBV/fYuA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/is-ignored': 18.4.3 + '@commitlint/parse': 18.4.3 + '@commitlint/rules': 18.4.3 + '@commitlint/types': 18.4.3 + dev: true + + /@commitlint/load@18.4.3(typescript@5.3.2): + resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/config-validator': 18.4.3 + '@commitlint/execute-rule': 18.4.3 + '@commitlint/resolve-extends': 18.4.3 + '@commitlint/types': 18.4.3 + '@types/node': 18.18.13 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.3.2) + cosmiconfig-typescript-loader: 5.0.0(@types/node@18.18.13)(cosmiconfig@8.3.6)(typescript@5.3.2) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - typescript + dev: true + + /@commitlint/message@18.4.3: + resolution: {integrity: sha512-ddJ7AztWUIoEMAXoewx45lKEYEOeOlBVWjk8hDMUGpprkuvWULpaXczqdjwVtjrKT3JhhN+gMs8pm5G3vB2how==} + engines: {node: '>=v18'} + dev: true + + /@commitlint/parse@18.4.3: + resolution: {integrity: sha512-eoH7CXM9L+/Me96KVcfJ27EIIbA5P9sqw3DqjJhRYuhaULIsPHFs5S5GBDCqT0vKZQDx0DgxhMpW6AQbnKrFtA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + dev: true + + /@commitlint/read@18.4.3: + resolution: {integrity: sha512-H4HGxaYA6OBCimZAtghL+B+SWu8ep4X7BwgmedmqWZRHxRLcX2q0bWBtUm5FsMbluxbOfrJwOs/Z0ah4roP/GQ==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/top-level': 18.4.3 + '@commitlint/types': 18.4.3 + fs-extra: 11.1.1 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + dev: true + + /@commitlint/resolve-extends@18.4.3: + resolution: {integrity: sha512-30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/config-validator': 18.4.3 + '@commitlint/types': 18.4.3 + import-fresh: 3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules@18.4.3: + resolution: {integrity: sha512-8KIeukDf45BiY+Lul1T0imSNXF0sMrlLG6JpLLKolkmYVQ6PxxoNOriwyZ3UTFFpaVbPy0rcITaV7U9JCAfDTA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/ensure': 18.4.3 + '@commitlint/message': 18.4.3 + '@commitlint/to-lines': 18.4.3 + '@commitlint/types': 18.4.3 + execa: 5.1.1 + dev: true + + /@commitlint/to-lines@18.4.3: + resolution: {integrity: sha512-fy1TAleik4Zfru1RJ8ZU6cOSvgSVhUellxd3WZV1D5RwHZETt1sZdcA4mQN2y3VcIZsUNKkW0Mq8CM9/L9harQ==} + engines: {node: '>=v18'} + dev: true + + /@commitlint/top-level@18.4.3: + resolution: {integrity: sha512-E6fJPBLPFL5R8+XUNSYkj4HekIOuGMyJo3mIx2PkYc3clel+pcWQ7TConqXxNWW4x1ugigiIY2RGot55qUq1hw==} + engines: {node: '>=v18'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types@18.4.3: + resolution: {integrity: sha512-cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==} + engines: {node: '>=v18'} + dependencies: + chalk: 4.1.2 + dev: true + + /@ctrl/tinycolor@3.6.1: + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + dev: false + + /@emotion/hash@0.8.0: + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} + dev: false + + /@emotion/unitless@0.7.5: + resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} + dev: false + + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.54.0 + eslint-visitor-keys: 3.4.3 + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.23.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: registry.npmmirror.com/strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: registry.npmmirror.com/wrap-ansi@7.0.0 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@lezer/common@1.1.1: + resolution: {integrity: sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==} + dev: false + + /@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} + dependencies: + '@lezer/common': 1.1.1 + dev: false + + /@lezer/lr@1.3.14: + resolution: {integrity: sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==} + dependencies: + '@lezer/common': 1.1.1 + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.3.2 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.6.2 + dev: true + + /@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@ctrl/tinycolor': 3.6.1 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/mini-decimal@1.1.0: + resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} + engines: {node: '>=8.x'} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + /@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@reduxjs/toolkit@2.0.1(react-redux@8.1.3)(react@18.2.0): + resolution: {integrity: sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + dependencies: + immer: 10.0.3 + react: 18.2.0 + react-redux: 8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + redux: 5.0.0 + redux-thunk: 3.1.0(redux@5.0.0) + reselect: 5.0.1 + dev: false + + /@remix-run/router@1.13.0: + resolution: {integrity: sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==} + engines: {node: '>=14.0.0'} + dev: false + + /@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@transloadit/prettier-bytes@0.0.7: + resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==} + dev: false + + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 + '@types/babel__generator': 7.6.7 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.4 + dev: true + + /@types/babel__generator@7.6.7: + resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} + dependencies: + '@babel/types': 7.23.4 + dev: true + + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 + dev: true + + /@types/babel__traverse@7.20.4: + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + dependencies: + '@babel/types': 7.23.4 + dev: true + + /@types/crypto-js@4.2.1: + resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==} + dev: true + + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: false + + /@types/eslint@8.44.7: + resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/event-emitter@0.3.5: + resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==} + dev: false + + /@types/file-saver@2.0.7: + resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} + dev: true + + /@types/hast@2.3.8: + resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /@types/hoist-non-react-statics@3.3.5: + resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==} + dependencies: + '@types/react': 18.2.38 + hoist-non-react-statics: 3.3.2 + dev: false + + /@types/js-cookie@2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + dev: false + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/lodash-es@4.17.12: + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + dependencies: + '@types/lodash': 4.14.202 + dev: true + + /@types/lodash@4.14.202: + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} + dev: true + + /@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true + + /@types/mockjs@1.0.10: + resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==} + dev: true + + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: false + + /@types/node@18.18.13: + resolution: {integrity: sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/node@20.10.0: + resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==} + dependencies: + undici-types: 5.26.5 + + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + dev: true + + /@types/parse5@6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + dev: false + + /@types/prismjs@1.26.3: + resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} + dev: false + + /@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} + + /@types/react-dom@18.2.17: + resolution: {integrity: sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==} + dependencies: + '@types/react': 18.2.38 + + /@types/react@18.2.38: + resolution: {integrity: sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==} + dependencies: + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.2 + + /@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} + + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true + + /@types/sortablejs@1.15.7: + resolution: {integrity: sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==} + + /@types/svgo@2.6.4: + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} + dependencies: + '@types/node': 20.10.0 + dev: true + + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: false + + /@types/use-sync-external-store@0.0.3: + resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} + dev: false + + /@types/video-react@0.15.4: + resolution: {integrity: sha512-EbBgFiHRFnKrUK7EMpQdJGf9coEcosTyEf62YTsJlNSGSbfz4ZyGHhKGWD4MfGdGWNAw9CFlP+06rWXw1VDVoQ==} + dependencies: + '@types/react': 18.2.38 + dev: true + + /@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/type-utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.12.0 + debug: 4.3.4 + eslint: 8.54.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.12.0 + debug: 4.3.4 + eslint: 8.54.0 + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.12.0: + resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 + dev: true + + /@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + debug: 4.3.4 + eslint: 8.54.0 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.12.0: + resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2): + resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + eslint: 8.54.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.12.0: + resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.12.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@uiw/codemirror-extensions-basic-setup@4.21.20(@codemirror/autocomplete@6.11.0)(@codemirror/commands@6.3.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0): + resolution: {integrity: sha512-Wyi9q4uw0xGYd/tJ6bULG7tkCLqcUsQT0AQBfCDtnkV3LdiLU0LceTrzJoHJyIKSHsKDJxFQxa1qg3QLt4gIUA==} + peerDependencies: + '@codemirror/autocomplete': '>=6.0.0' + '@codemirror/commands': '>=6.0.0' + '@codemirror/language': '>=6.0.0' + '@codemirror/lint': '>=6.0.0' + '@codemirror/search': '>=6.0.0' + '@codemirror/state': '>=6.0.0' + '@codemirror/view': '>=6.0.0' + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.11.0(@codemirror/language@6.9.2)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0)(@lezer/common@1.1.1) + '@codemirror/commands': 6.3.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.4.2 + '@codemirror/search': registry.npmmirror.com/@codemirror/search@6.5.4 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': 6.22.0 + dev: false + + /@uiw/copy-to-clipboard@1.0.16: + resolution: {integrity: sha512-IXR+N363nLTR3ilklmM+B0nk774jVE/muOrBYt4Rdww/Pf3uP9XHyv2x6YZrbDh29F7w9BkzQyB8QF6WDShmJA==} + dev: false + + /@uiw/react-codemirror@4.21.20(@babel/runtime@7.23.4)(@codemirror/autocomplete@6.11.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.22.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PdyewPvNXnvT3JHj888yjpbWsAGw5qlxW6w1sMdsqJ0R6vPV++ob1iZXCGrM1FVpbqPK0DNfpXvjzp2gIr3lYw==} + peerDependencies: + '@babel/runtime': '>=7.11.0' + '@codemirror/state': '>=6.0.0' + '@codemirror/theme-one-dark': '>=6.0.0' + '@codemirror/view': '>=6.0.0' + codemirror: '>=6.0.0' + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@codemirror/commands': 6.3.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/theme-one-dark': registry.npmmirror.com/@codemirror/theme-one-dark@6.1.2 + '@codemirror/view': 6.22.0 + '@uiw/codemirror-extensions-basic-setup': 4.21.20(@codemirror/autocomplete@6.11.0)(@codemirror/commands@6.3.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0) + codemirror: registry.npmmirror.com/codemirror@6.0.1(@lezer/common@1.1.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@codemirror/autocomplete' + - '@codemirror/language' + - '@codemirror/lint' + - '@codemirror/search' + dev: false + + /@uiw/react-markdown-preview@4.2.2(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Jy3GtAqcF2pKgvFtgLUEwR8u2t0Yk/DAnLTl6cf1RzhNYcAxm1auDs3KndZRBDP01xhmYLX4KiOcOg/qv+Jc0A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@babel/runtime': 7.23.4 + '@uiw/copy-to-clipboard': 1.0.16 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-markdown: 8.0.7(@types/react@18.2.38)(react@18.2.0) + rehype-attr: 2.1.4 + rehype-autolink-headings: 6.1.1 + rehype-ignore: 1.0.5 + rehype-prism-plus: 1.6.3 + rehype-raw: 6.1.1 + rehype-rewrite: 3.0.6 + rehype-slug: 5.1.0 + remark-gfm: 3.0.1 + unist-util-visit: 4.1.2 + transitivePeerDependencies: + - '@types/react' + - supports-color + dev: false + + /@uiw/react-md-editor@3.25.6(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YuDv5KiM931WFYBDCyk9/HvtLdIWk9DXvzC6d1riaLufvchM7IUHkqTkSl3HqmTod1exSN+5ZsUtKZ+S+GAsug==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@babel/runtime': 7.23.4 + '@uiw/react-markdown-preview': 4.2.2(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + rehype: 12.0.1 + rehype-prism-plus: 1.6.3 + transitivePeerDependencies: + - '@types/react' + - supports-color + dev: false + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + /@uppy/companion-client@2.2.2: + resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==} + dependencies: + '@uppy/utils': 4.1.3 + namespace-emitter: 2.0.1 + dev: false + + /@uppy/core@2.3.4: + resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==} + dependencies: + '@transloadit/prettier-bytes': 0.0.7 + '@uppy/store-default': 2.1.1 + '@uppy/utils': 4.1.3 + lodash.throttle: 4.1.1 + mime-match: 1.0.2 + namespace-emitter: 2.0.1 + nanoid: 3.3.7 + preact: 10.19.2 + dev: false + + /@uppy/store-default@2.1.1: + resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==} + dev: false + + /@uppy/utils@4.1.3: + resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==} + dependencies: + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + dev: false + + /@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4): + resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==} + peerDependencies: + '@uppy/core': ^2.3.3 + dependencies: + '@uppy/companion-client': 2.2.2 + '@uppy/core': 2.3.4 + '@uppy/utils': 4.1.3 + nanoid: 3.3.7 + dev: false + + /@vitejs/plugin-react@4.2.0(vite@4.5.0): + resolution: {integrity: sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.3) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.0 + vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + transitivePeerDependencies: + - supports-color + dev: true + + /@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + is-url: 1.2.4 + lodash.throttle: 4.1.1 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + prismjs: 1.29.0 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==} + peerDependencies: + '@uppy/core': ^2.1.1 + '@uppy/xhr-upload': ^2.0.3 + dom7: ^3.0.0 + is-hotkey: ^0.2.0 + lodash.camelcase: ^4.3.0 + lodash.clonedeep: ^4.5.0 + lodash.debounce: ^4.0.8 + lodash.foreach: ^4.5.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + lodash.toarray: ^4.4.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@types/event-emitter': 0.3.5 + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + dom7: 3.0.0 + event-emitter: 0.3.5 + html-void-elements: 2.0.1 + i18next: 20.6.1 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.7 + scroll-into-view-if-needed: 2.2.31 + slate: 0.72.8 + slate-history: 0.66.0(slate@0.72.8) + snabbdom: 3.5.1 + dev: false + + /@wangeditor/editor@5.1.23: + resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==} + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==} + peerDependencies: + '@uppy/core': ^2.0.3 + '@uppy/xhr-upload': ^2.0.3 + '@wangeditor/basic-modules': 1.x + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.foreach: ^4.5.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + lodash.foreach: 4.5.0 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==} + peerDependencies: + '@uppy/core': ^2.1.4 + '@uppy/xhr-upload': ^2.0.7 + '@wangeditor/core': 1.x + dom7: ^3.0.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /acorn-jsx@5.3.2(acorn@8.11.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.2 + + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + + /adler-32@1.3.1: + resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} + engines: {node: '>=0.8'} + dev: false + + /ahooks-v3-count@1.0.0: + resolution: {integrity: sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==} + dev: false + + /ahooks@3.7.8(react@18.2.0): + resolution: {integrity: sha512-e/NMlQWoCjaUtncNFIZk3FG1ImSkV/JhScQSkTqnftakRwdfZWSw6zzoWSG9OMYqPNs2MguDYBUFFC6THelWXA==} + engines: {node: '>=8.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.23.4 + '@types/js-cookie': 2.2.7 + ahooks-v3-count: 1.0.0 + dayjs: 1.11.10 + intersection-observer: 0.12.2 + js-cookie: 2.2.1 + lodash: 4.17.21 + react: 18.2.0 + resize-observer-polyfill: 1.5.1 + screenfull: 5.2.0 + tslib: 2.6.2 + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /antd@5.11.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-FuaV/viyZiMlCL1JzdQpSlzPcWcBlGYDAbtj3FM4BgwAso+ge3d4tXkZZG4yZkktUoLvWrcaJObs3Nk32Oiwuw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/colors': 7.0.0 + '@ant-design/cssinjs': 1.17.5(react-dom@18.2.0)(react@18.2.0) + '@ant-design/icons': 5.2.6(react-dom@18.2.0)(react@18.2.0) + '@ant-design/react-slick': 1.0.2(react@18.2.0) + '@babel/runtime': 7.23.4 + '@ctrl/tinycolor': 3.6.1 + '@rc-component/color-picker': 1.4.1(react-dom@18.2.0)(react@18.2.0) + '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/tour': 1.10.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + copy-to-clipboard: 3.3.3 + dayjs: 1.11.10 + qrcode.react: 3.1.0(react@18.2.0) + rc-cascader: 3.20.0(react-dom@18.2.0)(react@18.2.0) + rc-checkbox: 3.1.0(react-dom@18.2.0)(react@18.2.0) + rc-collapse: 3.7.1(react-dom@18.2.0)(react@18.2.0) + rc-dialog: 9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-drawer: 6.5.2(react-dom@18.2.0)(react@18.2.0) + rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-field-form: 1.40.0(react-dom@18.2.0)(react@18.2.0) + rc-image: 7.5.1(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-input-number: 8.4.0(react-dom@18.2.0)(react@18.2.0) + rc-mentions: 2.9.1(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-notification: 5.3.0(react-dom@18.2.0)(react@18.2.0) + rc-pagination: 3.7.0(react-dom@18.2.0)(react@18.2.0) + rc-picker: 3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + rc-progress: 3.5.1(react-dom@18.2.0)(react@18.2.0) + rc-rate: 2.12.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-segmented: 2.2.2(react-dom@18.2.0)(react@18.2.0) + rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-slider: 10.4.0(react-dom@18.2.0)(react@18.2.0) + rc-steps: 6.0.1(react-dom@18.2.0)(react@18.2.0) + rc-switch: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-table: 7.36.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: 12.13.1(react-dom@18.2.0)(react@18.2.0) + rc-textarea: 1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-tooltip: 6.1.2(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-tree-select: 5.15.0(react-dom@18.2.0)(react@18.2.0) + rc-upload: 4.3.5(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: 3.1.0 + throttle-debounce: 5.0.0 + transitivePeerDependencies: + - date-fns + - luxon + - moment + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 + dev: true + + /array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: true + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-string: 1.0.7 + dev: true + + /array-tree-filter@2.1.0: + resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + dev: false + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001564 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /axios@1.6.2: + resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} + dependencies: + follow-redirects: 1.15.3 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + dev: false + + /big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.52 + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001564 + electron-to-chromium: 1.4.594 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /cachedir@2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + dev: true + + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001564 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + dev: true + + /caniuse-lite@1.0.30001564: + resolution: {integrity: sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==} + + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + + /cfb@1.2.2: + resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} + engines: {node: '>=0.8'} + dependencies: + adler-32: 1.3.1 + crc-32: 1.2.2 + dev: false + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /classnames@2.3.1: + resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==} + dev: false + + /classnames@2.3.2: + resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} + dev: false + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true + + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + dev: false + + /codepage@1.15.0: + resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==} + engines: {node: '>=0.8'} + dev: false + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + + /commitizen@4.3.0(typescript@5.3.2): + resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} + engines: {node: '>= 12'} + hasBin: true + dependencies: + cachedir: 2.3.0 + cz-conventional-changelog: 3.3.0(typescript@5.3.2) + dedent: 0.7.0 + detect-indent: 6.1.0 + find-node-modules: 2.1.3 + find-root: 1.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + inquirer: 8.2.5 + is-utf8: 0.2.1 + lodash: 4.17.21 + minimist: 1.2.7 + strip-bom: 4.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - typescript + dev: true + + /compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + dev: true + + /compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + dev: false + + /compute-scroll-into-view@3.1.0: + resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-commit-types@3.0.0: + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} + dev: true + + /conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + dependencies: + is-what: 3.14.1 + dev: true + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: true + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + + /cosmiconfig-typescript-loader@5.0.0(@types/node@18.18.13)(cosmiconfig@8.3.6)(typescript@5.3.2): + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + dependencies: + '@types/node': 18.18.13 + cosmiconfig: 8.3.6(typescript@5.3.2) + jiti: 1.21.0 + typescript: 5.3.2 + dev: true + + /cosmiconfig@8.3.6(typescript@5.3.2): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.3.2 + dev: true + + /countup.js@2.8.0: + resolution: {integrity: sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==} + dev: false + + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + dev: false + + /cropperjs@1.6.1: + resolution: {integrity: sha512-F4wsi+XkDHCOMrHMYjrTEE4QBOrsHHN5/2VsVAaRq8P7E5z7xQpT75S+f/9WikmBEailas3+yo+6zPIomW+NOA==} + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + dev: false + + /css-declaration-sorter@6.4.1(postcss@8.4.31): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.31 + dev: true + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + dev: true + + /css-selector-parser@1.4.1: + resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} + dev: false + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: true + + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /cssnano-preset-default@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.4.31) + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-calc: 9.0.1(postcss@8.4.31) + postcss-colormin: 6.0.0(postcss@8.4.31) + postcss-convert-values: 6.0.0(postcss@8.4.31) + postcss-discard-comments: 6.0.0(postcss@8.4.31) + postcss-discard-duplicates: 6.0.0(postcss@8.4.31) + postcss-discard-empty: 6.0.0(postcss@8.4.31) + postcss-discard-overridden: 6.0.0(postcss@8.4.31) + postcss-merge-longhand: 6.0.0(postcss@8.4.31) + postcss-merge-rules: 6.0.1(postcss@8.4.31) + postcss-minify-font-values: 6.0.0(postcss@8.4.31) + postcss-minify-gradients: 6.0.0(postcss@8.4.31) + postcss-minify-params: 6.0.0(postcss@8.4.31) + postcss-minify-selectors: 6.0.0(postcss@8.4.31) + postcss-normalize-charset: 6.0.0(postcss@8.4.31) + postcss-normalize-display-values: 6.0.0(postcss@8.4.31) + postcss-normalize-positions: 6.0.0(postcss@8.4.31) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.31) + postcss-normalize-string: 6.0.0(postcss@8.4.31) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.31) + postcss-normalize-unicode: 6.0.0(postcss@8.4.31) + postcss-normalize-url: 6.0.0(postcss@8.4.31) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.31) + postcss-ordered-values: 6.0.0(postcss@8.4.31) + postcss-reduce-initial: 6.0.0(postcss@8.4.31) + postcss-reduce-transforms: 6.0.0(postcss@8.4.31) + postcss-svgo: 6.0.0(postcss@8.4.31) + postcss-unique-selectors: 6.0.0(postcss@8.4.31) + dev: true + + /cssnano-utils@4.0.0(postcss@8.4.31): + resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /cssnano@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 6.0.1(postcss@8.4.31) + lilconfig: 2.1.0 + postcss: 8.4.31 + dev: true + + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + dev: true + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + + /cz-conventional-changelog@3.3.0(typescript@5.3.2): + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} + dependencies: + chalk: 2.4.2 + commitizen: 4.3.0(typescript@5.3.2) + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.5 + optionalDependencies: + '@commitlint/load': registry.npmmirror.com/@commitlint/load@18.4.3(typescript@5.3.2) + transitivePeerDependencies: + - typescript + dev: true + + /cz-git@1.7.1: + resolution: {integrity: sha512-NMe4REukCS7op1YA1jixRXOgII8Um2/Ii8TeyFEOISgp2ZzeobzkMOP8dXSrTQ3bvmm7YpPOdr2301yJkOJcbA==} + engines: {node: '>=v12.20.0'} + dev: true + + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 + dev: false + + /dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: false + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + requiresBuild: true + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + optional: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: true + + /dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + dev: true + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.7 + dev: true + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + dev: true + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + hasBin: true + dev: false + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + + /dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + dev: true + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: true + + /dom7@3.0.0: + resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==} + dependencies: + ssr-window: 3.0.0 + dev: false + + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + dependencies: + domelementtype: 1.3.1 + dev: true + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /echarts@5.4.3: + resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==} + dependencies: + tslib: 2.3.0 + zrender: 5.4.4 + dev: false + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /electron-to-chromium@1.4.594: + resolution: {integrity: sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==} + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + dev: true + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + dev: true + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-set-tostringtag: 2.0.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: true + + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es5-ext@0.10.62: + resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + dev: false + + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 + dev: false + + /es6-symbol@3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + dependencies: + d: 1.0.1 + ext: 1.7.0 + dev: false + + /esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.14.54 + esbuild-android-64: registry.npmmirror.com/esbuild-android-64@0.14.54 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64@0.14.54 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64@0.14.54 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64@0.14.54 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64@0.14.54 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32@0.14.54 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64@0.14.54 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm@0.14.54 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64@0.14.54 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le@0.14.54 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64@0.14.54 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x@0.14.54 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64@0.14.54 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64@0.14.54 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64@0.14.54 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32@0.14.54 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64@0.14.54 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64@0.14.54 + dev: true + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.18.20 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.18.20 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.18.20 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.18.20 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.18.20 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.18.20 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.18.20 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.18.20 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.18.20 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.18.20 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.18.20 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.18.20 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.18.20 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.18.20 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.18.20 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.18.20 + dev: true + + /esbuild@0.19.7: + resolution: {integrity: sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.19.7 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.19.7 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.19.7 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.19.7 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.19.7 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.7 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.19.7 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.19.7 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.19.7 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.19.7 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.19.7 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.19.7 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.19.7 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.19.7 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.19.7 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.19.7 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.19.7 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.19.7 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.19.7 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.19.7 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.19.7 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.19.7 + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + + /eslint-config-prettier@9.0.0(eslint@8.54.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.54.0 + dev: true + + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0): + resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.54.0 + eslint-config-prettier: 9.0.0(eslint@8.54.0) + prettier: 3.1.0 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.54.0 + dev: true + + /eslint-plugin-react@7.33.2(eslint@8.54.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.54.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.54.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.23.0 + graphemer: 1.4.0 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + dev: false + + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + dependencies: + type: 2.7.2 + dev: false + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + /fast-memoize@2.5.2: + resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} + dev: false + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + + /file-saver@2.0.5: + resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} + dev: false + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /find-node-modules@2.1.3: + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + dependencies: + findup-sync: 4.0.0 + merge: 2.1.1 + dev: true + + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + /findup-sync@4.0.0: + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.5 + resolve-dir: 1.0.1 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + + /follow-redirects@1.15.3: + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /frac@1.1.2: + resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==} + engines: {node: '>=0.8'} + dev: false + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: true + + /git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: true + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + + /hast-util-from-parse5@7.1.2: + resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} + dependencies: + '@types/hast': 2.3.8 + '@types/unist': 2.0.10 + hastscript: 7.2.0 + property-information: 6.4.0 + vfile: 5.3.7 + vfile-location: 4.1.0 + web-namespaces: 2.0.1 + dev: false + + /hast-util-has-property@2.0.1: + resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==} + dev: false + + /hast-util-heading-rank@2.1.1: + resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==} + dependencies: + '@types/hast': 2.3.8 + dev: false + + /hast-util-is-element@2.1.3: + resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==} + dependencies: + '@types/hast': 2.3.8 + '@types/unist': 2.0.10 + dev: false + + /hast-util-parse-selector@3.1.1: + resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} + dependencies: + '@types/hast': 2.3.8 + dev: false + + /hast-util-raw@7.2.3: + resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} + dependencies: + '@types/hast': 2.3.8 + '@types/parse5': 6.0.3 + hast-util-from-parse5: 7.1.2 + hast-util-to-parse5: 7.1.0 + html-void-elements: 2.0.1 + parse5: 6.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-select@5.0.5: + resolution: {integrity: sha512-QQhWMhgTFRhCaQdgTKzZ5g31GLQ9qRb1hZtDPMqQaOhpLBziWcshUS0uCR5IJ0U1jrK/mxg35fmcq+Dp/Cy2Aw==} + dependencies: + '@types/hast': 2.3.8 + '@types/unist': 2.0.10 + bcp-47-match: 2.0.3 + comma-separated-tokens: 2.0.3 + css-selector-parser: 1.4.1 + direction: 2.0.1 + hast-util-has-property: 2.0.1 + hast-util-to-string: 2.0.0 + hast-util-whitespace: 2.0.1 + not: 0.1.0 + nth-check: 2.1.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: false + + /hast-util-to-html@8.0.4: + resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} + dependencies: + '@types/hast': 2.3.8 + '@types/unist': 2.0.10 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 7.2.3 + hast-util-whitespace: 2.0.1 + html-void-elements: 2.0.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + dev: false + + /hast-util-to-parse5@7.1.0: + resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} + dependencies: + '@types/hast': 2.3.8 + comma-separated-tokens: 2.0.3 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-to-string@2.0.0: + resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} + dependencies: + '@types/hast': 2.3.8 + dev: false + + /hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + dev: false + + /hastscript@7.2.0: + resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} + dependencies: + '@types/hast': 2.3.8 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 3.1.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + dev: false + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + dev: false + + /htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + + /husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /i18next@20.6.1: + resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + safer-buffer: 2.1.2 + optional: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /immer@10.0.3: + resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} + dev: false + + /immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false + + /inquirer@8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: true + + /intersection-observer@0.12.2: + resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} + dev: false + + /is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + dependencies: + hasown: 2.0.0 + dev: true + + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false + + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true + + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + dev: true + + /is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + dependencies: + hasown: 2.0.0 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + + /is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + dev: true + + /is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false + + /is-hotkey@0.2.0: + resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} + dev: false + + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + dependencies: + text-extensions: 2.4.0 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.13 + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-url@1.2.4: + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} + dev: false + + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': registry.npmmirror.com/@pkgjs/parseargs@0.11.0 + dev: true + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + dev: true + + /js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + dev: true + + /js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + /json2mq@0.2.0: + resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} + dependencies: + string-convert: 0.2.1 + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: true + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false + + /less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.2 + optionalDependencies: + errno: registry.npmmirror.com/errno@0.1.8 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + image-size: registry.npmmirror.com/image-size@0.5.5 + make-dir: registry.npmmirror.com/make-dir@2.1.0 + mime: registry.npmmirror.com/mime@1.6.0 + needle: registry.npmmirror.com/needle@3.2.0 + source-map: registry.npmmirror.com/source-map@0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lint-staged@15.1.0: + resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==} + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 2.1.0 + listr2: 7.0.2 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /listr2@7.0.2: + resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} + engines: {node: '>=16.0.0'} + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 5.0.1 + rfdc: 1.3.0 + wrap-ansi: 8.1.0 + dev: true + + /loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: false + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: false + + /lodash.foreach@4.5.0: + resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} + dev: false + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + + /lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + dev: true + + /lodash.map@4.6.0: + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + dev: true + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: true + + /lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true + + /lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + dev: false + + /lodash.toarray@4.4.0: + resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==} + dev: false + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true + + /lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 + dev: true + + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false + + /longest@2.0.1: + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} + engines: {node: '>=0.10.0'} + dev: true + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lru-cache@10.1.0: + resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} + engines: {node: 14 || >=16.14} + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false + + /mdast-util-definitions@5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-find-and-replace@2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + dependencies: + '@types/mdast': 3.0.15 + escape-string-regexp: 5.0.0 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-autolink-literal@1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + dependencies: + '@types/mdast': 3.0.15 + ccount: 2.0.1 + mdast-util-find-and-replace: 2.2.2 + micromark-util-character: 1.2.0 + dev: false + + /mdast-util-gfm-footnote@1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + micromark-util-normalize-identifier: 1.1.0 + dev: false + + /mdast-util-gfm-strikethrough@1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm-table@1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + dependencies: + '@types/mdast': 3.0.15 + markdown-table: 3.0.3 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-task-list-item@1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm@2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-gfm-autolink-literal: 1.0.3 + mdast-util-gfm-footnote: 1.0.2 + mdast-util-gfm-strikethrough: 1.0.3 + mdast-util-gfm-table: 1.0.7 + mdast-util-gfm-task-list-item: 1.0.2 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + dependencies: + '@types/mdast': 3.0.15 + unist-util-is: 5.2.1 + dev: false + + /mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + dependencies: + '@types/hast': 2.3.8 + '@types/mdast': 3.0.15 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + dependencies: + '@types/mdast': 3.0.15 + dev: false + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + dev: true + + /meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-options@1.0.1: + resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /merge@2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + dev: true + + /micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-autolink-literal@1.0.5: + resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-gfm-footnote@1.1.2: + resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + dependencies: + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-strikethrough@1.0.7: + resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-table@1.0.7: + resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-tagfilter@1.0.2: + resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-gfm-task-list-item@1.0.5: + resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm@2.0.3: + resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + dependencies: + micromark-extension-gfm-autolink-literal: 1.0.5 + micromark-extension-gfm-footnote: 1.1.2 + micromark-extension-gfm-strikethrough: 1.0.7 + micromark-extension-gfm-table: 1.0.7 + micromark-extension-gfm-tagfilter: 1.0.2 + micromark-extension-gfm-task-list-item: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + dev: false + + /micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + dev: false + + /micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + dev: false + + /micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + dev: false + + /micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /micromatch@3.1.0: + resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 1.0.0 + extend-shallow: 2.0.1 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 5.1.0 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-match@1.0.2: + resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} + dependencies: + wildcard: 1.1.2 + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} + hasBin: true + dependencies: + commander: 11.1.0 + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: false + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + requiresBuild: true + optional: true + + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true + + /namespace-emitter@2.0.1: + resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} + dev: false + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: false + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.13.1 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /not@0.1.0: + resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} + dev: false + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + dependencies: + '@types/unist': 2.0.10 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.23.4 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: true + + /parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + dev: false + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: false + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.1.0 + minipass: 7.0.4 + dev: true + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + requiresBuild: true + optional: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: true + + /postcss-calc@9.0.1(postcss@8.4.31): + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-convert-values@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-discard-comments@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-discard-duplicates@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-discard-empty@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-discard-overridden@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-merge-longhand@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + stylehacks: 6.0.0(postcss@8.4.31) + dev: true + + /postcss-merge-rules@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-minify-font-values@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-gradients@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-params@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-selectors@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-normalize-charset@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-normalize-display-values@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-positions@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-string@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-unicode@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-url@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-whitespace@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-ordered-values@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-prefix-selector@1.16.0(postcss@5.2.18): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: 5.2.18 + dev: true + + /postcss-reduce-initial@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + caniuse-api: 3.0.0 + postcss: 8.4.31 + dev: true + + /postcss-reduce-transforms@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-svgo@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + svgo: 3.0.4 + dev: true + + /postcss-unique-selectors@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} + engines: {node: '>=0.12'} + dependencies: + chalk: 1.1.3 + js-base64: 2.6.4 + source-map: registry.npmmirror.com/source-map@0.5.7 + supports-color: 3.2.3 + dev: true + + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /posthtml-parser@0.2.1: + resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} + dependencies: + htmlparser2: 3.10.1 + isobject: 2.1.0 + dev: true + + /posthtml-rename-id@1.0.12: + resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /posthtml-render@1.4.0: + resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==} + engines: {node: '>=10'} + dev: true + + /posthtml-svg-mode@1.0.3: + resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==} + dependencies: + merge-options: 1.0.1 + posthtml: 0.9.2 + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /posthtml@0.9.2: + resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==} + engines: {node: '>=0.10.0'} + dependencies: + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /preact@10.19.2: + resolution: {integrity: sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg==} + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + engines: {node: '>=14'} + hasBin: true + + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /property-information@6.4.0: + resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} + dev: false + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + requiresBuild: true + optional: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + /qrcode.react@3.1.0(react@18.2.0): + resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + array-tree-filter: 2.1.0 + classnames: 2.3.2 + rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==} + peerDependencies: + react: '>=16.11.0' + react-dom: '>=16.11.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-field-form@1.40.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OM3N01X2BYFGJDJcwpk9/BBtlwgveE7eh2SQAKIxVCt9KVWlODYJ9ypTHQdxchfDbeJKJKxMBFXlLAmyvlgPHg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + async-validator: 4.2.5 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-dialog: 9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/mini-decimal': 1.1.0 + classnames: 2.3.2 + rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-/HjTaKi8/Ts4zNbYaB5oWCquxFyFQO4Co1MnMgoCeGJlpe7k8Eir2HN0a0F9IHDmmo+GYiGgPpz7w/d/krzsJA==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-textarea: 1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-pagination@3.7.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IxSzKapd13L91/195o1TPkKnCNw8gIR25UP1GCW/7c7n/slhld4npu2j2PB9IWjXm4SssaAaSAt2lscYog7wzg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==} + engines: {node: '>=8.x'} + peerDependencies: + date-fns: '>= 2.x' + dayjs: '>= 1.x' + luxon: '>= 3.x' + moment: '>= 2.x' + react: '>=16.9.0' + react-dom: '>=16.9.0' + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + dayjs: 1.11.10 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + resize-observer-polyfill: 1.5.1 + dev: false + + /rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==} + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-slider@10.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ZlpWjFhOlEf0w4Ng31avFBkXNNBj60NAcTPaIoiCxBkJ29wOtHSPMqv9PZeEoqmx64bpJkgK7kPa47HG4LPzww==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3xVcdCC5OLeOOhaCg+5Lps2oPreM/GWXmUXWTSX4p6vF7F76ABM4dfPpMJ9Dnf5yGRyh+8pe7FRyhRVnWw2H/w==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/context': 1.4.0(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-83u3l2QkO0UznCzdBLEk9WnNcT+imtmDmMT993sUUEOGnNQAmqOdev0XjeqrcvsAMe9CDpAWDFd7L/RZw+LVJQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-oH682ghHx++stFNYrosPRBfwsypywrTXpaD0/5Z8MPkUOnyOQUaY9ueL9tMu6BP1LfsuYQ1VLpg5OtshViLNgA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==} + engines: {node: '>=10.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.2.0 + dev: false + + /rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==} + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /re-resizable@6.9.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-0xYKS5+Z0zk+vICQlcZW+g54CcJTTmHluA7JUUgvERDxnKAnytylcyPsA+BSFi759s5hPlHmBRegFrwXs2FuBQ==} + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + dependencies: + fast-memoize: 2.5.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-countup@6.5.0(react@18.2.0): + resolution: {integrity: sha512-26JFHbUHsHxu8SetkJwWVIUEkaNnrj4P9msxNGC8tS4hGr1bngRzbwtJYOgXD2G/ItjaKJ3JfYKd85sw7qRVeA==} + peerDependencies: + react: '>= 16.3.0' + dependencies: + countup.js: 2.8.0 + react: 18.2.0 + dev: false + + /react-cropper@2.3.3(react@18.2.0): + resolution: {integrity: sha512-zghiEYkUb41kqtu+2jpX2Ntigf+Jj1dF9ew4lAobPzI2adaPE31z0p+5TcWngK6TvmWQUwK3lj4G+NDh1PDQ1w==} + peerDependencies: + react: '>=17.0.2' + dependencies: + cropperjs: 1.6.1 + react: 18.2.0 + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + dependencies: + clsx: 1.2.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: false + + /react-markdown@8.0.7(@types/react@18.2.38)(react@18.2.0): + resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' + dependencies: + '@types/hast': 2.3.8 + '@types/prop-types': 15.7.11 + '@types/react': 18.2.38 + '@types/unist': 2.0.10 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 2.0.1 + prop-types: 15.8.1 + property-information: 6.4.0 + react: 18.2.0 + react-is: 18.2.0 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unified: 10.1.2 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + /react-org-tree@1.0.1: + resolution: {integrity: sha512-NK1d8VIAzxJyMC/Rx9MupAusoFnokYr81Hw3oEpqxqBLQmpBVAexjvPSAJmhCmsom9Zymu+BMNrjRw5D54n7aw==} + dependencies: + classnames: 2.3.2 + dev: false + + /react-redux@8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1): + resolution: {integrity: sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==} + peerDependencies: + '@types/react': ^16.8 || ^17.0 || ^18.0 + '@types/react-dom': ^16.8 || ^17.0 || ^18.0 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + react-native: '>=0.59' + redux: ^4 || ^5.0.0-beta.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + react-dom: + optional: true + react-native: + optional: true + redux: + optional: true + dependencies: + '@babel/runtime': 7.23.4 + '@types/hoist-non-react-statics': 3.3.5 + '@types/react': 18.2.38 + '@types/react-dom': 18.2.17 + '@types/use-sync-external-store': 0.0.3 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.2.0 + redux: 4.2.1 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-rnd@10.4.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-0m887AjQZr6p2ADLNnipquqsDq4XJu/uqVqI3zuoGD19tRm6uB83HmZWydtkilNp5EWsOHbLGF4IjWMdd5du8Q==} + peerDependencies: + react: '>=16.3.0' + react-dom: '>=16.3.0' + dependencies: + re-resizable: 6.9.6(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-draggable: 4.4.5(react-dom@18.2.0)(react@18.2.0) + tslib: 2.3.1 + dev: false + + /react-router-dom@6.20.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.13.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.20.0(react@18.2.0) + dev: false + + /react-router@6.20.0(react@18.2.0): + resolution: {integrity: sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.13.0 + react: 18.2.0 + dev: false + + /react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0): + resolution: {integrity: sha512-fc7cBosfhnbh53Mbm6a45W+F735jwZ1UFIYSrIqcO/gRIFoDyZeMtgKlpV4DdyQfbCzdh5LoALLTDRxhMpTyXQ==} + peerDependencies: + '@types/sortablejs': '1' + react: '>=16.9.0' + react-dom: '>=16.9.0' + sortablejs: '1' + dependencies: + '@types/sortablejs': 1.15.7 + classnames: 2.3.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + sortablejs: 1.15.0 + tiny-invariant: 1.2.0 + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /redux-persist@6.0.0(react@18.2.0)(redux@4.2.1): + resolution: {integrity: sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==} + peerDependencies: + react: '>=16' + redux: '>4.0.0' + peerDependenciesMeta: + react: + optional: true + dependencies: + react: 18.2.0 + redux: 4.2.1 + dev: false + + /redux-thunk@3.1.0(redux@5.0.0): + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + dependencies: + redux: 5.0.0 + dev: false + + /redux@4.2.1: + resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} + dependencies: + '@babel/runtime': 7.23.4 + dev: false + + /redux@5.0.0: + resolution: {integrity: sha512-blLIYmYetpZMET6Q6uCY7Jtl/Im5OBldy+vNPauA8vvsdqyt66oep4EUpAMWNHauTC6xa9JuRPhRB72rY82QGA==} + dev: false + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + + /refractor@4.8.1: + resolution: {integrity: sha512-/fk5sI0iTgFYlmVGYVew90AoYnNMP6pooClx/XKqyeeCQXrL0Kvgn8V0VEht5ccdljbzzF1i3Q213gcntkRExg==} + dependencies: + '@types/hast': 2.3.8 + '@types/prismjs': 1.26.3 + hastscript: 7.2.0 + parse-entities: 4.0.1 + dev: false + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + + /rehype-attr@2.1.4: + resolution: {integrity: sha512-iAeaL5JyF4XxkcvWzpi/0SAF7iV7qOTaHS56tJuEsXziQc3+PEmMn65kV8OFgbO9mRVY7J1fRC/aLvot1PsNkg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-autolink-headings@6.1.1: + resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} + dependencies: + '@types/hast': 2.3.8 + extend: 3.0.2 + hast-util-has-property: 2.0.1 + hast-util-heading-rank: 2.1.1 + hast-util-is-element: 2.1.3 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-ignore@1.0.5: + resolution: {integrity: sha512-JQXS5eDwXaYKwB8JEYFJJA/YvGi0sSNUOYuiURMtuPTg8tuWHFB91JMYLbImH1FyvyGQM4fIBqNMAPB50WR2Bw==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + hast-util-select: 5.0.5 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-parse@8.0.5: + resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} + dependencies: + '@types/hast': 2.3.8 + hast-util-from-parse5: 7.1.2 + parse5: 6.0.1 + unified: 10.1.2 + dev: false + + /rehype-prism-plus@1.6.3: + resolution: {integrity: sha512-F6tn376zimnvy+xW0bSnryul+rvVL7NhDIkavc9kAuzDx5zIZW04A6jdXPkcFBhojcqZB8b6pHt6CLqiUx+Tbw==} + dependencies: + hast-util-to-string: 2.0.0 + parse-numeric-range: 1.3.0 + refractor: 4.8.1 + rehype-parse: 8.0.5 + unist-util-filter: 4.0.1 + unist-util-visit: 4.1.2 + dev: false + + /rehype-raw@6.1.1: + resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==} + dependencies: + '@types/hast': 2.3.8 + hast-util-raw: 7.2.3 + unified: 10.1.2 + dev: false + + /rehype-rewrite@3.0.6: + resolution: {integrity: sha512-REDTNCvsKcAazy8IQWzKp66AhSUDSOIKssSCqNqCcT9sN7JCwAAm3mWGTUdUzq80ABuy8d0D6RBwbnewu1aY1g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + hast-util-select: 5.0.5 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-slug@5.1.0: + resolution: {integrity: sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==} + dependencies: + '@types/hast': 2.3.8 + github-slugger: 2.0.0 + hast-util-has-property: 2.0.1 + hast-util-heading-rank: 2.1.1 + hast-util-to-string: 2.0.0 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-stringify@9.0.4: + resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} + dependencies: + '@types/hast': 2.3.8 + hast-util-to-html: 8.0.4 + unified: 10.1.2 + dev: false + + /rehype@12.0.1: + resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==} + dependencies: + '@types/hast': 2.3.8 + rehype-parse: 8.0.5 + rehype-stringify: 9.0.4 + unified: 10.1.2 + dev: false + + /remark-gfm@3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-gfm: 2.0.2 + micromark-extension-gfm: 2.0.3 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype@10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + dependencies: + '@types/hast': 2.3.8 + '@types/mdast': 3.0.15 + mdast-util-to-hast: 12.3.0 + unified: 10.1.2 + dev: false + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /reselect@5.0.1: + resolution: {integrity: sha512-D72j2ubjgHpvuCiORWkOUxndHJrxDaSolheiz5CO+roz8ka97/4msh2E8F5qay4GawR5vzBt5MkbDHT+Rdy/Wg==} + dev: false + + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false + + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 10.3.10 + dev: true + + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /rollup@4.5.2: + resolution: {integrity: sha512-CRK1uoROBfkcqrZKyaFcqCcZWNsvJ6yVYZkqTlRocZhO2s5yER6Z3f/QaYtO8RGyloPnmhwgzuPQpNGeK210xQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': registry.npmmirror.com/@rollup/rollup-android-arm-eabi@4.5.2 + '@rollup/rollup-android-arm64': registry.npmmirror.com/@rollup/rollup-android-arm64@4.5.2 + '@rollup/rollup-darwin-arm64': registry.npmmirror.com/@rollup/rollup-darwin-arm64@4.5.2 + '@rollup/rollup-darwin-x64': registry.npmmirror.com/@rollup/rollup-darwin-x64@4.5.2 + '@rollup/rollup-linux-arm-gnueabihf': registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf@4.5.2 + '@rollup/rollup-linux-arm64-gnu': registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu@4.5.2 + '@rollup/rollup-linux-arm64-musl': registry.npmmirror.com/@rollup/rollup-linux-arm64-musl@4.5.2 + '@rollup/rollup-linux-x64-gnu': registry.npmmirror.com/@rollup/rollup-linux-x64-gnu@4.5.2 + '@rollup/rollup-linux-x64-musl': registry.npmmirror.com/@rollup/rollup-linux-x64-musl@4.5.2 + '@rollup/rollup-win32-arm64-msvc': registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc@4.5.2 + '@rollup/rollup-win32-ia32-msvc': registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.5.2 + '@rollup/rollup-win32-x64-msvc': registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.5.2 + fsevents: registry.npmmirror.com/fsevents@2.3.3 + + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.6.2 + dev: true + + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: false + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + dev: true + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + requiresBuild: true + optional: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + dev: false + + /scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + dependencies: + compute-scroll-into-view: 1.0.20 + dev: false + + /scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + dependencies: + compute-scroll-into-view: 3.1.0 + dev: false + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + dev: true + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slate-history@0.66.0(slate@0.72.8): + resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==} + peerDependencies: + slate: '>=0.65.3' + dependencies: + is-plain-object: 5.0.0 + slate: 0.72.8 + dev: false + + /slate@0.72.8: + resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==} + dependencies: + immer: 9.0.21 + is-plain-object: 5.0.0 + tiny-warning: 1.0.3 + dev: false + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /snabbdom@3.5.1: + resolution: {integrity: sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==} + engines: {node: '>=8.3.0'} + dev: false + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: registry.npmmirror.com/source-map@0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /sortablejs@1.15.0: + resolution: {integrity: sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + dev: true + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.2 + dev: true + + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + dev: true + + /ssf@0.11.2: + resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==} + engines: {node: '>=0.8'} + dependencies: + frac: 1.1.2 + dev: false + + /ssr-window@3.0.0: + resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==} + dev: false + + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + + /string-convert@0.2.1: + resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: false + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + /style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} + dev: false + + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + dependencies: + inline-style-parser: 0.1.1 + dev: false + + /stylehacks@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} + dev: false + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + dependencies: + has-flag: 1.0.0 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /svg-baker@1.7.0: + resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} + dependencies: + bluebird: 3.7.2 + clone: 2.1.2 + he: 1.2.0 + image-size: 0.5.5 + loader-utils: 1.4.2 + merge-options: 1.0.1 + micromatch: 3.1.0 + postcss: 5.2.18 + postcss-prefix-selector: 1.16.0(postcss@5.2.18) + posthtml-rename-id: 1.0.12 + posthtml-svg-mode: 1.0.3 + query-string: 4.3.4 + traverse: 0.6.7 + transitivePeerDependencies: + - supports-color + dev: true + + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 + dev: true + + /svgo@3.0.4: + resolution: {integrity: sha512-T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + + /synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.4.2 + tslib: 2.6.2 + dev: true + + /terser@5.24.0: + resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.2 + commander: 2.20.3 + source-map-support: 0.5.21 + + /text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + /throttle-debounce@5.0.0: + resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} + engines: {node: '>=12.22'} + dev: false + + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /tiny-invariant@1.2.0: + resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==} + dev: false + + /tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + dev: false + + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /traverse@0.6.7: + resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} + dev: true + + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /trough@2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: false + + /ts-api-utils@1.0.3(typescript@5.3.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.2 + dev: true + + /tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + dev: false + + /tslib@2.3.1: + resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + + /type@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} + dev: false + + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + dev: false + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + engines: {node: '>=14.17'} + hasBin: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + /unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + dependencies: + '@types/unist': 2.0.10 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 5.3.7 + dev: false + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + + /unist-util-filter@4.0.1: + resolution: {integrity: sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==} + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /unist-util-generated@2.0.1: + resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + dev: false + + /unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + dev: false + + /unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: true + + /use-immer@0.9.0(immer@10.0.3)(react@18.2.0): + resolution: {integrity: sha512-/L+enLi0nvuZ6j4WlyK0US9/ECUtV5v9RUbtxnn5+WbtaXYUaOBoKHDNL9I5AETdurQ4rIFIj/s+Z5X80ATyKw==} + peerDependencies: + immer: '>=2.0.0' + react: ^16.8.0 || ^17.0.1 || ^18.0.0 + dependencies: + immer: 10.0.3 + react: 18.2.0 + dev: false + + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: false + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /vfile-location@4.1.0: + resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} + dependencies: + '@types/unist': 2.0.10 + vfile: 5.3.7 + dev: false + + /vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + dependencies: + '@types/unist': 2.0.10 + unist-util-stringify-position: 3.0.3 + dev: false + + /vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + dependencies: + '@types/unist': 2.0.10 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + dev: false + + /video-react@0.16.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-138NHPS8bmgqCYVCdbv2GVFhXntemNHWGw9AN8iJSzr3jizXMmWJd2LTBppr4hZJUbyW1A1tPZ3CQXZUaexMVA==} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + lodash.throttle: 4.1.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + redux: 4.2.1 + dev: false + + /vite-plugin-eslint@1.8.1(eslint@8.54.0)(vite@4.5.0): + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + peerDependencies: + eslint: '>=7' + vite: '>=2' + dependencies: + '@rollup/pluginutils': 4.2.1 + '@types/eslint': 8.44.7 + eslint: 8.54.0 + rollup: 2.79.1 + vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + dev: true + + /vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.0): + resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==} + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@types/mockjs': 1.0.10 + chalk: 4.1.2 + chokidar: 3.5.3 + connect: 3.7.0 + debug: 4.3.4 + esbuild: 0.14.54 + fast-glob: 3.3.2 + mockjs: 1.1.0 + path-to-regexp: 6.2.1 + vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-svg-icons@2.0.1(vite@4.5.0): + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': 2.6.4 + cors: 2.8.5 + debug: 4.3.4 + etag: 1.8.1 + fs-extra: 10.1.0 + pathe: 0.2.0 + svg-baker: 1.7.0 + svgo: 2.8.0 + vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite@4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.10.0 + esbuild: 0.18.20 + less: 4.2.0 + postcss: 8.4.31 + rollup: 3.29.4 + terser: 5.24.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + dev: false + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.13 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /wildcard@1.1.2: + resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} + dev: false + + /wmf@1.0.2: + resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==} + engines: {node: '>=0.8'} + dev: false + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /word@0.3.0: + resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==} + engines: {node: '>=0.8'} + dev: false + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /xlsx@0.18.5: + resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==} + engines: {node: '>=0.8'} + hasBin: true + dependencies: + adler-32: 1.3.1 + cfb: 1.2.2 + codepage: 1.15.0 + crc-32: 1.2.2 + ssf: 0.11.2 + wmf: 1.0.2 + word: 0.3.0 + dev: false + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + /zrender@5.4.4: + resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==} + dependencies: + tslib: 2.3.0 + dev: false + + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false + + registry.npmmirror.com/@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz} + name: '@ampproject/remapping' + version: 2.2.1 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + dev: false + + registry.npmmirror.com/@ant-design/colors@7.0.0: + resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.0.tgz} + name: '@ant-design/colors' + version: 7.0.0 + dependencies: + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + dev: false + + registry.npmmirror.com/@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ed2rruHMxZTVYGPec6QBZkrh00Df5K1FAufmBpONai5iGYxoxIkg1sRD8YdCw0NvPRAa4r1nJP5LbwICGHzGiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.17.5.tgz} + id: registry.npmmirror.com/@ant-design/cssinjs/1.17.5 + name: '@ant-design/cssinjs' + version: 1.17.5 + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.8.0 + '@emotion/unitless': registry.npmmirror.com/@emotion/unitless@0.7.5 + classnames: registry.npmmirror.com/classnames@2.3.2 + csstype: registry.npmmirror.com/csstype@3.1.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + stylis: registry.npmmirror.com/stylis@4.3.0 + dev: false + + registry.npmmirror.com/@ant-design/icons-svg@4.3.1: + resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz} + name: '@ant-design/icons-svg' + version: 4.3.1 + dev: false + + registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons/-/icons-5.2.6.tgz} + id: registry.npmmirror.com/@ant-design/icons/5.2.6 + name: '@ant-design/icons' + version: 5.2.6 + engines: {node: '>=8'} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 + '@ant-design/icons-svg': registry.npmmirror.com/@ant-design/icons-svg@4.3.1 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0): + resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-1.0.2.tgz} + id: registry.npmmirror.com/@ant-design/react-slick/1.0.2 + name: '@ant-design/react-slick' + version: 1.0.2 + peerDependencies: + react: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + json2mq: registry.npmmirror.com/json2mq@0.2.0 + react: 18.2.0 + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 + dev: false + + registry.npmmirror.com/@antfu/install-pkg@0.1.1: + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-0.1.1.tgz} + name: '@antfu/install-pkg' + version: 0.1.1 + dependencies: + execa: registry.npmmirror.com/execa@5.1.1 + find-up: registry.npmmirror.com/find-up@5.0.0 + dev: false + + registry.npmmirror.com/@antfu/utils@0.7.7: + resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz} + name: '@antfu/utils' + version: 0.7.7 + dev: false + + registry.npmmirror.com/@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.4.tgz} + name: '@babel/code-frame' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.npmmirror.com/@babel/highlight@7.23.4 + chalk: registry.npmmirror.com/chalk@2.4.2 + dev: false + + registry.npmmirror.com/@babel/compat-data@7.23.3: + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.3.tgz} + name: '@babel/compat-data' + version: 7.23.3 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.23.2.tgz} + name: '@babel/core' + version: 7.23.2 + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping@2.2.1 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.4 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.22.15 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.2) + '@babel/helpers': registry.npmmirror.com/@babel/helpers@7.23.4 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 + debug: registry.npmmirror.com/debug@4.3.4 + gensync: registry.npmmirror.com/gensync@1.0.0-beta.2 + json5: registry.npmmirror.com/json5@2.2.3 + semver: registry.npmmirror.com/semver@6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@babel/core@7.23.3: + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.23.3.tgz} + name: '@babel/core' + version: 7.23.3 + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping@2.2.1 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.4 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.22.15 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3) + '@babel/helpers': registry.npmmirror.com/@babel/helpers@7.23.4 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 + debug: registry.npmmirror.com/debug@4.3.4 + gensync: registry.npmmirror.com/gensync@1.0.0-beta.2 + json5: registry.npmmirror.com/json5@2.2.3 + semver: registry.npmmirror.com/semver@6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.54.0): + resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz} + id: registry.npmmirror.com/@babel/eslint-parser/7.22.15 + name: '@babel/eslint-parser' + version: 7.22.15 + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 + '@nicolo-ribaudo/eslint-scope-5-internals': registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1 + eslint: 8.54.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@2.1.0 + semver: registry.npmmirror.com/semver@6.3.1 + dev: false + + registry.npmmirror.com/@babel/generator@7.23.4: + resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/generator/-/generator-7.23.4.tgz} + name: '@babel/generator' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + jsesc: registry.npmmirror.com/jsesc@2.5.2 + dev: false + + registry.npmmirror.com/@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz} + name: '@babel/helper-compilation-targets' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.23.3 + '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option@7.22.15 + browserslist: registry.npmmirror.com/browserslist@4.22.1 + lru-cache: registry.npmmirror.com/lru-cache@5.1.1 + semver: registry.npmmirror.com/semver@6.3.1 + dev: false + + registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz} + name: '@babel/helper-environment-visitor' + version: 7.22.20 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz} + name: '@babel/helper-function-name' + version: 7.23.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz} + name: '@babel/helper-hoist-variables' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz} + name: '@babel/helper-module-imports' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.2): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz} + id: registry.npmmirror.com/@babel/helper-module-transforms/7.23.3 + name: '@babel/helper-module-transforms' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + dev: false + + registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz} + id: registry.npmmirror.com/@babel/helper-module-transforms/7.23.3 + name: '@babel/helper-module-transforms' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + dev: false + + registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz} + name: '@babel/helper-plugin-utils' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz} + name: '@babel/helper-simple-access' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz} + name: '@babel/helper-split-export-declaration' + version: 7.22.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz} + name: '@babel/helper-string-parser' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz} + name: '@babel/helper-validator-identifier' + version: 7.22.20 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz} + name: '@babel/helper-validator-option' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helpers@7.23.4: + resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.4.tgz} + name: '@babel/helpers' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz} + name: '@babel/highlight' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + chalk: registry.npmmirror.com/chalk@2.4.2 + js-tokens: registry.npmmirror.com/js-tokens@4.0.0 + dev: false + + registry.npmmirror.com/@babel/parser@7.23.4: + resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.23.4.tgz} + name: '@babel/parser' + version: 7.23.4 + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-async-generators/7.8.4 + name: '@babel/plugin-syntax-async-generators' + version: 7.8.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-bigint/7.8.3 + name: '@babel/plugin-syntax-bigint' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-class-properties/7.12.13 + name: '@babel/plugin-syntax-class-properties' + version: 7.12.13 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-import-meta/7.10.4 + name: '@babel/plugin-syntax-import-meta' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-json-strings/7.8.3 + name: '@babel/plugin-syntax-json-strings' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4 + name: '@babel/plugin-syntax-logical-assignment-operators' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3 + name: '@babel/plugin-syntax-nullish-coalescing-operator' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/7.10.4 + name: '@babel/plugin-syntax-numeric-separator' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/7.8.3 + name: '@babel/plugin-syntax-object-rest-spread' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/7.8.3 + name: '@babel/plugin-syntax-optional-catch-binding' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/7.8.3 + name: '@babel/plugin-syntax-optional-chaining' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-top-level-await/7.14.5 + name: '@babel/plugin-syntax-top-level-await' + version: 7.14.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.3): + resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/7.23.0 + name: '@babel/plugin-transform-modules-commonjs' + version: 7.23.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/7.23.3 + name: '@babel/plugin-transform-react-jsx-self' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/7.23.3 + name: '@babel/plugin-transform-react-jsx-source' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/runtime@7.23.2: + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.2.tgz} + name: '@babel/runtime' + version: 7.23.2 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.0 + dev: false + + registry.npmmirror.com/@babel/runtime@7.23.4: + resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.4.tgz} + name: '@babel/runtime' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.0 + dev: false + + registry.npmmirror.com/@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz} + name: '@babel/template' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/traverse@7.23.4: + resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.4.tgz} + name: '@babel/traverse' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.4 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.23.0 + '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables@7.22.5 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + debug: registry.npmmirror.com/debug@4.3.4 + globals: registry.npmmirror.com/globals@11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@babel/types@7.23.4: + resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.23.4.tgz} + name: '@babel/types' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser@7.23.4 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + to-fast-properties: registry.npmmirror.com/to-fast-properties@2.0.0 + dev: false + + registry.npmmirror.com/@bloomberg/record-tuple-polyfill@0.0.4: + resolution: {integrity: sha512-h0OYmPR3A5Dfbetra/GzxBAzQk8sH7LhRkRUTdagX6nrtlUgJGYCTv4bBK33jsTQw9HDd8PE2x1Ma+iRKEDUsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@bloomberg/record-tuple-polyfill/-/record-tuple-polyfill-0.0.4.tgz} + name: '@bloomberg/record-tuple-polyfill' + version: 0.0.4 + dev: false + + registry.npmmirror.com/@codemirror/autocomplete@6.11.0(@codemirror/language@6.9.2)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0)(@lezer/common@1.1.1): + resolution: {integrity: sha512-LCPH3W+hl5vcO7OzEQgX6NpKuKVyiKFLGAy7FXROF6nUpsWUdQEgUb3fe/g7B0E1KZCRFfgzdKASt6Wly2UOBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.11.0.tgz} + id: registry.npmmirror.com/@codemirror/autocomplete/6.11.0 + name: '@codemirror/autocomplete' + version: 6.11.0 + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': 6.22.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + dev: false + + registry.npmmirror.com/@codemirror/commands@6.3.0: + resolution: {integrity: sha512-tFfcxRIlOWiQDFhjBSWJ10MxcvbCIsRr6V64SgrcaY0MwNk32cUOcCuNlWo8VjV4qRQCgNgUAnIeo0svkk4R5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/commands/-/commands-6.3.0.tgz} + name: '@codemirror/commands' + version: 6.3.0 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + dev: false + + registry.npmmirror.com/@codemirror/language@6.9.2: + resolution: {integrity: sha512-QGTQXSpAKDIzaSE96zNK1UfIUhPgkT1CLjh1N5qVzZuxgsEOhz5RqaN8QCIdyOQklGLx3MgHd9YrE3X3+Pl1ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/language/-/language-6.9.2.tgz} + name: '@codemirror/language' + version: 6.9.2 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.2.0 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.14 + style-mod: registry.npmmirror.com/style-mod@4.1.0 + dev: false + + registry.npmmirror.com/@codemirror/lint@6.4.2: + resolution: {integrity: sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/lint/-/lint-6.4.2.tgz} + name: '@codemirror/lint' + version: 6.4.2 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + crelt: registry.npmmirror.com/crelt@1.0.6 + dev: false + + registry.npmmirror.com/@codemirror/search@6.5.4: + resolution: {integrity: sha512-YoTrvjv9e8EbPs58opjZKyJ3ewFrVSUzQ/4WXlULQLSDDr1nGPJ67mMXFNNVYwdFhybzhrzrtqgHmtpJwIF+8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/search/-/search-6.5.4.tgz} + name: '@codemirror/search' + version: 6.5.4 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + crelt: registry.npmmirror.com/crelt@1.0.6 + dev: false + + registry.npmmirror.com/@codemirror/state@6.3.1: + resolution: {integrity: sha512-88e4HhMtKJyw6fKprGaN/yZfiaoGYOi2nM45YCUC6R/kex9sxFWBDGatS1vk4lMgnWmdIIB9tk8Gj1LmL8YfvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/state/-/state-6.3.1.tgz} + name: '@codemirror/state' + version: 6.3.1 + dev: false + + registry.npmmirror.com/@codemirror/theme-one-dark@6.1.2: + resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz} + name: '@codemirror/theme-one-dark' + version: 6.1.2 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.2.0 + dev: false + + registry.npmmirror.com/@codemirror/view@6.22.0: + resolution: {integrity: sha512-6zLj4YIoIpfTGKrDMTbeZRpa8ih4EymMCKmddEDcJWrCdp/N1D46B38YEz4creTb4T177AVS9EyXkLeC/HL2jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/view/-/view-6.22.0.tgz} + name: '@codemirror/view' + version: 6.22.0 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + style-mod: registry.npmmirror.com/style-mod@4.1.0 + w3c-keyname: registry.npmmirror.com/w3c-keyname@2.2.8 + dev: false + + registry.npmmirror.com/@commitlint/load@18.4.3(typescript@5.3.2): + resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@commitlint/load/-/load-18.4.3.tgz} + id: registry.npmmirror.com/@commitlint/load/18.4.3 + name: '@commitlint/load' + version: 18.4.3 + engines: {node: '>=v18'} + requiresBuild: true + dependencies: + '@commitlint/config-validator': 18.4.3 + '@commitlint/execute-rule': 18.4.3 + '@commitlint/resolve-extends': 18.4.3 + '@commitlint/types': 18.4.3 + '@types/node': 18.18.13 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.3.2) + cosmiconfig-typescript-loader: 5.0.0(@types/node@18.18.13)(cosmiconfig@8.3.6)(typescript@5.3.2) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - typescript + dev: true + optional: true + + registry.npmmirror.com/@csstools/postcss-color-function@1.1.1(postcss@8.4.31): + resolution: {integrity: sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-color-function/1.1.1 + name: '@csstools/postcss-color-function' + version: 1.1.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-font-format-keywords@1.0.1(postcss@8.4.31): + resolution: {integrity: sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-font-format-keywords/1.0.1 + name: '@csstools/postcss-font-format-keywords' + version: 1.0.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-hwb-function@1.0.2(postcss@8.4.31): + resolution: {integrity: sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz} + id: registry.npmmirror.com/@csstools/postcss-hwb-function/1.0.2 + name: '@csstools/postcss-hwb-function' + version: 1.0.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-ic-unit@1.0.1(postcss@8.4.31): + resolution: {integrity: sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-ic-unit/1.0.1 + name: '@csstools/postcss-ic-unit' + version: 1.0.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-is-pseudo-class@2.0.7(postcss@8.4.31): + resolution: {integrity: sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz} + id: registry.npmmirror.com/@csstools/postcss-is-pseudo-class/2.0.7 + name: '@csstools/postcss-is-pseudo-class' + version: 2.0.7 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/selector-specificity': registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/@csstools/postcss-normalize-display-values@1.0.1(postcss@8.4.31): + resolution: {integrity: sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-normalize-display-values/1.0.1 + name: '@csstools/postcss-normalize-display-values' + version: 1.0.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-oklab-function@1.1.1(postcss@8.4.31): + resolution: {integrity: sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-oklab-function/1.1.1 + name: '@csstools/postcss-oklab-function' + version: 1.1.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31): + resolution: {integrity: sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz} + id: registry.npmmirror.com/@csstools/postcss-progressive-custom-properties/1.3.0 + name: '@csstools/postcss-progressive-custom-properties' + version: 1.3.0 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-stepped-value-functions@1.0.1(postcss@8.4.31): + resolution: {integrity: sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-stepped-value-functions/1.0.1 + name: '@csstools/postcss-stepped-value-functions' + version: 1.0.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-unset-value@1.0.2(postcss@8.4.31): + resolution: {integrity: sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz} + id: registry.npmmirror.com/@csstools/postcss-unset-value/1.0.2 + name: '@csstools/postcss-unset-value' + version: 1.0.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13): + resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz} + id: registry.npmmirror.com/@csstools/selector-specificity/2.2.0 + name: '@csstools/selector-specificity' + version: 2.2.0 + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.10 + dependencies: + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/@ctrl/tinycolor@3.6.1: + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz} + name: '@ctrl/tinycolor' + version: 3.6.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/@emotion/babel-plugin@11.11.0: + resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz} + name: '@emotion/babel-plugin' + version: 11.11.0 + dependencies: + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.9.1 + '@emotion/memoize': registry.npmmirror.com/@emotion/memoize@0.8.1 + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + babel-plugin-macros: registry.npmmirror.com/babel-plugin-macros@3.1.0 + convert-source-map: registry.npmmirror.com/convert-source-map@1.9.0 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@4.0.0 + find-root: registry.npmmirror.com/find-root@1.1.0 + source-map: registry.npmmirror.com/source-map@0.5.7 + stylis: registry.npmmirror.com/stylis@4.2.0 + dev: false + + registry.npmmirror.com/@emotion/cache@11.11.0: + resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/cache/-/cache-11.11.0.tgz} + name: '@emotion/cache' + version: 11.11.0 + dependencies: + '@emotion/memoize': registry.npmmirror.com/@emotion/memoize@0.8.1 + '@emotion/sheet': registry.npmmirror.com/@emotion/sheet@1.2.2 + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + '@emotion/weak-memoize': registry.npmmirror.com/@emotion/weak-memoize@0.3.1 + stylis: registry.npmmirror.com/stylis@4.2.0 + dev: false + + registry.npmmirror.com/@emotion/css@11.11.2: + resolution: {integrity: sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/css/-/css-11.11.2.tgz} + name: '@emotion/css' + version: 11.11.2 + dependencies: + '@emotion/babel-plugin': registry.npmmirror.com/@emotion/babel-plugin@11.11.0 + '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + '@emotion/sheet': registry.npmmirror.com/@emotion/sheet@1.2.2 + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + dev: false + + registry.npmmirror.com/@emotion/hash@0.8.0: + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz} + name: '@emotion/hash' + version: 0.8.0 + dev: false + + registry.npmmirror.com/@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.1.tgz} + name: '@emotion/hash' + version: 0.9.1 + dev: false + + registry.npmmirror.com/@emotion/memoize@0.8.1: + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.8.1.tgz} + name: '@emotion/memoize' + version: 0.8.1 + dev: false + + registry.npmmirror.com/@emotion/react@11.11.1(@types/react@18.2.38)(react@18.2.0): + resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/react/-/react-11.11.1.tgz} + id: registry.npmmirror.com/@emotion/react/11.11.1 + name: '@emotion/react' + version: 11.11.1 + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/babel-plugin': registry.npmmirror.com/@emotion/babel-plugin@11.11.0 + '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + '@emotion/use-insertion-effect-with-fallbacks': registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0) + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + '@emotion/weak-memoize': registry.npmmirror.com/@emotion/weak-memoize@0.3.1 + '@types/react': 18.2.38 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + react: 18.2.0 + dev: false + + registry.npmmirror.com/@emotion/serialize@1.1.2: + resolution: {integrity: sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/serialize/-/serialize-1.1.2.tgz} + name: '@emotion/serialize' + version: 1.1.2 + dependencies: + '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.9.1 + '@emotion/memoize': registry.npmmirror.com/@emotion/memoize@0.8.1 + '@emotion/unitless': registry.npmmirror.com/@emotion/unitless@0.8.1 + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + csstype: registry.npmmirror.com/csstype@3.1.2 + dev: false + + registry.npmmirror.com/@emotion/server@11.11.0(@emotion/css@11.11.2): + resolution: {integrity: sha512-6q89fj2z8VBTx9w93kJ5n51hsmtYuFPtZgnc1L8VzRx9ti4EU6EyvF6Nn1H1x3vcCQCF7u2dB2lY4AYJwUW4PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/server/-/server-11.11.0.tgz} + id: registry.npmmirror.com/@emotion/server/11.11.0 + name: '@emotion/server' + version: 11.11.0 + peerDependencies: + '@emotion/css': ^11.0.0-rc.0 + peerDependenciesMeta: + '@emotion/css': + optional: true + dependencies: + '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + html-tokenize: registry.npmmirror.com/html-tokenize@2.0.1 + multipipe: registry.npmmirror.com/multipipe@1.0.2 + through: registry.npmmirror.com/through@2.3.8 + dev: false + + registry.npmmirror.com/@emotion/sheet@1.2.2: + resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/sheet/-/sheet-1.2.2.tgz} + name: '@emotion/sheet' + version: 1.2.2 + dev: false + + registry.npmmirror.com/@emotion/unitless@0.7.5: + resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.7.5.tgz} + name: '@emotion/unitless' + version: 0.7.5 + dev: false + + registry.npmmirror.com/@emotion/unitless@0.8.1: + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz} + name: '@emotion/unitless' + version: 0.8.1 + dev: false + + registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): + resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz} + id: registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks/1.0.1 + name: '@emotion/use-insertion-effect-with-fallbacks' + version: 1.0.1 + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/@emotion/utils@1.2.1: + resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/utils/-/utils-1.2.1.tgz} + name: '@emotion/utils' + version: 1.2.1 + dev: false + + registry.npmmirror.com/@emotion/weak-memoize@0.3.1: + resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz} + name: '@emotion/weak-memoize' + version: 0.3.1 + dev: false + + registry.npmmirror.com/@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz} + name: '@esbuild/android-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz} + name: '@esbuild/android-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm64@0.19.7: + resolution: {integrity: sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz} + name: '@esbuild/android-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz} + name: '@esbuild/android-arm' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz} + name: '@esbuild/android-arm' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.19.7: + resolution: {integrity: sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.7.tgz} + name: '@esbuild/android-arm' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz} + name: '@esbuild/android-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz} + name: '@esbuild/android-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.19.7: + resolution: {integrity: sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.19.7.tgz} + name: '@esbuild/android-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz} + name: '@esbuild/darwin-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz} + name: '@esbuild/darwin-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.19.7: + resolution: {integrity: sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz} + name: '@esbuild/darwin-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz} + name: '@esbuild/darwin-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz} + name: '@esbuild/darwin-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.19.7: + resolution: {integrity: sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz} + name: '@esbuild/darwin-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.7: + resolution: {integrity: sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz} + name: '@esbuild/freebsd-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz} + name: '@esbuild/freebsd-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.19.7: + resolution: {integrity: sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz} + name: '@esbuild/freebsd-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz} + name: '@esbuild/linux-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz} + name: '@esbuild/linux-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.19.7: + resolution: {integrity: sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz} + name: '@esbuild/linux-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz} + name: '@esbuild/linux-arm' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz} + name: '@esbuild/linux-arm' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.19.7: + resolution: {integrity: sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz} + name: '@esbuild/linux-arm' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz} + name: '@esbuild/linux-ia32' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz} + name: '@esbuild/linux-ia32' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.19.7: + resolution: {integrity: sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz} + name: '@esbuild/linux-ia32' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz} + name: '@esbuild/linux-loong64' + version: 0.14.54 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz} + name: '@esbuild/linux-loong64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz} + name: '@esbuild/linux-loong64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.19.7: + resolution: {integrity: sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz} + name: '@esbuild/linux-loong64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz} + name: '@esbuild/linux-mips64el' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz} + name: '@esbuild/linux-mips64el' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.19.7: + resolution: {integrity: sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz} + name: '@esbuild/linux-mips64el' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz} + name: '@esbuild/linux-ppc64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz} + name: '@esbuild/linux-ppc64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.19.7: + resolution: {integrity: sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz} + name: '@esbuild/linux-ppc64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz} + name: '@esbuild/linux-riscv64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz} + name: '@esbuild/linux-riscv64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.19.7: + resolution: {integrity: sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz} + name: '@esbuild/linux-riscv64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz} + name: '@esbuild/linux-s390x' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz} + name: '@esbuild/linux-s390x' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.19.7: + resolution: {integrity: sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz} + name: '@esbuild/linux-s390x' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz} + name: '@esbuild/linux-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz} + name: '@esbuild/linux-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.19.7: + resolution: {integrity: sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz} + name: '@esbuild/linux-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz} + name: '@esbuild/netbsd-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz} + name: '@esbuild/netbsd-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.19.7: + resolution: {integrity: sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz} + name: '@esbuild/netbsd-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz} + name: '@esbuild/openbsd-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz} + name: '@esbuild/openbsd-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.19.7: + resolution: {integrity: sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz} + name: '@esbuild/openbsd-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz} + name: '@esbuild/sunos-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz} + name: '@esbuild/sunos-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.19.7: + resolution: {integrity: sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz} + name: '@esbuild/sunos-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz} + name: '@esbuild/win32-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz} + name: '@esbuild/win32-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.19.7: + resolution: {integrity: sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz} + name: '@esbuild/win32-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz} + name: '@esbuild/win32-ia32' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz} + name: '@esbuild/win32-ia32' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.19.7: + resolution: {integrity: sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz} + name: '@esbuild/win32-ia32' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz} + name: '@esbuild/win32-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz} + name: '@esbuild/win32-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.19.7: + resolution: {integrity: sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz} + name: '@esbuild/win32-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} + id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 + name: '@eslint-community/eslint-utils' + version: 4.4.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.54.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + dev: false + + registry.npmmirror.com/@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz} + name: '@eslint-community/regexpp' + version: 4.10.0 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: false + + registry.npmmirror.com/@floating-ui/core@0.6.2: + resolution: {integrity: sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.2.tgz} + name: '@floating-ui/core' + version: 0.6.2 + dev: false + + registry.npmmirror.com/@floating-ui/core@1.5.2: + resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/core/-/core-1.5.2.tgz} + name: '@floating-ui/core' + version: 1.5.2 + dependencies: + '@floating-ui/utils': registry.npmmirror.com/@floating-ui/utils@0.1.6 + dev: false + + registry.npmmirror.com/@floating-ui/dom@0.4.5: + resolution: {integrity: sha512-b+prvQgJt8pieaKYMSJBXHxX/DYwdLsAWxKYqnO5dO2V4oo/TYBZJAUQCVNjTWWsrs6o4VDrNcP9+E70HAhJdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.5.tgz} + name: '@floating-ui/dom' + version: 0.4.5 + dependencies: + '@floating-ui/core': registry.npmmirror.com/@floating-ui/core@0.6.2 + dev: false + + registry.npmmirror.com/@floating-ui/dom@1.5.3: + resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.5.3.tgz} + name: '@floating-ui/dom' + version: 1.5.3 + dependencies: + '@floating-ui/core': registry.npmmirror.com/@floating-ui/core@1.5.2 + '@floating-ui/utils': registry.npmmirror.com/@floating-ui/utils@0.1.6 + dev: false + + registry.npmmirror.com/@floating-ui/react-dom-interactions@0.3.1(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-tP2KEh7EHJr5hokSBHcPGojb+AorDNUf0NYfZGg/M+FsMvCOOsSEeEF0O1NDfETIzDnpbHnCs0DuvCFhSMSStg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react-dom-interactions/-/react-dom-interactions-0.3.1.tgz} + id: registry.npmmirror.com/@floating-ui/react-dom-interactions/0.3.1 + name: '@floating-ui/react-dom-interactions' + version: 0.3.1 + deprecated: Package renamed to @floating-ui/react + dependencies: + '@floating-ui/react-dom': registry.npmmirror.com/@floating-ui/react-dom@0.6.3(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0) + aria-hidden: registry.npmmirror.com/aria-hidden@1.2.3 + point-in-polygon: registry.npmmirror.com/point-in-polygon@1.1.0 + use-isomorphic-layout-effect: registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.1.0) + transitivePeerDependencies: + - '@types/react' + - react + - react-dom + dev: false + + registry.npmmirror.com/@floating-ui/react-dom@0.6.3(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-hC+pS5D6AgS2wWjbmSQ6UR6Kpy+drvWGJIri6e1EDGADTPsCaa4KzCgmCczHrQeInx9tqs81EyDmbKJYY2swKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-0.6.3.tgz} + id: registry.npmmirror.com/@floating-ui/react-dom/0.6.3 + name: '@floating-ui/react-dom' + version: 0.6.3 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom@0.4.5 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + use-isomorphic-layout-effect: registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.1.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + registry.npmmirror.com/@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-2.0.4.tgz} + id: registry.npmmirror.com/@floating-ui/react-dom/2.0.4 + name: '@floating-ui/react-dom' + version: 2.0.4 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom@1.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@floating-ui/react@0.24.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AuYeDoaR8jtUlUXtZ1IJ/6jtBkGnSpJXbGNzokBL87VDJ8opMq1Bgrc0szhK482ReQY6KZsMoZCVSb4xwalkBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react/-/react-0.24.8.tgz} + id: registry.npmmirror.com/@floating-ui/react/0.24.8 + name: '@floating-ui/react' + version: 0.24.8 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/react-dom': registry.npmmirror.com/@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0) + aria-hidden: registry.npmmirror.com/aria-hidden@1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tabbable: registry.npmmirror.com/tabbable@6.2.0 + dev: false + + registry.npmmirror.com/@floating-ui/utils@0.1.6: + resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.1.6.tgz} + name: '@floating-ui/utils' + version: 0.1.6 + dev: false + + registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0: + resolution: {integrity: sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.0.tgz} + name: '@formatjs/ecma402-abstract' + version: 1.18.0 + dependencies: + '@formatjs/intl-localematcher': registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/fast-memoize@2.2.0: + resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz} + name: '@formatjs/fast-memoize' + version: 2.2.0 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3: + resolution: {integrity: sha512-X/jy10V9S/vW+qlplqhMUxR8wErQ0mmIYSq4mrjpjDl9mbuGcCILcI1SUYkL5nlM4PJqpc0KOS0bFkkJNPxYRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.3.tgz} + name: '@formatjs/icu-messageformat-parser' + version: 2.7.3 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/icu-skeleton-parser': registry.npmmirror.com/@formatjs/icu-skeleton-parser@1.7.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/icu-skeleton-parser@1.7.0: + resolution: {integrity: sha512-Cfdo/fgbZzpN/jlN/ptQVe0lRHora+8ezrEeg2RfrNjyp+YStwBy7cqDY8k5/z2LzXg6O0AdzAV91XS0zIWv+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.7.0.tgz} + name: '@formatjs/icu-skeleton-parser' + version: 1.7.0 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4: + resolution: {integrity: sha512-ET8KQ+L9Q0K8x1SnJQa4DNssUcbATlMopWqYvGGR8yAvw5qwAQc1fv+DshCoZNIE9pbcue0IGC4kWNAkWqlFag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl-displaynames/-/intl-displaynames-6.6.4.tgz} + name: '@formatjs/intl-displaynames' + version: 6.6.4 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/intl-localematcher': registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/intl-listformat@7.5.3: + resolution: {integrity: sha512-l7EOr0Yh1m8KagytukB90yw81uyzrM7amKFrgxXqphz4KeSIL0KPa68lPsdtZ+JmQB73GaDQRwLOwUKFZ1VZPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl-listformat/-/intl-listformat-7.5.3.tgz} + name: '@formatjs/intl-listformat' + version: 7.5.3 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/intl-localematcher': registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2: + resolution: {integrity: sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.2.tgz} + name: '@formatjs/intl-localematcher' + version: 0.5.2 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/intl@2.9.9(typescript@5.3.2): + resolution: {integrity: sha512-JI3CNgL2Zdg5lv9ncT2sYKqbAj2RGrCbdzaCckIxMPxn4QuHuOVvYUGmBAXVusBmfG/0sxLmMrnwnBioz+QKdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl/-/intl-2.9.9.tgz} + id: registry.npmmirror.com/@formatjs/intl/2.9.9 + name: '@formatjs/intl' + version: 2.9.9 + peerDependencies: + typescript: '5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/fast-memoize': registry.npmmirror.com/@formatjs/fast-memoize@2.2.0 + '@formatjs/icu-messageformat-parser': registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3 + '@formatjs/intl-displaynames': registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4 + '@formatjs/intl-listformat': registry.npmmirror.com/@formatjs/intl-listformat@7.5.3 + intl-messageformat: registry.npmmirror.com/intl-messageformat@10.5.8 + tslib: registry.npmmirror.com/tslib@2.6.2 + typescript: 5.3.2 + dev: false + + registry.npmmirror.com/@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz} + name: '@iconify/types' + version: 2.0.0 + dev: false + + registry.npmmirror.com/@iconify/utils@2.1.1: + resolution: {integrity: sha512-H8xz74JDzDw8f0qLxwIaxFMnFkbXTZNWEufOk3WxaLFHV4h0A2FjIDgNk5LzC0am4jssnjdeJJdRs3UFu3582Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.1.tgz} + name: '@iconify/utils' + version: 2.1.1 + dependencies: + '@antfu/install-pkg': registry.npmmirror.com/@antfu/install-pkg@0.1.1 + '@antfu/utils': registry.npmmirror.com/@antfu/utils@0.7.7 + '@iconify/types': registry.npmmirror.com/@iconify/types@2.0.0 + debug: registry.npmmirror.com/debug@4.3.4 + kolorist: registry.npmmirror.com/kolorist@1.8.0 + local-pkg: registry.npmmirror.com/local-pkg@0.4.3 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz} + name: '@istanbuljs/load-nyc-config' + version: 1.1.0 + engines: {node: '>=8'} + dependencies: + camelcase: registry.npmmirror.com/camelcase@5.3.1 + find-up: registry.npmmirror.com/find-up@4.1.0 + get-package-type: registry.npmmirror.com/get-package-type@0.1.0 + js-yaml: registry.npmmirror.com/js-yaml@3.14.1 + resolve-from: registry.npmmirror.com/resolve-from@5.0.0 + dev: false + + registry.npmmirror.com/@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz} + name: '@istanbuljs/schema' + version: 0.1.3 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz} + name: '@jest/schemas' + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': registry.npmmirror.com/@sinclair/typebox@0.27.8 + dev: false + + registry.npmmirror.com/@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/transform/-/transform-29.7.0.tgz} + name: '@jest/transform' + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul@6.1.1 + chalk: registry.npmmirror.com/chalk@4.1.2 + convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-haste-map: registry.npmmirror.com/jest-haste-map@29.7.0 + jest-regex-util: registry.npmmirror.com/jest-regex-util@29.6.3 + jest-util: registry.npmmirror.com/jest-util@29.7.0 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + pirates: registry.npmmirror.com/pirates@4.0.6 + slash: registry.npmmirror.com/slash@3.0.0 + write-file-atomic: registry.npmmirror.com/write-file-atomic@4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@jest/types@27.5.1: + resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz} + name: '@jest/types' + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 + '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports@3.0.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + '@types/yargs': registry.npmmirror.com/@types/yargs@16.0.9 + chalk: registry.npmmirror.com/chalk@4.1.2 + dev: false + + registry.npmmirror.com/@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/types/-/types-29.6.3.tgz} + name: '@jest/types' + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': registry.npmmirror.com/@jest/schemas@29.6.3 + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 + '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports@3.0.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + '@types/yargs': registry.npmmirror.com/@types/yargs@17.0.32 + chalk: registry.npmmirror.com/chalk@4.1.2 + dev: false + + registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz} + name: '@jridgewell/gen-mapping' + version: 0.3.3 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array@1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + dev: false + + registry.npmmirror.com/@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz} + name: '@jridgewell/resolve-uri' + version: 3.1.1 + engines: {node: '>=6.0.0'} + dev: false + + registry.npmmirror.com/@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} + name: '@jridgewell/set-array' + version: 1.1.2 + engines: {node: '>=6.0.0'} + dev: false + + registry.npmmirror.com/@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz} + name: '@jridgewell/source-map' + version: 0.3.5 + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + dev: false + + registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.15 + dev: false + + registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.20 + dependencies: + '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri@3.1.1 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + dev: false + + registry.npmmirror.com/@lezer/common@1.1.1: + resolution: {integrity: sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/common/-/common-1.1.1.tgz} + name: '@lezer/common' + version: 1.1.1 + dev: false + + registry.npmmirror.com/@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/highlight/-/highlight-1.2.0.tgz} + name: '@lezer/highlight' + version: 1.2.0 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + dev: false + + registry.npmmirror.com/@lezer/lr@1.3.14: + resolution: {integrity: sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/lr/-/lr-1.3.14.tgz} + name: '@lezer/lr' + version: 1.3.14 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + dev: false + + registry.npmmirror.com/@loadable/component@5.15.2(react@18.1.0): + resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.15.2.tgz} + id: registry.npmmirror.com/@loadable/component/5.15.2 + name: '@loadable/component' + version: 5.15.2 + engines: {node: '>=8'} + peerDependencies: + react: '>=16.3.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + react: registry.npmmirror.com/react@18.1.0 + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + + registry.npmmirror.com/@loadable/component@5.15.2(react@18.2.0): + resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.15.2.tgz} + id: registry.npmmirror.com/@loadable/component/5.15.2 + name: '@loadable/component' + version: 5.15.2 + engines: {node: '>=8'} + peerDependencies: + react: '>=16.3.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + react: 18.2.0 + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + + registry.npmmirror.com/@makotot/ghostui@2.0.0(react@18.2.0): + resolution: {integrity: sha512-LD6OeMv+yGjpYZNjh34yDTCIE1NegqOtJq5gm4wX6op3QL7K5psTVzMjkWzseBoYj0XOD4g+UJVIZTprfoOPGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@makotot/ghostui/-/ghostui-2.0.0.tgz} + id: registry.npmmirror.com/@makotot/ghostui/2.0.0 + name: '@makotot/ghostui' + version: 2.0.0 + engines: {node: '>=10'} + peerDependencies: + react: '>=16' + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/@minko-fe/use-antd-resizable-header@2.9.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-LH/J5QTQMcZjwzWHd4bP3aI6IkRZ9753Y5ZTWTg9vJgyGQ1fxd0m1+P/2bqxoZji8Y5ZlZqwt2+O8YFK9k58dA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@minko-fe/use-antd-resizable-header/-/use-antd-resizable-header-2.9.0.tgz} + id: registry.npmmirror.com/@minko-fe/use-antd-resizable-header/2.9.0 + name: '@minko-fe/use-antd-resizable-header' + version: 2.9.0 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + lodash.debounce: registry.npmmirror.com/lodash.debounce@4.0.8 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + react: 18.2.0 + react-detectable-overflow: registry.npmmirror.com/react-detectable-overflow@0.7.1(react-dom@18.2.0)(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + react-resizable: registry.npmmirror.com/react-resizable@3.0.5(react-dom@18.2.0)(react@18.2.0) + dev: false + + registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz} + name: '@nicolo-ribaudo/eslint-scope-5-internals' + version: 5.1.1-v1 + dependencies: + eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 + dev: false + + registry.npmmirror.com/@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + run-parallel: registry.npmmirror.com/run-parallel@1.2.0 + dev: false + + registry.npmmirror.com/@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + dev: false + + registry.npmmirror.com/@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.npmmirror.com/@nodelib/fs.scandir@2.1.5 + fastq: registry.npmmirror.com/fastq@1.15.0 + dev: false + + registry.npmmirror.com/@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz} + name: '@pkgjs/parseargs' + version: 0.11.0 + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@pkgr/utils/-/utils-2.4.2.tgz} + name: '@pkgr/utils' + version: 2.4.2 + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + open: registry.npmmirror.com/open@9.1.0 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-1.4.1.tgz} + id: registry.npmmirror.com/@rc-component/color-picker/1.4.1 + name: '@rc-component/color-picker' + version: 1.4.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/context/-/context-1.4.0.tgz} + id: registry.npmmirror.com/@rc-component/context/1.4.0 + name: '@rc-component/context' + version: 1.4.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/mini-decimal@1.1.0: + resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz} + name: '@rc-component/mini-decimal' + version: 1.1.0 + engines: {node: '>=8.x'} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz} + id: registry.npmmirror.com/@rc-component/mutate-observer/1.1.0 + name: '@rc-component/mutate-observer' + version: 1.1.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/portal/-/portal-1.1.2.tgz} + id: registry.npmmirror.com/@rc-component/portal/1.1.2 + name: '@rc-component/portal' + version: 1.1.2 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/tour/-/tour-1.10.0.tgz} + id: registry.npmmirror.com/@rc-component/tour/1.10.0 + name: '@rc-component/tour' + version: 1.10.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/trigger/-/trigger-1.18.2.tgz} + id: registry.npmmirror.com/@rc-component/trigger/1.18.2 + name: '@rc-component/trigger' + version: 1.18.2 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rollup/rollup-android-arm-eabi@4.5.2: + resolution: {integrity: sha512-ee7BudTwwrglFYSc3UnqInDDjCLWHKrFmGNi4aK7jlEyg4CyPa1DCMrZfsN1O13YT76UFEqXz2CoN7BCGpUlJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.2.tgz} + name: '@rollup/rollup-android-arm-eabi' + version: 4.5.2 + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-android-arm64@4.5.2: + resolution: {integrity: sha512-xOuhj9HHtn8128ir8veoQsBbAUBasDbHIBniYTEx02pAmu9EXL+ZjJqngnNEy6ZgZ4h1JwL33GMNu3yJL5Mzow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.2.tgz} + name: '@rollup/rollup-android-arm64' + version: 4.5.2 + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-darwin-arm64@4.5.2: + resolution: {integrity: sha512-NTGJWoL8bKyqyWFn9/RzSv4hQ4wTbaAv0lHHRwf4OnpiiP4P8W0jiXbm8Nc5BCXKmWAwuvJY82mcIU2TayC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.2.tgz} + name: '@rollup/rollup-darwin-arm64' + version: 4.5.2 + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-darwin-x64@4.5.2: + resolution: {integrity: sha512-hlKqj7bpPvU15sZo4za14u185lpMzdwWLMc9raMqPK4wywt0wR23y1CaVQ4oAFXat3b5/gmRntyfpwWTKl+vvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.2.tgz} + name: '@rollup/rollup-darwin-x64' + version: 4.5.2 + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf@4.5.2: + resolution: {integrity: sha512-7ZIZx8c3u+pfI0ohQsft/GywrXez0uR6dUP0JhBuCK3sFO5TfdLn/YApnVkvPxuTv3+YKPIZend9Mt7Cz6sS3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.2.tgz} + name: '@rollup/rollup-linux-arm-gnueabihf' + version: 4.5.2 + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu@4.5.2: + resolution: {integrity: sha512-7Pk/5mO11JW/cH+a8lL/i0ZxmRGrbpYqN0VwO2DHhU+SJWWOH2zE1RAcPaj8KqiwC8DCDIJOSxjV9+9lLb6aeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.2.tgz} + name: '@rollup/rollup-linux-arm64-gnu' + version: 4.5.2 + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-arm64-musl@4.5.2: + resolution: {integrity: sha512-KrRnuG5phJx756e62wxvWH2e+TK84MP2IVuPwfge+GBvWqIUfVzFRn09TKruuQBXzZp52Vyma7FjMDkwlA9xpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.2.tgz} + name: '@rollup/rollup-linux-arm64-musl' + version: 4.5.2 + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-x64-gnu@4.5.2: + resolution: {integrity: sha512-My+53GasPa2D2tU5dXiyHYwrELAUouSfkNlZ3bUKpI7btaztO5vpALEs3mvFjM7aKTvEbc7GQckuXeXIDKQ0fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.2.tgz} + name: '@rollup/rollup-linux-x64-gnu' + version: 4.5.2 + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-x64-musl@4.5.2: + resolution: {integrity: sha512-/f0Q6Sc+Vw54Ws6N8fxaEe4R7at3b8pFyv+O/F2VaQ4hODUJcRUcCBJh6zuqtgQQt7w845VTkGLFgWZkP3tUoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.2.tgz} + name: '@rollup/rollup-linux-x64-musl' + version: 4.5.2 + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc@4.5.2: + resolution: {integrity: sha512-NCKuuZWLht6zj7s6EIFef4BxCRX1GMr83S2W4HPCA0RnJ4iHE4FS1695q6Ewoa6A9nFjJe1//yUu0kgBU07Edw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.2.tgz} + name: '@rollup/rollup-win32-arm64-msvc' + version: 4.5.2 + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.5.2: + resolution: {integrity: sha512-J5zL3riR4AOyU/J3M/i4k/zZ8eP1yT+nTmAKztCXJtnI36jYH0eepvob22mAQ/kLwfsK2TB6dbyVY1F8c/0H5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.2.tgz} + name: '@rollup/rollup-win32-ia32-msvc' + version: 4.5.2 + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.5.2: + resolution: {integrity: sha512-pL0RXRHuuGLhvs7ayX/SAHph1hrDPXOM5anyYUQXWJEENxw3nfHkzv8FfVlEVcLyKPAEgDRkd6RKZq2SMqS/yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.2.tgz} + name: '@rollup/rollup-win32-x64-msvc' + version: 4.5.2 + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@selderee/plugin-htmlparser2@0.11.0: + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz} + name: '@selderee/plugin-htmlparser2' + version: 0.11.0 + dependencies: + domhandler: registry.npmmirror.com/domhandler@5.0.3 + selderee: registry.npmmirror.com/selderee@0.11.0 + dev: false + + registry.npmmirror.com/@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz} + name: '@sinclair/typebox' + version: 0.27.8 + dev: false + + registry.npmmirror.com/@sketch-hq/sketch-file-format-ts@6.5.0: + resolution: {integrity: sha512-shaGl4ttFDpHjYBoMaZpciOtsi/lKvJ3VfcBYk6+PjjbFs6H5GxPAyhbiSqy3Vmx30aos284pd88QzD3rE6iag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sketch-hq/sketch-file-format-ts/-/sketch-file-format-ts-6.5.0.tgz} + name: '@sketch-hq/sketch-file-format-ts' + version: 6.5.0 + dev: false + + registry.npmmirror.com/@stackblitz/sdk@1.9.0: + resolution: {integrity: sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@stackblitz/sdk/-/sdk-1.9.0.tgz} + name: '@stackblitz/sdk' + version: 1.9.0 + dev: false + + registry.npmmirror.com/@stylelint/postcss-css-in-js@0.38.0(postcss-syntax@0.36.2)(postcss@8.4.31): + resolution: {integrity: sha512-XOz5CAe49kS95p5yRd+DAIWDojTjfmyAQ4bbDlXMdbZTQ5t0ThjSLvWI6JI2uiS7MFurVBkZ6zUqcimzcLTBoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.38.0.tgz} + id: registry.npmmirror.com/@stylelint/postcss-css-in-js/0.38.0 + name: '@stylelint/postcss-css-in-js' + version: 0.38.0 + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + peerDependencies: + postcss: '>=7.0.0' + postcss-syntax: '>=0.36.2' + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-syntax: registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.31) + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/6.5.1 + name: '@svgr/babel-plugin-add-jsx-attribute' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.3): + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/8.0.0 + name: '@svgr/babel-plugin-remove-jsx-attribute' + version: 8.0.0 + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.3): + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/8.0.0 + name: '@svgr/babel-plugin-remove-jsx-empty-expression' + version: 8.0.0 + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/6.5.1 + name: '@svgr/babel-plugin-replace-jsx-attribute-value' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/6.5.1 + name: '@svgr/babel-plugin-svg-dynamic-title' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/6.5.1 + name: '@svgr/babel-plugin-svg-em-dimensions' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/6.5.1 + name: '@svgr/babel-plugin-transform-react-native-svg' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/6.5.1 + name: '@svgr/babel-plugin-transform-svg-component' + version: 6.5.1 + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-preset@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-preset/6.5.1 + name: '@svgr/babel-preset' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@svgr/babel-plugin-add-jsx-attribute': registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-remove-jsx-attribute': registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.3) + '@svgr/babel-plugin-remove-jsx-empty-expression': registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.3) + '@svgr/babel-plugin-replace-jsx-attribute-value': registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-svg-dynamic-title': registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-svg-em-dimensions': registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-transform-react-native-svg': registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-transform-svg-component': registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.23.3) + dev: false + + registry.npmmirror.com/@svgr/core@6.5.1: + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/core/-/core-6.5.1.tgz} + name: '@svgr/core' + version: 6.5.1 + engines: {node: '>=10'} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@svgr/babel-preset': registry.npmmirror.com/@svgr/babel-preset@6.5.1(@babel/core@7.23.3) + '@svgr/plugin-jsx': registry.npmmirror.com/@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1) + camelcase: registry.npmmirror.com/camelcase@6.3.0 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@svgr/hast-util-to-babel-ast@6.5.1: + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz} + name: '@svgr/hast-util-to-babel-ast' + version: 6.5.1 + engines: {node: '>=10'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + entities: registry.npmmirror.com/entities@4.5.0 + dev: false + + registry.npmmirror.com/@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/plugin-jsx/6.5.1 + name: '@svgr/plugin-jsx' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@svgr/babel-preset': registry.npmmirror.com/@svgr/babel-preset@6.5.1(@babel/core@7.23.3) + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + '@svgr/hast-util-to-babel-ast': registry.npmmirror.com/@svgr/hast-util-to-babel-ast@6.5.1 + svg-parser: registry.npmmirror.com/svg-parser@2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): + resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/plugin-svgo/6.5.1 + name: '@svgr/plugin-svgo' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': '*' + dependencies: + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + svgo: registry.npmmirror.com/svgo@2.8.0 + dev: false + + registry.npmmirror.com/@swc/core-darwin-arm64@1.3.72: + resolution: {integrity: sha512-oNSI5hVfZ+1xpj+dH1g4kQqA0VsGtqd8S9S+cDqkHZiOOVOevw9KN6dzVtmLOcPtlULVypVc0TVvsB55KdVZhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.72.tgz} + name: '@swc/core-darwin-arm64' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-darwin-x64@1.3.72: + resolution: {integrity: sha512-y5O/WQ1g0/VfTgeNahWIOutbdD5U2Gi703jaefdcoJo3FUx8WU108QQdbVGwGMgaqapo3iQB6Qs9paixYQAYsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.72.tgz} + name: '@swc/core-darwin-x64' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-arm-gnueabihf@1.3.72: + resolution: {integrity: sha512-05JdWcso0OomHF+7bk5MBDgI8MZ9skcQ/4nhSv5gboSgSiuBmKM15Bg3lZ5iAUwGByNj7pGkSmmd3YwTrXEB+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.72.tgz} + name: '@swc/core-linux-arm-gnueabihf' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-arm64-gnu@1.3.72: + resolution: {integrity: sha512-8qRELJaeYshhJgqvyOeXCKqBOpai+JYdWuouMbvvDUL85j3OcZhzR+bipexEbbJKcOCdRnoYB7Qg6mjqZ0t7VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.72.tgz} + name: '@swc/core-linux-arm64-gnu' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-arm64-musl@1.3.72: + resolution: {integrity: sha512-tOqAGZw+Pe7YrBHFrwFVyRiKqjgjzwYbJmY+UDxLrzWrZSVtC3eO2TPrp7kWmhirg40Og81BbdfRAl8ds48w0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.72.tgz} + name: '@swc/core-linux-arm64-musl' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-x64-gnu@1.3.72: + resolution: {integrity: sha512-U2W2xWR3s9nplGVWz376GiBlcLTgxyYKlpZPBNZk0w3OvTcjKC62gW1Pe7PUkk4NgJUnaQDBa/mb4V4Zl+GZPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.72.tgz} + name: '@swc/core-linux-x64-gnu' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-x64-musl@1.3.72: + resolution: {integrity: sha512-3+2dUiZBsifKgvnFEHWdysXjInK8K+BfPBw2tTZJmq1+fZLt0rvuErYDVMLfIJnVWLCcJMnDtTXrvkFV1y/6iA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.72.tgz} + name: '@swc/core-linux-x64-musl' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-win32-arm64-msvc@1.3.72: + resolution: {integrity: sha512-ndI8xZ2AId806D25xgqw2SFJ9gc/jhg21+5hA8XPq9ZL+oDiaYDztaP3ijVmZ1G5xXKD9DpgB7xmylv/f6o6GA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.72.tgz} + name: '@swc/core-win32-arm64-msvc' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.72: + resolution: {integrity: sha512-F3TK8JHP3SRFjLRlzcRVZPnvvGm2CQ5/cwbIkaEq0Dla3kyctU8SiRqvtYwWCW4JuY10cUygIg93Ec/C9Lkk4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.72.tgz} + name: '@swc/core-win32-ia32-msvc' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.72: + resolution: {integrity: sha512-FXMnIUtLl0yEmGkw+xbUg/uUPExvUxUlLSHbX7CnbSuOIHqMHzvEd9skIueLAst4bvmJ8kT1hDyAIWQcTIAJYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.72.tgz} + name: '@swc/core-win32-x64-msvc' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core@1.3.72: + resolution: {integrity: sha512-+AKjwLH3/STfPrd7CHzB9+NG1FVT0UKJMUChuWq9sQ8b9xlV8vUeRgZXgh/EHYvNQgl/OUTQKtL6xU2yOLuEuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core/-/core-1.3.72.tgz} + name: '@swc/core' + version: 1.3.72 + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + optionalDependencies: + '@swc/core-darwin-arm64': registry.npmmirror.com/@swc/core-darwin-arm64@1.3.72 + '@swc/core-darwin-x64': registry.npmmirror.com/@swc/core-darwin-x64@1.3.72 + '@swc/core-linux-arm-gnueabihf': registry.npmmirror.com/@swc/core-linux-arm-gnueabihf@1.3.72 + '@swc/core-linux-arm64-gnu': registry.npmmirror.com/@swc/core-linux-arm64-gnu@1.3.72 + '@swc/core-linux-arm64-musl': registry.npmmirror.com/@swc/core-linux-arm64-musl@1.3.72 + '@swc/core-linux-x64-gnu': registry.npmmirror.com/@swc/core-linux-x64-gnu@1.3.72 + '@swc/core-linux-x64-musl': registry.npmmirror.com/@swc/core-linux-x64-musl@1.3.72 + '@swc/core-win32-arm64-msvc': registry.npmmirror.com/@swc/core-win32-arm64-msvc@1.3.72 + '@swc/core-win32-ia32-msvc': registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.72 + '@swc/core-win32-x64-msvc': registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.72 + dev: false + + registry.npmmirror.com/@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz} + name: '@trysound/sax' + version: 0.2.0 + engines: {node: '>=10.13.0'} + dev: false + + registry.npmmirror.com/@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz} + name: '@types/babel__core' + version: 7.20.5 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + '@types/babel__generator': registry.npmmirror.com/@types/babel__generator@7.6.7 + '@types/babel__template': registry.npmmirror.com/@types/babel__template@7.4.4 + '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse@7.20.4 + dev: false + + registry.npmmirror.com/@types/babel__generator@7.6.7: + resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.7.tgz} + name: '@types/babel__generator' + version: 7.6.7 + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz} + name: '@types/babel__template' + version: 7.4.4 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@types/babel__traverse@7.20.4: + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz} + name: '@types/babel__traverse' + version: 7.20.4 + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz} + name: '@types/debug' + version: 4.1.12 + dependencies: + '@types/ms': registry.npmmirror.com/@types/ms@0.7.34 + dev: false + + registry.npmmirror.com/@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz} + name: '@types/eslint-scope' + version: 3.7.7 + dependencies: + '@types/eslint': registry.npmmirror.com/@types/eslint@8.44.7 + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + dev: false + + registry.npmmirror.com/@types/eslint@8.44.7: + resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/eslint/-/eslint-8.44.7.tgz} + name: '@types/eslint' + version: 8.44.7 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 + dev: false + + registry.npmmirror.com/@types/estree-jsx@1.0.3: + resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree-jsx/-/estree-jsx-1.0.3.tgz} + name: '@types/estree-jsx' + version: 1.0.3 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + dev: false + + registry.npmmirror.com/@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz} + name: '@types/estree' + version: 1.0.5 + dev: false + + registry.npmmirror.com/@types/fs-extra@11.0.1: + resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.1.tgz} + name: '@types/fs-extra' + version: 11.0.1 + dependencies: + '@types/jsonfile': registry.npmmirror.com/@types/jsonfile@6.1.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz} + name: '@types/graceful-fs' + version: 4.1.9 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/hapi__joi@17.1.9: + resolution: {integrity: sha512-oOMFT8vmCTFncsF1engrs04jatz8/Anwx3De9uxnOK4chgSEgWBvFtpSoJo8u3784JNO+ql5tzRR6phHoRnscQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__joi/-/hapi__joi-17.1.9.tgz} + name: '@types/hapi__joi' + version: 17.1.9 + dev: false + + registry.npmmirror.com/@types/hast@2.3.8: + resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hast/-/hast-2.3.8.tgz} + name: '@types/hast' + version: 2.3.8 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5: + resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz} + name: '@types/hoist-non-react-statics' + version: 3.3.5 + dependencies: + '@types/react': registry.npmmirror.com/@types/react@18.2.38 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + dev: false + + registry.npmmirror.com/@types/html-minifier-terser@6.1.0: + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz} + name: '@types/html-minifier-terser' + version: 6.1.0 + dev: false + + registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz} + name: '@types/istanbul-lib-coverage' + version: 2.0.6 + dev: false + + registry.npmmirror.com/@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz} + name: '@types/istanbul-lib-report' + version: 3.0.3 + dependencies: + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 + dev: false + + registry.npmmirror.com/@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz} + name: '@types/istanbul-reports' + version: 3.0.4 + dependencies: + '@types/istanbul-lib-report': registry.npmmirror.com/@types/istanbul-lib-report@3.0.3 + dev: false + + registry.npmmirror.com/@types/js-cookie@2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-2.2.7.tgz} + name: '@types/js-cookie' + version: 2.2.7 + dev: false + + registry.npmmirror.com/@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz} + name: '@types/json-schema' + version: 7.0.15 + dev: false + + registry.npmmirror.com/@types/jsonfile@6.1.4: + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/jsonfile/-/jsonfile-6.1.4.tgz} + name: '@types/jsonfile' + version: 6.1.4 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/keyv/-/keyv-3.1.4.tgz} + name: '@types/keyv' + version: 3.1.4 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz} + name: '@types/mdast' + version: 3.0.15 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.5.tgz} + name: '@types/minimist' + version: 1.2.5 + dev: false + + registry.npmmirror.com/@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz} + name: '@types/ms' + version: 0.7.34 + dev: false + + registry.npmmirror.com/@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz} + name: '@types/node' + version: 17.0.45 + dev: false + + registry.npmmirror.com/@types/node@20.10.0: + resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-20.10.0.tgz} + name: '@types/node' + version: 20.10.0 + dependencies: + undici-types: registry.npmmirror.com/undici-types@5.26.5 + dev: false + + registry.npmmirror.com/@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz} + name: '@types/normalize-package-data' + version: 2.4.4 + dev: false + + registry.npmmirror.com/@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.2.tgz} + name: '@types/parse-json' + version: 4.0.2 + dev: false + + registry.npmmirror.com/@types/parse5@6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/parse5/-/parse5-6.0.3.tgz} + name: '@types/parse5' + version: 6.0.3 + dev: false + + registry.npmmirror.com/@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.11.tgz} + name: '@types/prop-types' + version: 15.7.11 + dev: false + + registry.npmmirror.com/@types/q@1.5.8: + resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/q/-/q-1.5.8.tgz} + name: '@types/q' + version: 1.5.8 + dev: false + + registry.npmmirror.com/@types/ramda@0.29.3: + resolution: {integrity: sha512-Yh/RHkjN0ru6LVhSQtTkCRo6HXkfL9trot/2elzM/yXLJmbLm2v6kJc8yftTnwv1zvUob6TEtqI2cYjdqG3U0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ramda/-/ramda-0.29.3.tgz} + name: '@types/ramda' + version: 0.29.3 + dependencies: + types-ramda: registry.npmmirror.com/types-ramda@0.29.6 + dev: false + + registry.npmmirror.com/@types/react@18.2.38: + resolution: {integrity: sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react/-/react-18.2.38.tgz} + name: '@types/react' + version: 18.2.38 + dependencies: + '@types/prop-types': registry.npmmirror.com/@types/prop-types@15.7.11 + '@types/scheduler': registry.npmmirror.com/@types/scheduler@0.16.8 + csstype: registry.npmmirror.com/csstype@3.1.2 + dev: false + + registry.npmmirror.com/@types/responselike@1.0.3: + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz} + name: '@types/responselike' + version: 1.0.3 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/sax/-/sax-1.2.7.tgz} + name: '@types/sax' + version: 1.2.7 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.8.tgz} + name: '@types/scheduler' + version: 0.16.8 + dev: false + + registry.npmmirror.com/@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz} + name: '@types/semver' + version: 7.5.6 + dev: false + + registry.npmmirror.com/@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/unist/-/unist-2.0.10.tgz} + name: '@types/unist' + version: 2.0.10 + dev: false + + registry.npmmirror.com/@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz} + name: '@types/yargs-parser' + version: 21.0.3 + dev: false + + registry.npmmirror.com/@types/yargs@16.0.9: + resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz} + name: '@types/yargs' + version: 16.0.9 + dependencies: + '@types/yargs-parser': registry.npmmirror.com/@types/yargs-parser@21.0.3 + dev: false + + registry.npmmirror.com/@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.32.tgz} + name: '@types/yargs' + version: 17.0.32 + dependencies: + '@types/yargs-parser': registry.npmmirror.com/@types/yargs-parser@21.0.3 + dev: false + + registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.62.0 + name: '@typescript-eslint/eslint-plugin' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp@4.10.0 + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 + '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.54.0 + graphemer: registry.npmmirror.com/graphemer@1.4.0 + ignore: registry.npmmirror.com/ignore@5.3.0 + natural-compare-lite: registry.npmmirror.com/natural-compare-lite@1.4.0 + semver: registry.npmmirror.com/semver@7.5.4 + tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/parser/5.62.0 + name: '@typescript-eslint/parser' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.54.0 + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz} + name: '@typescript-eslint/scope-manager' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0 + dev: false + + registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/type-utils/5.62.0 + name: '@typescript-eslint/type-utils' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.54.0 + tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.62.0.tgz} + name: '@typescript-eslint/types' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/typescript-estree/5.62.0 + name: '@typescript-eslint/typescript-estree' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0 + debug: registry.npmmirror.com/debug@4.3.4 + globby: registry.npmmirror.com/globby@11.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + semver: registry.npmmirror.com/semver@7.5.4 + tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/utils/5.62.0 + name: '@typescript-eslint/utils' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0) + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 + '@types/semver': registry.npmmirror.com/@types/semver@7.5.6 + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2) + eslint: 8.54.0 + eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 + semver: registry.npmmirror.com/semver@7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + + registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz} + name: '@typescript-eslint/visitor-keys' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + dev: false + + registry.npmmirror.com/@umijs/ast@4.0.89: + resolution: {integrity: sha512-19J5oQubKa/TiAFuQIEp9AZXN0WcGLtWxDdLyVS0ja8T8q0/74yUDTIdbz6zb/i3dX3qeySoi5lQwHc9i/i3Aw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/ast/-/ast-4.0.89.tgz} + name: '@umijs/ast' + version: 4.0.89 + dependencies: + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89: + resolution: {integrity: sha512-Q9/SaEU3K9q+aNMmwIxcfkqtYdhE4n/J0BRx0XUo71rN0mN+4EOuOPLNMD8hKtJw5CZeASeS3qQbQKd44SjOow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/babel-preset-umi/-/babel-preset-umi-4.0.89.tgz} + name: '@umijs/babel-preset-umi' + version: 4.0.89 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@bloomberg/record-tuple-polyfill': registry.npmmirror.com/@bloomberg/record-tuple-polyfill@0.0.4 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + core-js: registry.npmmirror.com/core-js@3.28.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89: + resolution: {integrity: sha512-VF/67qtDmSnTZLTK6tIPUb3meKhkzha0kalSYlrvYLkOxGVIfKrxgDZB3hqi2pmwPdNiDxP16Cp1OewCZed4Gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-esbuild/-/bundler-esbuild-4.0.89.tgz} + name: '@umijs/bundler-esbuild' + version: 4.0.89 + hasBin: true + dependencies: + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.9.3 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-flexbugs-fixes: registry.npmmirror.com/postcss-flexbugs-fixes@5.0.2(postcss@8.4.31) + postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31) + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/bundler-utils@4.0.89: + resolution: {integrity: sha512-/nKdEj0ku9MX5RYYLzDObuvDBb1sd89XD2Opldk7kgLbLw1iePksrWtP8gR5X2UGjqtEZYvcfrYFt0jV0LCcQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-utils/-/bundler-utils-4.0.89.tgz} + name: '@umijs/bundler-utils' + version: 4.0.89 + dependencies: + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + esbuild: registry.npmmirror.com/esbuild@0.17.19 + regenerate: registry.npmmirror.com/regenerate@1.4.2 + regenerate-unicode-properties: registry.npmmirror.com/regenerate-unicode-properties@10.1.1 + spdy: registry.npmmirror.com/spdy@4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.10.0)(postcss@8.4.31)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0): + resolution: {integrity: sha512-4dfBmVK44AqsJm1+YhFijKXcrHoM26vO9Ju5Us4+J0Ca3rDUtWQZJ9xFEkqsNsf7AMaJ7B8zDd422sThvvSXGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-vite/-/bundler-vite-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/bundler-vite/4.0.89 + name: '@umijs/bundler-vite' + version: 4.0.89 + hasBin: true + dependencies: + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + '@vitejs/plugin-react': registry.npmmirror.com/@vitejs/plugin-react@4.0.0(vite@4.3.1) + core-js: registry.npmmirror.com/core-js@3.28.0 + less: registry.npmmirror.com/less@4.1.3 + postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31) + rollup-plugin-visualizer: registry.npmmirror.com/rollup-plugin-visualizer@5.9.0(rollup@4.5.2) + systemjs: registry.npmmirror.com/systemjs@6.14.2 + vite: registry.npmmirror.com/vite@4.3.1(@types/node@20.10.0)(less@4.1.3)(sass@1.69.5)(terser@5.24.0) + transitivePeerDependencies: + - '@types/node' + - postcss + - rollup + - sass + - stylus + - sugarss + - supports-color + - terser + dev: false + + registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-BfCpmxDIzhRa7wnEAODOj5auHXd/n954qt0QUkUUlGJYa5GrtgRiKsGtnwew+8uVX1vm0y7XDqnCU+trWAq0nQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-webpack/-/bundler-webpack-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/bundler-webpack/4.0.89 + name: '@umijs/bundler-webpack' + version: 4.0.89 + hasBin: true + dependencies: + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + '@svgr/plugin-jsx': registry.npmmirror.com/@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1) + '@svgr/plugin-svgo': registry.npmmirror.com/@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1) + '@types/hapi__joi': registry.npmmirror.com/@types/hapi__joi@17.1.9 + '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/case-sensitive-paths-webpack-plugin': registry.npmmirror.com/@umijs/case-sensitive-paths-webpack-plugin@1.0.1 + '@umijs/mfsu': registry.npmmirror.com/@umijs/mfsu@4.0.89 + '@umijs/react-refresh-webpack-plugin': registry.npmmirror.com/@umijs/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack@5.89.0) + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + cors: registry.npmmirror.com/cors@2.8.5 + css-loader: registry.npmmirror.com/css-loader@6.7.1(webpack@5.89.0) + es5-imcompatible-versions: registry.npmmirror.com/es5-imcompatible-versions@0.1.88 + fork-ts-checker-webpack-plugin: registry.npmmirror.com/fork-ts-checker-webpack-plugin@8.0.0(typescript@5.3.2)(webpack@5.89.0) + jest-worker: registry.npmmirror.com/jest-worker@29.4.3 + lightningcss: registry.npmmirror.com/lightningcss@1.22.1 + node-libs-browser: registry.npmmirror.com/node-libs-browser@2.2.1 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31) + react-error-overlay: registry.npmmirror.com/react-error-overlay@6.0.9 + react-refresh: registry.npmmirror.com/react-refresh@0.14.0 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - supports-color + - type-fest + - typescript + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + registry.npmmirror.com/@umijs/case-sensitive-paths-webpack-plugin@1.0.1: + resolution: {integrity: sha512-kDKJ8yTarxwxGJDInG33hOpaQRZ//XpNuuznQ/1Mscypw6kappzFmrBr2dOYave++K7JHouoANF354UpbEQw0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-1.0.1.tgz} + name: '@umijs/case-sensitive-paths-webpack-plugin' + version: 1.0.1 + dev: false + + registry.npmmirror.com/@umijs/core@4.0.89: + resolution: {integrity: sha512-S6K2Y8h6DyRoPP0EVrYgDs3iO7B2hHcd9QN+n6v0JHzhkHMVvsPnGlPx66yAptACBlBirR/ICIm0Pr1CrDADbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/core/-/core-4.0.89.tgz} + name: '@umijs/core' + version: 4.0.89 + dependencies: + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/did-you-know@1.0.3: + resolution: {integrity: sha512-9EZ+rgY9+2HEaE+Z9dGkal2ccw8L4uuz77tCB5WpskW7NBZX5nOj82sqF/shEtA5tU3SWO/Mi4n35K3iONvDtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/did-you-know/-/did-you-know-1.0.3.tgz} + name: '@umijs/did-you-know' + version: 1.0.3 + dev: false + + registry.npmmirror.com/@umijs/es-module-parser-darwin-arm64@0.0.7: + resolution: {integrity: sha512-1QeNupekuVYVvL4UHyCRq4ISP2PNk4rDd9UOPONW+KpqTyP9p7RfgGpwB0VLPaFSu2ADtm0XZyIaYEGPY6zuDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-darwin-arm64/-/es-module-parser-darwin-arm64-0.0.7.tgz} + name: '@umijs/es-module-parser-darwin-arm64' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-darwin-x64@0.0.7: + resolution: {integrity: sha512-FBFmfigmToPc9qBCW7wHiTYpqnLdPbAvoMGOydzAu2NspdPEF7TfILcr8vCPNbNe3vCobS+T/YM1dP+SagERlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-darwin-x64/-/es-module-parser-darwin-x64-0.0.7.tgz} + name: '@umijs/es-module-parser-darwin-x64' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-arm-gnueabihf@0.0.7: + resolution: {integrity: sha512-AXfmg3htkadLGsXUyiyrTig4omGCWIN4l+HS7Qapqv0wlfFYSpC0KPemjyBQgzXO70tDcT+1FNhGjIy+yr2pIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-arm-gnueabihf/-/es-module-parser-linux-arm-gnueabihf-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-arm-gnueabihf' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-gnu@0.0.7: + resolution: {integrity: sha512-2wSdChFc39fPJwvS8tRq+jx8qNlIwrjRk1hb3N5o0rJR+rqt+ceAyNPbYwpNBmUHW7xtmDQvJUeinvr7hIBP+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-gnu/-/es-module-parser-linux-arm64-gnu-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-arm64-gnu' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-musl@0.0.7: + resolution: {integrity: sha512-cqQffARWkmQ3n1RYNKZR3aD6X8YaP6u1maASjDgPQOpZMAlv/OSDrM/7iGujWTs0PD0haockNG9/DcP6lgPHMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-musl/-/es-module-parser-linux-arm64-musl-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-arm64-musl' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-x64-gnu@0.0.7: + resolution: {integrity: sha512-PHrKHtT665Za0Ydjch4ACrNpRU+WIIden12YyF1CtMdhuLDSoU6UfdhF3NoDbgEUcXVDX/ftOqmj0SbH3R1uew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-x64-gnu/-/es-module-parser-linux-x64-gnu-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-x64-gnu' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-x64-musl@0.0.7: + resolution: {integrity: sha512-cyZvUK5lcECLWzLp/eU1lFlCETcz+LEb+wrdARQSST1dgoIGZsT4cqM1WzYmdZNk3o883tiZizLt58SieEiHBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-x64-musl/-/es-module-parser-linux-x64-musl-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-x64-musl' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-win32-arm64-msvc@0.0.7: + resolution: {integrity: sha512-V7WxnUI88RboSl0RWLNQeKBT7EDW35fW6Tn92zqtoHHxrhAIL9DtDyvC8REP4qTxeZ6Oej/Ax5I6IjsLx3yTOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-win32-arm64-msvc/-/es-module-parser-win32-arm64-msvc-0.0.7.tgz} + name: '@umijs/es-module-parser-win32-arm64-msvc' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-win32-x64-msvc@0.0.7: + resolution: {integrity: sha512-X3Pqy0l38hg6wMPquPeMHuoHU+Cx+wzyz32SVYCta+RPJQ7n9PjrEBiIuVAw5+GJZjSABN7LVr8u/n0RZT9EQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-win32-x64-msvc/-/es-module-parser-win32-x64-msvc-0.0.7.tgz} + name: '@umijs/es-module-parser-win32-x64-msvc' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser@0.0.7: + resolution: {integrity: sha512-x47CMi/Hw7Nkz3RXTUqlldH/UM+Tcmw2PziV3k+itJqTFJc8oVx3lzdUgCnG+eL3ZtmLPbOEBhPb30V0NytNDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser/-/es-module-parser-0.0.7.tgz} + name: '@umijs/es-module-parser' + version: 0.0.7 + engines: {node: '>= 10'} + optionalDependencies: + '@umijs/es-module-parser-darwin-arm64': registry.npmmirror.com/@umijs/es-module-parser-darwin-arm64@0.0.7 + '@umijs/es-module-parser-darwin-x64': registry.npmmirror.com/@umijs/es-module-parser-darwin-x64@0.0.7 + '@umijs/es-module-parser-linux-arm-gnueabihf': registry.npmmirror.com/@umijs/es-module-parser-linux-arm-gnueabihf@0.0.7 + '@umijs/es-module-parser-linux-arm64-gnu': registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-gnu@0.0.7 + '@umijs/es-module-parser-linux-arm64-musl': registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-musl@0.0.7 + '@umijs/es-module-parser-linux-x64-gnu': registry.npmmirror.com/@umijs/es-module-parser-linux-x64-gnu@0.0.7 + '@umijs/es-module-parser-linux-x64-musl': registry.npmmirror.com/@umijs/es-module-parser-linux-x64-musl@0.0.7 + '@umijs/es-module-parser-win32-arm64-msvc': registry.npmmirror.com/@umijs/es-module-parser-win32-arm64-msvc@0.0.7 + '@umijs/es-module-parser-win32-x64-msvc': registry.npmmirror.com/@umijs/es-module-parser-win32-x64-msvc@0.0.7 + dev: false + + registry.npmmirror.com/@umijs/history@5.3.1: + resolution: {integrity: sha512-/e0cEGrR2bIWQD7pRl3dl9dcyRGeC9hoW0OCvUTT/hjY0EfUrkd6G8ZanVghPMpDuY5usxq9GVcvrT8KNXLWvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/history/-/history-5.3.1.tgz} + name: '@umijs/history' + version: 5.3.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + query-string: registry.npmmirror.com/query-string@6.14.1 + dev: false + + registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.54.0)(stylelint@14.16.1)(typescript@5.3.2): + resolution: {integrity: sha512-z7pSpZoAecTltLwBEiyyzZYY3wPlg7DA5U4llWJbkfz/U0TdKgeDAzH6cq1SpvuRBsLTO3aiD6+6DP0NDuU82g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/lint/-/lint-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/lint/4.0.89 + name: '@umijs/lint' + version: 4.0.89 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 + '@babel/eslint-parser': registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.54.0) + '@stylelint/postcss-css-in-js': registry.npmmirror.com/@stylelint/postcss-css-in-js@0.38.0(postcss-syntax@0.36.2)(postcss@8.4.31) + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 + eslint-plugin-jest: registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.54.0)(typescript@5.3.2) + eslint-plugin-react: registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.54.0) + eslint-plugin-react-hooks: registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.54.0) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-syntax: registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.31) + stylelint-config-standard: registry.npmmirror.com/stylelint-config-standard@25.0.0(stylelint@14.16.1) + transitivePeerDependencies: + - eslint + - jest + - postcss-html + - postcss-jsx + - postcss-less + - postcss-markdown + - postcss-scss + - stylelint + - supports-color + - typescript + dev: false + + registry.npmmirror.com/@umijs/mfsu@4.0.89: + resolution: {integrity: sha512-CcpIh88r5JaiYtPkr/Dnch6Pm8e02wHPy7BWW3A6ina0SZS4o5K2BPr/fbWoFRrfWLHQT4BGvwIkz1LavDieZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/mfsu/-/mfsu-4.0.89.tgz} + name: '@umijs/mfsu' + version: 4.0.89 + dependencies: + '@umijs/bundler-esbuild': registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.9.3 + is-equal: registry.npmmirror.com/is-equal@1.7.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/plugin-run@4.0.89: + resolution: {integrity: sha512-YsqaZz8ee3jHIsiLj43I/rtz7cy6tVhB3dUJ6zQH6a4b8u2fl7MYQcccj5gqjuRGQK5HcUScyYIJftR3cSUGKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/plugin-run/-/plugin-run-4.0.89.tgz} + name: '@umijs/plugin-run' + version: 4.0.89 + dependencies: + tsx: registry.npmmirror.com/tsx@3.14.0 + dev: false + + registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.10.0)(@types/react@18.2.38)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-S0dn0e9C5eD2IX8bGGrNEDd0EaQVGuAwyJw2ruIU/FCO9B1HwdjCdRMuEADCBOuXMzBRt4+wKToFgId5tz3gAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/preset-umi/-/preset-umi-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/preset-umi/4.0.89 + name: '@umijs/preset-umi' + version: 4.0.89 + dependencies: + '@iconify/utils': registry.npmmirror.com/@iconify/utils@2.1.1 + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + '@umijs/ast': registry.npmmirror.com/@umijs/ast@4.0.89 + '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 + '@umijs/bundler-esbuild': registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/bundler-vite': registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.10.0)(postcss@8.4.31)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0) + '@umijs/bundler-webpack': registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.2)(webpack@5.89.0) + '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 + '@umijs/did-you-know': registry.npmmirror.com/@umijs/did-you-know@1.0.3 + '@umijs/es-module-parser': registry.npmmirror.com/@umijs/es-module-parser@0.0.7 + '@umijs/history': registry.npmmirror.com/@umijs/history@5.3.1 + '@umijs/mfsu': registry.npmmirror.com/@umijs/mfsu@4.0.89 + '@umijs/plugin-run': registry.npmmirror.com/@umijs/plugin-run@4.0.89 + '@umijs/renderer-react': registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.1.0)(react@18.1.0) + '@umijs/server': registry.npmmirror.com/@umijs/server@4.0.89 + '@umijs/ui': registry.npmmirror.com/@umijs/ui@3.0.1 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + '@umijs/zod2ts': registry.npmmirror.com/@umijs/zod2ts@4.0.89 + babel-plugin-dynamic-import-node: registry.npmmirror.com/babel-plugin-dynamic-import-node@2.3.3 + click-to-react-component: registry.npmmirror.com/click-to-react-component@1.1.0(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0) + core-js: registry.npmmirror.com/core-js@3.28.0 + current-script-polyfill: registry.npmmirror.com/current-script-polyfill@1.0.0 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.9.3 + fast-glob: registry.npmmirror.com/fast-glob@3.2.12 + html-webpack-plugin: registry.npmmirror.com/html-webpack-plugin@5.5.0(webpack@5.89.0) + less-plugin-resolve: registry.npmmirror.com/less-plugin-resolve@1.0.2 + path-to-regexp: registry.npmmirror.com/path-to-regexp@1.7.0 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-prefix-selector: registry.npmmirror.com/postcss-prefix-selector@1.16.0(postcss@8.4.31) + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-router: registry.npmmirror.com/react-router@6.3.0(react@18.1.0) + react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0) + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.13.11 + transitivePeerDependencies: + - '@types/node' + - '@types/react' + - '@types/webpack' + - rollup + - sass + - sockjs-client + - stylus + - sugarss + - supports-color + - terser + - type-fest + - typescript + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + registry.npmmirror.com/@umijs/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack@5.89.0): + resolution: {integrity: sha512-RtFvB+/GmjRhpHcqNgnw8iWZpTlxOnmNxi8eDcecxMmxmSgeDj25LV0jr4Q6rOhv3GTIfVGBhkwz+khGT5tfmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz} + id: registry.npmmirror.com/@umijs/react-refresh-webpack-plugin/0.5.11 + name: '@umijs/react-refresh-webpack-plugin' + version: 0.5.11 + engines: {node: '>= 10.13'} + peerDependencies: + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <5.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true + dependencies: + ansi-html-community: registry.npmmirror.com/ansi-html-community@0.0.8 + common-path-prefix: registry.npmmirror.com/common-path-prefix@3.0.0 + core-js-pure: registry.npmmirror.com/core-js-pure@3.34.0 + error-stack-parser: registry.npmmirror.com/error-stack-parser@2.1.4 + find-up: registry.npmmirror.com/find-up@5.0.0 + html-entities: registry.npmmirror.com/html-entities@2.4.0 + loader-utils: registry.npmmirror.com/loader-utils@2.0.4 + react-refresh: registry.npmmirror.com/react-refresh@0.14.0 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + source-map: registry.npmmirror.com/source-map@0.7.4 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-GDnUHzWzndT52gA8FnsHUOvO6wl6rQfrc9Q5O/cmWXtt1xMMk8H9bwR0rMYWE66ToKPTusP87YwSOtlGRtIPWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/renderer-react/-/renderer-react-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/renderer-react/4.0.89 + name: '@umijs/renderer-react' + version: 4.0.89 + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@loadable/component': registry.npmmirror.com/@loadable/component@5.15.2(react@18.1.0) + history: registry.npmmirror.com/history@5.3.0 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-helmet-async: registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.1.0)(react@18.1.0) + react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0) + dev: false + + registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GDnUHzWzndT52gA8FnsHUOvO6wl6rQfrc9Q5O/cmWXtt1xMMk8H9bwR0rMYWE66ToKPTusP87YwSOtlGRtIPWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/renderer-react/-/renderer-react-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/renderer-react/4.0.89 + name: '@umijs/renderer-react' + version: 4.0.89 + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@loadable/component': registry.npmmirror.com/@loadable/component@5.15.2(react@18.2.0) + history: registry.npmmirror.com/history@5.3.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-helmet-async: registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0) + react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.2.0)(react@18.2.0) + dev: false + + registry.npmmirror.com/@umijs/server@4.0.89: + resolution: {integrity: sha512-k+3KXt6vyYpnFQXrzm6JTyIaepW4uKkMNu4AQJBSpbC0FZVJw43mYIjVEoTlFUcXzR3IeP3ghny6J2Q2KLkF0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/server/-/server-4.0.89.tgz} + name: '@umijs/server' + version: 4.0.89 + dependencies: + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + history: registry.npmmirror.com/history@5.3.0 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0) + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/test@4.0.89(@babel/core@7.23.3): + resolution: {integrity: sha512-eOVyk1zkCypEC0AtrnM1Kfp0+6DQK8FImXMTd3t3w8eSXTkh2v4Njy27qRC7soQeQhC/RieP3qpcs+k15rZYvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/test/-/test-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/test/4.0.89 + name: '@umijs/test' + version: 4.0.89 + dependencies: + '@babel/plugin-transform-modules-commonjs': registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.3) + '@jest/types': registry.npmmirror.com/@jest/types@27.5.1 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + babel-jest: registry.npmmirror.com/babel-jest@29.7.0(@babel/core@7.23.3) + esbuild: registry.npmmirror.com/esbuild@0.17.19 + identity-obj-proxy: registry.npmmirror.com/identity-obj-proxy@3.0.0 + isomorphic-unfetch: registry.npmmirror.com/isomorphic-unfetch@4.0.2 + transitivePeerDependencies: + - '@babel/core' + - supports-color + dev: false + + registry.npmmirror.com/@umijs/ui@3.0.1: + resolution: {integrity: sha512-zcz37AJH0xt/6XVVbyO/hmsK9Hq4vH23HZ4KYVi5A8rbM9KeJkJigTS7ELOdArawZhVNGe+h3a5Oixs4a2QsWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/ui/-/ui-3.0.1.tgz} + name: '@umijs/ui' + version: 3.0.1 + dev: false + + registry.npmmirror.com/@umijs/utils@4.0.89: + resolution: {integrity: sha512-Gq2yyuhp4m17DfU9VE59MkJGQrnbSsFp9/pfOFhbArV6AWzSo+EUY6UwLPmuQdJbJzVacZlN6N8t6cb794sVNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/utils/-/utils-4.0.89.tgz} + name: '@umijs/utils' + version: 4.0.89 + dependencies: + chokidar: registry.npmmirror.com/chokidar@3.5.3 + pino: registry.npmmirror.com/pino@7.11.0 + dev: false + + registry.npmmirror.com/@umijs/zod2ts@4.0.89: + resolution: {integrity: sha512-LjPmRHutjqtFATIYbcF+yR/I6pxDaES1J0CCHRnap5oV9VTUu/acgVpFEX/Op8G0oT4ioHA2FaFxgAGF9OwMPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/zod2ts/-/zod2ts-4.0.89.tgz} + name: '@umijs/zod2ts' + version: 4.0.89 + dev: false + + registry.npmmirror.com/@vitejs/plugin-react@4.0.0(vite@4.3.1): + resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.0.0.tgz} + id: registry.npmmirror.com/@vitejs/plugin-react/4.0.0 + name: '@vitejs/plugin-react' + version: 4.0.0 + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@babel/plugin-transform-react-jsx-self': registry.npmmirror.com/@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-react-jsx-source': registry.npmmirror.com/@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3) + react-refresh: registry.npmmirror.com/react-refresh@0.14.0 + vite: registry.npmmirror.com/vite@4.3.1(@types/node@20.10.0)(less@4.1.3)(sass@1.69.5)(terser@5.24.0) + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@webassemblyjs/ast@1.11.6: + resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz} + name: '@webassemblyjs/ast' + version: 1.11.6 + dependencies: + '@webassemblyjs/helper-numbers': registry.npmmirror.com/@webassemblyjs/helper-numbers@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz} + name: '@webassemblyjs/floating-point-hex-parser' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz} + name: '@webassemblyjs/helper-api-error' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6: + resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz} + name: '@webassemblyjs/helper-buffer' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz} + name: '@webassemblyjs/helper-numbers' + version: 1.11.6 + dependencies: + '@webassemblyjs/floating-point-hex-parser': registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser@1.11.6 + '@webassemblyjs/helper-api-error': registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6 + '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz} + name: '@webassemblyjs/helper-wasm-bytecode' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-wasm-section@1.11.6: + resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz} + name: '@webassemblyjs/helper-wasm-section' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz} + name: '@webassemblyjs/ieee754' + version: 1.11.6 + dependencies: + '@xtuc/ieee754': registry.npmmirror.com/@xtuc/ieee754@1.2.0 + dev: false + + registry.npmmirror.com/@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz} + name: '@webassemblyjs/leb128' + version: 1.11.6 + dependencies: + '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 + dev: false + + registry.npmmirror.com/@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz} + name: '@webassemblyjs/utf8' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wasm-edit@1.11.6: + resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz} + name: '@webassemblyjs/wasm-edit' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/helper-wasm-section': registry.npmmirror.com/@webassemblyjs/helper-wasm-section@1.11.6 + '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 + '@webassemblyjs/wasm-opt': registry.npmmirror.com/@webassemblyjs/wasm-opt@1.11.6 + '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 + '@webassemblyjs/wast-printer': registry.npmmirror.com/@webassemblyjs/wast-printer@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6: + resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz} + name: '@webassemblyjs/wasm-gen' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/ieee754': registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6 + '@webassemblyjs/leb128': registry.npmmirror.com/@webassemblyjs/leb128@1.11.6 + '@webassemblyjs/utf8': registry.npmmirror.com/@webassemblyjs/utf8@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wasm-opt@1.11.6: + resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz} + name: '@webassemblyjs/wasm-opt' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 + '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 + '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6: + resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz} + name: '@webassemblyjs/wasm-parser' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-api-error': registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/ieee754': registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6 + '@webassemblyjs/leb128': registry.npmmirror.com/@webassemblyjs/leb128@1.11.6 + '@webassemblyjs/utf8': registry.npmmirror.com/@webassemblyjs/utf8@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wast-printer@1.11.6: + resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz} + name: '@webassemblyjs/wast-printer' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 + dev: false + + registry.npmmirror.com/@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz} + name: '@xtuc/ieee754' + version: 1.2.0 + dev: false + + registry.npmmirror.com/@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz} + name: '@xtuc/long' + version: 4.2.2 + dev: false + + registry.npmmirror.com/acorn-import-assertions@1.9.0(acorn@8.11.2): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz} + id: registry.npmmirror.com/acorn-import-assertions/1.9.0 + name: acorn-import-assertions + version: 1.9.0 + peerDependencies: + acorn: ^8 + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.2 + dev: false + + registry.npmmirror.com/acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.11.2.tgz} + name: acorn + version: 8.11.2 + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + registry.npmmirror.com/agent-base@4.3.0: + resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/agent-base/-/agent-base-4.3.0.tgz} + name: agent-base + version: 4.3.0 + engines: {node: '>= 4.0.0'} + dependencies: + es6-promisify: registry.npmmirror.com/es6-promisify@5.0.0 + dev: false + + registry.npmmirror.com/agentkeepalive@3.5.2: + resolution: {integrity: sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz} + name: agentkeepalive + version: 3.5.2 + engines: {node: '>= 4.0.0'} + dependencies: + humanize-ms: registry.npmmirror.com/humanize-ms@1.2.1 + dev: false + + registry.npmmirror.com/ahooks-v3-count@1.0.0: + resolution: {integrity: sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ahooks-v3-count/-/ahooks-v3-count-1.0.0.tgz} + name: ahooks-v3-count + version: 1.0.0 + dev: false + + registry.npmmirror.com/ahooks@3.7.8(react@18.2.0): + resolution: {integrity: sha512-e/NMlQWoCjaUtncNFIZk3FG1ImSkV/JhScQSkTqnftakRwdfZWSw6zzoWSG9OMYqPNs2MguDYBUFFC6THelWXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ahooks/-/ahooks-3.7.8.tgz} + id: registry.npmmirror.com/ahooks/3.7.8 + name: ahooks + version: 3.7.8 + engines: {node: '>=8.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@types/js-cookie': registry.npmmirror.com/@types/js-cookie@2.2.7 + ahooks-v3-count: registry.npmmirror.com/ahooks-v3-count@1.0.0 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + intersection-observer: registry.npmmirror.com/intersection-observer@0.12.2 + js-cookie: registry.npmmirror.com/js-cookie@2.2.1 + lodash: registry.npmmirror.com/lodash@4.17.21 + react: 18.2.0 + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + screenfull: registry.npmmirror.com/screenfull@5.2.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz} + id: registry.npmmirror.com/ajv-keywords/3.5.2 + name: ajv-keywords + version: 3.5.2 + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: registry.npmmirror.com/ajv@6.12.6 + dev: false + + registry.npmmirror.com/ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@0.4.1 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + dev: false + + registry.npmmirror.com/ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz} + name: ajv + version: 8.12.0 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@1.0.0 + require-from-string: registry.npmmirror.com/require-from-string@2.0.2 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + dev: false + + registry.npmmirror.com/animated-scroll-to@2.3.0: + resolution: {integrity: sha512-PT/5MSKCWQaK2kuOl2HT2KJMuJEvUS4/TgMhWy82c2EmF74/CIkvPBPKOvd8nMYP6Higo7xCn49/iSW9BccMoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/animated-scroll-to/-/animated-scroll-to-2.3.0.tgz} + name: animated-scroll-to + version: 2.3.0 + dev: false + + registry.npmmirror.com/ansi-align@2.0.0: + resolution: {integrity: sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-align/-/ansi-align-2.0.0.tgz} + name: ansi-align + version: 2.0.0 + dependencies: + string-width: registry.npmmirror.com/string-width@2.1.1 + dev: false + + registry.npmmirror.com/ansi-escapes@3.2.0: + resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz} + name: ansi-escapes + version: 3.2.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz} + name: ansi-html-community + version: 0.0.8 + engines: {'0': node >= 0.8.0} + hasBin: true + dev: false + + registry.npmmirror.com/ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz} + name: ansi-regex + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz} + name: ansi-regex + version: 3.0.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.1.tgz} + name: ansi-regex + version: 4.1.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + + registry.npmmirror.com/ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} + name: ansi-styles + version: 3.2.1 + engines: {node: '>=4'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@1.9.3 + dev: false + + registry.npmmirror.com/ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@2.0.1 + + registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.38)(antd@5.11.4)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-KpKXiAIV3CAe6TfSh/m6ET2vGuhAof7qfqeaouh5WZ0JDl5jDXXSFPeEfqvZuHAckTl+A0NzArvIHKgKt/NZ9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd-style/-/antd-style-3.6.1.tgz} + id: registry.npmmirror.com/antd-style/3.6.1 + name: antd-style + version: 3.6.1 + peerDependencies: + antd: '>=5.8.1' + react: '>=18' + dependencies: + '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 + '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 + '@emotion/react': registry.npmmirror.com/@emotion/react@11.11.1(@types/react@18.2.38)(react@18.2.0) + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + '@emotion/server': registry.npmmirror.com/@emotion/server@11.11.0(@emotion/css@11.11.2) + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + antd: 5.11.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + use-merge-value: registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - react-dom + dev: false + + registry.npmmirror.com/antd@5.11.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-FuaV/viyZiMlCL1JzdQpSlzPcWcBlGYDAbtj3FM4BgwAso+ge3d4tXkZZG4yZkktUoLvWrcaJObs3Nk32Oiwuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd/-/antd-5.11.4.tgz} + id: registry.npmmirror.com/antd/5.11.4 + name: antd + version: 5.11.4 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 + '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0) + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@ant-design/react-slick': registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + '@rc-component/color-picker': registry.npmmirror.com/@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0) + '@rc-component/mutate-observer': registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/tour': registry.npmmirror.com/@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + qrcode.react: registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0) + rc-cascader: registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0) + rc-checkbox: registry.npmmirror.com/rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0) + rc-collapse: registry.npmmirror.com/rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0) + rc-dialog: registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-drawer: registry.npmmirror.com/rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0) + rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-field-form: registry.npmmirror.com/rc-field-form@1.40.0(react-dom@18.2.0)(react@18.2.0) + rc-image: registry.npmmirror.com/rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0) + rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-input-number: registry.npmmirror.com/rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0) + rc-mentions: registry.npmmirror.com/rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0) + rc-menu: registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-notification: registry.npmmirror.com/rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0) + rc-pagination: registry.npmmirror.com/rc-pagination@3.7.0(react-dom@18.2.0)(react@18.2.0) + rc-picker: registry.npmmirror.com/rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + rc-progress: registry.npmmirror.com/rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0) + rc-rate: registry.npmmirror.com/rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-segmented: registry.npmmirror.com/rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0) + rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-slider: registry.npmmirror.com/rc-slider@10.4.0(react-dom@18.2.0)(react@18.2.0) + rc-steps: registry.npmmirror.com/rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0) + rc-switch: registry.npmmirror.com/rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-table: registry.npmmirror.com/rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: registry.npmmirror.com/rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0) + rc-textarea: registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-tooltip: registry.npmmirror.com/rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-tree-select: registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0) + rc-upload: registry.npmmirror.com/rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: registry.npmmirror.com/scroll-into-view-if-needed@3.1.0 + throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 + transitivePeerDependencies: + - date-fns + - luxon + - moment + dev: false + + registry.npmmirror.com/anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} + name: anymatch + version: 3.1.3 + engines: {node: '>= 8'} + dependencies: + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + + registry.npmmirror.com/aproba@1.2.0: + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aproba/-/aproba-1.2.0.tgz} + name: aproba + version: 1.2.0 + dev: false + + registry.npmmirror.com/arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz} + name: arg + version: 5.0.2 + dev: false + + registry.npmmirror.com/argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz} + name: argparse + version: 1.0.10 + dependencies: + sprintf-js: registry.npmmirror.com/sprintf-js@1.0.3 + dev: false + + registry.npmmirror.com/argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} + name: argparse + version: 2.0.1 + dev: false + + registry.npmmirror.com/aria-hidden@1.2.3: + resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.2.3.tgz} + name: aria-hidden + version: 1.2.3 + engines: {node: '>=10'} + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz} + name: array-buffer-byte-length + version: 1.0.0 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + dev: false + + registry.npmmirror.com/array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-includes/-/array-includes-3.1.7.tgz} + name: array-includes + version: 3.1.7 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + dev: false + + registry.npmmirror.com/array-tree-filter@2.1.0: + resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz} + name: array-tree-filter + version: 2.1.0 + dev: false + + registry.npmmirror.com/array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} + name: array-union + version: 2.1.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz} + name: array.prototype.flat + version: 1.3.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 + dev: false + + registry.npmmirror.com/array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz} + name: array.prototype.flatmap + version: 1.3.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 + dev: false + + registry.npmmirror.com/array.prototype.reduce@1.0.6: + resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz} + name: array.prototype.reduce + version: 1.0.6 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-array-method-boxes-properly: registry.npmmirror.com/es-array-method-boxes-properly@1.0.0 + is-string: registry.npmmirror.com/is-string@1.0.7 + dev: false + + registry.npmmirror.com/array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz} + name: array.prototype.tosorted + version: 1.1.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz} + name: arraybuffer.prototype.slice + version: 1.0.2 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + dev: false + + registry.npmmirror.com/arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arrify/-/arrify-1.0.1.tgz} + name: arrify + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/asn1.js@5.4.1: + resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asn1.js/-/asn1.js-5.4.1.tgz} + name: asn1.js + version: 5.4.1 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 + dev: false + + registry.npmmirror.com/assert@1.5.1: + resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/assert/-/assert-1.5.1.tgz} + name: assert + version: 1.5.1 + dependencies: + object.assign: registry.npmmirror.com/object.assign@4.1.4 + util: registry.npmmirror.com/util@0.10.4 + dev: false + + registry.npmmirror.com/astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz} + name: astral-regex + version: 2.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/astring/-/astring-1.8.6.tgz} + name: astring + version: 1.8.6 + hasBin: true + dev: false + + registry.npmmirror.com/async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz} + name: async-validator + version: 4.2.5 + dev: false + + registry.npmmirror.com/asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz} + name: asynciterator.prototype + version: 1.0.0 + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: false + + registry.npmmirror.com/atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz} + name: atob + version: 2.1.2 + engines: {node: '>= 4.5.0'} + hasBin: true + dev: false + + registry.npmmirror.com/atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz} + name: atomic-sleep + version: 1.0.0 + engines: {node: '>=8.0.0'} + dev: false + + registry.npmmirror.com/autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.16.tgz} + id: registry.npmmirror.com/autoprefixer/10.4.16 + name: autoprefixer + version: 10.4.16 + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.1 + caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001564 + fraction.js: registry.npmmirror.com/fraction.js@4.3.7 + normalize-range: registry.npmmirror.com/normalize-range@0.1.2 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} + name: available-typed-arrays + version: 1.0.5 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/axios@0.18.1: + resolution: {integrity: sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/-/axios-0.18.1.tgz} + name: axios + version: 0.18.1 + deprecated: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 + dependencies: + follow-redirects: registry.npmmirror.com/follow-redirects@1.5.10 + is-buffer: registry.npmmirror.com/is-buffer@2.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/babel-jest@29.7.0(@babel/core@7.23.3): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-jest/-/babel-jest-29.7.0.tgz} + id: registry.npmmirror.com/babel-jest/29.7.0 + name: babel-jest + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.23.3 + '@jest/transform': registry.npmmirror.com/@jest/transform@29.7.0 + '@types/babel__core': registry.npmmirror.com/@types/babel__core@7.20.5 + babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul@6.1.1 + babel-preset-jest: registry.npmmirror.com/babel-preset-jest@29.6.3(@babel/core@7.23.3) + chalk: registry.npmmirror.com/chalk@4.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + slash: registry.npmmirror.com/slash@3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/babel-plugin-dynamic-import-node@2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz} + name: babel-plugin-dynamic-import-node + version: 2.3.3 + dependencies: + object.assign: registry.npmmirror.com/object.assign@4.1.4 + dev: false + + registry.npmmirror.com/babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz} + name: babel-plugin-istanbul + version: 6.1.1 + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@istanbuljs/load-nyc-config': registry.npmmirror.com/@istanbuljs/load-nyc-config@1.1.0 + '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema@0.1.3 + istanbul-lib-instrument: registry.npmmirror.com/istanbul-lib-instrument@5.2.1 + test-exclude: registry.npmmirror.com/test-exclude@6.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz} + name: babel-plugin-jest-hoist + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + '@types/babel__core': registry.npmmirror.com/@types/babel__core@7.20.5 + '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse@7.20.4 + dev: false + + registry.npmmirror.com/babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz} + name: babel-plugin-macros + version: 3.1.0 + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + resolve: registry.npmmirror.com/resolve@1.22.8 + dev: false + + registry.npmmirror.com/babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz} + id: registry.npmmirror.com/babel-preset-current-node-syntax/1.0.1 + name: babel-preset-current-node-syntax + version: 1.0.1 + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/plugin-syntax-async-generators': registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3) + '@babel/plugin-syntax-bigint': registry.npmmirror.com/@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-class-properties': registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': registry.npmmirror.com/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-top-level-await': registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3) + dev: false + + registry.npmmirror.com/babel-preset-jest@29.6.3(@babel/core@7.23.3): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz} + id: registry.npmmirror.com/babel-preset-jest/29.6.3 + name: babel-preset-jest + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + babel-plugin-jest-hoist: registry.npmmirror.com/babel-plugin-jest-hoist@29.6.3 + babel-preset-current-node-syntax: registry.npmmirror.com/babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3) + dev: false + + registry.npmmirror.com/bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz} + name: bail + version: 2.0.2 + dev: false + + registry.npmmirror.com/balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: false + + registry.npmmirror.com/balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-2.0.0.tgz} + name: balanced-match + version: 2.0.0 + dev: false + + registry.npmmirror.com/base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz} + name: base64-js + version: 1.5.1 + dev: false + + registry.npmmirror.com/big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz} + name: big-integer + version: 1.6.52 + engines: {node: '>=0.6'} + dev: false + + registry.npmmirror.com/big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz} + name: big.js + version: 5.2.2 + dev: false + + registry.npmmirror.com/binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} + name: binary-extensions + version: 2.2.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/binaryextensions@2.3.0: + resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/binaryextensions/-/binaryextensions-2.3.0.tgz} + name: binaryextensions + version: 2.3.0 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/bl@1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz} + name: bl + version: 1.2.3 + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz} + name: bluebird + version: 3.7.2 + dev: false + + registry.npmmirror.com/bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz} + name: bn.js + version: 4.12.0 + dev: false + + registry.npmmirror.com/bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bn.js/-/bn.js-5.2.1.tgz} + name: bn.js + version: 5.2.1 + dev: false + + registry.npmmirror.com/boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz} + name: boolbase + version: 1.0.0 + dev: false + + registry.npmmirror.com/boxen@1.3.0: + resolution: {integrity: sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/boxen/-/boxen-1.3.0.tgz} + name: boxen + version: 1.3.0 + engines: {node: '>=4'} + dependencies: + ansi-align: registry.npmmirror.com/ansi-align@2.0.0 + camelcase: registry.npmmirror.com/camelcase@4.1.0 + chalk: registry.npmmirror.com/chalk@2.4.2 + cli-boxes: registry.npmmirror.com/cli-boxes@1.0.0 + string-width: registry.npmmirror.com/string-width@2.1.1 + term-size: registry.npmmirror.com/term-size@1.2.0 + widest-line: registry.npmmirror.com/widest-line@2.0.1 + dev: false + + registry.npmmirror.com/bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.2.0.tgz} + name: bplist-parser + version: 0.2.0 + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: registry.npmmirror.com/big-integer@1.6.52 + dev: false + + registry.npmmirror.com/brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + concat-map: registry.npmmirror.com/concat-map@0.0.1 + dev: false + + registry.npmmirror.com/braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmmirror.com/fill-range@7.0.1 + dev: false + + registry.npmmirror.com/brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz} + name: brorand + version: 1.1.0 + dev: false + + registry.npmmirror.com/browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-aes/-/browserify-aes-1.2.0.tgz} + name: browserify-aes + version: 1.2.0 + dependencies: + buffer-xor: registry.npmmirror.com/buffer-xor@1.0.3 + cipher-base: registry.npmmirror.com/cipher-base@1.0.4 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + evp_bytestokey: registry.npmmirror.com/evp_bytestokey@1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz} + name: browserify-cipher + version: 1.0.1 + dependencies: + browserify-aes: registry.npmmirror.com/browserify-aes@1.2.0 + browserify-des: registry.npmmirror.com/browserify-des@1.0.2 + evp_bytestokey: registry.npmmirror.com/evp_bytestokey@1.0.3 + dev: false + + registry.npmmirror.com/browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-des/-/browserify-des-1.0.2.tgz} + name: browserify-des + version: 1.0.2 + dependencies: + cipher-base: registry.npmmirror.com/cipher-base@1.0.4 + des.js: registry.npmmirror.com/des.js@1.1.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/browserify-rsa@4.1.0: + resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz} + name: browserify-rsa + version: 4.1.0 + dependencies: + bn.js: registry.npmmirror.com/bn.js@5.2.1 + randombytes: registry.npmmirror.com/randombytes@2.1.0 + dev: false + + registry.npmmirror.com/browserify-sign@4.2.2: + resolution: {integrity: sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-sign/-/browserify-sign-4.2.2.tgz} + name: browserify-sign + version: 4.2.2 + engines: {node: '>= 4'} + dependencies: + bn.js: registry.npmmirror.com/bn.js@5.2.1 + browserify-rsa: registry.npmmirror.com/browserify-rsa@4.1.0 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + create-hmac: registry.npmmirror.com/create-hmac@1.1.7 + elliptic: registry.npmmirror.com/elliptic@6.5.4 + inherits: registry.npmmirror.com/inherits@2.0.4 + parse-asn1: registry.npmmirror.com/parse-asn1@5.1.6 + readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/browserify-zlib@0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz} + name: browserify-zlib + version: 0.2.0 + dependencies: + pako: registry.npmmirror.com/pako@1.0.11 + dev: false + + registry.npmmirror.com/browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserslist/-/browserslist-4.22.1.tgz} + name: browserslist + version: 4.22.1 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001564 + electron-to-chromium: registry.npmmirror.com/electron-to-chromium@1.4.594 + node-releases: registry.npmmirror.com/node-releases@2.0.13 + update-browserslist-db: registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.1) + dev: false + + registry.npmmirror.com/bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz} + name: bser + version: 2.1.1 + dependencies: + node-int64: registry.npmmirror.com/node-int64@0.4.0 + dev: false + + registry.npmmirror.com/buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz} + name: buffer-alloc-unsafe + version: 1.1.0 + dev: false + + registry.npmmirror.com/buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz} + name: buffer-alloc + version: 1.2.0 + dependencies: + buffer-alloc-unsafe: registry.npmmirror.com/buffer-alloc-unsafe@1.1.0 + buffer-fill: registry.npmmirror.com/buffer-fill@1.0.0 + dev: false + + registry.npmmirror.com/buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-fill/-/buffer-fill-1.0.0.tgz} + name: buffer-fill + version: 1.0.0 + dev: false + + registry.npmmirror.com/buffer-from@0.1.2: + resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-from/-/buffer-from-0.1.2.tgz} + name: buffer-from + version: 0.1.2 + dev: false + + registry.npmmirror.com/buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz} + name: buffer-from + version: 1.1.2 + dev: false + + registry.npmmirror.com/buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-xor/-/buffer-xor-1.0.3.tgz} + name: buffer-xor + version: 1.0.3 + dev: false + + registry.npmmirror.com/buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer/-/buffer-4.9.2.tgz} + name: buffer + version: 4.9.2 + dependencies: + base64-js: registry.npmmirror.com/base64-js@1.5.1 + ieee754: registry.npmmirror.com/ieee754@1.2.1 + isarray: registry.npmmirror.com/isarray@1.0.0 + dev: false + + registry.npmmirror.com/builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz} + name: builtin-status-codes + version: 3.0.0 + dev: false + + registry.npmmirror.com/builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtins/-/builtins-1.0.3.tgz} + name: builtins + version: 1.0.3 + dev: false + + registry.npmmirror.com/bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bundle-name/-/bundle-name-3.0.0.tgz} + name: bundle-name + version: 3.0.0 + engines: {node: '>=12'} + dependencies: + run-applescript: registry.npmmirror.com/run-applescript@5.0.0 + dev: false + + registry.npmmirror.com/cacache@10.0.4: + resolution: {integrity: sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cacache/-/cacache-10.0.4.tgz} + name: cacache + version: 10.0.4 + dependencies: + bluebird: registry.npmmirror.com/bluebird@3.7.2 + chownr: registry.npmmirror.com/chownr@1.1.4 + glob: registry.npmmirror.com/glob@7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + mississippi: registry.npmmirror.com/mississippi@2.0.0 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + move-concurrently: registry.npmmirror.com/move-concurrently@1.0.1 + promise-inflight: registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2) + rimraf: registry.npmmirror.com/rimraf@2.7.1 + ssri: registry.npmmirror.com/ssri@5.3.0 + unique-filename: registry.npmmirror.com/unique-filename@1.1.1 + y18n: registry.npmmirror.com/y18n@4.0.3 + dev: false + + registry.npmmirror.com/cacache@9.3.0: + resolution: {integrity: sha512-Vbi8J1XfC8v+FbQ6QkOtKXsHpPnB0i9uMeYFJoj40EbdOsEqWB3DPpNjfsnYBkqOPYA8UvrqH6FZPpBP0zdN7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cacache/-/cacache-9.3.0.tgz} + name: cacache + version: 9.3.0 + dependencies: + bluebird: registry.npmmirror.com/bluebird@3.7.2 + chownr: registry.npmmirror.com/chownr@1.1.4 + glob: registry.npmmirror.com/glob@7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + mississippi: registry.npmmirror.com/mississippi@1.3.1 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + move-concurrently: registry.npmmirror.com/move-concurrently@1.0.1 + promise-inflight: registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2) + rimraf: registry.npmmirror.com/rimraf@2.7.1 + ssri: registry.npmmirror.com/ssri@4.1.6 + unique-filename: registry.npmmirror.com/unique-filename@1.1.1 + y18n: registry.npmmirror.com/y18n@3.2.2 + dev: false + + registry.npmmirror.com/call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz} + name: call-bind + version: 1.0.5 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + set-function-length: registry.npmmirror.com/set-function-length@1.1.1 + dev: false + + registry.npmmirror.com/callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} + name: callsites + version: 3.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz} + name: camel-case + version: 4.1.2 + dependencies: + pascal-case: registry.npmmirror.com/pascal-case@3.1.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz} + name: camelcase-keys + version: 6.2.2 + engines: {node: '>=8'} + dependencies: + camelcase: registry.npmmirror.com/camelcase@5.3.1 + map-obj: registry.npmmirror.com/map-obj@4.3.0 + quick-lru: registry.npmmirror.com/quick-lru@4.0.1 + dev: false + + registry.npmmirror.com/camelcase@4.1.0: + resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz} + name: camelcase + version: 4.1.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz} + name: camelcase + version: 5.3.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz} + name: camelcase + version: 6.3.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/caniuse-lite@1.0.30001564: + resolution: {integrity: sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz} + name: caniuse-lite + version: 1.0.30001564 + dev: false + + registry.npmmirror.com/capture-stack-trace@1.0.2: + resolution: {integrity: sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz} + name: capture-stack-trace + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz} + name: ccount + version: 2.0.1 + dev: false + + registry.npmmirror.com/chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} + name: chalk + version: 2.4.2 + engines: {node: '>=4'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@3.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + supports-color: registry.npmmirror.com/supports-color@5.5.0 + dev: false + + registry.npmmirror.com/chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + supports-color: registry.npmmirror.com/supports-color@7.2.0 + dev: false + + registry.npmmirror.com/character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz} + name: character-entities-html4 + version: 2.1.0 + dev: false + + registry.npmmirror.com/character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz} + name: character-entities-legacy + version: 1.1.4 + dev: false + + registry.npmmirror.com/character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz} + name: character-entities-legacy + version: 3.0.0 + dev: false + + registry.npmmirror.com/character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities/-/character-entities-1.2.4.tgz} + name: character-entities + version: 1.2.4 + dev: false + + registry.npmmirror.com/character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz} + name: character-entities + version: 2.0.2 + dev: false + + registry.npmmirror.com/character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz} + name: character-reference-invalid + version: 1.1.4 + dev: false + + registry.npmmirror.com/character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz} + name: character-reference-invalid + version: 2.0.1 + dev: false + + registry.npmmirror.com/chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz} + name: chardet + version: 0.7.0 + dev: false + + registry.npmmirror.com/chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} + name: chokidar + version: 3.5.3 + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: registry.npmmirror.com/anymatch@3.1.3 + braces: registry.npmmirror.com/braces@3.0.2 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + is-binary-path: registry.npmmirror.com/is-binary-path@2.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + readdirp: registry.npmmirror.com/readdirp@3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz} + name: chownr + version: 1.1.4 + dev: false + + registry.npmmirror.com/chroma-js@2.4.2: + resolution: {integrity: sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chroma-js/-/chroma-js-2.4.2.tgz} + name: chroma-js + version: 2.4.2 + dev: false + + registry.npmmirror.com/chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz} + name: chrome-trace-event + version: 1.0.3 + engines: {node: '>=6.0'} + dev: false + + registry.npmmirror.com/ci-info@1.6.0: + resolution: {integrity: sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz} + name: ci-info + version: 1.6.0 + dev: false + + registry.npmmirror.com/ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz} + name: ci-info + version: 3.9.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz} + name: cipher-base + version: 1.0.4 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/classnames@2.3.2: + resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz} + name: classnames + version: 2.3.2 + dev: false + + registry.npmmirror.com/clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clean-css/-/clean-css-5.3.3.tgz} + name: clean-css + version: 5.3.3 + engines: {node: '>= 10.0'} + dependencies: + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + registry.npmmirror.com/cli-boxes@1.0.0: + resolution: {integrity: sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-boxes/-/cli-boxes-1.0.0.tgz} + name: cli-boxes + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz} + name: cli-cursor + version: 2.1.0 + engines: {node: '>=4'} + dependencies: + restore-cursor: registry.npmmirror.com/restore-cursor@2.0.0 + dev: false + + registry.npmmirror.com/cli-spinners@1.3.1: + resolution: {integrity: sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-spinners/-/cli-spinners-1.3.1.tgz} + name: cli-spinners + version: 1.3.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/cli-width@2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-width/-/cli-width-2.2.1.tgz} + name: cli-width + version: 2.2.1 + dev: false + + registry.npmmirror.com/click-to-react-component@1.1.0(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-/DjZemufS1BkxyRgZL3r7HXVVOFRWVQi5Xd4EBnjxZMwrHEh0OlUVA2N9CjXkZ0x8zMf8dL1cKnnx+xUWUg4VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/click-to-react-component/-/click-to-react-component-1.1.0.tgz} + id: registry.npmmirror.com/click-to-react-component/1.1.0 + name: click-to-react-component + version: 1.1.0 + peerDependencies: + react: '>=16.8.0' + dependencies: + '@floating-ui/react-dom-interactions': registry.npmmirror.com/@floating-ui/react-dom-interactions@0.3.1(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0) + htm: registry.npmmirror.com/htm@3.1.1 + react: registry.npmmirror.com/react@18.1.0 + react-merge-refs: registry.npmmirror.com/react-merge-refs@1.1.0 + transitivePeerDependencies: + - '@types/react' + - react-dom + dev: false + + registry.npmmirror.com/cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz} + name: cliui + version: 8.0.1 + engines: {node: '>=12'} + dependencies: + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + wrap-ansi: registry.npmmirror.com/wrap-ansi@7.0.0 + dev: false + + registry.npmmirror.com/clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz} + name: clsx + version: 1.2.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/coa@2.0.2: + resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz} + name: coa + version: 2.0.2 + engines: {node: '>= 4.0'} + dependencies: + '@types/q': registry.npmmirror.com/@types/q@1.5.8 + chalk: registry.npmmirror.com/chalk@2.4.2 + q: registry.npmmirror.com/q@1.5.1 + dev: false + + registry.npmmirror.com/codemirror@6.0.1(@lezer/common@1.1.1): + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz} + id: registry.npmmirror.com/codemirror/6.0.1 + name: codemirror + version: 6.0.1 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.11.0(@codemirror/language@6.9.2)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0)(@lezer/common@1.1.1) + '@codemirror/commands': registry.npmmirror.com/@codemirror/commands@6.3.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.4.2 + '@codemirror/search': registry.npmmirror.com/@codemirror/search@6.5.4 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + transitivePeerDependencies: + - '@lezer/common' + dev: false + + registry.npmmirror.com/codesandbox-import-util-types@2.2.3: + resolution: {integrity: sha512-Qj00p60oNExthP2oR3vvXmUGjukij+rxJGuiaKM6tyUmSyimdZsqHI/TUvFFClAffk9s7hxGnQgWQ8KCce27qQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox-import-util-types/-/codesandbox-import-util-types-2.2.3.tgz} + name: codesandbox-import-util-types + version: 2.2.3 + dev: false + + registry.npmmirror.com/codesandbox-import-utils@2.2.3: + resolution: {integrity: sha512-ymtmcgZKU27U+nM2qUb21aO8Ut/u2S9s6KorOgG81weP+NA0UZkaHKlaRqbLJ9h4i/4FLvwmEXYAnTjNmp6ogg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox-import-utils/-/codesandbox-import-utils-2.2.3.tgz} + name: codesandbox-import-utils + version: 2.2.3 + dependencies: + codesandbox-import-util-types: registry.npmmirror.com/codesandbox-import-util-types@2.2.3 + istextorbinary: registry.npmmirror.com/istextorbinary@2.6.0 + lz-string: registry.npmmirror.com/lz-string@1.5.0 + dev: false + + registry.npmmirror.com/codesandbox@2.2.3: + resolution: {integrity: sha512-IAkWFk6UUglOhSemI7UFgNNL/jgg+1YjVEIllFULLgsaHhFnY51pCqAifMNuAd5d9Zp4Nk/xMgrEaGNV0L4Xlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox/-/codesandbox-2.2.3.tgz} + name: codesandbox + version: 2.2.3 + hasBin: true + dependencies: + axios: registry.npmmirror.com/axios@0.18.1 + chalk: registry.npmmirror.com/chalk@2.4.2 + codesandbox-import-util-types: registry.npmmirror.com/codesandbox-import-util-types@2.2.3 + codesandbox-import-utils: registry.npmmirror.com/codesandbox-import-utils@2.2.3 + commander: registry.npmmirror.com/commander@2.20.3 + datauri: registry.npmmirror.com/datauri@3.0.0 + filesize: registry.npmmirror.com/filesize@3.6.1 + fs-extra: registry.npmmirror.com/fs-extra@3.0.1 + git-branch: registry.npmmirror.com/git-branch@1.0.0 + git-repo-name: registry.npmmirror.com/git-repo-name@0.6.0 + git-username: registry.npmmirror.com/git-username@0.5.1 + humps: registry.npmmirror.com/humps@2.0.1 + inquirer: registry.npmmirror.com/inquirer@6.5.2 + lodash: registry.npmmirror.com/lodash@4.17.21 + lz-string: registry.npmmirror.com/lz-string@1.5.0 + ms: registry.npmmirror.com/ms@2.1.3 + open: registry.npmmirror.com/open@6.4.0 + ora: registry.npmmirror.com/ora@1.4.0 + pacote: registry.npmmirror.com/pacote@2.7.38 + shortid: registry.npmmirror.com/shortid@2.2.16 + update-notifier: registry.npmmirror.com/update-notifier@2.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} + name: color-convert + version: 1.9.3 + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.3 + dev: false + + registry.npmmirror.com/color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.4 + + registry.npmmirror.com/color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + dev: false + + registry.npmmirror.com/color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + + registry.npmmirror.com/color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz} + name: color-string + version: 1.9.1 + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.4 + simple-swizzle: registry.npmmirror.com/simple-swizzle@0.2.2 + dev: false + + registry.npmmirror.com/color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color/-/color-3.2.1.tgz} + name: color + version: 3.2.1 + dependencies: + color-convert: registry.npmmirror.com/color-convert@1.9.3 + color-string: registry.npmmirror.com/color-string@1.9.1 + dev: false + + registry.npmmirror.com/colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz} + name: colord + version: 2.9.3 + dev: false + + registry.npmmirror.com/comma-separated-tokens@1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz} + name: comma-separated-tokens + version: 1.0.8 + dev: false + + registry.npmmirror.com/comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz} + name: comma-separated-tokens + version: 2.0.3 + dev: false + + registry.npmmirror.com/commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} + name: commander + version: 2.20.3 + dev: false + + registry.npmmirror.com/commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz} + name: commander + version: 7.2.0 + engines: {node: '>= 10'} + dev: false + + registry.npmmirror.com/commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz} + name: commander + version: 8.3.0 + engines: {node: '>= 12'} + dev: false + + registry.npmmirror.com/common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz} + name: common-path-prefix + version: 3.0.0 + dev: false + + registry.npmmirror.com/compute-scroll-into-view@3.1.0: + resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz} + name: compute-scroll-into-view + version: 3.1.0 + dev: false + + registry.npmmirror.com/concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: false + + registry.npmmirror.com/concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz} + name: concat-stream + version: 1.6.2 + engines: {'0': node >= 0.8} + dependencies: + buffer-from: registry.npmmirror.com/buffer-from@1.1.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + typedarray: registry.npmmirror.com/typedarray@0.0.6 + dev: false + + registry.npmmirror.com/configstore@3.1.5: + resolution: {integrity: sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/configstore/-/configstore-3.1.5.tgz} + name: configstore + version: 3.1.5 + engines: {node: '>=4'} + dependencies: + dot-prop: registry.npmmirror.com/dot-prop@4.2.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + make-dir: registry.npmmirror.com/make-dir@1.3.0 + unique-string: registry.npmmirror.com/unique-string@1.0.0 + write-file-atomic: registry.npmmirror.com/write-file-atomic@2.4.3 + xdg-basedir: registry.npmmirror.com/xdg-basedir@3.0.0 + dev: false + + registry.npmmirror.com/console-browserify@1.2.0: + resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz} + name: console-browserify + version: 1.2.0 + dev: false + + registry.npmmirror.com/constants-browserify@1.0.0: + resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/constants-browserify/-/constants-browserify-1.0.0.tgz} + name: constants-browserify + version: 1.0.0 + dev: false + + registry.npmmirror.com/convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz} + name: convert-source-map + version: 1.9.0 + dev: false + + registry.npmmirror.com/convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz} + name: convert-source-map + version: 2.0.0 + dev: false + + registry.npmmirror.com/copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz} + name: copy-anything + version: 2.0.6 + dependencies: + is-what: registry.npmmirror.com/is-what@3.14.1 + dev: false + + registry.npmmirror.com/copy-concurrently@1.0.5: + resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz} + name: copy-concurrently + version: 1.0.5 + dependencies: + aproba: registry.npmmirror.com/aproba@1.2.0 + fs-write-stream-atomic: registry.npmmirror.com/fs-write-stream-atomic@1.0.10 + iferr: registry.npmmirror.com/iferr@0.1.5 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + rimraf: registry.npmmirror.com/rimraf@2.7.1 + run-queue: registry.npmmirror.com/run-queue@1.0.3 + dev: false + + registry.npmmirror.com/copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz} + name: copy-to-clipboard + version: 3.3.3 + dependencies: + toggle-selection: registry.npmmirror.com/toggle-selection@1.0.6 + dev: false + + registry.npmmirror.com/core-js-pure@3.34.0: + resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.34.0.tgz} + name: core-js-pure + version: 3.34.0 + requiresBuild: true + dev: false + + registry.npmmirror.com/core-js@3.28.0: + resolution: {integrity: sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js/-/core-js-3.28.0.tgz} + name: core-js + version: 3.28.0 + requiresBuild: true + dev: false + + registry.npmmirror.com/core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz} + name: core-util-is + version: 1.0.3 + dev: false + + registry.npmmirror.com/cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz} + name: cors + version: 2.8.5 + engines: {node: '>= 0.10'} + dependencies: + object-assign: registry.npmmirror.com/object-assign@4.1.1 + vary: registry.npmmirror.com/vary@1.1.2 + dev: false + + registry.npmmirror.com/cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz} + name: cosmiconfig + version: 7.1.0 + engines: {node: '>=10'} + dependencies: + '@types/parse-json': registry.npmmirror.com/@types/parse-json@4.0.2 + import-fresh: registry.npmmirror.com/import-fresh@3.3.0 + parse-json: registry.npmmirror.com/parse-json@5.2.0 + path-type: registry.npmmirror.com/path-type@4.0.0 + yaml: registry.npmmirror.com/yaml@1.10.2 + dev: false + + registry.npmmirror.com/create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz} + name: create-ecdh + version: 4.0.4 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + elliptic: registry.npmmirror.com/elliptic@6.5.4 + dev: false + + registry.npmmirror.com/create-error-class@3.0.2: + resolution: {integrity: sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-error-class/-/create-error-class-3.0.2.tgz} + name: create-error-class + version: 3.0.2 + engines: {node: '>=0.10.0'} + dependencies: + capture-stack-trace: registry.npmmirror.com/capture-stack-trace@1.0.2 + dev: false + + registry.npmmirror.com/create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz} + name: create-hash + version: 1.2.0 + dependencies: + cipher-base: registry.npmmirror.com/cipher-base@1.0.4 + inherits: registry.npmmirror.com/inherits@2.0.4 + md5.js: registry.npmmirror.com/md5.js@1.3.5 + ripemd160: registry.npmmirror.com/ripemd160@2.0.2 + sha.js: registry.npmmirror.com/sha.js@2.4.11 + dev: false + + registry.npmmirror.com/create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz} + name: create-hmac + version: 1.1.7 + dependencies: + cipher-base: registry.npmmirror.com/cipher-base@1.0.4 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + ripemd160: registry.npmmirror.com/ripemd160@2.0.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + sha.js: registry.npmmirror.com/sha.js@2.4.11 + dev: false + + registry.npmmirror.com/crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz} + name: crelt + version: 1.0.6 + dev: false + + registry.npmmirror.com/cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz} + name: cross-spawn + version: 5.1.0 + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + shebang-command: registry.npmmirror.com/shebang-command@1.2.0 + which: registry.npmmirror.com/which@1.3.1 + dev: false + + registry.npmmirror.com/cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz} + name: cross-spawn + version: 7.0.3 + engines: {node: '>= 8'} + dependencies: + path-key: registry.npmmirror.com/path-key@3.1.1 + shebang-command: registry.npmmirror.com/shebang-command@2.0.0 + which: registry.npmmirror.com/which@2.0.2 + dev: false + + registry.npmmirror.com/crypto-browserify@3.12.0: + resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz} + name: crypto-browserify + version: 3.12.0 + dependencies: + browserify-cipher: registry.npmmirror.com/browserify-cipher@1.0.1 + browserify-sign: registry.npmmirror.com/browserify-sign@4.2.2 + create-ecdh: registry.npmmirror.com/create-ecdh@4.0.4 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + create-hmac: registry.npmmirror.com/create-hmac@1.1.7 + diffie-hellman: registry.npmmirror.com/diffie-hellman@5.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + pbkdf2: registry.npmmirror.com/pbkdf2@3.1.2 + public-encrypt: registry.npmmirror.com/public-encrypt@4.0.3 + randombytes: registry.npmmirror.com/randombytes@2.1.0 + randomfill: registry.npmmirror.com/randomfill@1.0.4 + dev: false + + registry.npmmirror.com/crypto-random-string@1.0.0: + resolution: {integrity: sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz} + name: crypto-random-string + version: 1.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/css-blank-pseudo@3.0.3(postcss@8.4.31): + resolution: {integrity: sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz} + id: registry.npmmirror.com/css-blank-pseudo/3.0.3 + name: css-blank-pseudo + version: 3.0.3 + engines: {node: ^12 || ^14 || >=16} + hasBin: true + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/css-functions-list@3.2.1: + resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-functions-list/-/css-functions-list-3.2.1.tgz} + name: css-functions-list + version: 3.2.1 + engines: {node: '>=12 || >=16'} + dev: false + + registry.npmmirror.com/css-has-pseudo@3.0.4(postcss@8.4.31): + resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz} + id: registry.npmmirror.com/css-has-pseudo/3.0.4 + name: css-has-pseudo + version: 3.0.4 + engines: {node: ^12 || ^14 || >=16} + hasBin: true + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/css-loader@6.7.1(webpack@5.89.0): + resolution: {integrity: sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz} + id: registry.npmmirror.com/css-loader/6.7.1 + name: css-loader + version: 6.7.1 + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-modules-extract-imports: registry.npmmirror.com/postcss-modules-extract-imports@3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: registry.npmmirror.com/postcss-modules-local-by-default@4.0.3(postcss@8.4.31) + postcss-modules-scope: registry.npmmirror.com/postcss-modules-scope@3.0.0(postcss@8.4.31) + postcss-modules-values: registry.npmmirror.com/postcss-modules-values@4.0.0(postcss@8.4.31) + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + semver: registry.npmmirror.com/semver@7.5.4 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/css-prefers-color-scheme@6.0.3(postcss@8.4.31): + resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz} + id: registry.npmmirror.com/css-prefers-color-scheme/6.0.3 + name: css-prefers-color-scheme + version: 6.0.3 + engines: {node: ^12 || ^14 || >=16} + hasBin: true + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/css-select-base-adapter@0.1.1: + resolution: {integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz} + name: css-select-base-adapter + version: 0.1.1 + dev: false + + registry.npmmirror.com/css-select@2.1.0: + resolution: {integrity: sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select/-/css-select-2.1.0.tgz} + name: css-select + version: 2.1.0 + dependencies: + boolbase: registry.npmmirror.com/boolbase@1.0.0 + css-what: registry.npmmirror.com/css-what@3.4.2 + domutils: registry.npmmirror.com/domutils@1.7.0 + nth-check: registry.npmmirror.com/nth-check@1.0.2 + dev: false + + registry.npmmirror.com/css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz} + name: css-select + version: 4.3.0 + dependencies: + boolbase: registry.npmmirror.com/boolbase@1.0.0 + css-what: registry.npmmirror.com/css-what@6.1.0 + domhandler: registry.npmmirror.com/domhandler@4.3.1 + domutils: registry.npmmirror.com/domutils@2.8.0 + nth-check: registry.npmmirror.com/nth-check@2.1.1 + dev: false + + registry.npmmirror.com/css-tree@1.0.0-alpha.37: + resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz} + name: css-tree + version: 1.0.0-alpha.37 + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: registry.npmmirror.com/mdn-data@2.0.4 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + registry.npmmirror.com/css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz} + name: css-tree + version: 1.1.3 + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: registry.npmmirror.com/mdn-data@2.0.14 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + registry.npmmirror.com/css-what@3.4.2: + resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-what/-/css-what-3.4.2.tgz} + name: css-what + version: 3.4.2 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz} + name: css-what + version: 6.1.0 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/css@3.0.0: + resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css/-/css-3.0.0.tgz} + name: css + version: 3.0.0 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + source-map: registry.npmmirror.com/source-map@0.6.1 + source-map-resolve: registry.npmmirror.com/source-map-resolve@0.6.0 + dev: false + + registry.npmmirror.com/cssdb@6.6.3: + resolution: {integrity: sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssdb/-/cssdb-6.6.3.tgz} + name: cssdb + version: 6.6.3 + dev: false + + registry.npmmirror.com/cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz} + name: cssesc + version: 3.0.0 + engines: {node: '>=4'} + hasBin: true + dev: false + + registry.npmmirror.com/csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz} + name: csso + version: 4.2.0 + engines: {node: '>=8.0.0'} + dependencies: + css-tree: registry.npmmirror.com/css-tree@1.1.3 + dev: false + + registry.npmmirror.com/csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz} + name: csstype + version: 3.1.2 + dev: false + + registry.npmmirror.com/current-script-polyfill@1.0.0: + resolution: {integrity: sha512-qv8s+G47V6Hq+g2kRE5th+ASzzrL7b6l+tap1DHKK25ZQJv3yIFhH96XaQ7NGL+zRW3t/RDbweJf/dJDe5Z5KA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz} + name: current-script-polyfill + version: 1.0.0 + dev: false + + registry.npmmirror.com/cwd@0.9.1: + resolution: {integrity: sha512-4+0D+ojEasdLndYX4Cqff057I/Jp6ysXpwKkdLQLnZxV8f6IYZmZtTP5uqD91a/kWqejoc0sSqK4u8wpTKCh8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cwd/-/cwd-0.9.1.tgz} + name: cwd + version: 0.9.1 + engines: {node: '>=0.8'} + dependencies: + find-pkg: registry.npmmirror.com/find-pkg@0.1.2 + dev: false + + registry.npmmirror.com/cyclist@1.0.2: + resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cyclist/-/cyclist-1.0.2.tgz} + name: cyclist + version: 1.0.2 + dev: false + + registry.npmmirror.com/data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz} + name: data-uri-to-buffer + version: 4.0.1 + engines: {node: '>= 12'} + dev: false + + registry.npmmirror.com/datauri@3.0.0: + resolution: {integrity: sha512-NeDFuUPV1YCpCn8MUIcDk1QnuyenUHs7f4Q5P0n9FFA0neKFrfEH9esR+YMW95BplbYfdmjbs0Pl/ZGAaM2QHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/datauri/-/datauri-3.0.0.tgz} + name: datauri + version: 3.0.0 + engines: {node: '>= 8'} + dependencies: + image-size: registry.npmmirror.com/image-size@0.8.3 + mimer: registry.npmmirror.com/mimer@1.1.0 + dev: false + + registry.npmmirror.com/dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz} + name: dayjs + version: 1.11.10 + dev: false + + registry.npmmirror.com/debug@3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz} + name: debug + version: 3.1.0 + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.0.0 + dev: false + + registry.npmmirror.com/debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz} + name: debug + version: 3.2.7 + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.1.3 + dev: false + + registry.npmmirror.com/debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.1.2 + dev: false + + registry.npmmirror.com/decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz} + name: decamelize-keys + version: 1.1.1 + engines: {node: '>=0.10.0'} + dependencies: + decamelize: registry.npmmirror.com/decamelize@1.2.0 + map-obj: registry.npmmirror.com/map-obj@1.0.1 + dev: false + + registry.npmmirror.com/decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz} + name: decamelize + version: 1.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz} + name: decode-named-character-reference + version: 1.0.2 + dependencies: + character-entities: registry.npmmirror.com/character-entities@2.0.2 + dev: false + + registry.npmmirror.com/decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz} + name: decode-uri-component + version: 0.2.2 + engines: {node: '>=0.10'} + dev: false + + registry.npmmirror.com/deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz} + name: deep-extend + version: 0.6.0 + engines: {node: '>=4.0.0'} + dev: false + + registry.npmmirror.com/deep-rename-keys@0.2.1: + resolution: {integrity: sha512-RHd9ABw4Fvk+gYDWqwOftG849x0bYOySl/RgX0tLI9i27ZIeSO91mLZJEp7oPHOMFqHvpgu21YptmDt0FYD/0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz} + name: deep-rename-keys + version: 0.2.1 + engines: {node: '>=0.10.0'} + dependencies: + kind-of: registry.npmmirror.com/kind-of@3.2.2 + rename-keys: registry.npmmirror.com/rename-keys@1.2.0 + dev: false + + registry.npmmirror.com/deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz} + name: deepmerge + version: 4.3.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/default-browser-id/-/default-browser-id-3.0.0.tgz} + name: default-browser-id + version: 3.0.0 + engines: {node: '>=12'} + dependencies: + bplist-parser: registry.npmmirror.com/bplist-parser@0.2.0 + untildify: registry.npmmirror.com/untildify@4.0.0 + dev: false + + registry.npmmirror.com/default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/default-browser/-/default-browser-4.0.0.tgz} + name: default-browser + version: 4.0.0 + engines: {node: '>=14.16'} + dependencies: + bundle-name: registry.npmmirror.com/bundle-name@3.0.0 + default-browser-id: registry.npmmirror.com/default-browser-id@3.0.0 + execa: registry.npmmirror.com/execa@7.2.0 + titleize: registry.npmmirror.com/titleize@3.0.0 + dev: false + + registry.npmmirror.com/define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz} + name: define-data-property + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + dev: false + + registry.npmmirror.com/define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz} + name: define-lazy-prop + version: 2.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz} + name: define-lazy-prop + version: 3.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz} + name: define-properties + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: false + + registry.npmmirror.com/dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz} + name: dequal + version: 2.0.3 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/des.js/-/des.js-1.1.0.tgz} + name: des.js + version: 1.1.0 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + dev: false + + registry.npmmirror.com/detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-indent/-/detect-indent-7.0.1.tgz} + name: detect-indent + version: 7.0.1 + engines: {node: '>=12.20'} + dev: false + + registry.npmmirror.com/detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz} + name: detect-libc + version: 1.0.3 + engines: {node: '>=0.10'} + hasBin: true + dev: false + + registry.npmmirror.com/detect-newline@4.0.1: + resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-newline/-/detect-newline-4.0.1.tgz} + name: detect-newline + version: 4.0.1 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + registry.npmmirror.com/detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz} + name: detect-node + version: 2.1.0 + dev: false + + registry.npmmirror.com/diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/diff/-/diff-5.1.0.tgz} + name: diff + version: 5.1.0 + engines: {node: '>=0.3.1'} + dev: false + + registry.npmmirror.com/diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz} + name: diffie-hellman + version: 5.0.3 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + miller-rabin: registry.npmmirror.com/miller-rabin@4.0.1 + randombytes: registry.npmmirror.com/randombytes@2.1.0 + dev: false + + registry.npmmirror.com/dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} + name: dir-glob + version: 3.0.1 + engines: {node: '>=8'} + dependencies: + path-type: registry.npmmirror.com/path-type@4.0.0 + dev: false + + registry.npmmirror.com/doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz} + name: doctrine + version: 2.1.0 + engines: {node: '>=0.10.0'} + dependencies: + esutils: registry.npmmirror.com/esutils@2.0.3 + dev: false + + registry.npmmirror.com/dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz} + name: dom-converter + version: 0.2.0 + dependencies: + utila: registry.npmmirror.com/utila@0.4.0 + dev: false + + registry.npmmirror.com/dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz} + name: dom-serializer + version: 0.2.2 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + entities: registry.npmmirror.com/entities@2.2.0 + dev: false + + registry.npmmirror.com/dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz} + name: dom-serializer + version: 1.4.1 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@4.3.1 + entities: registry.npmmirror.com/entities@2.2.0 + dev: false + + registry.npmmirror.com/dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz} + name: dom-serializer + version: 2.0.0 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@5.0.3 + entities: registry.npmmirror.com/entities@4.5.0 + dev: false + + registry.npmmirror.com/domain-browser@1.2.0: + resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz} + name: domain-browser + version: 1.2.0 + engines: {node: '>=0.4', npm: '>=1.2'} + dev: false + + registry.npmmirror.com/domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz} + name: domelementtype + version: 1.3.1 + dev: false + + registry.npmmirror.com/domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz} + name: domelementtype + version: 2.3.0 + dev: false + + registry.npmmirror.com/domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz} + name: domhandler + version: 4.3.1 + engines: {node: '>= 4'} + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + dev: false + + registry.npmmirror.com/domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz} + name: domhandler + version: 5.0.3 + engines: {node: '>= 4'} + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + dev: false + + registry.npmmirror.com/domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz} + name: domutils + version: 1.7.0 + dependencies: + dom-serializer: registry.npmmirror.com/dom-serializer@0.2.2 + domelementtype: registry.npmmirror.com/domelementtype@1.3.1 + dev: false + + registry.npmmirror.com/domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz} + name: domutils + version: 2.8.0 + dependencies: + dom-serializer: registry.npmmirror.com/dom-serializer@1.4.1 + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@4.3.1 + dev: false + + registry.npmmirror.com/domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-3.1.0.tgz} + name: domutils + version: 3.1.0 + dependencies: + dom-serializer: registry.npmmirror.com/dom-serializer@2.0.0 + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@5.0.3 + dev: false + + registry.npmmirror.com/dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz} + name: dot-case + version: 3.0.4 + dependencies: + no-case: registry.npmmirror.com/no-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/dot-prop@4.2.1: + resolution: {integrity: sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dot-prop/-/dot-prop-4.2.1.tgz} + name: dot-prop + version: 4.2.1 + engines: {node: '>=4'} + dependencies: + is-obj: registry.npmmirror.com/is-obj@1.0.1 + dev: false + + registry.npmmirror.com/dumi-afx-deps@1.0.0-alpha.20: + resolution: {integrity: sha512-PRSJlHuJkyHDET7Hukykx/hLULkgUBX5q2CutMG5EDI3eJLzJlX634wNll10m3at1uomcDAVudL7Dgh5UOJ7IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-afx-deps/-/dumi-afx-deps-1.0.0-alpha.20.tgz} + name: dumi-afx-deps + version: 1.0.0-alpha.20 + dev: false + + registry.npmmirror.com/dumi-assets-types@2.0.0-alpha.0: + resolution: {integrity: sha512-a/Y5lf0G6gwsEQ9hop/n03CcjmHsGBk384Cz/AEX6mRYrfSpUx/lQvP9HLoXkCzScl9PL1sSmLPnMkgaXDCZLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-assets-types/-/dumi-assets-types-2.0.0-alpha.0.tgz} + name: dumi-assets-types + version: 2.0.0-alpha.0 + dev: false + + registry.npmmirror.com/dumi-theme-antd-style@0.29.7(@types/react@18.2.38)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SQODA/EeveBKcDP6I0fUqUsNg2qRIpOR8t+Jt3GIAhycj6Ddu5WKaUuv5hKnSj75i5j9JdyBT+OneCZcQUxR6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-theme-antd-style/-/dumi-theme-antd-style-0.29.7.tgz} + id: registry.npmmirror.com/dumi-theme-antd-style/0.29.7 + name: dumi-theme-antd-style + version: 0.29.7 + peerDependencies: + dumi: ^2.0.0 + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@floating-ui/react': registry.npmmirror.com/@floating-ui/react@0.24.8(react-dom@18.2.0)(react@18.2.0) + ahooks: registry.npmmirror.com/ahooks@3.7.8(react@18.2.0) + antd: registry.npmmirror.com/antd@5.11.4(react-dom@18.2.0)(react@18.2.0) + antd-style: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.38)(antd@5.11.4)(react-dom@18.2.0)(react@18.2.0) + chalk: registry.npmmirror.com/chalk@4.1.2 + chroma-js: registry.npmmirror.com/chroma-js@2.4.2 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + dumi: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0) + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + lodash: registry.npmmirror.com/lodash@4.17.21 + polished: registry.npmmirror.com/polished@4.2.2 + rc-footer: registry.npmmirror.com/rc-footer@0.6.8(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-layout-kit: registry.npmmirror.com/react-layout-kit@1.7.4(react@18.2.0) + react-syntax-highlighter: registry.npmmirror.com/react-syntax-highlighter@15.5.0(react@18.2.0) + shiki-es: registry.npmmirror.com/shiki-es@0.2.0 + use-merge-value: registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0) + zustand: registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.38)(immer@10.0.3)(react@18.2.0) + zustand-utils: registry.npmmirror.com/zustand-utils@1.3.1(react@18.2.0)(zustand@4.4.7) + transitivePeerDependencies: + - '@types/react' + - date-fns + - immer + - luxon + - moment + dev: false + + registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-r2x/CY0fR8/YZOwEnG4JsLEpn8jOg94Qyd1u+7pRD9SCx7dF9It+GwkGbdNEsyenGsO/ZU9wD+Kz7KO+HU7/EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi/-/dumi-2.2.16.tgz} + id: registry.npmmirror.com/dumi/2.2.16 + name: dumi + version: 2.2.16 + hasBin: true + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@ant-design/icons-svg': registry.npmmirror.com/@ant-design/icons-svg@4.3.1 + '@makotot/ghostui': registry.npmmirror.com/@makotot/ghostui@2.0.0(react@18.2.0) + '@stackblitz/sdk': registry.npmmirror.com/@stackblitz/sdk@1.9.0 + '@swc/core': registry.npmmirror.com/@swc/core@1.3.72 + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + animated-scroll-to: registry.npmmirror.com/animated-scroll-to@2.3.0 + classnames: registry.npmmirror.com/classnames@2.3.2 + codesandbox: registry.npmmirror.com/codesandbox@2.2.3 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + dumi-afx-deps: registry.npmmirror.com/dumi-afx-deps@1.0.0-alpha.20 + dumi-assets-types: registry.npmmirror.com/dumi-assets-types@2.0.0-alpha.0 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 + estree-util-to-js: registry.npmmirror.com/estree-util-to-js@1.2.0 + estree-util-visit: registry.npmmirror.com/estree-util-visit@1.2.1 + file-system-cache: registry.npmmirror.com/file-system-cache@2.4.4 + github-slugger: registry.npmmirror.com/github-slugger@1.5.0 + hast-util-is-element: registry.npmmirror.com/hast-util-is-element@2.1.3 + hast-util-raw: registry.npmmirror.com/hast-util-raw@8.0.0 + hast-util-to-estree: registry.npmmirror.com/hast-util-to-estree@2.3.3 + hast-util-to-string: registry.npmmirror.com/hast-util-to-string@2.0.0 + heti: registry.npmmirror.com/heti@0.9.4 + hosted-git-info: registry.npmmirror.com/hosted-git-info@6.1.1 + html-to-text: registry.npmmirror.com/html-to-text@9.0.5 + html2sketch: registry.npmmirror.com/html2sketch@1.0.2 + js-yaml: registry.npmmirror.com/js-yaml@4.1.0 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + mdast-util-find-and-replace: registry.npmmirror.com/mdast-util-find-and-replace@2.2.2 + mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string@3.2.0 + nprogress: registry.npmmirror.com/nprogress@0.2.0 + pluralize: registry.npmmirror.com/pluralize@8.0.0 + prism-react-renderer: registry.npmmirror.com/prism-react-renderer@1.3.5(react@18.2.0) + prism-themes: registry.npmmirror.com/prism-themes@1.9.0 + prismjs: registry.npmmirror.com/prismjs@1.29.0 + raw-loader: registry.npmmirror.com/raw-loader@4.0.2(webpack@5.89.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: registry.npmmirror.com/rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-copy-to-clipboard: registry.npmmirror.com/react-copy-to-clipboard@5.1.0(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + react-error-boundary: registry.npmmirror.com/react-error-boundary@4.0.11(react@18.2.0) + react-intl: registry.npmmirror.com/react-intl@6.5.5(react@18.2.0)(typescript@5.3.2) + rehype-autolink-headings: registry.npmmirror.com/rehype-autolink-headings@6.1.1 + rehype-remove-comments: registry.npmmirror.com/rehype-remove-comments@5.0.0 + rehype-stringify: registry.npmmirror.com/rehype-stringify@9.0.4 + remark-directive: registry.npmmirror.com/remark-directive@2.0.1 + remark-frontmatter: registry.npmmirror.com/remark-frontmatter@4.0.1 + remark-gfm: registry.npmmirror.com/remark-gfm@3.0.1 + remark-parse: registry.npmmirror.com/remark-parse@10.0.2 + remark-rehype: registry.npmmirror.com/remark-rehype@10.1.0 + sass: registry.npmmirror.com/sass@1.69.5 + sitemap: registry.npmmirror.com/sitemap@7.1.1 + umi: registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(sass@1.69.5)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0) + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + url: registry.npmmirror.com/url@0.11.3 + v8-compile-cache: registry.npmmirror.com/v8-compile-cache@2.3.0 + vfile: registry.npmmirror.com/vfile@5.3.7 + transitivePeerDependencies: + - '@babel/core' + - '@swc/helpers' + - '@types/node' + - '@types/react' + - '@types/webpack' + - '@volar/vue-language-plugin-pug' + - '@volar/vue-typescript' + - eslint + - jest + - postcss-html + - postcss-jsx + - postcss-less + - postcss-markdown + - postcss-scss + - prettier + - rollup + - sockjs-client + - stylelint + - stylus + - sugarss + - supports-color + - terser + - type-fest + - typescript + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + registry.npmmirror.com/duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz} + name: duplexer2 + version: 0.1.4 + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz} + name: duplexer3 + version: 0.1.5 + dev: false + + registry.npmmirror.com/duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz} + name: duplexify + version: 3.7.1 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + stream-shift: registry.npmmirror.com/stream-shift@1.0.1 + dev: false + + registry.npmmirror.com/duplexify@4.1.2: + resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexify/-/duplexify-4.1.2.tgz} + name: duplexify + version: 4.1.2 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + stream-shift: registry.npmmirror.com/stream-shift@1.0.1 + dev: false + + registry.npmmirror.com/editions@2.3.1: + resolution: {integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/editions/-/editions-2.3.1.tgz} + name: editions + version: 2.3.1 + engines: {node: '>=0.8'} + dependencies: + errlop: registry.npmmirror.com/errlop@2.2.0 + semver: registry.npmmirror.com/semver@6.3.1 + dev: false + + registry.npmmirror.com/electron-to-chromium@1.4.594: + resolution: {integrity: sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz} + name: electron-to-chromium + version: 1.4.594 + dev: false + + registry.npmmirror.com/elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz} + name: elliptic + version: 6.5.4 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + brorand: registry.npmmirror.com/brorand@1.1.0 + hash.js: registry.npmmirror.com/hash.js@1.1.7 + hmac-drbg: registry.npmmirror.com/hmac-drbg@1.0.1 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + minimalistic-crypto-utils: registry.npmmirror.com/minimalistic-crypto-utils@1.0.1 + dev: false + + registry.npmmirror.com/emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} + name: emoji-regex + version: 8.0.0 + + registry.npmmirror.com/emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz} + name: emojis-list + version: 3.0.0 + engines: {node: '>= 4'} + dev: false + + registry.npmmirror.com/encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz} + name: encoding + version: 0.1.13 + dependencies: + iconv-lite: registry.npmmirror.com/iconv-lite@0.6.3 + dev: false + + registry.npmmirror.com/end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz} + name: end-of-stream + version: 1.4.4 + dependencies: + once: registry.npmmirror.com/once@1.4.0 + dev: false + + registry.npmmirror.com/enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz} + name: enhanced-resolve + version: 5.15.0 + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + tapable: registry.npmmirror.com/tapable@2.2.1 + dev: false + + registry.npmmirror.com/enhanced-resolve@5.9.3: + resolution: {integrity: sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz} + name: enhanced-resolve + version: 5.9.3 + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + tapable: registry.npmmirror.com/tapable@2.2.1 + dev: false + + registry.npmmirror.com/entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} + name: entities + version: 2.2.0 + dev: false + + registry.npmmirror.com/entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz} + name: entities + version: 4.5.0 + engines: {node: '>=0.12'} + dev: false + + registry.npmmirror.com/err-code@1.1.2: + resolution: {integrity: sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/err-code/-/err-code-1.1.2.tgz} + name: err-code + version: 1.1.2 + dev: false + + registry.npmmirror.com/errlop@2.2.0: + resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/errlop/-/errlop-2.2.0.tgz} + name: errlop + version: 2.2.0 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz} + name: errno + version: 0.1.8 + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + optional: true + + registry.npmmirror.com/error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} + name: error-ex + version: 1.3.2 + dependencies: + is-arrayish: registry.npmmirror.com/is-arrayish@0.2.1 + dev: false + + registry.npmmirror.com/error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz} + name: error-stack-parser + version: 2.1.4 + dependencies: + stackframe: registry.npmmirror.com/stackframe@1.3.4 + dev: false + + registry.npmmirror.com/es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.3.tgz} + name: es-abstract + version: 1.22.3 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 + arraybuffer.prototype.slice: registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2 + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.2 + es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 + function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.6 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + get-symbol-description: registry.npmmirror.com/get-symbol-description@1.0.0 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-negative-zero: registry.npmmirror.com/is-negative-zero@2.0.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + is-weakref: registry.npmmirror.com/is-weakref@1.0.2 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + object.assign: registry.npmmirror.com/object.assign@4.1.4 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 + safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 + safe-regex-test: registry.npmmirror.com/safe-regex-test@1.0.0 + string.prototype.trim: registry.npmmirror.com/string.prototype.trim@1.2.8 + string.prototype.trimend: registry.npmmirror.com/string.prototype.trimend@1.0.7 + string.prototype.trimstart: registry.npmmirror.com/string.prototype.trimstart@1.0.7 + typed-array-buffer: registry.npmmirror.com/typed-array-buffer@1.0.0 + typed-array-byte-length: registry.npmmirror.com/typed-array-byte-length@1.0.0 + typed-array-byte-offset: registry.npmmirror.com/typed-array-byte-offset@1.0.0 + typed-array-length: registry.npmmirror.com/typed-array-length@1.0.4 + unbox-primitive: registry.npmmirror.com/unbox-primitive@1.0.2 + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 + dev: false + + registry.npmmirror.com/es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz} + name: es-array-method-boxes-properly + version: 1.0.0 + dev: false + + registry.npmmirror.com/es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz} + name: es-get-iterator + version: 1.1.3 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + is-arguments: registry.npmmirror.com/is-arguments@1.1.1 + is-map: registry.npmmirror.com/is-map@2.0.2 + is-set: registry.npmmirror.com/is-set@2.0.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + isarray: registry.npmmirror.com/isarray@2.0.5 + stop-iteration-iterator: registry.npmmirror.com/stop-iteration-iterator@1.0.0 + dev: false + + registry.npmmirror.com/es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz} + name: es-iterator-helpers + version: 1.0.15 + dependencies: + asynciterator.prototype: registry.npmmirror.com/asynciterator.prototype@1.0.0 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.2 + function-bind: registry.npmmirror.com/function-bind@1.1.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + iterator.prototype: registry.npmmirror.com/iterator.prototype@1.1.2 + safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 + dev: false + + registry.npmmirror.com/es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz} + name: es-module-lexer + version: 1.4.1 + dev: false + + registry.npmmirror.com/es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz} + name: es-set-tostringtag + version: 2.0.2 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz} + name: es-shim-unscopables + version: 1.0.2 + dependencies: + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} + name: es-to-primitive + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: false + + registry.npmmirror.com/es5-imcompatible-versions@0.1.88: + resolution: {integrity: sha512-GDJTmDGd65qyDk9fGClO+MOUgHuBuGMCL6EawvLH8Ob+HN8ui1OJwa4fEK0qh3fg2ieT2/pdZj41yrxnmOrK8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es5-imcompatible-versions/-/es5-imcompatible-versions-0.1.88.tgz} + name: es5-imcompatible-versions + version: 0.1.88 + dev: false + + registry.npmmirror.com/es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz} + name: es6-promise + version: 4.2.8 + dev: false + + registry.npmmirror.com/es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es6-promisify/-/es6-promisify-5.0.0.tgz} + name: es6-promisify + version: 5.0.0 + dependencies: + es6-promise: registry.npmmirror.com/es6-promise@4.2.8 + dev: false + + registry.npmmirror.com/esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz} + name: esbuild-android-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz} + name: esbuild-android-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz} + name: esbuild-darwin-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz} + name: esbuild-darwin-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz} + name: esbuild-freebsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz} + name: esbuild-freebsd-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz} + name: esbuild-linux-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz} + name: esbuild-linux-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz} + name: esbuild-linux-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz} + name: esbuild-linux-arm + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz} + name: esbuild-linux-mips64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz} + name: esbuild-linux-ppc64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz} + name: esbuild-linux-riscv64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz} + name: esbuild-linux-s390x + version: 0.14.54 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz} + name: esbuild-netbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz} + name: esbuild-openbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz} + name: esbuild-sunos-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz} + name: esbuild-windows-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz} + name: esbuild-windows-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz} + name: esbuild-windows-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz} + name: esbuild + version: 0.17.19 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.17.19 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.17.19 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.17.19 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.17.19 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.17.19 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.17.19 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.17.19 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.17.19 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.17.19 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.17.19 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.17.19 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.17.19 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.17.19 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.17.19 + dev: false + + registry.npmmirror.com/esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz} + name: esbuild + version: 0.18.20 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.18.20 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.18.20 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.18.20 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.18.20 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.18.20 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.18.20 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.18.20 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.18.20 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.18.20 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.18.20 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.18.20 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.18.20 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.18.20 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.18.20 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.18.20 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.18.20 + dev: false + + registry.npmmirror.com/escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} + name: escalade + version: 3.1.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + dev: false + + registry.npmmirror.com/escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} + name: escape-string-regexp + version: 4.0.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz} + name: escape-string-regexp + version: 5.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz} + id: registry.npmmirror.com/eslint-plugin-jest/27.2.3 + name: eslint-plugin-jest + version: 27.2.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) + eslint: 8.54.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + + registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz} + id: registry.npmmirror.com/eslint-plugin-react-hooks/4.6.0 + name: eslint-plugin-react-hooks + version: 4.6.0 + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.54.0 + dev: false + + registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.54.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz} + id: registry.npmmirror.com/eslint-plugin-react/7.33.2 + name: eslint-plugin-react + version: 7.33.2 + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: registry.npmmirror.com/array-includes@3.1.7 + array.prototype.flatmap: registry.npmmirror.com/array.prototype.flatmap@1.3.2 + array.prototype.tosorted: registry.npmmirror.com/array.prototype.tosorted@1.1.2 + doctrine: registry.npmmirror.com/doctrine@2.1.0 + es-iterator-helpers: registry.npmmirror.com/es-iterator-helpers@1.0.15 + eslint: 8.54.0 + estraverse: registry.npmmirror.com/estraverse@5.3.0 + jsx-ast-utils: registry.npmmirror.com/jsx-ast-utils@3.3.5 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + object.entries: registry.npmmirror.com/object.entries@1.1.7 + object.fromentries: registry.npmmirror.com/object.fromentries@2.0.7 + object.hasown: registry.npmmirror.com/object.hasown@1.1.3 + object.values: registry.npmmirror.com/object.values@1.1.7 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + resolve: registry.npmmirror.com/resolve@2.0.0-next.5 + semver: registry.npmmirror.com/semver@6.3.1 + string.prototype.matchall: registry.npmmirror.com/string.prototype.matchall@4.0.10 + dev: false + + registry.npmmirror.com/eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} + name: eslint-scope + version: 5.1.1 + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse@4.3.0 + estraverse: registry.npmmirror.com/estraverse@4.3.0 + dev: false + + registry.npmmirror.com/eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz} + name: eslint-visitor-keys + version: 2.1.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz} + name: eslint-visitor-keys + version: 3.4.3 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + registry.npmmirror.com/esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz} + name: esprima + version: 4.0.1 + engines: {node: '>=4'} + hasBin: true + dev: false + + registry.npmmirror.com/esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} + name: esrecurse + version: 4.3.0 + engines: {node: '>=4.0'} + dependencies: + estraverse: registry.npmmirror.com/estraverse@5.3.0 + dev: false + + registry.npmmirror.com/estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz} + name: estraverse + version: 4.3.0 + engines: {node: '>=4.0'} + dev: false + + registry.npmmirror.com/estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} + name: estraverse + version: 5.3.0 + engines: {node: '>=4.0'} + dev: false + + registry.npmmirror.com/estree-util-attach-comments@2.1.1: + resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz} + name: estree-util-attach-comments + version: 2.1.1 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + dev: false + + registry.npmmirror.com/estree-util-is-identifier-name@2.1.0: + resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz} + name: estree-util-is-identifier-name + version: 2.1.0 + dev: false + + registry.npmmirror.com/estree-util-to-js@1.2.0: + resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz} + name: estree-util-to-js + version: 1.2.0 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + astring: registry.npmmirror.com/astring@1.8.6 + source-map: registry.npmmirror.com/source-map@0.7.4 + dev: false + + registry.npmmirror.com/estree-util-visit@1.2.1: + resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-visit/-/estree-util-visit-1.2.1.tgz} + name: estree-util-visit + version: 1.2.1 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} + name: esutils + version: 2.0.3 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/eventemitter3@2.0.3: + resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-2.0.3.tgz} + name: eventemitter3 + version: 2.0.3 + dev: false + + registry.npmmirror.com/events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/events/-/events-3.3.0.tgz} + name: events + version: 3.3.0 + engines: {node: '>=0.8.x'} + dev: false + + registry.npmmirror.com/evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz} + name: evp_bytestokey + version: 1.0.3 + dependencies: + md5.js: registry.npmmirror.com/md5.js@1.3.5 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/execa@0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-0.7.0.tgz} + name: execa + version: 0.7.0 + engines: {node: '>=4'} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@5.1.0 + get-stream: registry.npmmirror.com/get-stream@3.0.0 + is-stream: registry.npmmirror.com/is-stream@1.1.0 + npm-run-path: registry.npmmirror.com/npm-run-path@2.0.2 + p-finally: registry.npmmirror.com/p-finally@1.0.0 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + strip-eof: registry.npmmirror.com/strip-eof@1.0.0 + dev: false + + registry.npmmirror.com/execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz} + name: execa + version: 5.1.1 + engines: {node: '>=10'} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 + get-stream: registry.npmmirror.com/get-stream@6.0.1 + human-signals: registry.npmmirror.com/human-signals@2.1.0 + is-stream: registry.npmmirror.com/is-stream@2.0.1 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + npm-run-path: registry.npmmirror.com/npm-run-path@4.0.1 + onetime: registry.npmmirror.com/onetime@5.1.2 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + strip-final-newline: registry.npmmirror.com/strip-final-newline@2.0.0 + dev: false + + registry.npmmirror.com/execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-7.2.0.tgz} + name: execa + version: 7.2.0 + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 + get-stream: registry.npmmirror.com/get-stream@6.0.1 + human-signals: registry.npmmirror.com/human-signals@4.3.1 + is-stream: registry.npmmirror.com/is-stream@3.0.0 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + npm-run-path: registry.npmmirror.com/npm-run-path@5.1.0 + onetime: registry.npmmirror.com/onetime@6.0.0 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + strip-final-newline: registry.npmmirror.com/strip-final-newline@3.0.0 + dev: false + + registry.npmmirror.com/expand-tilde@1.2.2: + resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/expand-tilde/-/expand-tilde-1.2.2.tgz} + name: expand-tilde + version: 1.2.2 + engines: {node: '>=0.10.0'} + dependencies: + os-homedir: registry.npmmirror.com/os-homedir@1.0.2 + dev: false + + registry.npmmirror.com/extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz} + name: extend-shallow + version: 2.0.1 + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: registry.npmmirror.com/is-extendable@0.1.1 + dev: false + + registry.npmmirror.com/extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz} + name: extend + version: 3.0.2 + dev: false + + registry.npmmirror.com/external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz} + name: external-editor + version: 3.1.0 + engines: {node: '>=4'} + dependencies: + chardet: registry.npmmirror.com/chardet@0.7.0 + iconv-lite: registry.npmmirror.com/iconv-lite@0.4.24 + tmp: registry.npmmirror.com/tmp@0.0.33 + dev: false + + registry.npmmirror.com/fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + dev: false + + registry.npmmirror.com/fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} + name: fast-glob + version: 3.2.12 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + merge2: registry.npmmirror.com/merge2@1.4.1 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + dev: false + + registry.npmmirror.com/fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz} + name: fast-glob + version: 3.3.2 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + merge2: registry.npmmirror.com/merge2@1.4.1 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + dev: false + + registry.npmmirror.com/fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + dev: false + + registry.npmmirror.com/fast-redact@3.3.0: + resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-redact/-/fast-redact-3.3.0.tgz} + name: fast-redact + version: 3.3.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz} + name: fastest-levenshtein + version: 1.0.16 + engines: {node: '>= 4.9.1'} + dev: false + + registry.npmmirror.com/fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz} + name: fastq + version: 1.15.0 + dependencies: + reusify: registry.npmmirror.com/reusify@1.0.4 + dev: false + + registry.npmmirror.com/fault@1.0.4: + resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fault/-/fault-1.0.4.tgz} + name: fault + version: 1.0.4 + dependencies: + format: registry.npmmirror.com/format@0.2.2 + dev: false + + registry.npmmirror.com/fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fault/-/fault-2.0.1.tgz} + name: fault + version: 2.0.1 + dependencies: + format: registry.npmmirror.com/format@0.2.2 + dev: false + + registry.npmmirror.com/fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz} + name: fb-watchman + version: 2.0.2 + dependencies: + bser: registry.npmmirror.com/bser@2.1.1 + dev: false + + registry.npmmirror.com/fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz} + name: fetch-blob + version: 3.2.0 + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: registry.npmmirror.com/node-domexception@1.0.0 + web-streams-polyfill: registry.npmmirror.com/web-streams-polyfill@3.2.1 + dev: false + + registry.npmmirror.com/figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz} + name: figures + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + dev: false + + registry.npmmirror.com/file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz} + name: file-entry-cache + version: 6.0.1 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: registry.npmmirror.com/flat-cache@3.2.0 + dev: false + + registry.npmmirror.com/file-name@0.1.0: + resolution: {integrity: sha512-Q8SskhjF4eUk/xoQkmubwLkoHwOTv6Jj/WGtOVLKkZ0vvM+LipkSXugkn1F/+mjWXU32AXLZB3qaz0arUzgtRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-name/-/file-name-0.1.0.tgz} + name: file-name + version: 0.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/file-system-cache@2.4.4: + resolution: {integrity: sha512-vCYhn8pb5nlC3Gs2FFCOkmf4NEg2Ym3ulJwkmS9o6p9oRShGj6CwTMFvpgZihBlsh373NaM0XgAgDHXQIlS4LQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-system-cache/-/file-system-cache-2.4.4.tgz} + name: file-system-cache + version: 2.4.4 + dependencies: + '@types/fs-extra': registry.npmmirror.com/@types/fs-extra@11.0.1 + '@types/ramda': registry.npmmirror.com/@types/ramda@0.29.3 + fs-extra: registry.npmmirror.com/fs-extra@11.1.1 + ramda: registry.npmmirror.com/ramda@0.29.0 + dev: false + + registry.npmmirror.com/filesize@3.6.1: + resolution: {integrity: sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/filesize/-/filesize-3.6.1.tgz} + name: filesize + version: 3.6.1 + engines: {node: '>= 0.4.0'} + dev: false + + registry.npmmirror.com/fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmmirror.com/to-regex-range@5.0.1 + dev: false + + registry.npmmirror.com/filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/filter-obj/-/filter-obj-1.1.0.tgz} + name: filter-obj + version: 1.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/find-file-up@0.1.3: + resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-file-up/-/find-file-up-0.1.3.tgz} + name: find-file-up + version: 0.1.3 + engines: {node: '>=0.10.0'} + dependencies: + fs-exists-sync: registry.npmmirror.com/fs-exists-sync@0.1.0 + resolve-dir: registry.npmmirror.com/resolve-dir@0.1.1 + dev: false + + registry.npmmirror.com/find-pkg@0.1.2: + resolution: {integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-pkg/-/find-pkg-0.1.2.tgz} + name: find-pkg + version: 0.1.2 + engines: {node: '>=0.10.0'} + dependencies: + find-file-up: registry.npmmirror.com/find-file-up@0.1.3 + dev: false + + registry.npmmirror.com/find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-root/-/find-root-1.1.0.tgz} + name: find-root + version: 1.1.0 + dev: false + + registry.npmmirror.com/find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz} + name: find-up + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + locate-path: registry.npmmirror.com/locate-path@5.0.0 + path-exists: registry.npmmirror.com/path-exists@4.0.0 + dev: false + + registry.npmmirror.com/find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz} + name: find-up + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + locate-path: registry.npmmirror.com/locate-path@6.0.0 + path-exists: registry.npmmirror.com/path-exists@4.0.0 + dev: false + + registry.npmmirror.com/flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz} + name: flat-cache + version: 3.2.0 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: registry.npmmirror.com/flatted@3.2.9 + keyv: registry.npmmirror.com/keyv@4.5.4 + rimraf: registry.npmmirror.com/rimraf@3.0.2 + dev: false + + registry.npmmirror.com/flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz} + name: flatted + version: 3.2.9 + dev: false + + registry.npmmirror.com/flush-write-stream@1.1.1: + resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz} + name: flush-write-stream + version: 1.1.1 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/follow-redirects@1.5.10: + resolution: {integrity: sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz} + name: follow-redirects + version: 1.5.10 + engines: {node: '>=4.0'} + dependencies: + debug: registry.npmmirror.com/debug@3.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz} + name: for-each + version: 0.3.3 + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + dev: false + + registry.npmmirror.com/fork-ts-checker-webpack-plugin@8.0.0(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz} + id: registry.npmmirror.com/fork-ts-checker-webpack-plugin/8.0.0 + name: fork-ts-checker-webpack-plugin + version: 8.0.0 + engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + peerDependencies: + typescript: '>3.6.0' + webpack: ^5.11.0 + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + chalk: registry.npmmirror.com/chalk@4.1.2 + chokidar: registry.npmmirror.com/chokidar@3.5.3 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + fs-extra: registry.npmmirror.com/fs-extra@10.1.0 + memfs: registry.npmmirror.com/memfs@3.5.3 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + node-abort-controller: registry.npmmirror.com/node-abort-controller@3.1.1 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + semver: registry.npmmirror.com/semver@7.5.4 + tapable: registry.npmmirror.com/tapable@2.2.1 + typescript: 5.3.2 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/format/-/format-0.2.2.tgz} + name: format + version: 0.2.2 + engines: {node: '>=0.4.x'} + dev: false + + registry.npmmirror.com/formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz} + name: formdata-polyfill + version: 4.0.10 + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: registry.npmmirror.com/fetch-blob@3.2.0 + dev: false + + registry.npmmirror.com/fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz} + name: fraction.js + version: 4.3.7 + dev: false + + registry.npmmirror.com/from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz} + name: from2 + version: 2.3.0 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz} + name: fs-constants + version: 1.0.0 + dev: false + + registry.npmmirror.com/fs-exists-sync@0.1.0: + resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz} + name: fs-exists-sync + version: 0.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz} + name: fs-extra + version: 10.1.0 + engines: {node: '>=12'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: registry.npmmirror.com/jsonfile@6.1.0 + universalify: registry.npmmirror.com/universalify@2.0.1 + dev: false + + registry.npmmirror.com/fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-11.1.1.tgz} + name: fs-extra + version: 11.1.1 + engines: {node: '>=14.14'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: registry.npmmirror.com/jsonfile@6.1.0 + universalify: registry.npmmirror.com/universalify@2.0.1 + dev: false + + registry.npmmirror.com/fs-extra@3.0.1: + resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-3.0.1.tgz} + name: fs-extra + version: 3.0.1 + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: registry.npmmirror.com/jsonfile@3.0.1 + universalify: registry.npmmirror.com/universalify@0.1.2 + dev: false + + registry.npmmirror.com/fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.5.tgz} + name: fs-monkey + version: 1.0.5 + dev: false + + registry.npmmirror.com/fs-write-stream-atomic@1.0.10: + resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz} + name: fs-write-stream-atomic + version: 1.0.10 + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + iferr: registry.npmmirror.com/iferr@0.1.5 + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: false + + registry.npmmirror.com/fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz} + name: fsevents + version: 2.3.3 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz} + name: function-bind + version: 1.1.2 + dev: false + + registry.npmmirror.com/function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz} + name: function.prototype.name + version: 1.1.6 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + dev: false + + registry.npmmirror.com/functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} + name: functions-have-names + version: 1.2.3 + dev: false + + registry.npmmirror.com/gbeata@1.2.5(@types/react@18.2.38)(antd-style@3.6.1)(antd@5.11.4)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-mnRtFtUJbWrlSYD1wEbnaBgTTi/gmooJiLIvYWxFcKl0sPPAjOcSADWNa0LJm497Ob0aqhyYHYEKwgpFGdeZ3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gbeata/-/gbeata-1.2.5.tgz} + id: registry.npmmirror.com/gbeata/1.2.5 + name: gbeata + version: 1.2.5 + peerDependencies: + antd: ^5.12.1 + antd-style: ^3.6.1 + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@minko-fe/use-antd-resizable-header': registry.npmmirror.com/@minko-fe/use-antd-resizable-header@2.9.0(react-dom@18.2.0)(react@18.2.0) + antd: 5.11.4(react-dom@18.2.0)(react@18.2.0) + antd-style: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.38)(antd@5.11.4)(react-dom@18.2.0)(react@18.2.0) + dayjs: registry.npmmirror.com/dayjs@1.11.10 + dumi-theme-antd-style: registry.npmmirror.com/dumi-theme-antd-style@0.29.7(@types/react@18.2.38)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - date-fns + - dumi + - immer + - luxon + - moment + dev: false + + registry.npmmirror.com/genfun@4.0.1: + resolution: {integrity: sha512-48yv1eDS5Qrz6cbSDBBik0u7jCgC/eA9eZrl9MIN1LfKzFTuGt6EHgr31YM8yT9cjb5BplXb4Iz3VtOYmgt8Jg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/genfun/-/genfun-4.0.1.tgz} + name: genfun + version: 4.0.1 + dev: false + + registry.npmmirror.com/gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} + name: gensync + version: 1.0.0-beta.2 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz} + name: get-caller-file + version: 2.0.5 + engines: {node: 6.* || 8.* || >= 10.*} + dev: false + + registry.npmmirror.com/get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz} + name: get-intrinsic + version: 1.2.2 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz} + name: get-package-type + version: 0.1.0 + engines: {node: '>=8.0.0'} + dev: false + + registry.npmmirror.com/get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz} + name: get-stream + version: 3.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz} + name: get-stream + version: 6.0.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz} + name: get-symbol-description + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz} + name: get-tsconfig + version: 4.7.2 + dependencies: + resolve-pkg-maps: registry.npmmirror.com/resolve-pkg-maps@1.0.0 + dev: false + + registry.npmmirror.com/get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz} + name: get-value + version: 2.0.6 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/git-branch@1.0.0: + resolution: {integrity: sha512-ZTzuqw5Df8fyLXQWrX6hK+4FpNCdKzMcERlxENEGO5aKcLmG7MAszhrMhluUKNKmOS/JAGijDMQDXDCDw1mE/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-branch/-/git-branch-1.0.0.tgz} + name: git-branch + version: 1.0.0 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/git-config-path@1.0.1: + resolution: {integrity: sha512-KcJ2dlrrP5DbBnYIZ2nlikALfRhKzNSX0stvv3ImJ+fvC4hXKoV+U+74SV0upg+jlQZbrtQzc0bu6/Zh+7aQbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-config-path/-/git-config-path-1.0.1.tgz} + name: git-config-path + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + fs-exists-sync: registry.npmmirror.com/fs-exists-sync@0.1.0 + homedir-polyfill: registry.npmmirror.com/homedir-polyfill@1.0.3 + dev: false + + registry.npmmirror.com/git-hooks-list@3.1.0: + resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-hooks-list/-/git-hooks-list-3.1.0.tgz} + name: git-hooks-list + version: 3.1.0 + dev: false + + registry.npmmirror.com/git-repo-name@0.6.0: + resolution: {integrity: sha512-DF4XxB6H+Te79JA08/QF/IjIv+j+0gF990WlgAX3SXXU2irfqvBc/xxlAIh6eJWYaKz45MrrGVBFS0Qc4bBz5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-repo-name/-/git-repo-name-0.6.0.tgz} + name: git-repo-name + version: 0.6.0 + engines: {node: '>=0.8'} + dependencies: + cwd: registry.npmmirror.com/cwd@0.9.1 + file-name: registry.npmmirror.com/file-name@0.1.0 + lazy-cache: registry.npmmirror.com/lazy-cache@1.0.4 + remote-origin-url: registry.npmmirror.com/remote-origin-url@0.5.3 + dev: false + + registry.npmmirror.com/git-username@0.5.1: + resolution: {integrity: sha512-xjUjrj3i4kup2A3a/ZVZB1Nt0PUX7SU7KeVqIbXPdslT7NbNfyO04JMxBv4gar77JePdS+A6f05jG1Viy6+U1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-username/-/git-username-0.5.1.tgz} + name: git-username + version: 0.5.1 + engines: {node: '>=0.8'} + dependencies: + remote-origin-url: registry.npmmirror.com/remote-origin-url@0.4.0 + dev: false + + registry.npmmirror.com/github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/github-slugger/-/github-slugger-1.5.0.tgz} + name: github-slugger + version: 1.5.0 + dev: false + + registry.npmmirror.com/glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + dev: false + + registry.npmmirror.com/glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} + name: glob-to-regexp + version: 0.4.1 + dev: false + + registry.npmmirror.com/glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + once: registry.npmmirror.com/once@1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: false + + registry.npmmirror.com/global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz} + name: global-dirs + version: 0.1.1 + engines: {node: '>=4'} + dependencies: + ini: registry.npmmirror.com/ini@1.3.8 + dev: false + + registry.npmmirror.com/global-modules@0.2.3: + resolution: {integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-modules/-/global-modules-0.2.3.tgz} + name: global-modules + version: 0.2.3 + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: registry.npmmirror.com/global-prefix@0.1.5 + is-windows: registry.npmmirror.com/is-windows@0.2.0 + dev: false + + registry.npmmirror.com/global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-modules/-/global-modules-2.0.0.tgz} + name: global-modules + version: 2.0.0 + engines: {node: '>=6'} + dependencies: + global-prefix: registry.npmmirror.com/global-prefix@3.0.0 + dev: false + + registry.npmmirror.com/global-prefix@0.1.5: + resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-0.1.5.tgz} + name: global-prefix + version: 0.1.5 + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: registry.npmmirror.com/homedir-polyfill@1.0.3 + ini: registry.npmmirror.com/ini@1.3.8 + is-windows: registry.npmmirror.com/is-windows@0.2.0 + which: registry.npmmirror.com/which@1.3.1 + dev: false + + registry.npmmirror.com/global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz} + name: global-prefix + version: 3.0.0 + engines: {node: '>=6'} + dependencies: + ini: registry.npmmirror.com/ini@1.3.8 + kind-of: registry.npmmirror.com/kind-of@6.0.3 + which: registry.npmmirror.com/which@1.3.1 + dev: false + + registry.npmmirror.com/globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} + name: globals + version: 11.12.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz} + name: globalthis + version: 1.0.3 + engines: {node: '>= 0.4'} + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + dev: false + + registry.npmmirror.com/globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} + name: globby + version: 11.1.0 + engines: {node: '>=10'} + dependencies: + array-union: registry.npmmirror.com/array-union@2.1.0 + dir-glob: registry.npmmirror.com/dir-glob@3.0.1 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + ignore: registry.npmmirror.com/ignore@5.3.0 + merge2: registry.npmmirror.com/merge2@1.4.1 + slash: registry.npmmirror.com/slash@3.0.0 + dev: false + + registry.npmmirror.com/globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globby/-/globby-13.2.2.tgz} + name: globby + version: 13.2.2 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: registry.npmmirror.com/dir-glob@3.0.1 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + ignore: registry.npmmirror.com/ignore@5.3.0 + merge2: registry.npmmirror.com/merge2@1.4.1 + slash: registry.npmmirror.com/slash@4.0.0 + dev: false + + registry.npmmirror.com/globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globjoin/-/globjoin-0.1.4.tgz} + name: globjoin + version: 0.1.4 + dev: false + + registry.npmmirror.com/gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} + name: gopd + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/got@6.7.1: + resolution: {integrity: sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/got/-/got-6.7.1.tgz} + name: got + version: 6.7.1 + engines: {node: '>=4'} + dependencies: + '@types/keyv': registry.npmmirror.com/@types/keyv@3.1.4 + '@types/responselike': registry.npmmirror.com/@types/responselike@1.0.3 + create-error-class: registry.npmmirror.com/create-error-class@3.0.2 + duplexer3: registry.npmmirror.com/duplexer3@0.1.5 + get-stream: registry.npmmirror.com/get-stream@3.0.0 + is-redirect: registry.npmmirror.com/is-redirect@1.0.0 + is-retry-allowed: registry.npmmirror.com/is-retry-allowed@1.2.0 + is-stream: registry.npmmirror.com/is-stream@1.1.0 + lowercase-keys: registry.npmmirror.com/lowercase-keys@1.0.1 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + timed-out: registry.npmmirror.com/timed-out@4.0.1 + unzip-response: registry.npmmirror.com/unzip-response@2.0.1 + url-parse-lax: registry.npmmirror.com/url-parse-lax@1.0.0 + dev: false + + registry.npmmirror.com/graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} + name: graceful-fs + version: 4.2.11 + + registry.npmmirror.com/graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz} + name: graphemer + version: 1.4.0 + dev: false + + registry.npmmirror.com/handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz} + name: handle-thing + version: 2.0.1 + dev: false + + registry.npmmirror.com/hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hard-rejection/-/hard-rejection-2.1.0.tgz} + name: hard-rejection + version: 2.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/harmony-reflect@1.6.2: + resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz} + name: harmony-reflect + version: 1.6.2 + dev: false + + registry.npmmirror.com/has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} + name: has-bigints + version: 1.0.2 + dev: false + + registry.npmmirror.com/has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} + name: has-flag + version: 3.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz} + name: has-property-descriptors + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz} + name: has-proto + version: 1.0.1 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} + name: has-symbols + version: 1.0.3 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + name: has-tostringtag + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: false + + registry.npmmirror.com/has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz} + name: has-value + version: 0.3.1 + engines: {node: '>=0.10.0'} + dependencies: + get-value: registry.npmmirror.com/get-value@2.0.6 + has-values: registry.npmmirror.com/has-values@0.1.4 + isobject: registry.npmmirror.com/isobject@2.1.0 + dev: false + + registry.npmmirror.com/has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz} + name: has-values + version: 0.1.4 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hash-base/-/hash-base-3.1.0.tgz} + name: hash-base + version: 3.1.0 + engines: {node: '>=4'} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz} + name: hash.js + version: 1.1.7 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + dev: false + + registry.npmmirror.com/hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz} + name: hasown + version: 2.0.0 + engines: {node: '>= 0.4'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + dev: false + + registry.npmmirror.com/hast-util-from-parse5@7.1.2: + resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz} + name: hast-util-from-parse5 + version: 7.1.2 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + hastscript: registry.npmmirror.com/hastscript@7.2.0 + property-information: registry.npmmirror.com/property-information@6.4.0 + vfile: registry.npmmirror.com/vfile@5.3.7 + vfile-location: registry.npmmirror.com/vfile-location@4.1.0 + web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 + dev: false + + registry.npmmirror.com/hast-util-has-property@2.0.1: + resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-has-property/-/hast-util-has-property-2.0.1.tgz} + name: hast-util-has-property + version: 2.0.1 + dev: false + + registry.npmmirror.com/hast-util-heading-rank@2.1.1: + resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-heading-rank/-/hast-util-heading-rank-2.1.1.tgz} + name: hast-util-heading-rank + version: 2.1.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + dev: false + + registry.npmmirror.com/hast-util-is-conditional-comment@2.0.0: + resolution: {integrity: sha512-U66gW8ZWQdxP4ZjTEZ3xZT72y6rIKJqV4At5QmC1ItBbQyZyVkuTp8QkQwhxsbkHdzpifiZdQWrDipc9ByqhRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-is-conditional-comment/-/hast-util-is-conditional-comment-2.0.0.tgz} + name: hast-util-is-conditional-comment + version: 2.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + dev: false + + registry.npmmirror.com/hast-util-is-element@2.1.3: + resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz} + name: hast-util-is-element + version: 2.1.3 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/hast-util-parse-selector@2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz} + name: hast-util-parse-selector + version: 2.2.5 + dev: false + + registry.npmmirror.com/hast-util-parse-selector@3.1.1: + resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz} + name: hast-util-parse-selector + version: 3.1.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + dev: false + + registry.npmmirror.com/hast-util-raw@7.2.3: + resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-7.2.3.tgz} + name: hast-util-raw + version: 7.2.3 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/parse5': registry.npmmirror.com/@types/parse5@6.0.3 + hast-util-from-parse5: registry.npmmirror.com/hast-util-from-parse5@7.1.2 + hast-util-to-parse5: registry.npmmirror.com/hast-util-to-parse5@7.1.0 + html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 + parse5: registry.npmmirror.com/parse5@6.0.1 + unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + vfile: registry.npmmirror.com/vfile@5.3.7 + web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/hast-util-raw@8.0.0: + resolution: {integrity: sha512-bKbaUxMNLjZMMowgcrc4l3aQSPiMLiceZD+mp+AKF8Si0mtyR2DYVdxzS2XBxXYDeW/VvfZy40lNxHRiY6MMTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-8.0.0.tgz} + name: hast-util-raw + version: 8.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + extend: registry.npmmirror.com/extend@3.0.2 + hast-util-from-parse5: registry.npmmirror.com/hast-util-from-parse5@7.1.2 + hast-util-to-parse5: registry.npmmirror.com/hast-util-to-parse5@7.1.0 + html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 + mdast-util-to-hast: registry.npmmirror.com/mdast-util-to-hast@12.3.0 + parse5: registry.npmmirror.com/parse5@7.1.2 + unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + vfile: registry.npmmirror.com/vfile@5.3.7 + web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/hast-util-to-estree@2.3.3: + resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz} + name: hast-util-to-estree + version: 2.3.3 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + estree-util-attach-comments: registry.npmmirror.com/estree-util-attach-comments@2.1.1 + estree-util-is-identifier-name: registry.npmmirror.com/estree-util-is-identifier-name@2.1.0 + hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace@2.0.1 + mdast-util-mdx-expression: registry.npmmirror.com/mdast-util-mdx-expression@1.3.2 + mdast-util-mdxjs-esm: registry.npmmirror.com/mdast-util-mdxjs-esm@1.3.1 + property-information: registry.npmmirror.com/property-information@6.4.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + style-to-object: registry.npmmirror.com/style-to-object@0.4.4 + unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/hast-util-to-html@8.0.4: + resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz} + name: hast-util-to-html + version: 8.0.4 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + ccount: registry.npmmirror.com/ccount@2.0.1 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + hast-util-raw: registry.npmmirror.com/hast-util-raw@7.2.3 + hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace@2.0.1 + html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 + property-information: registry.npmmirror.com/property-information@6.4.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + stringify-entities: registry.npmmirror.com/stringify-entities@4.0.3 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/hast-util-to-parse5@7.1.0: + resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz} + name: hast-util-to-parse5 + version: 7.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + property-information: registry.npmmirror.com/property-information@6.4.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/hast-util-to-string@2.0.0: + resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-string/-/hast-util-to-string-2.0.0.tgz} + name: hast-util-to-string + version: 2.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + dev: false + + registry.npmmirror.com/hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz} + name: hast-util-whitespace + version: 2.0.1 + dev: false + + registry.npmmirror.com/hastscript@6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hastscript/-/hastscript-6.0.0.tgz} + name: hastscript + version: 6.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@1.0.8 + hast-util-parse-selector: registry.npmmirror.com/hast-util-parse-selector@2.2.5 + property-information: registry.npmmirror.com/property-information@5.6.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@1.1.5 + dev: false + + registry.npmmirror.com/hastscript@7.2.0: + resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hastscript/-/hastscript-7.2.0.tgz} + name: hastscript + version: 7.2.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + hast-util-parse-selector: registry.npmmirror.com/hast-util-parse-selector@3.1.1 + property-information: registry.npmmirror.com/property-information@6.4.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + dev: false + + registry.npmmirror.com/he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/he/-/he-1.2.0.tgz} + name: he + version: 1.2.0 + hasBin: true + dev: false + + registry.npmmirror.com/heti-findandreplacedomtext@0.5.0: + resolution: {integrity: sha512-GFZjqU8LAdu1uR72GqrReI+lzNLMlcWtvdz1TKNJiofyo1mfTecFYSZEoEbcLcRMl+KwEldnNQoS4BwO8wtg0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/heti-findandreplacedomtext/-/heti-findandreplacedomtext-0.5.0.tgz} + name: heti-findandreplacedomtext + version: 0.5.0 + dev: false + + registry.npmmirror.com/heti@0.9.4: + resolution: {integrity: sha512-DI1A/R6VabM8wulXrGVbeHZNZ8jJUm+Pwn+PEYZcNBxAO+4mXWPEX+Xu9R/YrHETGcevNrLO34m/99ZCnFnlhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/heti/-/heti-0.9.4.tgz} + name: heti + version: 0.9.4 + dependencies: + heti-findandreplacedomtext: registry.npmmirror.com/heti-findandreplacedomtext@0.5.0 + dev: false + + registry.npmmirror.com/highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz} + name: highlight.js + version: 10.7.3 + dev: false + + registry.npmmirror.com/history@5.3.0: + resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/history/-/history-5.3.0.tgz} + name: history + version: 5.3.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + registry.npmmirror.com/hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz} + name: hmac-drbg + version: 1.0.1 + dependencies: + hash.js: registry.npmmirror.com/hash.js@1.1.7 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + minimalistic-crypto-utils: registry.npmmirror.com/minimalistic-crypto-utils@1.0.1 + dev: false + + registry.npmmirror.com/hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz} + name: hoist-non-react-statics + version: 3.3.2 + dependencies: + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + + registry.npmmirror.com/homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz} + name: homedir-polyfill + version: 1.0.3 + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: registry.npmmirror.com/parse-passwd@1.0.0 + dev: false + + registry.npmmirror.com/hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz} + name: hosted-git-info + version: 2.8.9 + dev: false + + registry.npmmirror.com/hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz} + name: hosted-git-info + version: 4.1.0 + engines: {node: '>=10'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: false + + registry.npmmirror.com/hosted-git-info@6.1.1: + resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz} + name: hosted-git-info + version: 6.1.1 + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@7.18.3 + dev: false + + registry.npmmirror.com/hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz} + name: hpack.js + version: 2.1.6 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + obuf: registry.npmmirror.com/obuf@1.1.2 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + wbuf: registry.npmmirror.com/wbuf@1.7.3 + dev: false + + registry.npmmirror.com/htm@3.1.1: + resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htm/-/htm-3.1.1.tgz} + name: htm + version: 3.1.1 + dev: false + + registry.npmmirror.com/html-entities@2.4.0: + resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-entities/-/html-entities-2.4.0.tgz} + name: html-entities + version: 2.4.0 + dev: false + + registry.npmmirror.com/html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz} + name: html-minifier-terser + version: 6.1.0 + engines: {node: '>=12'} + hasBin: true + dependencies: + camel-case: registry.npmmirror.com/camel-case@4.1.2 + clean-css: registry.npmmirror.com/clean-css@5.3.3 + commander: registry.npmmirror.com/commander@8.3.0 + he: registry.npmmirror.com/he@1.2.0 + param-case: registry.npmmirror.com/param-case@3.0.4 + relateurl: registry.npmmirror.com/relateurl@0.2.7 + terser: registry.npmmirror.com/terser@5.24.0 + dev: false + + registry.npmmirror.com/html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz} + name: html-tags + version: 3.3.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-to-text/-/html-to-text-9.0.5.tgz} + name: html-to-text + version: 9.0.5 + engines: {node: '>=14'} + dependencies: + '@selderee/plugin-htmlparser2': registry.npmmirror.com/@selderee/plugin-htmlparser2@0.11.0 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + dom-serializer: registry.npmmirror.com/dom-serializer@2.0.0 + htmlparser2: registry.npmmirror.com/htmlparser2@8.0.2 + selderee: registry.npmmirror.com/selderee@0.11.0 + dev: false + + registry.npmmirror.com/html-tokenize@2.0.1: + resolution: {integrity: sha512-QY6S+hZ0f5m1WT8WffYN+Hg+xm/w5I8XeUcAq/ZYP5wVC8xbKi4Whhru3FtrAebD5EhBW8rmFzkDI6eCAuFe2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-tokenize/-/html-tokenize-2.0.1.tgz} + name: html-tokenize + version: 2.0.1 + hasBin: true + dependencies: + buffer-from: registry.npmmirror.com/buffer-from@0.1.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimist: registry.npmmirror.com/minimist@1.2.8 + readable-stream: registry.npmmirror.com/readable-stream@1.0.34 + through2: registry.npmmirror.com/through2@0.4.2 + dev: false + + registry.npmmirror.com/html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz} + name: html-void-elements + version: 2.0.1 + dev: false + + registry.npmmirror.com/html-webpack-plugin@5.5.0(webpack@5.89.0): + resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz} + id: registry.npmmirror.com/html-webpack-plugin/5.5.0 + name: html-webpack-plugin + version: 5.5.0 + engines: {node: '>=10.13.0'} + peerDependencies: + webpack: ^5.20.0 + dependencies: + '@types/html-minifier-terser': registry.npmmirror.com/@types/html-minifier-terser@6.1.0 + html-minifier-terser: registry.npmmirror.com/html-minifier-terser@6.1.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + pretty-error: registry.npmmirror.com/pretty-error@4.0.0 + tapable: registry.npmmirror.com/tapable@2.2.1 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/html2sketch@1.0.2: + resolution: {integrity: sha512-/P9NcVH9yBhrOkcnaFkAbWJifDO8Ii+CTIxy9gE6trSQvo2OH++TKQIP5MICEoWvgXpVhZ6botj7P63Krl1/gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html2sketch/-/html2sketch-1.0.2.tgz} + name: html2sketch + version: 1.0.2 + engines: {node: '>=14.0.0'} + dependencies: + '@sketch-hq/sketch-file-format-ts': registry.npmmirror.com/@sketch-hq/sketch-file-format-ts@6.5.0 + color: registry.npmmirror.com/color@3.2.1 + css: registry.npmmirror.com/css@3.0.0 + svg-pathdata: registry.npmmirror.com/svg-pathdata@5.0.5 + svgo-browser: registry.npmmirror.com/svgo-browser@1.3.8 + svgson: registry.npmmirror.com/svgson@4.1.0 + transformation-matrix: registry.npmmirror.com/transformation-matrix@2.15.0 + uuid: registry.npmmirror.com/uuid@8.3.2 + dev: false + + registry.npmmirror.com/htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz} + name: htmlparser2 + version: 6.1.0 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@4.3.1 + domutils: registry.npmmirror.com/domutils@2.8.0 + entities: registry.npmmirror.com/entities@2.2.0 + dev: false + + registry.npmmirror.com/htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz} + name: htmlparser2 + version: 8.0.2 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@5.0.3 + domutils: registry.npmmirror.com/domutils@3.1.0 + entities: registry.npmmirror.com/entities@4.5.0 + dev: false + + registry.npmmirror.com/http-cache-semantics@3.8.1: + resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz} + name: http-cache-semantics + version: 3.8.1 + dev: false + + registry.npmmirror.com/http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz} + name: http-deceiver + version: 1.2.7 + dev: false + + registry.npmmirror.com/http-proxy-agent@2.1.0: + resolution: {integrity: sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz} + name: http-proxy-agent + version: 2.1.0 + engines: {node: '>= 4.5.0'} + dependencies: + agent-base: registry.npmmirror.com/agent-base@4.3.0 + debug: registry.npmmirror.com/debug@3.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/https-browserify@1.0.0: + resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/https-browserify/-/https-browserify-1.0.0.tgz} + name: https-browserify + version: 1.0.0 + dev: false + + registry.npmmirror.com/https-proxy-agent@2.2.4: + resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz} + name: https-proxy-agent + version: 2.2.4 + engines: {node: '>= 4.5.0'} + dependencies: + agent-base: registry.npmmirror.com/agent-base@4.3.0 + debug: registry.npmmirror.com/debug@3.2.7 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz} + name: human-signals + version: 2.1.0 + engines: {node: '>=10.17.0'} + dev: false + + registry.npmmirror.com/human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz} + name: human-signals + version: 4.3.1 + engines: {node: '>=14.18.0'} + dev: false + + registry.npmmirror.com/humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz} + name: humanize-ms + version: 1.2.1 + dependencies: + ms: registry.npmmirror.com/ms@2.1.3 + dev: false + + registry.npmmirror.com/humps@2.0.1: + resolution: {integrity: sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/humps/-/humps-2.0.1.tgz} + name: humps + version: 2.0.1 + dev: false + + registry.npmmirror.com/iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz} + name: iconv-lite + version: 0.4.24 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 + dev: false + + registry.npmmirror.com/iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz} + name: iconv-lite + version: 0.6.3 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 + dev: false + + registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz} + id: registry.npmmirror.com/icss-utils/5.1.0 + name: icss-utils + version: 5.1.0 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/identity-obj-proxy@3.0.0: + resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz} + name: identity-obj-proxy + version: 3.0.0 + engines: {node: '>=4'} + dependencies: + harmony-reflect: registry.npmmirror.com/harmony-reflect@1.6.2 + dev: false + + registry.npmmirror.com/ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz} + name: ieee754 + version: 1.2.1 + dev: false + + registry.npmmirror.com/iferr@0.1.5: + resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iferr/-/iferr-0.1.5.tgz} + name: iferr + version: 0.1.5 + dev: false + + registry.npmmirror.com/ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ignore/-/ignore-5.3.0.tgz} + name: ignore + version: 5.3.0 + engines: {node: '>= 4'} + dev: false + + registry.npmmirror.com/image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz} + name: image-size + version: 0.5.5 + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + optional: true + + registry.npmmirror.com/image-size@0.8.3: + resolution: {integrity: sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.8.3.tgz} + name: image-size + version: 0.8.3 + engines: {node: '>=6.9.0'} + hasBin: true + dependencies: + queue: registry.npmmirror.com/queue@6.0.1 + dev: false + + registry.npmmirror.com/immutable@4.3.4: + resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz} + name: immutable + version: 4.3.4 + dev: false + + registry.npmmirror.com/import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz} + name: import-fresh + version: 3.3.0 + engines: {node: '>=6'} + dependencies: + parent-module: registry.npmmirror.com/parent-module@1.0.1 + resolve-from: registry.npmmirror.com/resolve-from@4.0.0 + dev: false + + registry.npmmirror.com/import-lazy@2.1.0: + resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-lazy/-/import-lazy-2.1.0.tgz} + name: import-lazy + version: 2.1.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-lazy/-/import-lazy-4.0.0.tgz} + name: import-lazy + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz} + name: imurmurhash + version: 0.1.4 + engines: {node: '>=0.8.19'} + dev: false + + registry.npmmirror.com/indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz} + name: indent-string + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once@1.4.0 + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: false + + registry.npmmirror.com/inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz} + name: inherits + version: 2.0.3 + dev: false + + registry.npmmirror.com/inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: false + + registry.npmmirror.com/ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz} + name: ini + version: 1.3.8 + dev: false + + registry.npmmirror.com/inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz} + name: inline-style-parser + version: 0.1.1 + dev: false + + registry.npmmirror.com/inquirer@6.5.2: + resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inquirer/-/inquirer-6.5.2.tgz} + name: inquirer + version: 6.5.2 + engines: {node: '>=6.0.0'} + dependencies: + ansi-escapes: registry.npmmirror.com/ansi-escapes@3.2.0 + chalk: registry.npmmirror.com/chalk@2.4.2 + cli-cursor: registry.npmmirror.com/cli-cursor@2.1.0 + cli-width: registry.npmmirror.com/cli-width@2.2.1 + external-editor: registry.npmmirror.com/external-editor@3.1.0 + figures: registry.npmmirror.com/figures@2.0.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + mute-stream: registry.npmmirror.com/mute-stream@0.0.7 + run-async: registry.npmmirror.com/run-async@2.4.1 + rxjs: registry.npmmirror.com/rxjs@6.6.7 + string-width: registry.npmmirror.com/string-width@2.1.1 + strip-ansi: registry.npmmirror.com/strip-ansi@5.2.0 + through: registry.npmmirror.com/through@2.3.8 + dev: false + + registry.npmmirror.com/internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.6.tgz} + name: internal-slot + version: 1.0.6 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + hasown: registry.npmmirror.com/hasown@2.0.0 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: false + + registry.npmmirror.com/intersection-observer@0.12.2: + resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/intersection-observer/-/intersection-observer-0.12.2.tgz} + name: intersection-observer + version: 0.12.2 + dev: false + + registry.npmmirror.com/intl-messageformat@10.5.8: + resolution: {integrity: sha512-NRf0jpBWV0vd671G5b06wNofAN8tp7WWDogMZyaU8GUAsmbouyvgwmFJI7zLjfAMpm3zK+vSwRP3jzaoIcMbaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/intl-messageformat/-/intl-messageformat-10.5.8.tgz} + name: intl-messageformat + version: 10.5.8 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/fast-memoize': registry.npmmirror.com/@formatjs/fast-memoize@2.2.0 + '@formatjs/icu-messageformat-parser': registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz} + name: invariant + version: 2.2.4 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + dev: false + + registry.npmmirror.com/ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ip/-/ip-1.1.8.tgz} + name: ip + version: 1.1.8 + dev: false + + registry.npmmirror.com/is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz} + name: is-alphabetical + version: 1.0.4 + dev: false + + registry.npmmirror.com/is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz} + name: is-alphabetical + version: 2.0.1 + dev: false + + registry.npmmirror.com/is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz} + name: is-alphanumerical + version: 1.0.4 + dependencies: + is-alphabetical: registry.npmmirror.com/is-alphabetical@1.0.4 + is-decimal: registry.npmmirror.com/is-decimal@1.0.4 + dev: false + + registry.npmmirror.com/is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz} + name: is-alphanumerical + version: 2.0.1 + dependencies: + is-alphabetical: registry.npmmirror.com/is-alphabetical@2.0.1 + is-decimal: registry.npmmirror.com/is-decimal@2.0.1 + dev: false + + registry.npmmirror.com/is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz} + name: is-arguments + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz} + name: is-array-buffer + version: 3.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} + name: is-arrayish + version: 0.2.1 + dev: false + + registry.npmmirror.com/is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz} + name: is-arrayish + version: 0.3.2 + dev: false + + registry.npmmirror.com/is-arrow-function@2.0.3: + resolution: {integrity: sha512-iDStzcT1FJMzx+TjCOK//uDugSe/Mif/8a+T0htydQ3qkJGvSweTZpVYz4hpJH0baloSPiAFQdA8WslAgJphvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrow-function/-/is-arrow-function-2.0.3.tgz} + name: is-arrow-function + version: 2.0.3 + engines: {node: '>= 0.4'} + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + dev: false + + registry.npmmirror.com/is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-async-function/-/is-async-function-2.0.0.tgz} + name: is-async-function + version: 2.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz} + name: is-bigint + version: 1.0.4 + dependencies: + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + dev: false + + registry.npmmirror.com/is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} + name: is-binary-path + version: 2.1.0 + engines: {node: '>=8'} + dependencies: + binary-extensions: registry.npmmirror.com/binary-extensions@2.2.0 + dev: false + + registry.npmmirror.com/is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz} + name: is-boolean-object + version: 1.1.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz} + name: is-buffer + version: 1.1.6 + dev: false + + registry.npmmirror.com/is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz} + name: is-buffer + version: 2.0.5 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} + name: is-callable + version: 1.2.7 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/is-ci@1.2.1: + resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz} + name: is-ci + version: 1.2.1 + hasBin: true + dependencies: + ci-info: registry.npmmirror.com/ci-info@1.6.0 + dev: false + + registry.npmmirror.com/is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz} + name: is-core-module + version: 2.13.1 + dependencies: + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} + name: is-date-object + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz} + name: is-decimal + version: 1.0.4 + dev: false + + registry.npmmirror.com/is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-decimal/-/is-decimal-2.0.1.tgz} + name: is-decimal + version: 2.0.1 + dev: false + + registry.npmmirror.com/is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz} + name: is-docker + version: 2.2.1 + engines: {node: '>=8'} + hasBin: true + dev: false + + registry.npmmirror.com/is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz} + name: is-docker + version: 3.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: false + + registry.npmmirror.com/is-equal@1.7.0: + resolution: {integrity: sha512-hErktGR9jmoYXNWlbrwGjc8eHh09mbY6TWSTTFtnMcKaCuSMN8z+Ni5ma/8mkbVpe4CbB7V6kN1MkCg9bCx5bA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-equal/-/is-equal-1.7.0.tgz} + name: is-equal + version: 1.7.0 + engines: {node: '>= 0.4'} + dependencies: + es-get-iterator: registry.npmmirror.com/es-get-iterator@1.1.3 + es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + is-arrow-function: registry.npmmirror.com/is-arrow-function@2.0.3 + is-bigint: registry.npmmirror.com/is-bigint@1.0.4 + is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-generator-function: registry.npmmirror.com/is-generator-function@1.0.10 + is-number-object: registry.npmmirror.com/is-number-object@1.0.7 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + isarray: registry.npmmirror.com/isarray@2.0.5 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + object.entries: registry.npmmirror.com/object.entries@1.1.7 + object.getprototypeof: registry.npmmirror.com/object.getprototypeof@1.0.5 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + which-collection: registry.npmmirror.com/which-collection@1.0.1 + dev: false + + registry.npmmirror.com/is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz} + name: is-extendable + version: 0.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz} + name: is-finalizationregistry + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: false + + registry.npmmirror.com/is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz} + name: is-fullwidth-code-point + version: 2.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} + name: is-fullwidth-code-point + version: 3.0.0 + engines: {node: '>=8'} + + registry.npmmirror.com/is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz} + name: is-generator-function + version: 1.0.10 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: registry.npmmirror.com/is-extglob@2.1.1 + dev: false + + registry.npmmirror.com/is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz} + name: is-hexadecimal + version: 1.0.4 + dev: false + + registry.npmmirror.com/is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz} + name: is-hexadecimal + version: 2.0.1 + dev: false + + registry.npmmirror.com/is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz} + name: is-inside-container + version: 1.0.0 + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: registry.npmmirror.com/is-docker@3.0.0 + dev: false + + registry.npmmirror.com/is-installed-globally@0.1.0: + resolution: {integrity: sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz} + name: is-installed-globally + version: 0.1.0 + engines: {node: '>=4'} + dependencies: + global-dirs: registry.npmmirror.com/global-dirs@0.1.1 + is-path-inside: registry.npmmirror.com/is-path-inside@1.0.1 + dev: false + + registry.npmmirror.com/is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-map/-/is-map-2.0.2.tgz} + name: is-map + version: 2.0.2 + dev: false + + registry.npmmirror.com/is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} + name: is-negative-zero + version: 2.0.2 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/is-npm@1.0.0: + resolution: {integrity: sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-npm/-/is-npm-1.0.0.tgz} + name: is-npm + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz} + name: is-number-object + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + dev: false + + registry.npmmirror.com/is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-obj/-/is-obj-1.0.1.tgz} + name: is-obj + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-path-inside@1.0.1: + resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-path-inside/-/is-path-inside-1.0.1.tgz} + name: is-path-inside + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + path-is-inside: registry.npmmirror.com/path-is-inside@1.0.2 + dev: false + + registry.npmmirror.com/is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz} + name: is-plain-obj + version: 1.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz} + name: is-plain-obj + version: 4.1.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz} + name: is-plain-object + version: 2.0.4 + engines: {node: '>=0.10.0'} + dependencies: + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: false + + registry.npmmirror.com/is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz} + name: is-plain-object + version: 5.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-redirect@1.0.0: + resolution: {integrity: sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-redirect/-/is-redirect-1.0.0.tgz} + name: is-redirect + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} + name: is-regex + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-retry-allowed@1.2.0: + resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz} + name: is-retry-allowed + version: 1.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-set/-/is-set-2.0.2.tgz} + name: is-set + version: 2.0.2 + dev: false + + registry.npmmirror.com/is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} + name: is-shared-array-buffer + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: false + + registry.npmmirror.com/is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz} + name: is-stream + version: 1.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz} + name: is-stream + version: 2.0.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz} + name: is-stream + version: 3.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + registry.npmmirror.com/is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz} + name: is-string + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz} + name: is-symbol + version: 1.0.4 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: false + + registry.npmmirror.com/is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz} + name: is-typed-array + version: 1.1.12 + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 + dev: false + + registry.npmmirror.com/is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.1.tgz} + name: is-weakmap + version: 2.0.1 + dev: false + + registry.npmmirror.com/is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz} + name: is-weakref + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: false + + registry.npmmirror.com/is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.2.tgz} + name: is-weakset + version: 2.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz} + name: is-what + version: 3.14.1 + dev: false + + registry.npmmirror.com/is-windows@0.2.0: + resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-windows/-/is-windows-0.2.0.tgz} + name: is-windows + version: 0.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-wsl@1.1.0: + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz} + name: is-wsl + version: 1.1.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz} + name: is-wsl + version: 2.2.0 + engines: {node: '>=8'} + dependencies: + is-docker: registry.npmmirror.com/is-docker@2.2.1 + dev: false + + registry.npmmirror.com/isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz} + name: isarray + version: 0.0.1 + dev: false + + registry.npmmirror.com/isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz} + name: isarray + version: 1.0.0 + dev: false + + registry.npmmirror.com/isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz} + name: isarray + version: 2.0.5 + dev: false + + registry.npmmirror.com/isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + dev: false + + registry.npmmirror.com/isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz} + name: isobject + version: 2.1.0 + engines: {node: '>=0.10.0'} + dependencies: + isarray: registry.npmmirror.com/isarray@1.0.0 + dev: false + + registry.npmmirror.com/isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz} + name: isobject + version: 3.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/isomorphic-unfetch@4.0.2: + resolution: {integrity: sha512-1Yd+CF/7al18/N2BDbsLBcp6RO3tucSW+jcLq24dqdX5MNbCNTw1z4BsGsp4zNmjr/Izm2cs/cEqZPp4kvWSCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isomorphic-unfetch/-/isomorphic-unfetch-4.0.2.tgz} + name: isomorphic-unfetch + version: 4.0.2 + dependencies: + node-fetch: registry.npmmirror.com/node-fetch@3.3.2 + unfetch: registry.npmmirror.com/unfetch@5.0.0 + dev: false + + registry.npmmirror.com/istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz} + name: istanbul-lib-coverage + version: 3.2.2 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz} + name: istanbul-lib-instrument + version: 5.2.1 + engines: {node: '>=8'} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema@0.1.3 + istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage@3.2.2 + semver: registry.npmmirror.com/semver@6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/istextorbinary@2.6.0: + resolution: {integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istextorbinary/-/istextorbinary-2.6.0.tgz} + name: istextorbinary + version: 2.6.0 + engines: {node: '>=0.12'} + dependencies: + binaryextensions: registry.npmmirror.com/binaryextensions@2.3.0 + editions: registry.npmmirror.com/editions@2.3.1 + textextensions: registry.npmmirror.com/textextensions@2.6.0 + dev: false + + registry.npmmirror.com/iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz} + name: iterator.prototype + version: 1.1.2 + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + reflect.getprototypeof: registry.npmmirror.com/reflect.getprototypeof@1.0.4 + set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + dev: false + + registry.npmmirror.com/jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz} + name: jest-haste-map + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 + '@types/graceful-fs': registry.npmmirror.com/@types/graceful-fs@4.1.9 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + anymatch: registry.npmmirror.com/anymatch@3.1.3 + fb-watchman: registry.npmmirror.com/fb-watchman@2.0.2 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-regex-util: registry.npmmirror.com/jest-regex-util@29.6.3 + jest-util: registry.npmmirror.com/jest-util@29.7.0 + jest-worker: registry.npmmirror.com/jest-worker@29.7.0 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + walker: registry.npmmirror.com/walker@1.0.8 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz} + name: jest-regex-util + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: false + + registry.npmmirror.com/jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-util/-/jest-util-29.7.0.tgz} + name: jest-util + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + chalk: registry.npmmirror.com/chalk@4.1.2 + ci-info: registry.npmmirror.com/ci-info@3.9.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + + registry.npmmirror.com/jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz} + name: jest-worker + version: 27.5.1 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + supports-color: registry.npmmirror.com/supports-color@8.1.1 + dev: false + + registry.npmmirror.com/jest-worker@29.4.3: + resolution: {integrity: sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-29.4.3.tgz} + name: jest-worker + version: 29.4.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + jest-util: registry.npmmirror.com/jest-util@29.7.0 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + supports-color: registry.npmmirror.com/supports-color@8.1.1 + dev: false + + registry.npmmirror.com/jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-29.7.0.tgz} + name: jest-worker + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + jest-util: registry.npmmirror.com/jest-util@29.7.0 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + supports-color: registry.npmmirror.com/supports-color@8.1.1 + dev: false + + registry.npmmirror.com/js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz} + name: js-cookie + version: 2.2.1 + dev: false + + registry.npmmirror.com/js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + dev: false + + registry.npmmirror.com/js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz} + name: js-yaml + version: 3.14.1 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse@1.0.10 + esprima: registry.npmmirror.com/esprima@4.0.1 + dev: false + + registry.npmmirror.com/js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} + name: js-yaml + version: 4.1.0 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse@2.0.1 + dev: false + + registry.npmmirror.com/jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz} + name: jsesc + version: 2.5.2 + engines: {node: '>=4'} + hasBin: true + dev: false + + registry.npmmirror.com/json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz} + name: json-buffer + version: 3.0.1 + dev: false + + registry.npmmirror.com/json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz} + name: json-parse-better-errors + version: 1.0.2 + dev: false + + registry.npmmirror.com/json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + name: json-parse-even-better-errors + version: 2.3.1 + dev: false + + registry.npmmirror.com/json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + dev: false + + registry.npmmirror.com/json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} + name: json-schema-traverse + version: 1.0.0 + dev: false + + registry.npmmirror.com/json2mq@0.2.0: + resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz} + name: json2mq + version: 0.2.0 + dependencies: + string-convert: registry.npmmirror.com/string-convert@0.2.1 + dev: false + + registry.npmmirror.com/json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} + name: json5 + version: 2.2.3 + engines: {node: '>=6'} + hasBin: true + dev: false + + registry.npmmirror.com/jsonfile@3.0.1: + resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-3.0.1.tgz} + name: jsonfile + version: 3.0.1 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: false + + registry.npmmirror.com/jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} + name: jsonfile + version: 6.1.0 + dependencies: + universalify: registry.npmmirror.com/universalify@2.0.1 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: false + + registry.npmmirror.com/jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz} + name: jsx-ast-utils + version: 3.3.5 + engines: {node: '>=4.0'} + dependencies: + array-includes: registry.npmmirror.com/array-includes@3.1.7 + array.prototype.flat: registry.npmmirror.com/array.prototype.flat@1.3.2 + object.assign: registry.npmmirror.com/object.assign@4.1.4 + object.values: registry.npmmirror.com/object.values@1.1.7 + dev: false + + registry.npmmirror.com/keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz} + name: keyv + version: 4.5.4 + dependencies: + json-buffer: registry.npmmirror.com/json-buffer@3.0.1 + dev: false + + registry.npmmirror.com/kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz} + name: kind-of + version: 3.2.2 + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: registry.npmmirror.com/is-buffer@1.1.6 + dev: false + + registry.npmmirror.com/kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz} + name: kind-of + version: 6.0.3 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz} + name: kleur + version: 4.1.5 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/known-css-properties@0.26.0: + resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/known-css-properties/-/known-css-properties-0.26.0.tgz} + name: known-css-properties + version: 0.26.0 + dev: false + + registry.npmmirror.com/kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz} + name: kolorist + version: 1.8.0 + dev: false + + registry.npmmirror.com/latest-version@3.1.0: + resolution: {integrity: sha512-Be1YRHWWlZaSsrz2U+VInk+tO0EwLIyV+23RhWLINJYwg/UIikxjlj3MhH37/6/EDCAusjajvMkMMUXRaMWl/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/latest-version/-/latest-version-3.1.0.tgz} + name: latest-version + version: 3.1.0 + engines: {node: '>=4'} + dependencies: + package-json: registry.npmmirror.com/package-json@4.0.1 + dev: false + + registry.npmmirror.com/lazy-cache@1.0.4: + resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz} + name: lazy-cache + version: 1.0.4 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/leac/-/leac-0.6.0.tgz} + name: leac + version: 0.6.0 + dev: false + + registry.npmmirror.com/less-plugin-resolve@1.0.2: + resolution: {integrity: sha512-e1AHq0XNTU8S3d9JCc8CFYajoUBr0EK3pcuLT5PogyBBeE0knzZJL105kKKSZWfq2lQLq3/uEDrMK3JPq+fHaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/less-plugin-resolve/-/less-plugin-resolve-1.0.2.tgz} + name: less-plugin-resolve + version: 1.0.2 + dependencies: + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 + dev: false + + registry.npmmirror.com/less@4.1.3: + resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/less/-/less-4.1.3.tgz} + name: less + version: 4.1.3 + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: registry.npmmirror.com/copy-anything@2.0.6 + parse-node-version: registry.npmmirror.com/parse-node-version@1.0.1 + tslib: registry.npmmirror.com/tslib@2.6.2 + optionalDependencies: + errno: registry.npmmirror.com/errno@0.1.8 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + image-size: registry.npmmirror.com/image-size@0.5.5 + make-dir: registry.npmmirror.com/make-dir@2.1.0 + mime: registry.npmmirror.com/mime@1.6.0 + needle: registry.npmmirror.com/needle@3.2.0 + source-map: registry.npmmirror.com/source-map@0.6.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/lightningcss-darwin-arm64@1.22.1: + resolution: {integrity: sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz} + name: lightningcss-darwin-arm64 + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-darwin-x64@1.22.1: + resolution: {integrity: sha512-5p2rnlVTv6Gpw4PlTLq925nTVh+HFh4MpegX8dPDYJae+NFVjQ67gY7O6iHIzQjLipDiYejFF0yHrhjU3XgLBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.22.1.tgz} + name: lightningcss-darwin-x64 + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-freebsd-x64@1.22.1: + resolution: {integrity: sha512-1FaBtcFrZqB2hkFbAxY//Pnp8koThvyB6AhjbdVqKD4/pu13Rl91fKt2N9qyeQPUt3xy7ORUvSO+dPk3J6EjXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.22.1.tgz} + name: lightningcss-freebsd-x64 + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-arm-gnueabihf@1.22.1: + resolution: {integrity: sha512-6rub98tYGfE5I5j0BP8t/2d4BZyu1S7Iz9vUkm0H26snAFHYxLfj3RbQn0xHHIePSetjLnhcg3QlfwUAkD/FYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.22.1.tgz} + name: lightningcss-linux-arm-gnueabihf + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-arm64-gnu@1.22.1: + resolution: {integrity: sha512-nYO5qGtb/1kkTZu3FeTiM+2B2TAb7m2DkLCTgQIs2bk2o9aEs7I96fwySKcoHWQAiQDGR9sMux9vkV4KQXqPaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.22.1.tgz} + name: lightningcss-linux-arm64-gnu + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-arm64-musl@1.22.1: + resolution: {integrity: sha512-MCV6RuRpzXbunvzwY644iz8cw4oQxvW7oer9xPkdadYqlEyiJJ6wl7FyJOH7Q6ZYH4yjGAUCvxDBxPbnDu9ZVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.22.1.tgz} + name: lightningcss-linux-arm64-musl + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-x64-gnu@1.22.1: + resolution: {integrity: sha512-RjNgpdM20VUXgV7us/VmlO3Vn2ZRiDnc3/bUxCVvySZWPiVPprpqW/QDWuzkGa+NCUf6saAM5CLsZLSxncXJwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz} + name: lightningcss-linux-x64-gnu + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-x64-musl@1.22.1: + resolution: {integrity: sha512-ZgO4C7Rd6Hv/5MnyY2KxOYmIlzk4rplVolDt3NbkNR8DndnyX0Q5IR4acJWNTBICQ21j3zySzKbcJaiJpk/4YA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.22.1.tgz} + name: lightningcss-linux-x64-musl + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-win32-x64-msvc@1.22.1: + resolution: {integrity: sha512-4pozV4eyD0MDET41ZLHAeBo+H04Nm2UEYIk5w/ts40231dRFV7E0cjwbnZvSoc1DXFgecAhiC0L16ruv/ZDCpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.22.1.tgz} + name: lightningcss-win32-x64-msvc + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss@1.22.1: + resolution: {integrity: sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss/-/lightningcss-1.22.1.tgz} + name: lightningcss + version: 1.22.1 + engines: {node: '>= 12.0.0'} + dependencies: + detect-libc: registry.npmmirror.com/detect-libc@1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: registry.npmmirror.com/lightningcss-darwin-arm64@1.22.1 + lightningcss-darwin-x64: registry.npmmirror.com/lightningcss-darwin-x64@1.22.1 + lightningcss-freebsd-x64: registry.npmmirror.com/lightningcss-freebsd-x64@1.22.1 + lightningcss-linux-arm-gnueabihf: registry.npmmirror.com/lightningcss-linux-arm-gnueabihf@1.22.1 + lightningcss-linux-arm64-gnu: registry.npmmirror.com/lightningcss-linux-arm64-gnu@1.22.1 + lightningcss-linux-arm64-musl: registry.npmmirror.com/lightningcss-linux-arm64-musl@1.22.1 + lightningcss-linux-x64-gnu: registry.npmmirror.com/lightningcss-linux-x64-gnu@1.22.1 + lightningcss-linux-x64-musl: registry.npmmirror.com/lightningcss-linux-x64-musl@1.22.1 + lightningcss-win32-x64-msvc: registry.npmmirror.com/lightningcss-win32-x64-msvc@1.22.1 + dev: false + + registry.npmmirror.com/lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + name: lines-and-columns + version: 1.2.4 + dev: false + + registry.npmmirror.com/loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz} + name: loader-runner + version: 4.3.0 + engines: {node: '>=6.11.5'} + dev: false + + registry.npmmirror.com/loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz} + name: loader-utils + version: 2.0.4 + engines: {node: '>=8.9.0'} + dependencies: + big.js: registry.npmmirror.com/big.js@5.2.2 + emojis-list: registry.npmmirror.com/emojis-list@3.0.0 + json5: registry.npmmirror.com/json5@2.2.3 + dev: false + + registry.npmmirror.com/local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz} + name: local-pkg + version: 0.4.3 + engines: {node: '>=14'} + dev: false + + registry.npmmirror.com/locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz} + name: locate-path + version: 5.0.0 + engines: {node: '>=8'} + dependencies: + p-locate: registry.npmmirror.com/p-locate@4.1.0 + dev: false + + registry.npmmirror.com/locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz} + name: locate-path + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + p-locate: registry.npmmirror.com/p-locate@5.0.0 + dev: false + + registry.npmmirror.com/lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz} + name: lodash.debounce + version: 4.0.8 + dev: false + + registry.npmmirror.com/lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz} + name: lodash.throttle + version: 4.1.1 + dev: false + + registry.npmmirror.com/lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz} + name: lodash.truncate + version: 4.4.2 + dev: false + + registry.npmmirror.com/lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + dev: false + + registry.npmmirror.com/log-symbols@2.2.0: + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-symbols/-/log-symbols-2.2.0.tgz} + name: log-symbols + version: 2.2.0 + engines: {node: '>=4'} + dependencies: + chalk: registry.npmmirror.com/chalk@2.4.2 + dev: false + + registry.npmmirror.com/longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz} + name: longest-streak + version: 3.1.0 + dev: false + + registry.npmmirror.com/loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz} + name: loose-envify + version: 1.4.0 + hasBin: true + dependencies: + js-tokens: registry.npmmirror.com/js-tokens@4.0.0 + dev: false + + registry.npmmirror.com/lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz} + name: lower-case + version: 2.0.2 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz} + name: lowercase-keys + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/lowlight@1.20.0: + resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lowlight/-/lowlight-1.20.0.tgz} + name: lowlight + version: 1.20.0 + dependencies: + fault: registry.npmmirror.com/fault@1.0.4 + highlight.js: registry.npmmirror.com/highlight.js@10.7.3 + dev: false + + registry.npmmirror.com/lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz} + name: lru-cache + version: 4.1.5 + dependencies: + pseudomap: registry.npmmirror.com/pseudomap@1.0.2 + yallist: registry.npmmirror.com/yallist@2.1.2 + dev: false + + registry.npmmirror.com/lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz} + name: lru-cache + version: 5.1.1 + dependencies: + yallist: registry.npmmirror.com/yallist@3.1.1 + dev: false + + registry.npmmirror.com/lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmmirror.com/yallist@4.0.0 + dev: false + + registry.npmmirror.com/lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-7.18.3.tgz} + name: lru-cache + version: 7.18.3 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lz-string/-/lz-string-1.5.0.tgz} + name: lz-string + version: 1.5.0 + hasBin: true + dev: false + + registry.npmmirror.com/make-dir@1.3.0: + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-1.3.0.tgz} + name: make-dir + version: 1.3.0 + engines: {node: '>=4'} + dependencies: + pify: registry.npmmirror.com/pify@3.0.0 + dev: false + + registry.npmmirror.com/make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz} + name: make-dir + version: 2.1.0 + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.2 + optional: true + + registry.npmmirror.com/make-fetch-happen@2.6.0: + resolution: {integrity: sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz} + name: make-fetch-happen + version: 2.6.0 + dependencies: + agentkeepalive: registry.npmmirror.com/agentkeepalive@3.5.2 + cacache: registry.npmmirror.com/cacache@10.0.4 + http-cache-semantics: registry.npmmirror.com/http-cache-semantics@3.8.1 + http-proxy-agent: registry.npmmirror.com/http-proxy-agent@2.1.0 + https-proxy-agent: registry.npmmirror.com/https-proxy-agent@2.2.4 + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + mississippi: registry.npmmirror.com/mississippi@1.3.1 + node-fetch-npm: registry.npmmirror.com/node-fetch-npm@2.0.4 + promise-retry: registry.npmmirror.com/promise-retry@1.1.1 + socks-proxy-agent: registry.npmmirror.com/socks-proxy-agent@3.0.1 + ssri: registry.npmmirror.com/ssri@5.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz} + name: makeerror + version: 1.0.12 + dependencies: + tmpl: registry.npmmirror.com/tmpl@1.0.5 + dev: false + + registry.npmmirror.com/map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz} + name: map-obj + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-4.3.0.tgz} + name: map-obj + version: 4.3.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz} + name: markdown-table + version: 3.0.3 + dev: false + + registry.npmmirror.com/mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz} + name: mathml-tag-names + version: 2.1.3 + dev: false + + registry.npmmirror.com/md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz} + name: md5.js + version: 1.3.5 + dependencies: + hash-base: registry.npmmirror.com/hash-base@3.1.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/mdast-util-definitions@5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz} + name: mdast-util-definitions + version: 5.1.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + + registry.npmmirror.com/mdast-util-directive@2.2.4: + resolution: {integrity: sha512-sK3ojFP+jpj1n7Zo5ZKvoxP1MvLyzVG63+gm40Z/qI00avzdPCYxt7RBMgofwAva9gBjbDBWVRB/i+UD+fUCzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-directive/-/mdast-util-directive-2.2.4.tgz} + name: mdast-util-directive + version: 2.2.4 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + parse-entities: registry.npmmirror.com/parse-entities@4.0.1 + stringify-entities: registry.npmmirror.com/stringify-entities@4.0.3 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-find-and-replace@2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz} + name: mdast-util-find-and-replace + version: 2.2.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@5.0.0 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + dev: false + + registry.npmmirror.com/mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz} + name: mdast-util-from-markdown + version: 1.3.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string@3.2.0 + micromark: registry.npmmirror.com/micromark@3.2.0 + micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0 + micromark-util-decode-string: registry.npmmirror.com/micromark-util-decode-string@1.1.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 + uvu: registry.npmmirror.com/uvu@0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-frontmatter@1.0.1: + resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz} + name: mdast-util-frontmatter + version: 1.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + micromark-extension-frontmatter: registry.npmmirror.com/micromark-extension-frontmatter@1.1.1 + dev: false + + registry.npmmirror.com/mdast-util-gfm-autolink-literal@1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz} + name: mdast-util-gfm-autolink-literal + version: 1.0.3 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + ccount: registry.npmmirror.com/ccount@2.0.1 + mdast-util-find-and-replace: registry.npmmirror.com/mdast-util-find-and-replace@2.2.2 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-footnote@1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz} + name: mdast-util-gfm-footnote + version: 1.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-strikethrough@1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz} + name: mdast-util-gfm-strikethrough + version: 1.0.3 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-table@1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz} + name: mdast-util-gfm-table + version: 1.0.7 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + markdown-table: registry.npmmirror.com/markdown-table@3.0.3 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-gfm-task-list-item@1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz} + name: mdast-util-gfm-task-list-item + version: 1.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm@2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz} + name: mdast-util-gfm + version: 2.0.2 + dependencies: + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-gfm-autolink-literal: registry.npmmirror.com/mdast-util-gfm-autolink-literal@1.0.3 + mdast-util-gfm-footnote: registry.npmmirror.com/mdast-util-gfm-footnote@1.0.2 + mdast-util-gfm-strikethrough: registry.npmmirror.com/mdast-util-gfm-strikethrough@1.0.3 + mdast-util-gfm-table: registry.npmmirror.com/mdast-util-gfm-table@1.0.7 + mdast-util-gfm-task-list-item: registry.npmmirror.com/mdast-util-gfm-task-list-item@1.0.2 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-mdx-expression@1.3.2: + resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz} + name: mdast-util-mdx-expression + version: 1.3.2 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-mdxjs-esm@1.3.1: + resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz} + name: mdast-util-mdxjs-esm + version: 1.3.1 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz} + name: mdast-util-phrasing + version: 3.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + dev: false + + registry.npmmirror.com/mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz} + name: mdast-util-to-hast + version: 12.3.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-definitions: registry.npmmirror.com/mdast-util-definitions@5.1.2 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 + trim-lines: registry.npmmirror.com/trim-lines@3.0.1 + unist-util-generated: registry.npmmirror.com/unist-util-generated@2.0.1 + unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + + registry.npmmirror.com/mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz} + name: mdast-util-to-markdown + version: 1.5.0 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + longest-streak: registry.npmmirror.com/longest-streak@3.1.0 + mdast-util-phrasing: registry.npmmirror.com/mdast-util-phrasing@3.0.1 + mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string@3.2.0 + micromark-util-decode-string: registry.npmmirror.com/micromark-util-decode-string@1.1.0 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz} + name: mdast-util-to-string + version: 3.2.0 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + dev: false + + registry.npmmirror.com/mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz} + name: mdn-data + version: 2.0.14 + dev: false + + registry.npmmirror.com/mdn-data@2.0.4: + resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz} + name: mdn-data + version: 2.0.4 + dev: false + + registry.npmmirror.com/memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz} + name: memfs + version: 3.5.3 + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: registry.npmmirror.com/fs-monkey@1.0.5 + dev: false + + registry.npmmirror.com/meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/meow/-/meow-9.0.0.tgz} + name: meow + version: 9.0.0 + engines: {node: '>=10'} + dependencies: + '@types/minimist': registry.npmmirror.com/@types/minimist@1.2.5 + camelcase-keys: registry.npmmirror.com/camelcase-keys@6.2.2 + decamelize: registry.npmmirror.com/decamelize@1.2.0 + decamelize-keys: registry.npmmirror.com/decamelize-keys@1.1.1 + hard-rejection: registry.npmmirror.com/hard-rejection@2.1.0 + minimist-options: registry.npmmirror.com/minimist-options@4.1.0 + normalize-package-data: registry.npmmirror.com/normalize-package-data@3.0.3 + read-pkg-up: registry.npmmirror.com/read-pkg-up@7.0.1 + redent: registry.npmmirror.com/redent@3.0.0 + trim-newlines: registry.npmmirror.com/trim-newlines@3.0.1 + type-fest: registry.npmmirror.com/type-fest@0.18.1 + yargs-parser: registry.npmmirror.com/yargs-parser@20.2.9 + dev: false + + registry.npmmirror.com/merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} + name: merge-stream + version: 2.0.0 + dev: false + + registry.npmmirror.com/merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + dev: false + + registry.npmmirror.com/micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz} + name: micromark-core-commonmark + version: 1.1.0 + dependencies: + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + micromark-factory-destination: registry.npmmirror.com/micromark-factory-destination@1.1.0 + micromark-factory-label: registry.npmmirror.com/micromark-factory-label@1.1.0 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-factory-title: registry.npmmirror.com/micromark-factory-title@1.1.0 + micromark-factory-whitespace: registry.npmmirror.com/micromark-factory-whitespace@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-classify-character: registry.npmmirror.com/micromark-util-classify-character@1.1.0 + micromark-util-html-tag-name: registry.npmmirror.com/micromark-util-html-tag-name@1.2.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all@1.1.0 + micromark-util-subtokenize: registry.npmmirror.com/micromark-util-subtokenize@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-directive@2.2.1: + resolution: {integrity: sha512-ZFKZkNaEqAP86IghX1X7sE8NNnx6kFNq9mSBRvEHjArutTCJZ3LYg6VH151lXVb1JHpmIcW/7rX25oMoIHuSug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-directive/-/micromark-extension-directive-2.2.1.tgz} + name: micromark-extension-directive + version: 2.2.1 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-factory-whitespace: registry.npmmirror.com/micromark-factory-whitespace@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + parse-entities: registry.npmmirror.com/parse-entities@4.0.1 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-frontmatter@1.1.1: + resolution: {integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.1.1.tgz} + name: micromark-extension-frontmatter + version: 1.1.1 + dependencies: + fault: registry.npmmirror.com/fault@2.0.1 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-autolink-literal@1.0.5: + resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz} + name: micromark-extension-gfm-autolink-literal + version: 1.0.5 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-footnote@1.1.2: + resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz} + name: micromark-extension-gfm-footnote + version: 1.1.2 + dependencies: + micromark-core-commonmark: registry.npmmirror.com/micromark-core-commonmark@1.1.0 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-strikethrough@1.0.7: + resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz} + name: micromark-extension-gfm-strikethrough + version: 1.0.7 + dependencies: + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-classify-character: registry.npmmirror.com/micromark-util-classify-character@1.1.0 + micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-table@1.0.7: + resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz} + name: micromark-extension-gfm-table + version: 1.0.7 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-tagfilter@1.0.2: + resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz} + name: micromark-extension-gfm-tagfilter + version: 1.0.2 + dependencies: + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-task-list-item@1.0.5: + resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz} + name: micromark-extension-gfm-task-list-item + version: 1.0.5 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm@2.0.3: + resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz} + name: micromark-extension-gfm + version: 2.0.3 + dependencies: + micromark-extension-gfm-autolink-literal: registry.npmmirror.com/micromark-extension-gfm-autolink-literal@1.0.5 + micromark-extension-gfm-footnote: registry.npmmirror.com/micromark-extension-gfm-footnote@1.1.2 + micromark-extension-gfm-strikethrough: registry.npmmirror.com/micromark-extension-gfm-strikethrough@1.0.7 + micromark-extension-gfm-table: registry.npmmirror.com/micromark-extension-gfm-table@1.0.7 + micromark-extension-gfm-tagfilter: registry.npmmirror.com/micromark-extension-gfm-tagfilter@1.0.2 + micromark-extension-gfm-task-list-item: registry.npmmirror.com/micromark-extension-gfm-task-list-item@1.0.5 + micromark-util-combine-extensions: registry.npmmirror.com/micromark-util-combine-extensions@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz} + name: micromark-factory-destination + version: 1.1.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz} + name: micromark-factory-label + version: 1.1.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz} + name: micromark-factory-space + version: 1.1.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz} + name: micromark-factory-title + version: 1.1.0 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz} + name: micromark-factory-whitespace + version: 1.1.0 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz} + name: micromark-util-character + version: 1.2.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz} + name: micromark-util-chunked + version: 1.1.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz} + name: micromark-util-classify-character + version: 1.1.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz} + name: micromark-util-combine-extensions + version: 1.1.0 + dependencies: + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz} + name: micromark-util-decode-numeric-character-reference + version: 1.1.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz} + name: micromark-util-decode-string + version: 1.1.0 + dependencies: + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz} + name: micromark-util-encode + version: 1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz} + name: micromark-util-html-tag-name + version: 1.2.0 + dev: false + + registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz} + name: micromark-util-normalize-identifier + version: 1.1.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz} + name: micromark-util-resolve-all + version: 1.1.0 + dependencies: + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz} + name: micromark-util-sanitize-uri + version: 1.2.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-encode: registry.npmmirror.com/micromark-util-encode@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz} + name: micromark-util-subtokenize + version: 1.1.0 + dependencies: + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz} + name: micromark-util-symbol + version: 1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz} + name: micromark-util-types + version: 1.1.0 + dev: false + + registry.npmmirror.com/micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark/-/micromark-3.2.0.tgz} + name: micromark + version: 3.2.0 + dependencies: + '@types/debug': registry.npmmirror.com/@types/debug@4.1.12 + debug: registry.npmmirror.com/debug@4.3.4 + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + micromark-core-commonmark: registry.npmmirror.com/micromark-core-commonmark@1.1.0 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-combine-extensions: registry.npmmirror.com/micromark-util-combine-extensions@1.1.0 + micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0 + micromark-util-encode: registry.npmmirror.com/micromark-util-encode@1.1.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all@1.1.0 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 + micromark-util-subtokenize: registry.npmmirror.com/micromark-util-subtokenize@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmmirror.com/braces@3.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + + registry.npmmirror.com/miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/miller-rabin/-/miller-rabin-4.0.1.tgz} + name: miller-rabin + version: 4.0.1 + hasBin: true + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + brorand: registry.npmmirror.com/brorand@1.1.0 + dev: false + + registry.npmmirror.com/mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} + name: mime-db + version: 1.52.0 + engines: {node: '>= 0.6'} + dev: false + + registry.npmmirror.com/mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz} + name: mime-types + version: 2.1.35 + engines: {node: '>= 0.6'} + dependencies: + mime-db: registry.npmmirror.com/mime-db@1.52.0 + dev: false + + registry.npmmirror.com/mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz} + name: mime + version: 1.6.0 + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + optional: true + + registry.npmmirror.com/mimer@1.1.0: + resolution: {integrity: sha512-y9dVfy2uiycQvDNiAYW6zp49ZhFlXDMr5wfdOiMbdzGM/0N5LNR6HTUn3un+WUQcM0koaw8FMTG1bt5EnHJdvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimer/-/mimer-1.1.0.tgz} + name: mimer + version: 1.1.0 + engines: {node: '>= 6.0'} + hasBin: true + dev: false + + registry.npmmirror.com/mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz} + name: mimic-fn + version: 1.2.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz} + name: mimic-fn + version: 2.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz} + name: mimic-fn + version: 4.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz} + name: min-indent + version: 1.0.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz} + name: minimalistic-assert + version: 1.0.1 + dev: false + + registry.npmmirror.com/minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz} + name: minimalistic-crypto-utils + version: 1.0.1 + dev: false + + registry.npmmirror.com/minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + dev: false + + registry.npmmirror.com/minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist-options/-/minimist-options-4.1.0.tgz} + name: minimist-options + version: 4.1.0 + engines: {node: '>= 6'} + dependencies: + arrify: registry.npmmirror.com/arrify@1.0.1 + is-plain-obj: registry.npmmirror.com/is-plain-obj@1.1.0 + kind-of: registry.npmmirror.com/kind-of@6.0.3 + dev: false + + registry.npmmirror.com/minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} + name: minimist + version: 1.2.8 + dev: false + + registry.npmmirror.com/mississippi@1.3.1: + resolution: {integrity: sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mississippi/-/mississippi-1.3.1.tgz} + name: mississippi + version: 1.3.1 + dependencies: + concat-stream: registry.npmmirror.com/concat-stream@1.6.2 + duplexify: registry.npmmirror.com/duplexify@3.7.1 + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + flush-write-stream: registry.npmmirror.com/flush-write-stream@1.1.1 + from2: registry.npmmirror.com/from2@2.3.0 + parallel-transform: registry.npmmirror.com/parallel-transform@1.2.0 + pump: registry.npmmirror.com/pump@1.0.3 + pumpify: registry.npmmirror.com/pumpify@1.5.1 + stream-each: registry.npmmirror.com/stream-each@1.2.3 + through2: registry.npmmirror.com/through2@2.0.5 + dev: false + + registry.npmmirror.com/mississippi@2.0.0: + resolution: {integrity: sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mississippi/-/mississippi-2.0.0.tgz} + name: mississippi + version: 2.0.0 + engines: {node: '>=4.0.0'} + dependencies: + concat-stream: registry.npmmirror.com/concat-stream@1.6.2 + duplexify: registry.npmmirror.com/duplexify@3.7.1 + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + flush-write-stream: registry.npmmirror.com/flush-write-stream@1.1.1 + from2: registry.npmmirror.com/from2@2.3.0 + parallel-transform: registry.npmmirror.com/parallel-transform@1.2.0 + pump: registry.npmmirror.com/pump@2.0.1 + pumpify: registry.npmmirror.com/pumpify@1.5.1 + stream-each: registry.npmmirror.com/stream-each@1.2.3 + through2: registry.npmmirror.com/through2@2.0.5 + dev: false + + registry.npmmirror.com/mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz} + name: mkdirp + version: 0.5.6 + hasBin: true + dependencies: + minimist: registry.npmmirror.com/minimist@1.2.8 + dev: false + + registry.npmmirror.com/move-concurrently@1.0.1: + resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz} + name: move-concurrently + version: 1.0.1 + dependencies: + aproba: registry.npmmirror.com/aproba@1.2.0 + copy-concurrently: registry.npmmirror.com/copy-concurrently@1.0.5 + fs-write-stream-atomic: registry.npmmirror.com/fs-write-stream-atomic@1.0.10 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + rimraf: registry.npmmirror.com/rimraf@2.7.1 + run-queue: registry.npmmirror.com/run-queue@1.0.3 + dev: false + + registry.npmmirror.com/mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz} + name: mri + version: 1.2.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz} + name: ms + version: 2.0.0 + dev: false + + registry.npmmirror.com/ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + dev: false + + registry.npmmirror.com/ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} + name: ms + version: 2.1.3 + dev: false + + registry.npmmirror.com/multipipe@1.0.2: + resolution: {integrity: sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/multipipe/-/multipipe-1.0.2.tgz} + name: multipipe + version: 1.0.2 + dependencies: + duplexer2: registry.npmmirror.com/duplexer2@0.1.4 + object-assign: registry.npmmirror.com/object-assign@4.1.1 + dev: false + + registry.npmmirror.com/mute-stream@0.0.7: + resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.7.tgz} + name: mute-stream + version: 0.0.7 + dev: false + + registry.npmmirror.com/nanoid@2.1.11: + resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-2.1.11.tgz} + name: nanoid + version: 2.1.11 + dev: false + + registry.npmmirror.com/nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz} + name: nanoid + version: 3.3.7 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + registry.npmmirror.com/natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} + name: natural-compare-lite + version: 1.4.0 + dev: false + + registry.npmmirror.com/needle@3.2.0: + resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/needle/-/needle-3.2.0.tgz} + name: needle + version: 3.2.0 + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + debug: 3.2.7 + iconv-lite: 0.6.3 + sax: 1.3.0 + transitivePeerDependencies: + - supports-color + optional: true + + registry.npmmirror.com/neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz} + name: neo-async + version: 2.6.2 + dev: false + + registry.npmmirror.com/no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz} + name: no-case + version: 3.0.4 + dependencies: + lower-case: registry.npmmirror.com/lower-case@2.0.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz} + name: node-abort-controller + version: 3.1.1 + dev: false + + registry.npmmirror.com/node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz} + name: node-domexception + version: 1.0.0 + engines: {node: '>=10.5.0'} + dev: false + + registry.npmmirror.com/node-fetch-npm@2.0.4: + resolution: {integrity: sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz} + name: node-fetch-npm + version: 2.0.4 + engines: {node: '>=4'} + deprecated: This module is not used anymore, npm uses minipass-fetch for its fetch implementation now + dependencies: + encoding: registry.npmmirror.com/encoding@0.1.13 + json-parse-better-errors: registry.npmmirror.com/json-parse-better-errors@1.0.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.2.tgz} + name: node-fetch + version: 3.3.2 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: registry.npmmirror.com/data-uri-to-buffer@4.0.1 + fetch-blob: registry.npmmirror.com/fetch-blob@3.2.0 + formdata-polyfill: registry.npmmirror.com/formdata-polyfill@4.0.10 + dev: false + + registry.npmmirror.com/node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz} + name: node-int64 + version: 0.4.0 + dev: false + + registry.npmmirror.com/node-libs-browser@2.2.1: + resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz} + name: node-libs-browser + version: 2.2.1 + dependencies: + assert: registry.npmmirror.com/assert@1.5.1 + browserify-zlib: registry.npmmirror.com/browserify-zlib@0.2.0 + buffer: registry.npmmirror.com/buffer@4.9.2 + console-browserify: registry.npmmirror.com/console-browserify@1.2.0 + constants-browserify: registry.npmmirror.com/constants-browserify@1.0.0 + crypto-browserify: registry.npmmirror.com/crypto-browserify@3.12.0 + domain-browser: registry.npmmirror.com/domain-browser@1.2.0 + events: registry.npmmirror.com/events@3.3.0 + https-browserify: registry.npmmirror.com/https-browserify@1.0.0 + os-browserify: registry.npmmirror.com/os-browserify@0.3.0 + path-browserify: registry.npmmirror.com/path-browserify@0.0.1 + process: registry.npmmirror.com/process@0.11.10 + punycode: registry.npmmirror.com/punycode@1.4.1 + querystring-es3: registry.npmmirror.com/querystring-es3@0.2.1 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + stream-browserify: registry.npmmirror.com/stream-browserify@2.0.2 + stream-http: registry.npmmirror.com/stream-http@2.8.3 + string_decoder: registry.npmmirror.com/string_decoder@1.3.0 + timers-browserify: registry.npmmirror.com/timers-browserify@2.0.12 + tty-browserify: registry.npmmirror.com/tty-browserify@0.0.0 + url: registry.npmmirror.com/url@0.11.3 + util: registry.npmmirror.com/util@0.11.1 + vm-browserify: registry.npmmirror.com/vm-browserify@1.1.2 + dev: false + + registry.npmmirror.com/node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz} + name: node-releases + version: 2.0.13 + dev: false + + registry.npmmirror.com/normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz} + name: normalize-package-data + version: 2.5.0 + dependencies: + hosted-git-info: registry.npmmirror.com/hosted-git-info@2.8.9 + resolve: registry.npmmirror.com/resolve@1.22.8 + semver: registry.npmmirror.com/semver@5.7.2 + validate-npm-package-license: registry.npmmirror.com/validate-npm-package-license@3.0.4 + dev: false + + registry.npmmirror.com/normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz} + name: normalize-package-data + version: 3.0.3 + engines: {node: '>=10'} + dependencies: + hosted-git-info: registry.npmmirror.com/hosted-git-info@4.1.0 + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + semver: registry.npmmirror.com/semver@7.5.4 + validate-npm-package-license: registry.npmmirror.com/validate-npm-package-license@3.0.4 + dev: false + + registry.npmmirror.com/normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} + name: normalize-path + version: 3.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz} + name: normalize-range + version: 0.1.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/npm-package-arg@5.1.2: + resolution: {integrity: sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz} + name: npm-package-arg + version: 5.1.2 + dependencies: + hosted-git-info: registry.npmmirror.com/hosted-git-info@2.8.9 + osenv: registry.npmmirror.com/osenv@0.1.5 + semver: registry.npmmirror.com/semver@5.7.2 + validate-npm-package-name: registry.npmmirror.com/validate-npm-package-name@3.0.0 + dev: false + + registry.npmmirror.com/npm-pick-manifest@1.0.4: + resolution: {integrity: sha512-MKxNdeyOZysPRTTbHtW0M5Fw38Jo/3ARsoGw5qjCfS+XGjvNB/Gb4qtAZUFmKPM2mVum+eX559eHvKywU856BQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-pick-manifest/-/npm-pick-manifest-1.0.4.tgz} + name: npm-pick-manifest + version: 1.0.4 + dependencies: + npm-package-arg: registry.npmmirror.com/npm-package-arg@5.1.2 + semver: registry.npmmirror.com/semver@5.7.2 + dev: false + + registry.npmmirror.com/npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz} + name: npm-run-path + version: 2.0.2 + engines: {node: '>=4'} + dependencies: + path-key: registry.npmmirror.com/path-key@2.0.1 + dev: false + + registry.npmmirror.com/npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz} + name: npm-run-path + version: 4.0.1 + engines: {node: '>=8'} + dependencies: + path-key: registry.npmmirror.com/path-key@3.1.1 + dev: false + + registry.npmmirror.com/npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.1.0.tgz} + name: npm-run-path + version: 5.1.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: registry.npmmirror.com/path-key@4.0.0 + dev: false + + registry.npmmirror.com/nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz} + name: nprogress + version: 0.2.0 + dev: false + + registry.npmmirror.com/nth-check@1.0.2: + resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz} + name: nth-check + version: 1.0.2 + dependencies: + boolbase: registry.npmmirror.com/boolbase@1.0.0 + dev: false + + registry.npmmirror.com/nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz} + name: nth-check + version: 2.1.1 + dependencies: + boolbase: registry.npmmirror.com/boolbase@1.0.0 + dev: false + + registry.npmmirror.com/object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} + name: object-assign + version: 4.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz} + name: object-inspect + version: 1.13.1 + dev: false + + registry.npmmirror.com/object-keys@0.4.0: + resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-0.4.0.tgz} + name: object-keys + version: 0.4.0 + dev: false + + registry.npmmirror.com/object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} + name: object-keys + version: 1.1.1 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz} + name: object.assign + version: 4.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: false + + registry.npmmirror.com/object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.entries/-/object.entries-1.1.7.tgz} + name: object.entries + version: 1.1.7 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.7.tgz} + name: object.fromentries + version: 2.0.7 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/object.getownpropertydescriptors@2.1.7: + resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz} + name: object.getownpropertydescriptors + version: 2.1.7 + engines: {node: '>= 0.8'} + dependencies: + array.prototype.reduce: registry.npmmirror.com/array.prototype.reduce@1.0.6 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 + dev: false + + registry.npmmirror.com/object.getprototypeof@1.0.5: + resolution: {integrity: sha512-4G0QiXpoIppBUz5efmxTm/HTbVN2ioGjk/PbsaNvwISFX+saj8muGp6vNuzIdsosFxM4V/kpUVNvy/+9+DVBZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.getprototypeof/-/object.getprototypeof-1.0.5.tgz} + name: object.getprototypeof + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + reflect.getprototypeof: registry.npmmirror.com/reflect.getprototypeof@1.0.4 + dev: false + + registry.npmmirror.com/object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.hasown/-/object.hasown-1.1.3.tgz} + name: object.hasown + version: 1.1.3 + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz} + name: object.values + version: 1.1.7 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz} + name: obuf + version: 1.1.2 + dev: false + + registry.npmmirror.com/omit-deep@0.3.0: + resolution: {integrity: sha512-Lbl/Ma59sss2b15DpnWnGmECBRL8cRl/PjPbPMVW+Y8zIQzRrwMaI65Oy6HvxyhYeILVKBJb2LWeG81bj5zbMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/omit-deep/-/omit-deep-0.3.0.tgz} + name: omit-deep + version: 0.3.0 + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: registry.npmmirror.com/is-plain-object@2.0.4 + unset-value: registry.npmmirror.com/unset-value@0.1.2 + dev: false + + registry.npmmirror.com/on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz} + name: on-exit-leak-free + version: 0.2.0 + dev: false + + registry.npmmirror.com/once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: false + + registry.npmmirror.com/onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz} + name: onetime + version: 2.0.1 + engines: {node: '>=4'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@1.2.0 + dev: false + + registry.npmmirror.com/onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz} + name: onetime + version: 5.1.2 + engines: {node: '>=6'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@2.1.0 + dev: false + + registry.npmmirror.com/onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz} + name: onetime + version: 6.0.0 + engines: {node: '>=12'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@4.0.0 + dev: false + + registry.npmmirror.com/open@6.4.0: + resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/-/open-6.4.0.tgz} + name: open + version: 6.4.0 + engines: {node: '>=8'} + dependencies: + is-wsl: registry.npmmirror.com/is-wsl@1.1.0 + dev: false + + registry.npmmirror.com/open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/-/open-8.4.2.tgz} + name: open + version: 8.4.2 + engines: {node: '>=12'} + dependencies: + define-lazy-prop: registry.npmmirror.com/define-lazy-prop@2.0.0 + is-docker: registry.npmmirror.com/is-docker@2.2.1 + is-wsl: registry.npmmirror.com/is-wsl@2.2.0 + dev: false + + registry.npmmirror.com/open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/-/open-9.1.0.tgz} + name: open + version: 9.1.0 + engines: {node: '>=14.16'} + dependencies: + default-browser: registry.npmmirror.com/default-browser@4.0.0 + define-lazy-prop: registry.npmmirror.com/define-lazy-prop@3.0.0 + is-inside-container: registry.npmmirror.com/is-inside-container@1.0.0 + is-wsl: registry.npmmirror.com/is-wsl@2.2.0 + dev: false + + registry.npmmirror.com/ora@1.4.0: + resolution: {integrity: sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ora/-/ora-1.4.0.tgz} + name: ora + version: 1.4.0 + engines: {node: '>=4'} + dependencies: + chalk: registry.npmmirror.com/chalk@2.4.2 + cli-cursor: registry.npmmirror.com/cli-cursor@2.1.0 + cli-spinners: registry.npmmirror.com/cli-spinners@1.3.1 + log-symbols: registry.npmmirror.com/log-symbols@2.2.0 + dev: false + + registry.npmmirror.com/os-browserify@0.3.0: + resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-browserify/-/os-browserify-0.3.0.tgz} + name: os-browserify + version: 0.3.0 + dev: false + + registry.npmmirror.com/os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-homedir/-/os-homedir-1.0.2.tgz} + name: os-homedir + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz} + name: os-tmpdir + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/osenv@0.1.5: + resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/osenv/-/osenv-0.1.5.tgz} + name: osenv + version: 0.1.5 + dependencies: + os-homedir: registry.npmmirror.com/os-homedir@1.0.2 + os-tmpdir: registry.npmmirror.com/os-tmpdir@1.0.2 + dev: false + + registry.npmmirror.com/p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz} + name: p-finally + version: 1.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz} + name: p-limit + version: 2.3.0 + engines: {node: '>=6'} + dependencies: + p-try: registry.npmmirror.com/p-try@2.2.0 + dev: false + + registry.npmmirror.com/p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz} + name: p-limit + version: 3.1.0 + engines: {node: '>=10'} + dependencies: + yocto-queue: registry.npmmirror.com/yocto-queue@0.1.0 + dev: false + + registry.npmmirror.com/p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz} + name: p-locate + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + p-limit: registry.npmmirror.com/p-limit@2.3.0 + dev: false + + registry.npmmirror.com/p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} + name: p-locate + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + p-limit: registry.npmmirror.com/p-limit@3.1.0 + dev: false + + registry.npmmirror.com/p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz} + name: p-try + version: 2.2.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/package-json@4.0.1: + resolution: {integrity: sha512-q/R5GrMek0vzgoomq6rm9OX+3PQve8sLwTirmK30YB3Cu0Bbt9OX9M/SIUnroN5BGJkzwGsFwDaRGD9EwBOlCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/package-json/-/package-json-4.0.1.tgz} + name: package-json + version: 4.0.1 + engines: {node: '>=4'} + dependencies: + got: registry.npmmirror.com/got@6.7.1 + registry-auth-token: registry.npmmirror.com/registry-auth-token@3.4.0 + registry-url: registry.npmmirror.com/registry-url@3.1.0 + semver: registry.npmmirror.com/semver@5.7.2 + dev: false + + registry.npmmirror.com/pacote@2.7.38: + resolution: {integrity: sha512-XxHUyHQB7QCVBxoXeVu0yKxT+2PvJucsc0+1E+6f95lMUxEAYERgSAc71ckYXrYr35Ew3xFU/LrhdIK21GQFFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pacote/-/pacote-2.7.38.tgz} + name: pacote + version: 2.7.38 + dependencies: + bluebird: registry.npmmirror.com/bluebird@3.7.2 + cacache: registry.npmmirror.com/cacache@9.3.0 + glob: registry.npmmirror.com/glob@7.2.3 + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + make-fetch-happen: registry.npmmirror.com/make-fetch-happen@2.6.0 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + mississippi: registry.npmmirror.com/mississippi@1.3.1 + normalize-package-data: registry.npmmirror.com/normalize-package-data@2.5.0 + npm-package-arg: registry.npmmirror.com/npm-package-arg@5.1.2 + npm-pick-manifest: registry.npmmirror.com/npm-pick-manifest@1.0.4 + osenv: registry.npmmirror.com/osenv@0.1.5 + promise-inflight: registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2) + promise-retry: registry.npmmirror.com/promise-retry@1.1.1 + protoduck: registry.npmmirror.com/protoduck@4.0.0 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + semver: registry.npmmirror.com/semver@5.7.2 + ssri: registry.npmmirror.com/ssri@4.1.6 + tar-fs: registry.npmmirror.com/tar-fs@1.16.3 + tar-stream: registry.npmmirror.com/tar-stream@1.6.2 + unique-filename: registry.npmmirror.com/unique-filename@1.1.1 + which: registry.npmmirror.com/which@1.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz} + name: pako + version: 1.0.11 + dev: false + + registry.npmmirror.com/parallel-transform@1.2.0: + resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parallel-transform/-/parallel-transform-1.2.0.tgz} + name: parallel-transform + version: 1.2.0 + dependencies: + cyclist: registry.npmmirror.com/cyclist@1.0.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz} + name: param-case + version: 3.0.4 + dependencies: + dot-case: registry.npmmirror.com/dot-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz} + name: parent-module + version: 1.0.1 + engines: {node: '>=6'} + dependencies: + callsites: registry.npmmirror.com/callsites@3.1.0 + dev: false + + registry.npmmirror.com/parse-asn1@5.1.6: + resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-asn1/-/parse-asn1-5.1.6.tgz} + name: parse-asn1 + version: 5.1.6 + dependencies: + asn1.js: registry.npmmirror.com/asn1.js@5.4.1 + browserify-aes: registry.npmmirror.com/browserify-aes@1.2.0 + evp_bytestokey: registry.npmmirror.com/evp_bytestokey@1.0.3 + pbkdf2: registry.npmmirror.com/pbkdf2@3.1.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz} + name: parse-entities + version: 2.0.0 + dependencies: + character-entities: registry.npmmirror.com/character-entities@1.2.4 + character-entities-legacy: registry.npmmirror.com/character-entities-legacy@1.1.4 + character-reference-invalid: registry.npmmirror.com/character-reference-invalid@1.1.4 + is-alphanumerical: registry.npmmirror.com/is-alphanumerical@1.0.4 + is-decimal: registry.npmmirror.com/is-decimal@1.0.4 + is-hexadecimal: registry.npmmirror.com/is-hexadecimal@1.0.4 + dev: false + + registry.npmmirror.com/parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-entities/-/parse-entities-4.0.1.tgz} + name: parse-entities + version: 4.0.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + character-entities: registry.npmmirror.com/character-entities@2.0.2 + character-entities-legacy: registry.npmmirror.com/character-entities-legacy@3.0.0 + character-reference-invalid: registry.npmmirror.com/character-reference-invalid@2.0.1 + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + is-alphanumerical: registry.npmmirror.com/is-alphanumerical@2.0.1 + is-decimal: registry.npmmirror.com/is-decimal@2.0.1 + is-hexadecimal: registry.npmmirror.com/is-hexadecimal@2.0.1 + dev: false + + registry.npmmirror.com/parse-git-config@0.2.0: + resolution: {integrity: sha512-amapZFADOJtHvX2URcRfbzG2OFcW+UAwmdK2kht2N2vsH5Py65VxI5yZTlD2DjmxVhTz6htFoVCxROYUJaYOXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-git-config/-/parse-git-config-0.2.0.tgz} + name: parse-git-config + version: 0.2.0 + engines: {node: '>=0.10.0'} + dependencies: + ini: registry.npmmirror.com/ini@1.3.8 + dev: false + + registry.npmmirror.com/parse-git-config@1.1.1: + resolution: {integrity: sha512-S3LGXJZVSy/hswvbSkfdbKBRVsnqKrVu6j8fcvdtJ4TxosSELyQDsJPuGPXuZ+EyuYuJd3O4uAF8gcISR0OFrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-git-config/-/parse-git-config-1.1.1.tgz} + name: parse-git-config + version: 1.1.1 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + fs-exists-sync: registry.npmmirror.com/fs-exists-sync@0.1.0 + git-config-path: registry.npmmirror.com/git-config-path@1.0.1 + ini: registry.npmmirror.com/ini@1.3.8 + dev: false + + registry.npmmirror.com/parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz} + name: parse-json + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + error-ex: registry.npmmirror.com/error-ex@1.3.2 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 + lines-and-columns: registry.npmmirror.com/lines-and-columns@1.2.4 + dev: false + + registry.npmmirror.com/parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz} + name: parse-node-version + version: 1.0.1 + engines: {node: '>= 0.10'} + dev: false + + registry.npmmirror.com/parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-passwd/-/parse-passwd-1.0.0.tgz} + name: parse-passwd + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz} + name: parse5 + version: 6.0.1 + dev: false + + registry.npmmirror.com/parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse5/-/parse5-7.1.2.tgz} + name: parse5 + version: 7.1.2 + dependencies: + entities: registry.npmmirror.com/entities@4.5.0 + dev: false + + registry.npmmirror.com/parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parseley/-/parseley-0.12.1.tgz} + name: parseley + version: 0.12.1 + dependencies: + leac: registry.npmmirror.com/leac@0.6.0 + peberminta: registry.npmmirror.com/peberminta@0.9.0 + dev: false + + registry.npmmirror.com/pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz} + name: pascal-case + version: 3.1.2 + dependencies: + no-case: registry.npmmirror.com/no-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/path-browserify@0.0.1: + resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz} + name: path-browserify + version: 0.0.1 + dev: false + + registry.npmmirror.com/path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} + name: path-exists + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz} + name: path-is-inside + version: 1.0.2 + dev: false + + registry.npmmirror.com/path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz} + name: path-key + version: 2.0.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} + name: path-key + version: 3.1.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz} + name: path-key + version: 4.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: false + + registry.npmmirror.com/path-to-regexp@1.7.0: + resolution: {integrity: sha512-nifX1uj4S9IrK/w3Xe7kKvNEepXivANs9ng60Iq7PU/BlouV3yL/VUhFqTuTq33ykwUqoNcTeGo5vdOBP4jS/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz} + name: path-to-regexp + version: 1.7.0 + dependencies: + isarray: registry.npmmirror.com/isarray@0.0.1 + dev: false + + registry.npmmirror.com/path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} + name: path-type + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz} + name: pbkdf2 + version: 3.1.2 + engines: {node: '>=0.12'} + dependencies: + create-hash: registry.npmmirror.com/create-hash@1.2.0 + create-hmac: registry.npmmirror.com/create-hmac@1.1.7 + ripemd160: registry.npmmirror.com/ripemd160@2.0.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + sha.js: registry.npmmirror.com/sha.js@2.4.11 + dev: false + + registry.npmmirror.com/peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/peberminta/-/peberminta-0.9.0.tgz} + name: peberminta + version: 0.9.0 + dev: false + + registry.npmmirror.com/picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + dev: false + + registry.npmmirror.com/picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + dev: false + + registry.npmmirror.com/pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz} + name: pify + version: 3.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/pino-abstract-transport@0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz} + name: pino-abstract-transport + version: 0.5.0 + dependencies: + duplexify: registry.npmmirror.com/duplexify@4.1.2 + split2: registry.npmmirror.com/split2@4.2.0 + dev: false + + registry.npmmirror.com/pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz} + name: pino-std-serializers + version: 4.0.0 + dev: false + + registry.npmmirror.com/pino@7.11.0: + resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino/-/pino-7.11.0.tgz} + name: pino + version: 7.11.0 + hasBin: true + dependencies: + atomic-sleep: registry.npmmirror.com/atomic-sleep@1.0.0 + fast-redact: registry.npmmirror.com/fast-redact@3.3.0 + on-exit-leak-free: registry.npmmirror.com/on-exit-leak-free@0.2.0 + pino-abstract-transport: registry.npmmirror.com/pino-abstract-transport@0.5.0 + pino-std-serializers: registry.npmmirror.com/pino-std-serializers@4.0.0 + process-warning: registry.npmmirror.com/process-warning@1.0.0 + quick-format-unescaped: registry.npmmirror.com/quick-format-unescaped@4.0.4 + real-require: registry.npmmirror.com/real-require@0.1.0 + safe-stable-stringify: registry.npmmirror.com/safe-stable-stringify@2.4.3 + sonic-boom: registry.npmmirror.com/sonic-boom@2.8.0 + thread-stream: registry.npmmirror.com/thread-stream@0.15.2 + dev: false + + registry.npmmirror.com/pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz} + name: pirates + version: 4.0.6 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pluralize/-/pluralize-8.0.0.tgz} + name: pluralize + version: 8.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/point-in-polygon@1.1.0: + resolution: {integrity: sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/point-in-polygon/-/point-in-polygon-1.1.0.tgz} + name: point-in-polygon + version: 1.1.0 + dev: false + + registry.npmmirror.com/polished@4.2.2: + resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/polished/-/polished-4.2.2.tgz} + name: polished + version: 4.2.2 + engines: {node: '>=10'} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + registry.npmmirror.com/postcss-attribute-case-insensitive@5.0.2(postcss@8.4.31): + resolution: {integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz} + id: registry.npmmirror.com/postcss-attribute-case-insensitive/5.0.2 + name: postcss-attribute-case-insensitive + version: 5.0.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-clamp@4.1.0(postcss@8.4.31): + resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz} + id: registry.npmmirror.com/postcss-clamp/4.1.0 + name: postcss-clamp + version: 4.1.0 + engines: {node: '>=7.6.0'} + peerDependencies: + postcss: ^8.4.6 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-color-functional-notation@4.2.4(postcss@8.4.31): + resolution: {integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz} + id: registry.npmmirror.com/postcss-color-functional-notation/4.2.4 + name: postcss-color-functional-notation + version: 4.2.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-color-hex-alpha@8.0.4(postcss@8.4.31): + resolution: {integrity: sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz} + id: registry.npmmirror.com/postcss-color-hex-alpha/8.0.4 + name: postcss-color-hex-alpha + version: 8.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-color-rebeccapurple@7.1.1(postcss@8.4.31): + resolution: {integrity: sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz} + id: registry.npmmirror.com/postcss-color-rebeccapurple/7.1.1 + name: postcss-color-rebeccapurple + version: 7.1.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-custom-media@8.0.2(postcss@8.4.31): + resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz} + id: registry.npmmirror.com/postcss-custom-media/8.0.2 + name: postcss-custom-media + version: 8.0.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-custom-properties@12.1.11(postcss@8.4.31): + resolution: {integrity: sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz} + id: registry.npmmirror.com/postcss-custom-properties/12.1.11 + name: postcss-custom-properties + version: 12.1.11 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-custom-selectors@6.0.3(postcss@8.4.31): + resolution: {integrity: sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz} + id: registry.npmmirror.com/postcss-custom-selectors/6.0.3 + name: postcss-custom-selectors + version: 6.0.3 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-dir-pseudo-class@6.0.5(postcss@8.4.31): + resolution: {integrity: sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz} + id: registry.npmmirror.com/postcss-dir-pseudo-class/6.0.5 + name: postcss-dir-pseudo-class + version: 6.0.5 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-double-position-gradients@3.1.2(postcss@8.4.31): + resolution: {integrity: sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz} + id: registry.npmmirror.com/postcss-double-position-gradients/3.1.2 + name: postcss-double-position-gradients + version: 3.1.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-env-function@4.0.6(postcss@8.4.31): + resolution: {integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz} + id: registry.npmmirror.com/postcss-env-function/4.0.6 + name: postcss-env-function + version: 4.0.6 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-flexbugs-fixes@5.0.2(postcss@8.4.31): + resolution: {integrity: sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz} + id: registry.npmmirror.com/postcss-flexbugs-fixes/5.0.2 + name: postcss-flexbugs-fixes + version: 5.0.2 + peerDependencies: + postcss: ^8.1.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-focus-visible@6.0.4(postcss@8.4.31): + resolution: {integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz} + id: registry.npmmirror.com/postcss-focus-visible/6.0.4 + name: postcss-focus-visible + version: 6.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-focus-within@5.0.4(postcss@8.4.31): + resolution: {integrity: sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz} + id: registry.npmmirror.com/postcss-focus-within/5.0.4 + name: postcss-focus-within + version: 5.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-font-variant@5.0.0(postcss@8.4.31): + resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz} + id: registry.npmmirror.com/postcss-font-variant/5.0.0 + name: postcss-font-variant + version: 5.0.0 + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-gap-properties@3.0.5(postcss@8.4.31): + resolution: {integrity: sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz} + id: registry.npmmirror.com/postcss-gap-properties/3.0.5 + name: postcss-gap-properties + version: 3.0.5 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-image-set-function@4.0.7(postcss@8.4.31): + resolution: {integrity: sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz} + id: registry.npmmirror.com/postcss-image-set-function/4.0.7 + name: postcss-image-set-function + version: 4.0.7 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-initial@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-initial/-/postcss-initial-4.0.1.tgz} + id: registry.npmmirror.com/postcss-initial/4.0.1 + name: postcss-initial + version: 4.0.1 + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-lab-function@4.2.1(postcss@8.4.31): + resolution: {integrity: sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz} + id: registry.npmmirror.com/postcss-lab-function/4.2.1 + name: postcss-lab-function + version: 4.2.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-logical@5.0.4(postcss@8.4.31): + resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-logical/-/postcss-logical-5.0.4.tgz} + id: registry.npmmirror.com/postcss-logical/5.0.4 + name: postcss-logical + version: 5.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-media-minmax@5.0.0(postcss@8.4.31): + resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz} + id: registry.npmmirror.com/postcss-media-minmax/5.0.0 + name: postcss-media-minmax + version: 5.0.0 + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz} + name: postcss-media-query-parser + version: 0.2.3 + dev: false + + registry.npmmirror.com/postcss-modules-extract-imports@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz} + id: registry.npmmirror.com/postcss-modules-extract-imports/3.0.0 + name: postcss-modules-extract-imports + version: 3.0.0 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-modules-local-by-default@4.0.3(postcss@8.4.31): + resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz} + id: registry.npmmirror.com/postcss-modules-local-by-default/4.0.3 + name: postcss-modules-local-by-default + version: 4.0.3 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-modules-scope@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz} + id: registry.npmmirror.com/postcss-modules-scope/3.0.0 + name: postcss-modules-scope + version: 3.0.0 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-modules-values@4.0.0(postcss@8.4.31): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz} + id: registry.npmmirror.com/postcss-modules-values/4.0.0 + name: postcss-modules-values + version: 4.0.0 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-nesting@10.2.0(postcss@8.4.31): + resolution: {integrity: sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz} + id: registry.npmmirror.com/postcss-nesting/10.2.0 + name: postcss-nesting + version: 10.2.0 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/selector-specificity': registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-opacity-percentage@1.1.3(postcss@8.4.31): + resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz} + id: registry.npmmirror.com/postcss-opacity-percentage/1.1.3 + name: postcss-opacity-percentage + version: 1.1.3 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-overflow-shorthand@3.0.4(postcss@8.4.31): + resolution: {integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz} + id: registry.npmmirror.com/postcss-overflow-shorthand/3.0.4 + name: postcss-overflow-shorthand + version: 3.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-page-break@3.0.4(postcss@8.4.31): + resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz} + id: registry.npmmirror.com/postcss-page-break/3.0.4 + name: postcss-page-break + version: 3.0.4 + peerDependencies: + postcss: ^8 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-place@7.0.5(postcss@8.4.31): + resolution: {integrity: sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-place/-/postcss-place-7.0.5.tgz} + id: registry.npmmirror.com/postcss-place/7.0.5 + name: postcss-place + version: 7.0.5 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-prefix-selector@1.16.0(postcss@8.4.31): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz} + id: registry.npmmirror.com/postcss-prefix-selector/1.16.0 + name: postcss-prefix-selector + version: 1.16.0 + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31): + resolution: {integrity: sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-preset-env/-/postcss-preset-env-7.5.0.tgz} + id: registry.npmmirror.com/postcss-preset-env/7.5.0 + name: postcss-preset-env + version: 7.5.0 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-color-function': registry.npmmirror.com/@csstools/postcss-color-function@1.1.1(postcss@8.4.31) + '@csstools/postcss-font-format-keywords': registry.npmmirror.com/@csstools/postcss-font-format-keywords@1.0.1(postcss@8.4.31) + '@csstools/postcss-hwb-function': registry.npmmirror.com/@csstools/postcss-hwb-function@1.0.2(postcss@8.4.31) + '@csstools/postcss-ic-unit': registry.npmmirror.com/@csstools/postcss-ic-unit@1.0.1(postcss@8.4.31) + '@csstools/postcss-is-pseudo-class': registry.npmmirror.com/@csstools/postcss-is-pseudo-class@2.0.7(postcss@8.4.31) + '@csstools/postcss-normalize-display-values': registry.npmmirror.com/@csstools/postcss-normalize-display-values@1.0.1(postcss@8.4.31) + '@csstools/postcss-oklab-function': registry.npmmirror.com/@csstools/postcss-oklab-function@1.1.1(postcss@8.4.31) + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + '@csstools/postcss-stepped-value-functions': registry.npmmirror.com/@csstools/postcss-stepped-value-functions@1.0.1(postcss@8.4.31) + '@csstools/postcss-unset-value': registry.npmmirror.com/@csstools/postcss-unset-value@1.0.2(postcss@8.4.31) + autoprefixer: registry.npmmirror.com/autoprefixer@10.4.16(postcss@8.4.31) + browserslist: registry.npmmirror.com/browserslist@4.22.1 + css-blank-pseudo: registry.npmmirror.com/css-blank-pseudo@3.0.3(postcss@8.4.31) + css-has-pseudo: registry.npmmirror.com/css-has-pseudo@3.0.4(postcss@8.4.31) + css-prefers-color-scheme: registry.npmmirror.com/css-prefers-color-scheme@6.0.3(postcss@8.4.31) + cssdb: registry.npmmirror.com/cssdb@6.6.3 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-attribute-case-insensitive: registry.npmmirror.com/postcss-attribute-case-insensitive@5.0.2(postcss@8.4.31) + postcss-clamp: registry.npmmirror.com/postcss-clamp@4.1.0(postcss@8.4.31) + postcss-color-functional-notation: registry.npmmirror.com/postcss-color-functional-notation@4.2.4(postcss@8.4.31) + postcss-color-hex-alpha: registry.npmmirror.com/postcss-color-hex-alpha@8.0.4(postcss@8.4.31) + postcss-color-rebeccapurple: registry.npmmirror.com/postcss-color-rebeccapurple@7.1.1(postcss@8.4.31) + postcss-custom-media: registry.npmmirror.com/postcss-custom-media@8.0.2(postcss@8.4.31) + postcss-custom-properties: registry.npmmirror.com/postcss-custom-properties@12.1.11(postcss@8.4.31) + postcss-custom-selectors: registry.npmmirror.com/postcss-custom-selectors@6.0.3(postcss@8.4.31) + postcss-dir-pseudo-class: registry.npmmirror.com/postcss-dir-pseudo-class@6.0.5(postcss@8.4.31) + postcss-double-position-gradients: registry.npmmirror.com/postcss-double-position-gradients@3.1.2(postcss@8.4.31) + postcss-env-function: registry.npmmirror.com/postcss-env-function@4.0.6(postcss@8.4.31) + postcss-focus-visible: registry.npmmirror.com/postcss-focus-visible@6.0.4(postcss@8.4.31) + postcss-focus-within: registry.npmmirror.com/postcss-focus-within@5.0.4(postcss@8.4.31) + postcss-font-variant: registry.npmmirror.com/postcss-font-variant@5.0.0(postcss@8.4.31) + postcss-gap-properties: registry.npmmirror.com/postcss-gap-properties@3.0.5(postcss@8.4.31) + postcss-image-set-function: registry.npmmirror.com/postcss-image-set-function@4.0.7(postcss@8.4.31) + postcss-initial: registry.npmmirror.com/postcss-initial@4.0.1(postcss@8.4.31) + postcss-lab-function: registry.npmmirror.com/postcss-lab-function@4.2.1(postcss@8.4.31) + postcss-logical: registry.npmmirror.com/postcss-logical@5.0.4(postcss@8.4.31) + postcss-media-minmax: registry.npmmirror.com/postcss-media-minmax@5.0.0(postcss@8.4.31) + postcss-nesting: registry.npmmirror.com/postcss-nesting@10.2.0(postcss@8.4.31) + postcss-opacity-percentage: registry.npmmirror.com/postcss-opacity-percentage@1.1.3(postcss@8.4.31) + postcss-overflow-shorthand: registry.npmmirror.com/postcss-overflow-shorthand@3.0.4(postcss@8.4.31) + postcss-page-break: registry.npmmirror.com/postcss-page-break@3.0.4(postcss@8.4.31) + postcss-place: registry.npmmirror.com/postcss-place@7.0.5(postcss@8.4.31) + postcss-pseudo-class-any-link: registry.npmmirror.com/postcss-pseudo-class-any-link@7.1.6(postcss@8.4.31) + postcss-replace-overflow-wrap: registry.npmmirror.com/postcss-replace-overflow-wrap@4.0.0(postcss@8.4.31) + postcss-selector-not: registry.npmmirror.com/postcss-selector-not@5.0.0(postcss@8.4.31) + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-pseudo-class-any-link@7.1.6(postcss@8.4.31): + resolution: {integrity: sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz} + id: registry.npmmirror.com/postcss-pseudo-class-any-link/7.1.6 + name: postcss-pseudo-class-any-link + version: 7.1.6 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-replace-overflow-wrap@4.0.0(postcss@8.4.31): + resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz} + id: registry.npmmirror.com/postcss-replace-overflow-wrap/4.0.0 + name: postcss-replace-overflow-wrap + version: 4.0.0 + peerDependencies: + postcss: ^8.0.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz} + name: postcss-resolve-nested-selector + version: 0.1.1 + dev: false + + registry.npmmirror.com/postcss-safe-parser@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz} + id: registry.npmmirror.com/postcss-safe-parser/6.0.0 + name: postcss-safe-parser + version: 6.0.0 + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-selector-not@5.0.0(postcss@8.4.31): + resolution: {integrity: sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz} + id: registry.npmmirror.com/postcss-selector-not/5.0.0 + name: postcss-selector-not + version: 5.0.0 + peerDependencies: + postcss: ^8.1.0 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz} + name: postcss-selector-parser + version: 6.0.13 + engines: {node: '>=4'} + dependencies: + cssesc: registry.npmmirror.com/cssesc@3.0.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: false + + registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.31): + resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz} + id: registry.npmmirror.com/postcss-syntax/0.36.2 + name: postcss-syntax + version: 0.36.2 + peerDependencies: + postcss: '>=5.0.0' + postcss-html: '*' + postcss-jsx: '*' + postcss-less: '*' + postcss-markdown: '*' + postcss-scss: '*' + peerDependenciesMeta: + postcss-html: + optional: true + postcss-jsx: + optional: true + postcss-less: + optional: true + postcss-markdown: + optional: true + postcss-scss: + optional: true + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} + name: postcss-value-parser + version: 4.2.0 + dev: false + + registry.npmmirror.com/postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz} + name: postcss + version: 8.4.31 + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: registry.npmmirror.com/nanoid@3.3.7 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: false + + registry.npmmirror.com/prepend-http@1.0.4: + resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prepend-http/-/prepend-http-1.0.4.tgz} + name: prepend-http + version: 1.0.4 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/prettier-plugin-organize-imports@3.2.4(prettier@3.1.0)(typescript@5.3.2): + resolution: {integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.4.tgz} + id: registry.npmmirror.com/prettier-plugin-organize-imports/3.2.4 + name: prettier-plugin-organize-imports + version: 3.2.4 + peerDependencies: + '@volar/vue-language-plugin-pug': ^1.0.4 + '@volar/vue-typescript': ^1.0.4 + prettier: '>=2.0' + typescript: '>=2.9' + peerDependenciesMeta: + '@volar/vue-language-plugin-pug': + optional: true + '@volar/vue-typescript': + optional: true + dependencies: + prettier: 3.1.0 + typescript: 5.3.2 + dev: false + + registry.npmmirror.com/prettier-plugin-packagejson@2.4.3(prettier@3.1.0): + resolution: {integrity: sha512-kPeeviJiwy0BgOSk7No8NmzzXfW4R9FYWni6ziA5zc1kGVVrKnBzMZdu2TUhI+I7h8/5Htt3vARYOk7KKJTTNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.4.3.tgz} + id: registry.npmmirror.com/prettier-plugin-packagejson/2.4.3 + name: prettier-plugin-packagejson + version: 2.4.3 + peerDependencies: + prettier: '>= 1.16.0' + peerDependenciesMeta: + prettier: + optional: true + dependencies: + prettier: 3.1.0 + sort-package-json: registry.npmmirror.com/sort-package-json@2.4.1 + synckit: registry.npmmirror.com/synckit@0.8.5 + dev: false + + registry.npmmirror.com/pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz} + name: pretty-error + version: 4.0.0 + dependencies: + lodash: registry.npmmirror.com/lodash@4.17.21 + renderkid: registry.npmmirror.com/renderkid@3.0.0 + dev: false + + registry.npmmirror.com/prism-react-renderer@1.3.5(react@18.2.0): + resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz} + id: registry.npmmirror.com/prism-react-renderer/1.3.5 + name: prism-react-renderer + version: 1.3.5 + peerDependencies: + react: '>=0.14.9' + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/prism-themes@1.9.0: + resolution: {integrity: sha512-tX2AYsehKDw1EORwBps+WhBFKc2kxfoFpQAjxBndbZKr4fRmMkv47XN0BghC/K1qwodB1otbe4oF23vUTFDokw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prism-themes/-/prism-themes-1.9.0.tgz} + name: prism-themes + version: 1.9.0 + dev: false + + registry.npmmirror.com/prismjs@1.27.0: + resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prismjs/-/prismjs-1.27.0.tgz} + name: prismjs + version: 1.27.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz} + name: prismjs + version: 1.29.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz} + name: process-nextick-args + version: 2.0.1 + dev: false + + registry.npmmirror.com/process-warning@1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/process-warning/-/process-warning-1.0.0.tgz} + name: process-warning + version: 1.0.0 + dev: false + + registry.npmmirror.com/process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/process/-/process-0.11.10.tgz} + name: process + version: 0.11.10 + engines: {node: '>= 0.6.0'} + dev: false + + registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2): + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz} + id: registry.npmmirror.com/promise-inflight/1.0.1 + name: promise-inflight + version: 1.0.1 + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dependencies: + bluebird: registry.npmmirror.com/bluebird@3.7.2 + dev: false + + registry.npmmirror.com/promise-retry@1.1.1: + resolution: {integrity: sha512-StEy2osPr28o17bIW776GtwO6+Q+M9zPiZkYfosciUUMYqjhU/ffwRAH0zN2+uvGyUsn8/YICIHRzLbPacpZGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise-retry/-/promise-retry-1.1.1.tgz} + name: promise-retry + version: 1.1.1 + engines: {node: '>=0.12'} + dependencies: + err-code: registry.npmmirror.com/err-code@1.1.2 + retry: registry.npmmirror.com/retry@0.10.1 + dev: false + + registry.npmmirror.com/prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz} + name: prop-types + version: 15.8.1 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + object-assign: registry.npmmirror.com/object-assign@4.1.1 + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + + registry.npmmirror.com/property-information@5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/property-information/-/property-information-5.6.0.tgz} + name: property-information + version: 5.6.0 + dependencies: + xtend: registry.npmmirror.com/xtend@4.0.2 + dev: false + + registry.npmmirror.com/property-information@6.4.0: + resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/property-information/-/property-information-6.4.0.tgz} + name: property-information + version: 6.4.0 + dev: false + + registry.npmmirror.com/protoduck@4.0.0: + resolution: {integrity: sha512-9sxuz0YTU/68O98xuDn8NBxTVH9EuMhrBTxZdiBL0/qxRmWhB/5a8MagAebDa+98vluAZTs8kMZibCdezbRCeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/protoduck/-/protoduck-4.0.0.tgz} + name: protoduck + version: 4.0.0 + dependencies: + genfun: registry.npmmirror.com/genfun@4.0.1 + dev: false + + registry.npmmirror.com/pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz} + name: pseudomap + version: 1.0.2 + dev: false + + registry.npmmirror.com/public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/public-encrypt/-/public-encrypt-4.0.3.tgz} + name: public-encrypt + version: 4.0.3 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + browserify-rsa: registry.npmmirror.com/browserify-rsa@4.1.0 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + parse-asn1: registry.npmmirror.com/parse-asn1@5.1.6 + randombytes: registry.npmmirror.com/randombytes@2.1.0 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/pump@1.0.3: + resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pump/-/pump-1.0.3.tgz} + name: pump + version: 1.0.3 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + once: registry.npmmirror.com/once@1.4.0 + dev: false + + registry.npmmirror.com/pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz} + name: pump + version: 2.0.1 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + once: registry.npmmirror.com/once@1.4.0 + dev: false + + registry.npmmirror.com/pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pumpify/-/pumpify-1.5.1.tgz} + name: pumpify + version: 1.5.1 + dependencies: + duplexify: registry.npmmirror.com/duplexify@3.7.1 + inherits: registry.npmmirror.com/inherits@2.0.4 + pump: registry.npmmirror.com/pump@2.0.1 + dev: false + + registry.npmmirror.com/punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz} + name: punycode + version: 1.4.1 + dev: false + + registry.npmmirror.com/punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz} + name: punycode + version: 2.3.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/q/-/q-1.5.1.tgz} + name: q + version: 1.5.1 + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: false + + registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0): + resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qrcode.react/-/qrcode.react-3.1.0.tgz} + id: registry.npmmirror.com/qrcode.react/3.1.0 + name: qrcode.react + version: 3.1.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz} + name: qs + version: 6.11.2 + engines: {node: '>=0.6'} + dependencies: + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: false + + registry.npmmirror.com/query-string@6.14.1: + resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/query-string/-/query-string-6.14.1.tgz} + name: query-string + version: 6.14.1 + engines: {node: '>=6'} + dependencies: + decode-uri-component: registry.npmmirror.com/decode-uri-component@0.2.2 + filter-obj: registry.npmmirror.com/filter-obj@1.1.0 + split-on-first: registry.npmmirror.com/split-on-first@1.1.0 + strict-uri-encode: registry.npmmirror.com/strict-uri-encode@2.0.0 + dev: false + + registry.npmmirror.com/querystring-es3@0.2.1: + resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/querystring-es3/-/querystring-es3-0.2.1.tgz} + name: querystring-es3 + version: 0.2.1 + engines: {node: '>=0.4.x'} + dev: false + + registry.npmmirror.com/queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + dev: false + + registry.npmmirror.com/queue@6.0.1: + resolution: {integrity: sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue/-/queue-6.0.1.tgz} + name: queue + version: 6.0.1 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + dev: false + + registry.npmmirror.com/quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz} + name: quick-format-unescaped + version: 4.0.4 + dev: false + + registry.npmmirror.com/quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz} + name: quick-lru + version: 4.0.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/ramda@0.29.0: + resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ramda/-/ramda-0.29.0.tgz} + name: ramda + version: 0.29.0 + dev: false + + registry.npmmirror.com/randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz} + name: randombytes + version: 2.1.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/randomfill/-/randomfill-1.0.4.tgz} + name: randomfill + version: 1.0.4 + dependencies: + randombytes: registry.npmmirror.com/randombytes@2.1.0 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/raw-loader@4.0.2(webpack@5.89.0): + resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/raw-loader/-/raw-loader-4.0.2.tgz} + id: registry.npmmirror.com/raw-loader/4.0.2 + name: raw-loader + version: 4.0.2 + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + loader-utils: registry.npmmirror.com/loader-utils@2.0.4 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.20.0.tgz} + id: registry.npmmirror.com/rc-cascader/3.20.0 + name: rc-cascader + version: 3.20.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + array-tree-filter: registry.npmmirror.com/array-tree-filter@2.1.0 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-3.1.0.tgz} + id: registry.npmmirror.com/rc-checkbox/3.1.0 + name: rc-checkbox + version: 3.1.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-collapse/-/rc-collapse-3.7.1.tgz} + id: registry.npmmirror.com/rc-collapse/3.7.1 + name: rc-collapse + version: 3.7.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dialog/-/rc-dialog-9.3.4.tgz} + id: registry.npmmirror.com/rc-dialog/9.3.4 + name: rc-dialog + version: 9.3.4 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-drawer/-/rc-drawer-6.5.2.tgz} + id: registry.npmmirror.com/rc-drawer/6.5.2 + name: rc-drawer + version: 6.5.2 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.1.0.tgz} + id: registry.npmmirror.com/rc-dropdown/4.1.0 + name: rc-dropdown + version: 4.1.0 + peerDependencies: + react: '>=16.11.0' + react-dom: '>=16.11.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-field-form@1.40.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OM3N01X2BYFGJDJcwpk9/BBtlwgveE7eh2SQAKIxVCt9KVWlODYJ9ypTHQdxchfDbeJKJKxMBFXlLAmyvlgPHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.40.0.tgz} + id: registry.npmmirror.com/rc-field-form/1.40.0 + name: rc-field-form + version: 1.40.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + async-validator: registry.npmmirror.com/async-validator@4.2.5 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-footer@0.6.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-JBZ+xcb6kkex8XnBd4VHw1ZxjV6kmcwUumSHaIFdka2qzMCo7Klcy4sI6G0XtUpG/vtpislQCc+S9Bc+NLHYMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-footer/-/rc-footer-0.6.8.tgz} + id: registry.npmmirror.com/rc-footer/0.6.8 + name: rc-footer + version: 0.6.8 + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-image/-/rc-image-7.5.1.tgz} + id: registry.npmmirror.com/rc-image/7.5.1 + name: rc-image + version: 7.5.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-dialog: registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-input-number/-/rc-input-number-8.4.0.tgz} + id: registry.npmmirror.com/rc-input-number/8.4.0 + name: rc-input-number + version: 8.4.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/mini-decimal': registry.npmmirror.com/@rc-component/mini-decimal@1.1.0 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-/HjTaKi8/Ts4zNbYaB5oWCquxFyFQO4Co1MnMgoCeGJlpe7k8Eir2HN0a0F9IHDmmo+GYiGgPpz7w/d/krzsJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-input/-/rc-input-1.3.6.tgz} + id: registry.npmmirror.com/rc-input/1.3.6 + name: rc-input + version: 1.3.6 + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.9.1.tgz} + id: registry.npmmirror.com/rc-mentions/2.9.1 + name: rc-mentions + version: 2.9.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-menu: registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-textarea: registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-menu/-/rc-menu-9.12.2.tgz} + id: registry.npmmirror.com/rc-menu/9.12.2 + name: rc-menu + version: 9.12.2 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-overflow: registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-motion/-/rc-motion-2.9.0.tgz} + id: registry.npmmirror.com/rc-motion/2.9.0 + name: rc-motion + version: 2.9.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-notification/-/rc-notification-5.3.0.tgz} + id: registry.npmmirror.com/rc-notification/5.3.0 + name: rc-notification + version: 5.3.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.3.2.tgz} + id: registry.npmmirror.com/rc-overflow/1.3.2 + name: rc-overflow + version: 1.3.2 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-pagination@3.7.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IxSzKapd13L91/195o1TPkKnCNw8gIR25UP1GCW/7c7n/slhld4npu2j2PB9IWjXm4SssaAaSAt2lscYog7wzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-pagination/-/rc-pagination-3.7.0.tgz} + id: registry.npmmirror.com/rc-pagination/3.7.0 + name: rc-pagination + version: 3.7.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-picker/-/rc-picker-3.14.6.tgz} + id: registry.npmmirror.com/rc-picker/3.14.6 + name: rc-picker + version: 3.14.6 + engines: {node: '>=8.x'} + peerDependencies: + date-fns: '>= 2.x' + dayjs: '>= 1.x' + luxon: '>= 3.x' + moment: '>= 2.x' + react: '>=16.9.0' + react-dom: '>=16.9.0' + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-progress/-/rc-progress-3.5.1.tgz} + id: registry.npmmirror.com/rc-progress/3.5.1 + name: rc-progress + version: 3.5.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-rate/-/rc-rate-2.12.0.tgz} + id: registry.npmmirror.com/rc-rate/2.12.0 + name: rc-rate + version: 2.12.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz} + id: registry.npmmirror.com/rc-resize-observer/1.4.0 + name: rc-resize-observer + version: 1.4.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + dev: false + + registry.npmmirror.com/rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.2.2.tgz} + id: registry.npmmirror.com/rc-segmented/2.2.2 + name: rc-segmented + version: 2.2.2 + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-select/-/rc-select-14.10.0.tgz} + id: registry.npmmirror.com/rc-select/14.10.0 + name: rc-select + version: 14.10.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-overflow: registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-slider@10.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ZlpWjFhOlEf0w4Ng31avFBkXNNBj60NAcTPaIoiCxBkJ29wOtHSPMqv9PZeEoqmx64bpJkgK7kPa47HG4LPzww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-slider/-/rc-slider-10.4.0.tgz} + id: registry.npmmirror.com/rc-slider/10.4.0 + name: rc-slider + version: 10.4.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-steps/-/rc-steps-6.0.1.tgz} + id: registry.npmmirror.com/rc-steps/6.0.1 + name: rc-steps + version: 6.0.1 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-switch/-/rc-switch-4.1.0.tgz} + id: registry.npmmirror.com/rc-switch/4.1.0 + name: rc-switch + version: 4.1.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3xVcdCC5OLeOOhaCg+5Lps2oPreM/GWXmUXWTSX4p6vF7F76ABM4dfPpMJ9Dnf5yGRyh+8pe7FRyhRVnWw2H/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-table/-/rc-table-7.36.0.tgz} + id: registry.npmmirror.com/rc-table/7.36.0 + name: rc-table + version: 7.36.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/context': registry.npmmirror.com/@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-83u3l2QkO0UznCzdBLEk9WnNcT+imtmDmMT993sUUEOGnNQAmqOdev0XjeqrcvsAMe9CDpAWDFd7L/RZw+LVJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tabs/-/rc-tabs-12.13.1.tgz} + id: registry.npmmirror.com/rc-tabs/12.13.1 + name: rc-tabs + version: 12.13.1 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-menu: registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-oH682ghHx++stFNYrosPRBfwsypywrTXpaD0/5Z8MPkUOnyOQUaY9ueL9tMu6BP1LfsuYQ1VLpg5OtshViLNgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.5.3.tgz} + id: registry.npmmirror.com/rc-textarea/1.5.3 + name: rc-textarea + version: 1.5.3 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.1.2.tgz} + id: registry.npmmirror.com/rc-tooltip/6.1.2 + name: rc-tooltip + version: 6.1.2 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.15.0.tgz} + id: registry.npmmirror.com/rc-tree-select/5.15.0 + name: rc-tree-select + version: 5.15.0 + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tree/-/rc-tree-5.8.2.tgz} + id: registry.npmmirror.com/rc-tree/5.8.2 + name: rc-tree + version: 5.8.2 + engines: {node: '>=10.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-upload/-/rc-upload-4.3.5.tgz} + id: registry.npmmirror.com/rc-upload/4.3.5 + name: rc-upload + version: 4.3.5 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-util/-/rc-util-5.38.1.tgz} + id: registry.npmmirror.com/rc-util/5.38.1 + name: rc-util + version: 5.38.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: registry.npmmirror.com/react-is@18.2.0 + dev: false + + registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.11.3.tgz} + id: registry.npmmirror.com/rc-virtual-list/3.11.3 + name: rc-virtual-list + version: 3.11.3 + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz} + name: rc + version: 1.2.8 + hasBin: true + dependencies: + deep-extend: registry.npmmirror.com/deep-extend@0.6.0 + ini: registry.npmmirror.com/ini@1.3.8 + minimist: registry.npmmirror.com/minimist@1.2.8 + strip-json-comments: registry.npmmirror.com/strip-json-comments@2.0.1 + dev: false + + registry.npmmirror.com/react-copy-to-clipboard@5.1.0(react@18.2.0): + resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz} + id: registry.npmmirror.com/react-copy-to-clipboard/5.1.0 + name: react-copy-to-clipboard + version: 5.1.0 + peerDependencies: + react: ^15.3.0 || 16 || 17 || 18 + dependencies: + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.2.0 + dev: false + + registry.npmmirror.com/react-detectable-overflow@0.7.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6ZotWaoCChrd9/ZISopZwpDN4kJkFNSX7zvDWF56HIzHdx8DfMQ78P4JAy0ZoAUi+9gDrhRynXaONCYVEvxDog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-detectable-overflow/-/react-detectable-overflow-0.7.1.tgz} + id: registry.npmmirror.com/react-detectable-overflow/0.7.1 + name: react-detectable-overflow + version: 0.7.1 + engines: {node: '>=18'} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-resize-detector: registry.npmmirror.com/react-resize-detector@8.1.0(react-dom@18.2.0)(react@18.2.0) + dev: false + + registry.npmmirror.com/react-dom@18.1.0(react@18.1.0): + resolution: {integrity: sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-dom/-/react-dom-18.1.0.tgz} + id: registry.npmmirror.com/react-dom/18.1.0 + name: react-dom + version: 18.1.0 + peerDependencies: + react: ^18.1.0 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + react: registry.npmmirror.com/react@18.1.0 + scheduler: registry.npmmirror.com/scheduler@0.22.0 + dev: false + + registry.npmmirror.com/react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.5.tgz} + id: registry.npmmirror.com/react-draggable/4.4.5 + name: react-draggable + version: 4.4.5 + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + dependencies: + clsx: registry.npmmirror.com/clsx@1.2.1 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/react-error-boundary@4.0.11(react@18.2.0): + resolution: {integrity: sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-error-boundary/-/react-error-boundary-4.0.11.tgz} + id: registry.npmmirror.com/react-error-boundary/4.0.11 + name: react-error-boundary + version: 4.0.11 + peerDependencies: + react: '>=16.13.1' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + react: 18.2.0 + dev: false + + registry.npmmirror.com/react-error-overlay@6.0.9: + resolution: {integrity: sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz} + name: react-error-overlay + version: 6.0.9 + dev: false + + registry.npmmirror.com/react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz} + name: react-fast-compare + version: 3.2.2 + dev: false + + registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz} + id: registry.npmmirror.com/react-helmet-async/1.3.0 + name: react-helmet-async + version: 1.3.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + invariant: registry.npmmirror.com/invariant@2.2.4 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-fast-compare: registry.npmmirror.com/react-fast-compare@3.2.2 + shallowequal: registry.npmmirror.com/shallowequal@1.1.0 + dev: false + + registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz} + id: registry.npmmirror.com/react-helmet-async/1.3.0 + name: react-helmet-async + version: 1.3.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + invariant: registry.npmmirror.com/invariant@2.2.4 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-fast-compare: registry.npmmirror.com/react-fast-compare@3.2.2 + shallowequal: registry.npmmirror.com/shallowequal@1.1.0 + dev: false + + registry.npmmirror.com/react-intl@6.5.5(react@18.2.0)(typescript@5.3.2): + resolution: {integrity: sha512-cI5UKvBh4tc1zxLIziHBYGMX3dhYWDEFlvUDVN6NfT2i96zTXz/zH2AmM8+2waqgOhwkFUzd+7kK1G9q7fiC2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-intl/-/react-intl-6.5.5.tgz} + id: registry.npmmirror.com/react-intl/6.5.5 + name: react-intl + version: 6.5.5 + peerDependencies: + react: ^16.6.0 || 17 || 18 + typescript: '5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/icu-messageformat-parser': registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3 + '@formatjs/intl': registry.npmmirror.com/@formatjs/intl@2.9.9(typescript@5.3.2) + '@formatjs/intl-displaynames': registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4 + '@formatjs/intl-listformat': registry.npmmirror.com/@formatjs/intl-listformat@7.5.3 + '@types/hoist-non-react-statics': registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5 + '@types/react': registry.npmmirror.com/@types/react@18.2.38 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + intl-messageformat: registry.npmmirror.com/intl-messageformat@10.5.8 + react: 18.2.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + typescript: 5.3.2 + dev: false + + registry.npmmirror.com/react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz} + name: react-is + version: 16.13.1 + dev: false + + registry.npmmirror.com/react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz} + name: react-is + version: 18.2.0 + dev: false + + registry.npmmirror.com/react-layout-kit@1.7.4(react@18.2.0): + resolution: {integrity: sha512-Ovvyb56kOAZCbytaXTHsWEVPHaBP368Q0jLqq37SythSibk9iB+op9iGjFPrGByWIaeslg5LcnSXjRxd4tT2ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-layout-kit/-/react-layout-kit-1.7.4.tgz} + id: registry.npmmirror.com/react-layout-kit/1.7.4 + name: react-layout-kit + version: 1.7.4 + peerDependencies: + react: '>=18' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 + react: 18.2.0 + dev: false + + registry.npmmirror.com/react-merge-refs@1.1.0: + resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz} + name: react-merge-refs + version: 1.1.0 + dev: false + + registry.npmmirror.com/react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.0.tgz} + name: react-refresh + version: 0.14.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/react-resizable@3.0.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-resizable/-/react-resizable-3.0.5.tgz} + id: registry.npmmirror.com/react-resizable/3.0.5 + name: react-resizable + version: 3.0.5 + peerDependencies: + react: '>= 16.3' + dependencies: + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.2.0 + react-draggable: registry.npmmirror.com/react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0) + transitivePeerDependencies: + - react-dom + dev: false + + registry.npmmirror.com/react-resize-detector@8.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-S7szxlaIuiy5UqLhLL1KY3aoyGHbZzsTpYal9eYMwCyKqoqoVLCmIgAgNyIM1FhnP2KyBygASJxdhejrzjMb+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-resize-detector/-/react-resize-detector-8.1.0.tgz} + id: registry.npmmirror.com/react-resize-detector/8.1.0 + name: react-resize-detector + version: 8.1.0 + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + lodash: registry.npmmirror.com/lodash@4.17.21 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz} + id: registry.npmmirror.com/react-router-dom/6.3.0 + name: react-router-dom + version: 6.3.0 + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + history: registry.npmmirror.com/history@5.3.0 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-router: registry.npmmirror.com/react-router@6.3.0(react@18.1.0) + dev: false + + registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz} + id: registry.npmmirror.com/react-router-dom/6.3.0 + name: react-router-dom + version: 6.3.0 + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + history: registry.npmmirror.com/history@5.3.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: registry.npmmirror.com/react-router@6.3.0(react@18.2.0) + dev: false + + registry.npmmirror.com/react-router@6.3.0(react@18.1.0): + resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz} + id: registry.npmmirror.com/react-router/6.3.0 + name: react-router + version: 6.3.0 + peerDependencies: + react: '>=16.8' + dependencies: + history: registry.npmmirror.com/history@5.3.0 + react: registry.npmmirror.com/react@18.1.0 + dev: false + + registry.npmmirror.com/react-router@6.3.0(react@18.2.0): + resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz} + id: registry.npmmirror.com/react-router/6.3.0 + name: react-router + version: 6.3.0 + peerDependencies: + react: '>=16.8' + dependencies: + history: registry.npmmirror.com/history@5.3.0 + react: 18.2.0 + dev: false + + registry.npmmirror.com/react-syntax-highlighter@15.5.0(react@18.2.0): + resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz} + id: registry.npmmirror.com/react-syntax-highlighter/15.5.0 + name: react-syntax-highlighter + version: 15.5.0 + peerDependencies: + react: '>= 0.14.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + highlight.js: registry.npmmirror.com/highlight.js@10.7.3 + lowlight: registry.npmmirror.com/lowlight@1.20.0 + prismjs: registry.npmmirror.com/prismjs@1.29.0 + react: 18.2.0 + refractor: registry.npmmirror.com/refractor@3.6.0 + dev: false + + registry.npmmirror.com/react@18.1.0: + resolution: {integrity: sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react/-/react-18.1.0.tgz} + name: react + version: 18.1.0 + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + dev: false + + registry.npmmirror.com/read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz} + name: read-pkg-up + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + find-up: registry.npmmirror.com/find-up@4.1.0 + read-pkg: registry.npmmirror.com/read-pkg@5.2.0 + type-fest: registry.npmmirror.com/type-fest@0.8.1 + dev: false + + registry.npmmirror.com/read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz} + name: read-pkg + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': registry.npmmirror.com/@types/normalize-package-data@2.4.4 + normalize-package-data: registry.npmmirror.com/normalize-package-data@2.5.0 + parse-json: registry.npmmirror.com/parse-json@5.2.0 + type-fest: registry.npmmirror.com/type-fest@0.6.0 + dev: false + + registry.npmmirror.com/readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz} + name: readable-stream + version: 1.0.34 + dependencies: + core-util-is: registry.npmmirror.com/core-util-is@1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: registry.npmmirror.com/isarray@0.0.1 + string_decoder: registry.npmmirror.com/string_decoder@0.10.31 + dev: false + + registry.npmmirror.com/readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz} + name: readable-stream + version: 2.3.8 + dependencies: + core-util-is: registry.npmmirror.com/core-util-is@1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: registry.npmmirror.com/isarray@1.0.0 + process-nextick-args: registry.npmmirror.com/process-nextick-args@2.0.1 + safe-buffer: registry.npmmirror.com/safe-buffer@5.1.2 + string_decoder: registry.npmmirror.com/string_decoder@1.1.1 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: false + + registry.npmmirror.com/readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz} + name: readable-stream + version: 3.6.2 + engines: {node: '>= 6'} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + string_decoder: registry.npmmirror.com/string_decoder@1.3.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: false + + registry.npmmirror.com/readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} + name: readdirp + version: 3.6.0 + engines: {node: '>=8.10.0'} + dependencies: + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + + registry.npmmirror.com/real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/real-require/-/real-require-0.1.0.tgz} + name: real-require + version: 0.1.0 + engines: {node: '>= 12.13.0'} + dev: false + + registry.npmmirror.com/redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz} + name: redent + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + indent-string: registry.npmmirror.com/indent-string@4.0.0 + strip-indent: registry.npmmirror.com/strip-indent@3.0.0 + dev: false + + registry.npmmirror.com/reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz} + name: reflect.getprototypeof + version: 1.0.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + which-builtin-type: registry.npmmirror.com/which-builtin-type@1.1.3 + dev: false + + registry.npmmirror.com/refractor@3.6.0: + resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/refractor/-/refractor-3.6.0.tgz} + name: refractor + version: 3.6.0 + dependencies: + hastscript: registry.npmmirror.com/hastscript@6.0.0 + parse-entities: registry.npmmirror.com/parse-entities@2.0.0 + prismjs: registry.npmmirror.com/prismjs@1.27.0 + dev: false + + registry.npmmirror.com/regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz} + name: regenerate-unicode-properties + version: 10.1.1 + engines: {node: '>=4'} + dependencies: + regenerate: registry.npmmirror.com/regenerate@1.4.2 + dev: false + + registry.npmmirror.com/regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz} + name: regenerate + version: 1.4.2 + dev: false + + registry.npmmirror.com/regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} + name: regenerator-runtime + version: 0.13.11 + dev: false + + registry.npmmirror.com/regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz} + name: regenerator-runtime + version: 0.14.0 + dev: false + + registry.npmmirror.com/regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz} + name: regexp.prototype.flags + version: 1.5.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + dev: false + + registry.npmmirror.com/registry-auth-token@3.4.0: + resolution: {integrity: sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz} + name: registry-auth-token + version: 3.4.0 + dependencies: + rc: registry.npmmirror.com/rc@1.2.8 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/registry-url@3.1.0: + resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/registry-url/-/registry-url-3.1.0.tgz} + name: registry-url + version: 3.1.0 + engines: {node: '>=0.10.0'} + dependencies: + rc: registry.npmmirror.com/rc@1.2.8 + dev: false + + registry.npmmirror.com/rehype-autolink-headings@6.1.1: + resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-autolink-headings/-/rehype-autolink-headings-6.1.1.tgz} + name: rehype-autolink-headings + version: 6.1.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + extend: registry.npmmirror.com/extend@3.0.2 + hast-util-has-property: registry.npmmirror.com/hast-util-has-property@2.0.1 + hast-util-heading-rank: registry.npmmirror.com/hast-util-heading-rank@2.1.1 + hast-util-is-element: registry.npmmirror.com/hast-util-is-element@2.1.3 + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + + registry.npmmirror.com/rehype-remove-comments@5.0.0: + resolution: {integrity: sha512-sfiVT+u1in19sxo9vv/SDQVbHE2mADScNrpeVsUxBFl14zOMZnfPb6l4hR+lXqe10G13UFVqv5pt8zDbCR4JYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-remove-comments/-/rehype-remove-comments-5.0.0.tgz} + name: rehype-remove-comments + version: 5.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + hast-util-is-conditional-comment: registry.npmmirror.com/hast-util-is-conditional-comment@2.0.0 + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-filter: registry.npmmirror.com/unist-util-filter@4.0.1 + dev: false + + registry.npmmirror.com/rehype-stringify@9.0.4: + resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-9.0.4.tgz} + name: rehype-stringify + version: 9.0.4 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + hast-util-to-html: registry.npmmirror.com/hast-util-to-html@8.0.4 + unified: registry.npmmirror.com/unified@10.1.2 + dev: false + + registry.npmmirror.com/relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz} + name: relateurl + version: 0.2.7 + engines: {node: '>= 0.10'} + dev: false + + registry.npmmirror.com/remark-directive@2.0.1: + resolution: {integrity: sha512-oosbsUAkU/qmUE78anLaJePnPis4ihsE7Agp0T/oqTzvTea8pOiaYEtfInU/+xMOVTS9PN5AhGOiaIVe4GD8gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-directive/-/remark-directive-2.0.1.tgz} + name: remark-directive + version: 2.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-directive: registry.npmmirror.com/mdast-util-directive@2.2.4 + micromark-extension-directive: registry.npmmirror.com/micromark-extension-directive@2.2.1 + unified: registry.npmmirror.com/unified@10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/remark-frontmatter@4.0.1: + resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz} + name: remark-frontmatter + version: 4.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-frontmatter: registry.npmmirror.com/mdast-util-frontmatter@1.0.1 + micromark-extension-frontmatter: registry.npmmirror.com/micromark-extension-frontmatter@1.1.1 + unified: registry.npmmirror.com/unified@10.1.2 + dev: false + + registry.npmmirror.com/remark-gfm@3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-gfm/-/remark-gfm-3.0.1.tgz} + name: remark-gfm + version: 3.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-gfm: registry.npmmirror.com/mdast-util-gfm@2.0.2 + micromark-extension-gfm: registry.npmmirror.com/micromark-extension-gfm@2.0.3 + unified: registry.npmmirror.com/unified@10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.2.tgz} + name: remark-parse + version: 10.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + unified: registry.npmmirror.com/unified@10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/remark-rehype@10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-rehype/-/remark-rehype-10.1.0.tgz} + name: remark-rehype + version: 10.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-hast: registry.npmmirror.com/mdast-util-to-hast@12.3.0 + unified: registry.npmmirror.com/unified@10.1.2 + dev: false + + registry.npmmirror.com/remote-origin-url@0.4.0: + resolution: {integrity: sha512-HYhdsT2pNd0LP4Osb0vtQ1iassxIc3Yk1oze7j8dMJFciMkW8e0rdg9E/mOunqtSVHSzvMfwLDIYzPnEDmpk6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remote-origin-url/-/remote-origin-url-0.4.0.tgz} + name: remote-origin-url + version: 0.4.0 + engines: {node: '>= 0.8.0'} + dependencies: + parse-git-config: registry.npmmirror.com/parse-git-config@0.2.0 + dev: false + + registry.npmmirror.com/remote-origin-url@0.5.3: + resolution: {integrity: sha512-crQ7Xk1m/F2IiwBx5oTqk/c0hjoumrEz+a36+ZoVupskQRE/q7pAwHKsTNeiZ31sbSTELvVlVv4h1W0Xo5szKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remote-origin-url/-/remote-origin-url-0.5.3.tgz} + name: remote-origin-url + version: 0.5.3 + engines: {node: '>= 0.8.0'} + dependencies: + parse-git-config: registry.npmmirror.com/parse-git-config@1.1.1 + dev: false + + registry.npmmirror.com/rename-keys@1.2.0: + resolution: {integrity: sha512-U7XpAktpbSgHTRSNRrjKSrjYkZKuhUukfoBlXWXUExCAqhzh1TU3BDRAfJmarcl5voKS+pbKU9MvyLWKZ4UEEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rename-keys/-/rename-keys-1.2.0.tgz} + name: rename-keys + version: 1.2.0 + engines: {node: '>= 0.8.0'} + dev: false + + registry.npmmirror.com/renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz} + name: renderkid + version: 3.0.0 + dependencies: + css-select: registry.npmmirror.com/css-select@4.3.0 + dom-converter: registry.npmmirror.com/dom-converter@0.2.0 + htmlparser2: registry.npmmirror.com/htmlparser2@6.1.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + dev: false + + registry.npmmirror.com/require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz} + name: require-directory + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz} + name: require-from-string + version: 2.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz} + name: resize-observer-polyfill + version: 1.5.1 + dev: false + + registry.npmmirror.com/resolve-dir@0.1.1: + resolution: {integrity: sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-dir/-/resolve-dir-0.1.1.tgz} + name: resolve-dir + version: 0.1.1 + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: registry.npmmirror.com/expand-tilde@1.2.2 + global-modules: registry.npmmirror.com/global-modules@0.2.3 + dev: false + + registry.npmmirror.com/resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} + name: resolve-from + version: 4.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz} + name: resolve-from + version: 5.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz} + name: resolve-pkg-maps + version: 1.0.0 + dev: false + + registry.npmmirror.com/resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz} + name: resolve + version: 1.22.8 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + dev: false + + registry.npmmirror.com/resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.5.tgz} + name: resolve + version: 2.0.0-next.5 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + dev: false + + registry.npmmirror.com/restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz} + name: restore-cursor + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + onetime: registry.npmmirror.com/onetime@2.0.1 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + dev: false + + registry.npmmirror.com/retry@0.10.1: + resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/retry/-/retry-0.10.1.tgz} + name: retry + version: 0.10.1 + dev: false + + registry.npmmirror.com/reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz} + name: rimraf + version: 2.7.1 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob@7.2.3 + dev: false + + registry.npmmirror.com/rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} + name: rimraf + version: 3.0.2 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob@7.2.3 + dev: false + + registry.npmmirror.com/ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz} + name: ripemd160 + version: 2.0.2 + dependencies: + hash-base: registry.npmmirror.com/hash-base@3.1.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + dev: false + + registry.npmmirror.com/rollup-plugin-visualizer@5.9.0(rollup@4.5.2): + resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz} + id: registry.npmmirror.com/rollup-plugin-visualizer/5.9.0 + name: rollup-plugin-visualizer + version: 5.9.0 + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x + peerDependenciesMeta: + rollup: + optional: true + dependencies: + open: registry.npmmirror.com/open@8.4.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: 4.5.2 + source-map: registry.npmmirror.com/source-map@0.7.4 + yargs: registry.npmmirror.com/yargs@17.7.2 + dev: false + + registry.npmmirror.com/rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz} + name: rollup + version: 3.29.4 + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz} + name: run-applescript + version: 5.0.0 + engines: {node: '>=12'} + dependencies: + execa: registry.npmmirror.com/execa@5.1.1 + dev: false + + registry.npmmirror.com/run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz} + name: run-async + version: 2.4.1 + engines: {node: '>=0.12.0'} + dev: false + + registry.npmmirror.com/run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + dependencies: + queue-microtask: registry.npmmirror.com/queue-microtask@1.2.3 + dev: false + + registry.npmmirror.com/run-queue@1.0.3: + resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz} + name: run-queue + version: 1.0.3 + dependencies: + aproba: registry.npmmirror.com/aproba@1.2.0 + dev: false + + registry.npmmirror.com/rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz} + name: rxjs + version: 6.6.7 + engines: {npm: '>=2.0.0'} + dependencies: + tslib: registry.npmmirror.com/tslib@1.14.1 + dev: false + + registry.npmmirror.com/sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz} + name: sade + version: 1.8.1 + engines: {node: '>=6'} + dependencies: + mri: registry.npmmirror.com/mri@1.2.0 + dev: false + + registry.npmmirror.com/safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz} + name: safe-array-concat + version: 1.0.1 + engines: {node: '>=0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + isarray: registry.npmmirror.com/isarray@2.0.5 + dev: false + + registry.npmmirror.com/safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz} + name: safe-buffer + version: 5.1.2 + dev: false + + registry.npmmirror.com/safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} + name: safe-buffer + version: 5.2.1 + dev: false + + registry.npmmirror.com/safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz} + name: safe-regex-test + version: 1.0.0 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + dev: false + + registry.npmmirror.com/safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz} + name: safe-stable-stringify + version: 2.4.3 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} + name: safer-buffer + version: 2.1.2 + dev: false + + registry.npmmirror.com/sass@1.69.5: + resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sass/-/sass-1.69.5.tgz} + name: sass + version: 1.69.5 + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: registry.npmmirror.com/chokidar@3.5.3 + immutable: registry.npmmirror.com/immutable@4.3.4 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: false + + registry.npmmirror.com/sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz} + name: sax + version: 1.2.4 + dev: false + + registry.npmmirror.com/sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz} + name: sax + version: 1.3.0 + dev: false + + registry.npmmirror.com/scheduler@0.22.0: + resolution: {integrity: sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scheduler/-/scheduler-0.22.0.tgz} + name: scheduler + version: 0.22.0 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + dev: false + + registry.npmmirror.com/schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz} + name: schema-utils + version: 3.3.0 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 + ajv: registry.npmmirror.com/ajv@6.12.6 + ajv-keywords: registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6) + dev: false + + registry.npmmirror.com/screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz} + name: screenfull + version: 5.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz} + name: scroll-into-view-if-needed + version: 3.1.0 + dependencies: + compute-scroll-into-view: registry.npmmirror.com/compute-scroll-into-view@3.1.0 + dev: false + + registry.npmmirror.com/selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/selderee/-/selderee-0.11.0.tgz} + name: selderee + version: 0.11.0 + dependencies: + parseley: registry.npmmirror.com/parseley@0.12.1 + dev: false + + registry.npmmirror.com/select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz} + name: select-hose + version: 2.0.0 + dev: false + + registry.npmmirror.com/semver-diff@2.1.0: + resolution: {integrity: sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver-diff/-/semver-diff-2.1.0.tgz} + name: semver-diff + version: 2.1.0 + engines: {node: '>=0.10.0'} + dependencies: + semver: registry.npmmirror.com/semver@5.7.2 + dev: false + + registry.npmmirror.com/semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz} + name: semver + version: 5.7.2 + hasBin: true + dev: false + + registry.npmmirror.com/semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz} + name: semver + version: 6.3.1 + hasBin: true + dev: false + + registry.npmmirror.com/semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz} + name: semver + version: 7.5.4 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: false + + registry.npmmirror.com/serialize-javascript@6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz} + name: serialize-javascript + version: 6.0.1 + dependencies: + randombytes: registry.npmmirror.com/randombytes@2.1.0 + dev: false + + registry.npmmirror.com/set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-function-length/-/set-function-length-1.1.1.tgz} + name: set-function-length + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + dev: false + + registry.npmmirror.com/set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz} + name: set-function-name + version: 2.0.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + dev: false + + registry.npmmirror.com/setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz} + name: setimmediate + version: 1.0.5 + dev: false + + registry.npmmirror.com/sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz} + name: sha.js + version: 2.4.11 + hasBin: true + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz} + name: shallowequal + version: 1.1.0 + dev: false + + registry.npmmirror.com/shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz} + name: shebang-command + version: 1.2.0 + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: registry.npmmirror.com/shebang-regex@1.0.0 + dev: false + + registry.npmmirror.com/shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} + name: shebang-command + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + shebang-regex: registry.npmmirror.com/shebang-regex@3.0.0 + dev: false + + registry.npmmirror.com/shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz} + name: shebang-regex + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/shiki-es@0.2.0: + resolution: {integrity: sha512-RbRMD+IuJJseSZljDdne9ThrUYrwBwJR04FvN4VXpfsU3MNID5VJGHLAD5je/HGThCyEKNgH+nEkSFEWKD7C3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shiki-es/-/shiki-es-0.2.0.tgz} + name: shiki-es + version: 0.2.0 + dev: false + + registry.npmmirror.com/shortid@2.2.16: + resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shortid/-/shortid-2.2.16.tgz} + name: shortid + version: 2.2.16 + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + nanoid: registry.npmmirror.com/nanoid@2.1.11 + dev: false + + registry.npmmirror.com/side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} + name: side-channel + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + dev: false + + registry.npmmirror.com/signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz} + name: signal-exit + version: 3.0.7 + dev: false + + registry.npmmirror.com/simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz} + name: simple-swizzle + version: 0.2.2 + dependencies: + is-arrayish: registry.npmmirror.com/is-arrayish@0.3.2 + dev: false + + registry.npmmirror.com/sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sitemap/-/sitemap-7.1.1.tgz} + name: sitemap + version: 7.1.1 + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + dependencies: + '@types/node': registry.npmmirror.com/@types/node@17.0.45 + '@types/sax': registry.npmmirror.com/@types/sax@1.2.7 + arg: registry.npmmirror.com/arg@5.0.2 + sax: registry.npmmirror.com/sax@1.3.0 + dev: false + + registry.npmmirror.com/slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz} + name: slash + version: 4.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz} + name: slice-ansi + version: 4.0.0 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + astral-regex: registry.npmmirror.com/astral-regex@2.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 + dev: false + + registry.npmmirror.com/smart-buffer@1.1.15: + resolution: {integrity: sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/smart-buffer/-/smart-buffer-1.1.15.tgz} + name: smart-buffer + version: 1.1.15 + engines: {node: '>= 0.10.15', npm: '>= 1.3.5'} + dev: false + + registry.npmmirror.com/socks-proxy-agent@3.0.1: + resolution: {integrity: sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz} + name: socks-proxy-agent + version: 3.0.1 + dependencies: + agent-base: registry.npmmirror.com/agent-base@4.3.0 + socks: registry.npmmirror.com/socks@1.1.10 + dev: false + + registry.npmmirror.com/socks@1.1.10: + resolution: {integrity: sha512-ArX4vGPULWjKDKgUnW8YzfI2uXW7kzgkJuB0GnFBA/PfT3exrrOk+7Wk2oeb894Qf20u1PWv9LEgrO0Z82qAzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/socks/-/socks-1.1.10.tgz} + name: socks + version: 1.1.10 + engines: {node: '>= 0.10.0', npm: '>= 1.3.5'} + deprecated: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0 + dependencies: + ip: registry.npmmirror.com/ip@1.1.8 + smart-buffer: registry.npmmirror.com/smart-buffer@1.1.15 + dev: false + + registry.npmmirror.com/sonic-boom@2.8.0: + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sonic-boom/-/sonic-boom-2.8.0.tgz} + name: sonic-boom + version: 2.8.0 + dependencies: + atomic-sleep: registry.npmmirror.com/atomic-sleep@1.0.0 + dev: false + + registry.npmmirror.com/sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz} + name: sort-object-keys + version: 1.1.3 + dev: false + + registry.npmmirror.com/sort-package-json@2.4.1: + resolution: {integrity: sha512-Nd3rgLBJcZ4iw7tpuOhwBupG6SvUDU0Fy1cZGAMorA2JmDUb+29Dg5phJK9gapa2Ak9d15w/RuMl/viwX+nKwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sort-package-json/-/sort-package-json-2.4.1.tgz} + name: sort-package-json + version: 2.4.1 + hasBin: true + dependencies: + detect-indent: registry.npmmirror.com/detect-indent@7.0.1 + detect-newline: registry.npmmirror.com/detect-newline@4.0.1 + git-hooks-list: registry.npmmirror.com/git-hooks-list@3.1.0 + globby: registry.npmmirror.com/globby@13.2.2 + is-plain-obj: registry.npmmirror.com/is-plain-obj@4.1.0 + sort-object-keys: registry.npmmirror.com/sort-object-keys@1.1.3 + dev: false + + registry.npmmirror.com/source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + name: source-map-js + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/source-map-resolve@0.6.0: + resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz} + name: source-map-resolve + version: 0.6.0 + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: registry.npmmirror.com/atob@2.1.2 + decode-uri-component: registry.npmmirror.com/decode-uri-component@0.2.2 + dev: false + + registry.npmmirror.com/source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz} + name: source-map-support + version: 0.5.21 + dependencies: + buffer-from: registry.npmmirror.com/buffer-from@1.1.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + registry.npmmirror.com/source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz} + name: source-map + version: 0.5.7 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz} + name: source-map + version: 0.7.4 + engines: {node: '>= 8'} + dev: false + + registry.npmmirror.com/space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz} + name: space-separated-tokens + version: 1.1.5 + dev: false + + registry.npmmirror.com/space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz} + name: space-separated-tokens + version: 2.0.2 + dev: false + + registry.npmmirror.com/spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz} + name: spdx-correct + version: 3.2.0 + dependencies: + spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse@3.0.1 + spdx-license-ids: registry.npmmirror.com/spdx-license-ids@3.0.16 + dev: false + + registry.npmmirror.com/spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz} + name: spdx-exceptions + version: 2.3.0 + dev: false + + registry.npmmirror.com/spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz} + name: spdx-expression-parse + version: 3.0.1 + dependencies: + spdx-exceptions: registry.npmmirror.com/spdx-exceptions@2.3.0 + spdx-license-ids: registry.npmmirror.com/spdx-license-ids@3.0.16 + dev: false + + registry.npmmirror.com/spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz} + name: spdx-license-ids + version: 3.0.16 + dev: false + + registry.npmmirror.com/spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz} + name: spdy-transport + version: 3.0.0 + dependencies: + debug: registry.npmmirror.com/debug@4.3.4 + detect-node: registry.npmmirror.com/detect-node@2.1.0 + hpack.js: registry.npmmirror.com/hpack.js@2.1.6 + obuf: registry.npmmirror.com/obuf@1.1.2 + readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + wbuf: registry.npmmirror.com/wbuf@1.7.3 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz} + name: spdy + version: 4.0.2 + engines: {node: '>=6.0.0'} + dependencies: + debug: registry.npmmirror.com/debug@4.3.4 + handle-thing: registry.npmmirror.com/handle-thing@2.0.1 + http-deceiver: registry.npmmirror.com/http-deceiver@1.2.7 + select-hose: registry.npmmirror.com/select-hose@2.0.0 + spdy-transport: registry.npmmirror.com/spdy-transport@3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz} + name: split-on-first + version: 1.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz} + name: split2 + version: 4.2.0 + engines: {node: '>= 10.x'} + dev: false + + registry.npmmirror.com/sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz} + name: sprintf-js + version: 1.0.3 + dev: false + + registry.npmmirror.com/ssri@4.1.6: + resolution: {integrity: sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssri/-/ssri-4.1.6.tgz} + name: ssri + version: 4.1.6 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/ssri@5.3.0: + resolution: {integrity: sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssri/-/ssri-5.3.0.tgz} + name: ssri + version: 5.3.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz} + name: stable + version: 0.1.8 + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: false + + registry.npmmirror.com/stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz} + name: stackframe + version: 1.3.4 + dev: false + + registry.npmmirror.com/stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz} + name: stop-iteration-iterator + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + dev: false + + registry.npmmirror.com/stream-browserify@2.0.2: + resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-browserify/-/stream-browserify-2.0.2.tgz} + name: stream-browserify + version: 2.0.2 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/stream-each@1.2.3: + resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-each/-/stream-each-1.2.3.tgz} + name: stream-each + version: 1.2.3 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + stream-shift: registry.npmmirror.com/stream-shift@1.0.1 + dev: false + + registry.npmmirror.com/stream-http@2.8.3: + resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-http/-/stream-http-2.8.3.tgz} + name: stream-http + version: 2.8.3 + dependencies: + builtin-status-codes: registry.npmmirror.com/builtin-status-codes@3.0.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + to-arraybuffer: registry.npmmirror.com/to-arraybuffer@1.0.1 + xtend: registry.npmmirror.com/xtend@4.0.2 + dev: false + + registry.npmmirror.com/stream-shift@1.0.1: + resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz} + name: stream-shift + version: 1.0.1 + dev: false + + registry.npmmirror.com/strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz} + name: strict-uri-encode + version: 2.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/string-convert@0.2.1: + resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz} + name: string-convert + version: 0.2.1 + dev: false + + registry.npmmirror.com/string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz} + name: string-width + version: 2.1.1 + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@2.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@4.0.0 + dev: false + + registry.npmmirror.com/string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} + name: string-width + version: 4.2.3 + engines: {node: '>=8'} + dependencies: + emoji-regex: registry.npmmirror.com/emoji-regex@8.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + + registry.npmmirror.com/string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz} + name: string.prototype.matchall + version: 4.0.10 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 + set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: false + + registry.npmmirror.com/string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz} + name: string.prototype.trim + version: 1.2.8 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz} + name: string.prototype.trimend + version: 1.0.7 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz} + name: string.prototype.trimstart + version: 1.0.7 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz} + name: string_decoder + version: 0.10.31 + dev: false + + registry.npmmirror.com/string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz} + name: string_decoder + version: 1.1.1 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.1.2 + dev: false + + registry.npmmirror.com/string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} + name: string_decoder + version: 1.3.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.3.tgz} + name: stringify-entities + version: 4.0.3 + dependencies: + character-entities-html4: registry.npmmirror.com/character-entities-html4@2.1.0 + character-entities-legacy: registry.npmmirror.com/character-entities-legacy@3.0.0 + dev: false + + registry.npmmirror.com/strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz} + name: strip-ansi + version: 4.0.0 + engines: {node: '>=4'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@3.0.1 + dev: false + + registry.npmmirror.com/strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz} + name: strip-ansi + version: 5.2.0 + engines: {node: '>=6'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@4.1.1 + dev: false + + registry.npmmirror.com/strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@5.0.1 + + registry.npmmirror.com/strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz} + name: strip-eof + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz} + name: strip-final-newline + version: 2.0.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz} + name: strip-final-newline + version: 3.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-indent/-/strip-indent-3.0.0.tgz} + name: strip-indent + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + min-indent: registry.npmmirror.com/min-indent@1.0.1 + dev: false + + registry.npmmirror.com/strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz} + name: strip-json-comments + version: 2.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-mod/-/style-mod-4.1.0.tgz} + name: style-mod + version: 4.1.0 + dev: false + + registry.npmmirror.com/style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-search/-/style-search-0.1.0.tgz} + name: style-search + version: 0.1.0 + dev: false + + registry.npmmirror.com/style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-to-object/-/style-to-object-0.4.4.tgz} + name: style-to-object + version: 0.4.4 + dependencies: + inline-style-parser: registry.npmmirror.com/inline-style-parser@0.1.1 + dev: false + + registry.npmmirror.com/stylelint-config-recommended@7.0.0(stylelint@14.16.1): + resolution: {integrity: sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz} + id: registry.npmmirror.com/stylelint-config-recommended/7.0.0 + name: stylelint-config-recommended + version: 7.0.0 + peerDependencies: + stylelint: ^14.4.0 + dependencies: + stylelint: registry.npmmirror.com/stylelint@14.16.1 + dev: false + + registry.npmmirror.com/stylelint-config-standard@25.0.0(stylelint@14.16.1): + resolution: {integrity: sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz} + id: registry.npmmirror.com/stylelint-config-standard/25.0.0 + name: stylelint-config-standard + version: 25.0.0 + peerDependencies: + stylelint: ^14.4.0 + dependencies: + stylelint: registry.npmmirror.com/stylelint@14.16.1 + stylelint-config-recommended: registry.npmmirror.com/stylelint-config-recommended@7.0.0(stylelint@14.16.1) + dev: false + + registry.npmmirror.com/stylelint@14.16.1: + resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint/-/stylelint-14.16.1.tgz} + name: stylelint + version: 14.16.1 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@csstools/selector-specificity': registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13) + balanced-match: registry.npmmirror.com/balanced-match@2.0.0 + colord: registry.npmmirror.com/colord@2.9.3 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + css-functions-list: registry.npmmirror.com/css-functions-list@3.2.1 + debug: registry.npmmirror.com/debug@4.3.4 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + fastest-levenshtein: registry.npmmirror.com/fastest-levenshtein@1.0.16 + file-entry-cache: registry.npmmirror.com/file-entry-cache@6.0.1 + global-modules: registry.npmmirror.com/global-modules@2.0.0 + globby: registry.npmmirror.com/globby@11.1.0 + globjoin: registry.npmmirror.com/globjoin@0.1.4 + html-tags: registry.npmmirror.com/html-tags@3.3.1 + ignore: registry.npmmirror.com/ignore@5.3.0 + import-lazy: registry.npmmirror.com/import-lazy@4.0.0 + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + is-plain-object: registry.npmmirror.com/is-plain-object@5.0.0 + known-css-properties: registry.npmmirror.com/known-css-properties@0.26.0 + mathml-tag-names: registry.npmmirror.com/mathml-tag-names@2.1.3 + meow: registry.npmmirror.com/meow@9.0.0 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-media-query-parser: registry.npmmirror.com/postcss-media-query-parser@0.2.3 + postcss-resolve-nested-selector: registry.npmmirror.com/postcss-resolve-nested-selector@0.1.1 + postcss-safe-parser: registry.npmmirror.com/postcss-safe-parser@6.0.0(postcss@8.4.31) + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + resolve-from: registry.npmmirror.com/resolve-from@5.0.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + style-search: registry.npmmirror.com/style-search@0.1.0 + supports-hyperlinks: registry.npmmirror.com/supports-hyperlinks@2.3.0 + svg-tags: registry.npmmirror.com/svg-tags@1.0.0 + table: registry.npmmirror.com/table@6.8.1 + v8-compile-cache: registry.npmmirror.com/v8-compile-cache@2.4.0 + write-file-atomic: registry.npmmirror.com/write-file-atomic@4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.2.0.tgz} + name: stylis + version: 4.2.0 + dev: false + + registry.npmmirror.com/stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz} + name: stylis + version: 4.3.0 + dev: false + + registry.npmmirror.com/supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} + name: supports-color + version: 5.5.0 + engines: {node: '>=4'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@3.0.0 + dev: false + + registry.npmmirror.com/supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + dev: false + + registry.npmmirror.com/supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz} + name: supports-color + version: 8.1.1 + engines: {node: '>=10'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + dev: false + + registry.npmmirror.com/supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz} + name: supports-hyperlinks + version: 2.3.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + supports-color: registry.npmmirror.com/supports-color@7.2.0 + dev: false + + registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz} + name: svg-parser + version: 2.0.4 + dev: false + + registry.npmmirror.com/svg-pathdata@5.0.5: + resolution: {integrity: sha512-TAAvLNSE3fEhyl/Da19JWfMAdhSXTYeviXsLSoDT1UM76ADj5ndwAPX1FKQEgB/gFMPavOy6tOqfalXKUiXrow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-5.0.5.tgz} + name: svg-pathdata + version: 5.0.5 + engines: {node: '>=6.9.5'} + dev: false + + registry.npmmirror.com/svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz} + name: svg-tags + version: 1.0.0 + dev: false + + registry.npmmirror.com/svgo-browser@1.3.8: + resolution: {integrity: sha512-yOgDNIcewFZN3+jXdWeh/rQzbWJjCq1dTHphLz2r4T4AfTm+nqCxZ5B89v9bjQbFKA/s/k7TUc7J90+pP2HTyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgo-browser/-/svgo-browser-1.3.8.tgz} + name: svgo-browser + version: 1.3.8 + engines: {node: '>=4.0.0'} + hasBin: true + dependencies: + chalk: registry.npmmirror.com/chalk@2.4.2 + coa: registry.npmmirror.com/coa@2.0.2 + css-select: registry.npmmirror.com/css-select@2.1.0 + css-select-base-adapter: registry.npmmirror.com/css-select-base-adapter@0.1.1 + css-tree: registry.npmmirror.com/css-tree@1.0.0-alpha.37 + csso: registry.npmmirror.com/csso@4.2.0 + js-yaml: registry.npmmirror.com/js-yaml@3.14.1 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + sax: registry.npmmirror.com/sax@1.2.4 + stable: registry.npmmirror.com/stable@0.1.8 + unquote: registry.npmmirror.com/unquote@1.1.1 + util.promisify: registry.npmmirror.com/util.promisify@1.0.1 + dev: false + + registry.npmmirror.com/svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz} + name: svgo + version: 2.8.0 + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': registry.npmmirror.com/@trysound/sax@0.2.0 + commander: registry.npmmirror.com/commander@7.2.0 + css-select: registry.npmmirror.com/css-select@4.3.0 + css-tree: registry.npmmirror.com/css-tree@1.1.3 + csso: registry.npmmirror.com/csso@4.2.0 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + stable: registry.npmmirror.com/stable@0.1.8 + dev: false + + registry.npmmirror.com/svgson@4.1.0: + resolution: {integrity: sha512-DodISxHtdLKUghDYA+PGK4Qq350+CbBAkdvGLkBFSmWd9WKSg4dijgjB1IiRPTmsUCd+a7KYe+ILHtklYgQyzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgson/-/svgson-4.1.0.tgz} + name: svgson + version: 4.1.0 + dependencies: + deep-rename-keys: registry.npmmirror.com/deep-rename-keys@0.2.1 + omit-deep: registry.npmmirror.com/omit-deep@0.3.0 + xml-reader: registry.npmmirror.com/xml-reader@2.4.3 + dev: false + + registry.npmmirror.com/synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/synckit/-/synckit-0.8.5.tgz} + name: synckit + version: 0.8.5 + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': registry.npmmirror.com/@pkgr/utils@2.4.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/systemjs@6.14.2: + resolution: {integrity: sha512-1TlOwvKWdXxAY9vba+huLu99zrQURDWA8pUTYsRIYDZYQbGyK+pyEP4h4dlySsqo7ozyJBmYD20F+iUHhAltEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/systemjs/-/systemjs-6.14.2.tgz} + name: systemjs + version: 6.14.2 + dev: false + + registry.npmmirror.com/tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tabbable/-/tabbable-6.2.0.tgz} + name: tabbable + version: 6.2.0 + dev: false + + registry.npmmirror.com/table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/table/-/table-6.8.1.tgz} + name: table + version: 6.8.1 + engines: {node: '>=10.0.0'} + dependencies: + ajv: registry.npmmirror.com/ajv@8.12.0 + lodash.truncate: registry.npmmirror.com/lodash.truncate@4.4.2 + slice-ansi: registry.npmmirror.com/slice-ansi@4.0.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + dev: false + + registry.npmmirror.com/tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz} + name: tapable + version: 2.2.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/tar-fs@1.16.3: + resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tar-fs/-/tar-fs-1.16.3.tgz} + name: tar-fs + version: 1.16.3 + dependencies: + chownr: registry.npmmirror.com/chownr@1.1.4 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + pump: registry.npmmirror.com/pump@1.0.3 + tar-stream: registry.npmmirror.com/tar-stream@1.6.2 + dev: false + + registry.npmmirror.com/tar-stream@1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tar-stream/-/tar-stream-1.6.2.tgz} + name: tar-stream + version: 1.6.2 + engines: {node: '>= 0.8.0'} + dependencies: + bl: registry.npmmirror.com/bl@1.2.3 + buffer-alloc: registry.npmmirror.com/buffer-alloc@1.2.0 + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + fs-constants: registry.npmmirror.com/fs-constants@1.0.0 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + to-buffer: registry.npmmirror.com/to-buffer@1.1.1 + xtend: registry.npmmirror.com/xtend@4.0.2 + dev: false + + registry.npmmirror.com/term-size@1.2.0: + resolution: {integrity: sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/term-size/-/term-size-1.2.0.tgz} + name: term-size + version: 1.2.0 + engines: {node: '>=4'} + dependencies: + execa: registry.npmmirror.com/execa@0.7.0 + dev: false + + registry.npmmirror.com/terser-webpack-plugin@5.3.9(esbuild@0.19.7)(webpack@5.89.0): + resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz} + id: registry.npmmirror.com/terser-webpack-plugin/5.3.9 + name: terser-webpack-plugin + version: 5.3.9 + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + esbuild: 0.19.7 + jest-worker: registry.npmmirror.com/jest-worker@27.5.1 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + serialize-javascript: registry.npmmirror.com/serialize-javascript@6.0.1 + terser: registry.npmmirror.com/terser@5.24.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/terser@5.24.0: + resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser/-/terser-5.24.0.tgz} + name: terser + version: 5.24.0 + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': registry.npmmirror.com/@jridgewell/source-map@0.3.5 + acorn: registry.npmmirror.com/acorn@8.11.2 + commander: registry.npmmirror.com/commander@2.20.3 + source-map-support: registry.npmmirror.com/source-map-support@0.5.21 + dev: false + + registry.npmmirror.com/test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz} + name: test-exclude + version: 6.0.0 + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema@0.1.3 + glob: registry.npmmirror.com/glob@7.2.3 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + dev: false + + registry.npmmirror.com/textextensions@2.6.0: + resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/textextensions/-/textextensions-2.6.0.tgz} + name: textextensions + version: 2.6.0 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/thread-stream@0.15.2: + resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/thread-stream/-/thread-stream-0.15.2.tgz} + name: thread-stream + version: 0.15.2 + dependencies: + real-require: registry.npmmirror.com/real-require@0.1.0 + dev: false + + registry.npmmirror.com/throttle-debounce@5.0.0: + resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz} + name: throttle-debounce + version: 5.0.0 + engines: {node: '>=12.22'} + dev: false + + registry.npmmirror.com/through2@0.4.2: + resolution: {integrity: sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through2/-/through2-0.4.2.tgz} + name: through2 + version: 0.4.2 + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@1.0.34 + xtend: registry.npmmirror.com/xtend@2.1.2 + dev: false + + registry.npmmirror.com/through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz} + name: through2 + version: 2.0.5 + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + xtend: registry.npmmirror.com/xtend@4.0.2 + dev: false + + registry.npmmirror.com/through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through/-/through-2.3.8.tgz} + name: through + version: 2.3.8 + dev: false + + registry.npmmirror.com/timed-out@4.0.1: + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/timed-out/-/timed-out-4.0.1.tgz} + name: timed-out + version: 4.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/timers-browserify@2.0.12: + resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/timers-browserify/-/timers-browserify-2.0.12.tgz} + name: timers-browserify + version: 2.0.12 + engines: {node: '>=0.6.0'} + dependencies: + setimmediate: registry.npmmirror.com/setimmediate@1.0.5 + dev: false + + registry.npmmirror.com/titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz} + name: titleize + version: 3.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz} + name: tmp + version: 0.0.33 + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: registry.npmmirror.com/os-tmpdir@1.0.2 + dev: false + + registry.npmmirror.com/tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz} + name: tmpl + version: 1.0.5 + dev: false + + registry.npmmirror.com/to-arraybuffer@1.0.1: + resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz} + name: to-arraybuffer + version: 1.0.1 + dev: false + + registry.npmmirror.com/to-buffer@1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz} + name: to-buffer + version: 1.1.1 + dev: false + + registry.npmmirror.com/to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} + name: to-fast-properties + version: 2.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmmirror.com/is-number@7.0.0 + dev: false + + registry.npmmirror.com/toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz} + name: toggle-selection + version: 1.0.6 + dev: false + + registry.npmmirror.com/transformation-matrix@2.15.0: + resolution: {integrity: sha512-HN3kCvvH4ug3Xm/ycOfCFQOOktg5htxlC4Ih1Z7Wb6BMtQho+q+irOdGo10ARRKpqkRBXgBzQFw/AVmR0oIf0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/transformation-matrix/-/transformation-matrix-2.15.0.tgz} + name: transformation-matrix + version: 2.15.0 + dev: false + + registry.npmmirror.com/trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz} + name: trim-lines + version: 3.0.1 + dev: false + + registry.npmmirror.com/trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-newlines/-/trim-newlines-3.0.1.tgz} + name: trim-newlines + version: 3.0.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/trough@2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz} + name: trough + version: 2.1.0 + dev: false + + registry.npmmirror.com/ts-toolbelt@9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz} + name: ts-toolbelt + version: 9.6.0 + dev: false + + registry.npmmirror.com/tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + dev: false + + registry.npmmirror.com/tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz} + name: tslib + version: 2.6.2 + dev: false + + registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz} + id: registry.npmmirror.com/tsutils/3.21.0 + name: tsutils + version: 3.21.0 + engines: {node: '>= 6'} + peerDependencies: + 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' + dependencies: + tslib: registry.npmmirror.com/tslib@1.14.1 + typescript: 5.3.2 + dev: false + + registry.npmmirror.com/tsx@3.14.0: + resolution: {integrity: sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsx/-/tsx-3.14.0.tgz} + name: tsx + version: 3.14.0 + hasBin: true + dependencies: + esbuild: registry.npmmirror.com/esbuild@0.18.20 + get-tsconfig: registry.npmmirror.com/get-tsconfig@4.7.2 + source-map-support: registry.npmmirror.com/source-map-support@0.5.21 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/tty-browserify@0.0.0: + resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz} + name: tty-browserify + version: 0.0.0 + dev: false + + registry.npmmirror.com/type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.18.1.tgz} + name: type-fest + version: 0.18.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz} + name: type-fest + version: 0.6.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz} + name: type-fest + version: 0.8.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz} + name: typed-array-buffer + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz} + name: typed-array-byte-length + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz} + name: typed-array-byte-offset + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz} + name: typed-array-length + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz} + name: typedarray + version: 0.0.6 + dev: false + + registry.npmmirror.com/types-ramda@0.29.6: + resolution: {integrity: sha512-VJoOk1uYNh9ZguGd3eZvqkdhD4hTGtnjRBUx5Zc0U9ftmnCgiWcSj/lsahzKunbiwRje1MxxNkEy1UdcXRCpYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/types-ramda/-/types-ramda-0.29.6.tgz} + name: types-ramda + version: 0.29.6 + dependencies: + ts-toolbelt: registry.npmmirror.com/ts-toolbelt@9.6.0 + dev: false + + registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(sass@1.69.5)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-bC62ctJ3wnymADnhE5nU7IZz4+XQ3MPWwoVW150OJazyAqEioZdjIZEBgB9pVfQEM819xMc6+eslnyuCNOQV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/umi/-/umi-4.0.89.tgz} + id: registry.npmmirror.com/umi/4.0.89 + name: umi + version: 4.0.89 + engines: {node: '>=14'} + hasBin: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/bundler-webpack': registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.2)(webpack@5.89.0) + '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 + '@umijs/lint': registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.54.0)(stylelint@14.16.1)(typescript@5.3.2) + '@umijs/preset-umi': registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.10.0)(@types/react@18.2.38)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0) + '@umijs/renderer-react': registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.2.0)(react@18.2.0) + '@umijs/server': registry.npmmirror.com/@umijs/server@4.0.89 + '@umijs/test': registry.npmmirror.com/@umijs/test@4.0.89(@babel/core@7.23.3) + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + prettier-plugin-organize-imports: registry.npmmirror.com/prettier-plugin-organize-imports@3.2.4(prettier@3.1.0)(typescript@5.3.2) + prettier-plugin-packagejson: registry.npmmirror.com/prettier-plugin-packagejson@2.4.3(prettier@3.1.0) + transitivePeerDependencies: + - '@babel/core' + - '@types/node' + - '@types/react' + - '@types/webpack' + - '@volar/vue-language-plugin-pug' + - '@volar/vue-typescript' + - eslint + - jest + - postcss-html + - postcss-jsx + - postcss-less + - postcss-markdown + - postcss-scss + - prettier + - react + - react-dom + - rollup + - sass + - sockjs-client + - stylelint + - stylus + - sugarss + - supports-color + - terser + - type-fest + - typescript + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + registry.npmmirror.com/unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} + name: unbox-primitive + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + dev: false + + registry.npmmirror.com/undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz} + name: undici-types + version: 5.26.5 + dev: false + + registry.npmmirror.com/unfetch@5.0.0: + resolution: {integrity: sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unfetch/-/unfetch-5.0.0.tgz} + name: unfetch + version: 5.0.0 + dev: false + + registry.npmmirror.com/unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz} + name: unified + version: 10.1.2 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + bail: registry.npmmirror.com/bail@2.0.2 + extend: registry.npmmirror.com/extend@3.0.2 + is-buffer: registry.npmmirror.com/is-buffer@2.0.5 + is-plain-obj: registry.npmmirror.com/is-plain-obj@4.1.0 + trough: registry.npmmirror.com/trough@2.1.0 + vfile: registry.npmmirror.com/vfile@5.3.7 + dev: false + + registry.npmmirror.com/unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz} + name: unique-filename + version: 1.1.1 + dependencies: + unique-slug: registry.npmmirror.com/unique-slug@2.0.2 + dev: false + + registry.npmmirror.com/unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz} + name: unique-slug + version: 2.0.2 + dependencies: + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + dev: false + + registry.npmmirror.com/unique-string@1.0.0: + resolution: {integrity: sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-string/-/unique-string-1.0.0.tgz} + name: unique-string + version: 1.0.0 + engines: {node: '>=4'} + dependencies: + crypto-random-string: registry.npmmirror.com/crypto-random-string@1.0.0 + dev: false + + registry.npmmirror.com/unist-util-filter@4.0.1: + resolution: {integrity: sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-filter/-/unist-util-filter-4.0.1.tgz} + name: unist-util-filter + version: 4.0.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + dev: false + + registry.npmmirror.com/unist-util-generated@2.0.1: + resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz} + name: unist-util-generated + version: 2.0.1 + dev: false + + registry.npmmirror.com/unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-is/-/unist-util-is-5.2.1.tgz} + name: unist-util-is + version: 5.2.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-position/-/unist-util-position-4.0.4.tgz} + name: unist-util-position + version: 4.0.4 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz} + name: unist-util-stringify-position + version: 3.0.3 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz} + name: unist-util-visit-parents + version: 5.1.3 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + dev: false + + registry.npmmirror.com/unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz} + name: unist-util-visit + version: 4.1.2 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + dev: false + + registry.npmmirror.com/universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz} + name: universalify + version: 0.1.2 + engines: {node: '>= 4.0.0'} + dev: false + + registry.npmmirror.com/universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz} + name: universalify + version: 2.0.1 + engines: {node: '>= 10.0.0'} + dev: false + + registry.npmmirror.com/unquote@1.1.1: + resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz} + name: unquote + version: 1.1.1 + dev: false + + registry.npmmirror.com/unset-value@0.1.2: + resolution: {integrity: sha512-yhv5I4TsldLdE3UcVQn0hD2T5sNCPv4+qm/CTUpRKIpwthYRIipsAPdsrNpOI79hPQa0rTTeW22Fq6JWRcTgNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unset-value/-/unset-value-0.1.2.tgz} + name: unset-value + version: 0.1.2 + engines: {node: '>=0.10.0'} + dependencies: + has-value: registry.npmmirror.com/has-value@0.3.1 + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: false + + registry.npmmirror.com/untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/untildify/-/untildify-4.0.0.tgz} + name: untildify + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/unzip-response@2.0.1: + resolution: {integrity: sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unzip-response/-/unzip-response-2.0.1.tgz} + name: unzip-response + version: 2.0.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz} + id: registry.npmmirror.com/update-browserslist-db/1.0.13 + name: update-browserslist-db + version: 1.0.13 + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.1 + escalade: registry.npmmirror.com/escalade@3.1.1 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + dev: false + + registry.npmmirror.com/update-notifier@2.5.0: + resolution: {integrity: sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/update-notifier/-/update-notifier-2.5.0.tgz} + name: update-notifier + version: 2.5.0 + engines: {node: '>=4'} + dependencies: + boxen: registry.npmmirror.com/boxen@1.3.0 + chalk: registry.npmmirror.com/chalk@2.4.2 + configstore: registry.npmmirror.com/configstore@3.1.5 + import-lazy: registry.npmmirror.com/import-lazy@2.1.0 + is-ci: registry.npmmirror.com/is-ci@1.2.1 + is-installed-globally: registry.npmmirror.com/is-installed-globally@0.1.0 + is-npm: registry.npmmirror.com/is-npm@1.0.0 + latest-version: registry.npmmirror.com/latest-version@3.1.0 + semver-diff: registry.npmmirror.com/semver-diff@2.1.0 + xdg-basedir: registry.npmmirror.com/xdg-basedir@3.0.0 + dev: false + + registry.npmmirror.com/uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmmirror.com/punycode@2.3.1 + dev: false + + registry.npmmirror.com/url-parse-lax@1.0.0: + resolution: {integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz} + name: url-parse-lax + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + prepend-http: registry.npmmirror.com/prepend-http@1.0.4 + dev: false + + registry.npmmirror.com/url@0.11.3: + resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/url/-/url-0.11.3.tgz} + name: url + version: 0.11.3 + dependencies: + punycode: registry.npmmirror.com/punycode@1.4.1 + qs: registry.npmmirror.com/qs@6.11.2 + dev: false + + registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.1.0): + resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz} + id: registry.npmmirror.com/use-isomorphic-layout-effect/1.1.2 + name: use-isomorphic-layout-effect + version: 1.1.2 + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.38 + react: registry.npmmirror.com/react@18.1.0 + dev: false + + registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0): + resolution: {integrity: sha512-DXgG0kkgJN45TcyoXL49vJnn55LehnrmoHc7MbKi+QDBvr8dsesqws8UlyIWGHMR+JXgxc1nvY+jDGMlycsUcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-merge-value/-/use-merge-value-1.2.0.tgz} + id: registry.npmmirror.com/use-merge-value/1.2.0 + name: use-merge-value + version: 1.2.0 + peerDependencies: + react: '>= 16.x' + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz} + id: registry.npmmirror.com/use-sync-external-store/1.2.0 + name: use-sync-external-store + version: 1.2.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} + name: util-deprecate + version: 1.0.2 + dev: false + + registry.npmmirror.com/util.promisify@1.0.1: + resolution: {integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.1.tgz} + name: util.promisify + version: 1.0.1 + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + object.getownpropertydescriptors: registry.npmmirror.com/object.getownpropertydescriptors@2.1.7 + dev: false + + registry.npmmirror.com/util@0.10.4: + resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util/-/util-0.10.4.tgz} + name: util + version: 0.10.4 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.3 + dev: false + + registry.npmmirror.com/util@0.11.1: + resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util/-/util-0.11.1.tgz} + name: util + version: 0.11.1 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.3 + dev: false + + registry.npmmirror.com/utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz} + name: utila + version: 0.4.0 + dev: false + + registry.npmmirror.com/uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz} + name: uuid + version: 8.3.2 + hasBin: true + dev: false + + registry.npmmirror.com/uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz} + name: uvu + version: 0.5.6 + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: registry.npmmirror.com/dequal@2.0.3 + diff: registry.npmmirror.com/diff@5.1.0 + kleur: registry.npmmirror.com/kleur@4.1.5 + sade: registry.npmmirror.com/sade@1.8.1 + dev: false + + registry.npmmirror.com/v8-compile-cache@2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz} + name: v8-compile-cache + version: 2.3.0 + dev: false + + registry.npmmirror.com/v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz} + name: v8-compile-cache + version: 2.4.0 + dev: false + + registry.npmmirror.com/validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} + name: validate-npm-package-license + version: 3.0.4 + dependencies: + spdx-correct: registry.npmmirror.com/spdx-correct@3.2.0 + spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse@3.0.1 + dev: false + + registry.npmmirror.com/validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz} + name: validate-npm-package-name + version: 3.0.0 + dependencies: + builtins: registry.npmmirror.com/builtins@1.0.3 + dev: false + + registry.npmmirror.com/vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz} + name: vary + version: 1.1.2 + engines: {node: '>= 0.8'} + dev: false + + registry.npmmirror.com/vfile-location@4.1.0: + resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-location/-/vfile-location-4.1.0.tgz} + name: vfile-location + version: 4.1.0 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + vfile: registry.npmmirror.com/vfile@5.3.7 + dev: false + + registry.npmmirror.com/vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.4.tgz} + name: vfile-message + version: 3.1.4 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 + dev: false + + registry.npmmirror.com/vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile/-/vfile-5.3.7.tgz} + name: vfile + version: 5.3.7 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + is-buffer: registry.npmmirror.com/is-buffer@2.0.5 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 + vfile-message: registry.npmmirror.com/vfile-message@3.1.4 + dev: false + + registry.npmmirror.com/vite@4.3.1(@types/node@20.10.0)(less@4.1.3)(sass@1.69.5)(terser@5.24.0): + resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.3.1.tgz} + id: registry.npmmirror.com/vite/4.3.1 + name: vite + version: 4.3.1 + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.10.0 + esbuild: registry.npmmirror.com/esbuild@0.17.19 + less: registry.npmmirror.com/less@4.1.3 + postcss: registry.npmmirror.com/postcss@8.4.31 + rollup: registry.npmmirror.com/rollup@3.29.4 + sass: registry.npmmirror.com/sass@1.69.5 + terser: 5.24.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/vm-browserify@1.1.2: + resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz} + name: vm-browserify + version: 1.1.2 + dev: false + + registry.npmmirror.com/w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz} + name: w3c-keyname + version: 2.2.8 + dev: false + + registry.npmmirror.com/walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz} + name: walker + version: 1.0.8 + dependencies: + makeerror: registry.npmmirror.com/makeerror@1.0.12 + dev: false + + registry.npmmirror.com/watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz} + name: watchpack + version: 2.4.0 + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: registry.npmmirror.com/glob-to-regexp@0.4.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: false + + registry.npmmirror.com/wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz} + name: wbuf + version: 1.7.3 + dependencies: + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + dev: false + + registry.npmmirror.com/web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz} + name: web-namespaces + version: 2.0.1 + dev: false + + registry.npmmirror.com/web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz} + name: web-streams-polyfill + version: 3.2.1 + engines: {node: '>= 8'} + dev: false + + registry.npmmirror.com/webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} + name: webpack-sources + version: 3.2.3 + engines: {node: '>=10.13.0'} + dev: false + + registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7): + resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack/-/webpack-5.89.0.tgz} + id: registry.npmmirror.com/webpack/5.89.0 + name: webpack + version: 5.89.0 + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': registry.npmmirror.com/@types/eslint-scope@3.7.7 + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/wasm-edit': registry.npmmirror.com/@webassemblyjs/wasm-edit@1.11.6 + '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 + acorn: registry.npmmirror.com/acorn@8.11.2 + acorn-import-assertions: registry.npmmirror.com/acorn-import-assertions@1.9.0(acorn@8.11.2) + browserslist: registry.npmmirror.com/browserslist@4.22.1 + chrome-trace-event: registry.npmmirror.com/chrome-trace-event@1.0.3 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 + es-module-lexer: registry.npmmirror.com/es-module-lexer@1.4.1 + eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 + events: registry.npmmirror.com/events@3.3.0 + glob-to-regexp: registry.npmmirror.com/glob-to-regexp@0.4.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 + loader-runner: registry.npmmirror.com/loader-runner@4.3.0 + mime-types: registry.npmmirror.com/mime-types@2.1.35 + neo-async: registry.npmmirror.com/neo-async@2.6.2 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + tapable: registry.npmmirror.com/tapable@2.2.1 + terser-webpack-plugin: registry.npmmirror.com/terser-webpack-plugin@5.3.9(esbuild@0.19.7)(webpack@5.89.0) + watchpack: registry.npmmirror.com/watchpack@2.4.0 + webpack-sources: registry.npmmirror.com/webpack-sources@3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: false + + registry.npmmirror.com/which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} + name: which-boxed-primitive + version: 1.0.2 + dependencies: + is-bigint: registry.npmmirror.com/is-bigint@1.0.4 + is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 + is-number-object: registry.npmmirror.com/is-number-object@1.0.7 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: false + + registry.npmmirror.com/which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz} + name: which-builtin-type + version: 1.1.3 + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.6 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + is-async-function: registry.npmmirror.com/is-async-function@2.0.0 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-finalizationregistry: registry.npmmirror.com/is-finalizationregistry@1.0.2 + is-generator-function: registry.npmmirror.com/is-generator-function@1.0.10 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-weakref: registry.npmmirror.com/is-weakref@1.0.2 + isarray: registry.npmmirror.com/isarray@2.0.5 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + which-collection: registry.npmmirror.com/which-collection@1.0.1 + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 + dev: false + + registry.npmmirror.com/which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-collection/-/which-collection-1.0.1.tgz} + name: which-collection + version: 1.0.1 + dependencies: + is-map: registry.npmmirror.com/is-map@2.0.2 + is-set: registry.npmmirror.com/is-set@2.0.2 + is-weakmap: registry.npmmirror.com/is-weakmap@2.0.1 + is-weakset: registry.npmmirror.com/is-weakset@2.0.2 + dev: false + + registry.npmmirror.com/which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.13.tgz} + name: which-typed-array + version: 1.1.13 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-1.3.1.tgz} + name: which + version: 1.3.1 + hasBin: true + dependencies: + isexe: registry.npmmirror.com/isexe@2.0.0 + dev: false + + registry.npmmirror.com/which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-2.0.2.tgz} + name: which + version: 2.0.2 + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: registry.npmmirror.com/isexe@2.0.0 + dev: false + + registry.npmmirror.com/widest-line@2.0.1: + resolution: {integrity: sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/widest-line/-/widest-line-2.0.1.tgz} + name: widest-line + version: 2.0.1 + engines: {node: '>=4'} + dependencies: + string-width: registry.npmmirror.com/string-width@2.1.1 + dev: false + + registry.npmmirror.com/wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} + name: wrap-ansi + version: 7.0.0 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + + registry.npmmirror.com/wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: false + + registry.npmmirror.com/write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz} + name: write-file-atomic + version: 2.4.3 + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + dev: false + + registry.npmmirror.com/write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz} + name: write-file-atomic + version: 4.0.2 + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + dev: false + + registry.npmmirror.com/xdg-basedir@3.0.0: + resolution: {integrity: sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz} + name: xdg-basedir + version: 3.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/xml-lexer@0.2.2: + resolution: {integrity: sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xml-lexer/-/xml-lexer-0.2.2.tgz} + name: xml-lexer + version: 0.2.2 + dependencies: + eventemitter3: registry.npmmirror.com/eventemitter3@2.0.3 + dev: false + + registry.npmmirror.com/xml-reader@2.4.3: + resolution: {integrity: sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xml-reader/-/xml-reader-2.4.3.tgz} + name: xml-reader + version: 2.4.3 + dependencies: + eventemitter3: registry.npmmirror.com/eventemitter3@2.0.3 + xml-lexer: registry.npmmirror.com/xml-lexer@0.2.2 + dev: false + + registry.npmmirror.com/xtend@2.1.2: + resolution: {integrity: sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xtend/-/xtend-2.1.2.tgz} + name: xtend + version: 2.1.2 + engines: {node: '>=0.4'} + dependencies: + object-keys: registry.npmmirror.com/object-keys@0.4.0 + dev: false + + registry.npmmirror.com/xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz} + name: xtend + version: 4.0.2 + engines: {node: '>=0.4'} + dev: false + + registry.npmmirror.com/y18n@3.2.2: + resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-3.2.2.tgz} + name: y18n + version: 3.2.2 + dev: false + + registry.npmmirror.com/y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz} + name: y18n + version: 4.0.3 + dev: false + + registry.npmmirror.com/y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz} + name: y18n + version: 5.0.8 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz} + name: yallist + version: 2.1.2 + dev: false + + registry.npmmirror.com/yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz} + name: yallist + version: 3.1.1 + dev: false + + registry.npmmirror.com/yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + dev: false + + registry.npmmirror.com/yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz} + name: yaml + version: 1.10.2 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz} + name: yargs-parser + version: 20.2.9 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz} + name: yargs-parser + version: 21.1.1 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz} + name: yargs + version: 17.7.2 + engines: {node: '>=12'} + dependencies: + cliui: registry.npmmirror.com/cliui@8.0.1 + escalade: registry.npmmirror.com/escalade@3.1.1 + get-caller-file: registry.npmmirror.com/get-caller-file@2.0.5 + require-directory: registry.npmmirror.com/require-directory@2.1.1 + string-width: registry.npmmirror.com/string-width@4.2.3 + y18n: registry.npmmirror.com/y18n@5.0.8 + yargs-parser: registry.npmmirror.com/yargs-parser@21.1.1 + dev: false + + registry.npmmirror.com/yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz} + name: yocto-queue + version: 0.1.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/zustand-utils@1.3.1(react@18.2.0)(zustand@4.4.7): + resolution: {integrity: sha512-YBfWpWEwZN0ZxtMg5zJeywTuNAaN+xVCTAjYC0SFsWx7hwfdHQGFbkA3ruTRBLez5S9y9ZwqnmFeDCHzRmLLMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zustand-utils/-/zustand-utils-1.3.1.tgz} + id: registry.npmmirror.com/zustand-utils/1.3.1 + name: zustand-utils + version: 1.3.1 + peerDependencies: + react: '>=16.8' + zustand: '>=4.4.1' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + react: 18.2.0 + zustand: registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.38)(immer@10.0.3)(react@18.2.0) + dev: false + + registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.38)(immer@10.0.3)(react@18.2.0): + resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zustand/-/zustand-4.4.7.tgz} + id: registry.npmmirror.com/zustand/4.4.7 + name: zustand + version: 4.4.7 + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.2.38 + immer: 10.0.3 + react: 18.2.0 + use-sync-external-store: registry.npmmirror.com/use-sync-external-store@1.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zwitch/-/zwitch-2.0.4.tgz} + name: zwitch + version: 2.0.4 + dev: false diff --git a/apps/admin/build/postcss.config.js b/apps/admin/build/postcss.config.js new file mode 100644 index 00000000..e87ced38 --- /dev/null +++ b/apps/admin/build/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + autoprefixer: {}, + ...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {}) + } +} diff --git a/apps/admin/build/prettier.config.js b/apps/admin/build/prettier.config.js new file mode 100644 index 00000000..e95b8c12 --- /dev/null +++ b/apps/admin/build/prettier.config.js @@ -0,0 +1,27 @@ +// 配置文档: https://prettier.nodejs.cn/ + +/** @type {import('prettier').Config} */ +export default { + // 每行最大宽度,超过换行 + printWidth: 120, + // 缩进级别的空格数 + tabWidth: 2, + // 用制表符而不是空格缩进行 + useTabs: false, + // 语句末尾用分号 + semi: false, + // 使用单引号而不是双引号 + singleQuote: true, + // 在 JSX 中使用单引号而不是双引号 + jsxSingleQuote: true, + // 尾随逗号 + trailingComma: 'none', + // 对象字面量中括号之间有空格 { foo: bar } + bracketSpacing: true, + // 将多行 HTML(HTML、JSX)元素的 > 放在最后一行的末尾,而不是单独放在下一行 + bracketSameLine: false, + // 在唯一的箭头函数参数周围包含括号(avoid:省略括号, always:不省略括号) + arrowParens: 'avoid', + // 换行符使用 lf 结尾 可选值 auto|lf|crlf|cr + endOfLine: 'lf' +} diff --git a/apps/admin/build/public/favicon.ico b/apps/admin/build/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..661e3169cfa1f94787df8fae8addaeda63a06c22 GIT binary patch literal 1446 zcmV;X1zGxuP)Px)U`a$lR9Hu)muYNNRTRhn=e{=`XbS_8(q-D(fDl5Jh)awV4Msm0(_#ryP@_Q! z(FEvB3$m&BWXUvko7T3-VhT!u&;)`_5T-@I1w{oUQ4`r(ZJ8EDGi=>v<{k4&3)A*a zX9nKKch33W-#zD^^X?kGhm0|cdS5d#3! zD?`vp5jCv(ws@k&4<|Qo_J)E936ND+G{zs*wMCG~BtRV~*bm^2(Z>qvhoxHHJWyEJ zHWWlifb1_FX?~S{0`nM|P!IqkDIR5{`uL$wtIppOfDt_NkYg1SHUJm|90Y((!=lz6 z+)<(3a|sNA7mpREa98(f2JQ>11O!jCCF+s7trd-715BvohtDm-8Gu+8lzDK2jf5xx zAOh`@3^19+>V}$63Z#oOQ%X6~n{D)~VZWWy)Cw-s$6{qm4t2-^jZTR5nvW4MZAbvZ z&z{kk7OVr(N;$1t!Rzi^TH6mGrJVQqffo0Fut6hT2JwQ+@v;K!911`&EAw478@J2i zlS_EGU!Z{q$K5u1XApo_N0zE%T1!6tC=;0T+n%V-mJ4S0C;ARCPBZFw|5*x{M|RY7{Um%j&LgyD1h3<%t`#95x+TUmHY8mqC0x8Q3c zWGDjbFXhtvvJ7N1;8#^lzOUQ{M0*?36X!tFq~(iu@{g z&TXSLQh?q?Pg+LcnLifLbs5CWddE~h1b|fqD_fS(N5SeF?EMUl)w83pPX{sw z`UqgT+fIccOJF$Y3~!7H6B-xOpOHXVOE|}`V0Yia>sJCD_SSqV3k#q(u(~Y?3z0+q za3GA4>k~K(;7OT3MGC--t1*Nr7wz;{H~@*oJX=>#OOpFT&#q+vRwu9a1M6j%4kL&e z4VSHWK2#PaZe;7VPW%Fb^ajO@4pkuQl8uZE-DyK+ri3!&5MUg*RM}2VgzRP;?H?)& ziB4X}zbP({anNi)8N1g#QK_aKII@SWaAS?|OV}>3@nAL2jF9t + ) +} + +export default App diff --git a/apps/admin/build/src/api/index.ts b/apps/admin/build/src/api/index.ts new file mode 100644 index 00000000..cd3a80b0 --- /dev/null +++ b/apps/admin/build/src/api/index.ts @@ -0,0 +1,40 @@ +import { service } from '@/utils/axios' + +interface LoginParams { + username: string + password: string +} + +// User login api +export function loginApi(data: LoginParams): Promise { + return service({ + url: '/login', + method: 'post', + data + }) +} + +// Get User info +export function getUserInfo(): Promise { + return service({ + url: '/getUserInfo', + method: 'get' + }) +} + +// User logout api +export function logoutApi() { + return service({ + url: '/logout', + method: 'get' + }) +} + +// Table list +export function getTableList(params: any) { + return service({ + url: '/table/getTableList', + method: 'get', + params + }) +} diff --git a/apps/admin/build/src/assets/icons/bug.svg b/apps/admin/build/src/assets/icons/bug.svg new file mode 100644 index 00000000..f7268a86 --- /dev/null +++ b/apps/admin/build/src/assets/icons/bug.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/collapsed.svg b/apps/admin/build/src/assets/icons/collapsed.svg new file mode 100644 index 00000000..0319e4a0 --- /dev/null +++ b/apps/admin/build/src/assets/icons/collapsed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/compo.svg b/apps/admin/build/src/assets/icons/compo.svg new file mode 100644 index 00000000..0164a17a --- /dev/null +++ b/apps/admin/build/src/assets/icons/compo.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/document.svg b/apps/admin/build/src/assets/icons/document.svg new file mode 100644 index 00000000..92d285ff --- /dev/null +++ b/apps/admin/build/src/assets/icons/document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/editor.svg b/apps/admin/build/src/assets/icons/editor.svg new file mode 100644 index 00000000..7b2ecd89 --- /dev/null +++ b/apps/admin/build/src/assets/icons/editor.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/excel.svg b/apps/admin/build/src/assets/icons/excel.svg new file mode 100644 index 00000000..f167095b --- /dev/null +++ b/apps/admin/build/src/assets/icons/excel.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/flow.svg b/apps/admin/build/src/assets/icons/flow.svg new file mode 100644 index 00000000..cc9c2ac2 --- /dev/null +++ b/apps/admin/build/src/assets/icons/flow.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/form.svg b/apps/admin/build/src/assets/icons/form.svg new file mode 100644 index 00000000..b27c95f2 --- /dev/null +++ b/apps/admin/build/src/assets/icons/form.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/github.svg b/apps/admin/build/src/assets/icons/github.svg new file mode 100644 index 00000000..4590cad8 --- /dev/null +++ b/apps/admin/build/src/assets/icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/heart.svg b/apps/admin/build/src/assets/icons/heart.svg new file mode 100644 index 00000000..ed4d9fc5 --- /dev/null +++ b/apps/admin/build/src/assets/icons/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/hints.svg b/apps/admin/build/src/assets/icons/hints.svg new file mode 100644 index 00000000..c0d6017a --- /dev/null +++ b/apps/admin/build/src/assets/icons/hints.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/home.svg b/apps/admin/build/src/assets/icons/home.svg new file mode 100644 index 00000000..beb8f1cb --- /dev/null +++ b/apps/admin/build/src/assets/icons/home.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/image.svg b/apps/admin/build/src/assets/icons/image.svg new file mode 100644 index 00000000..16de4ab0 --- /dev/null +++ b/apps/admin/build/src/assets/icons/image.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/like.svg b/apps/admin/build/src/assets/icons/like.svg new file mode 100644 index 00000000..cff0e7da --- /dev/null +++ b/apps/admin/build/src/assets/icons/like.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/linking.svg b/apps/admin/build/src/assets/icons/linking.svg new file mode 100644 index 00000000..110bdb37 --- /dev/null +++ b/apps/admin/build/src/assets/icons/linking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/locale.svg b/apps/admin/build/src/assets/icons/locale.svg new file mode 100644 index 00000000..179582e6 --- /dev/null +++ b/apps/admin/build/src/assets/icons/locale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/location.svg b/apps/admin/build/src/assets/icons/location.svg new file mode 100644 index 00000000..1d187aab --- /dev/null +++ b/apps/admin/build/src/assets/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/message.svg b/apps/admin/build/src/assets/icons/message.svg new file mode 100644 index 00000000..8b9f3cff --- /dev/null +++ b/apps/admin/build/src/assets/icons/message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/moon.svg b/apps/admin/build/src/assets/icons/moon.svg new file mode 100644 index 00000000..e6667f0d --- /dev/null +++ b/apps/admin/build/src/assets/icons/moon.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/apps/admin/build/src/assets/icons/person.svg b/apps/admin/build/src/assets/icons/person.svg new file mode 100644 index 00000000..2a7f8fb4 --- /dev/null +++ b/apps/admin/build/src/assets/icons/person.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/pushpin-fill.svg b/apps/admin/build/src/assets/icons/pushpin-fill.svg new file mode 100644 index 00000000..a8836e8b --- /dev/null +++ b/apps/admin/build/src/assets/icons/pushpin-fill.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/pushpin-line.svg b/apps/admin/build/src/assets/icons/pushpin-line.svg new file mode 100644 index 00000000..e8767f3e --- /dev/null +++ b/apps/admin/build/src/assets/icons/pushpin-line.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/screen-full.svg b/apps/admin/build/src/assets/icons/screen-full.svg new file mode 100644 index 00000000..d1e2542b --- /dev/null +++ b/apps/admin/build/src/assets/icons/screen-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/screen-normal.svg b/apps/admin/build/src/assets/icons/screen-normal.svg new file mode 100644 index 00000000..4f8844a5 --- /dev/null +++ b/apps/admin/build/src/assets/icons/screen-normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/search.svg b/apps/admin/build/src/assets/icons/search.svg new file mode 100644 index 00000000..bfcadbab --- /dev/null +++ b/apps/admin/build/src/assets/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/sun.svg b/apps/admin/build/src/assets/icons/sun.svg new file mode 100644 index 00000000..a3997cbf --- /dev/null +++ b/apps/admin/build/src/assets/icons/sun.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/admin/build/src/assets/icons/table.svg b/apps/admin/build/src/assets/icons/table.svg new file mode 100644 index 00000000..9b402b41 --- /dev/null +++ b/apps/admin/build/src/assets/icons/table.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/tree.svg b/apps/admin/build/src/assets/icons/tree.svg new file mode 100644 index 00000000..7a1c2556 --- /dev/null +++ b/apps/admin/build/src/assets/icons/tree.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/unfold.svg b/apps/admin/build/src/assets/icons/unfold.svg new file mode 100644 index 00000000..32249c91 --- /dev/null +++ b/apps/admin/build/src/assets/icons/unfold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/video.svg b/apps/admin/build/src/assets/icons/video.svg new file mode 100644 index 00000000..ed867571 --- /dev/null +++ b/apps/admin/build/src/assets/icons/video.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/build/src/assets/images/avatar.jpeg b/apps/admin/build/src/assets/images/avatar.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eaf44be9013965461b53cd05d44751a047b750eb GIT binary patch literal 35510 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 Lz>Lw%K12W6g+lP5 literal 0 HcmV?d00001 diff --git a/apps/admin/build/src/assets/images/avatar.png b/apps/admin/build/src/assets/images/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..310a864de8364b3e40611186af57341a76a920f8 GIT binary patch literal 265579 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

DPwCbdGSz}0&od?zN17ukEia!lI;aahs)bB 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

$y^Hyp_w*95Z zpqgWDR|Sj+)G#zKlnpW18i0_P;jo|e5;iEs0|_9;P?GFA?0W<5H&OW+FKCy0T@zn9-i&rjPzIgFs zwOzcueYsC*&t^Tt(|JL&xt7(ipRGT&wY0D>TpW_&W5$hf@p+xdKRR!qd_ z#`O}H4zhGx^6DP`$`uV?jmJVqm!HB2=i5>SdLwScN9 zf2gWKRTV1rOT8?MZxB_W$;DCWsAvgF78ZtxJ2a_tnR9HNAtFT}($qTZtg|VRVK!(? z6%kob77T*-z9@@)YhDcmpwjdJr+2s6`i{`VzB|wVW9MCDjUKg(v_5Tw33L z{P~x?Tds`DOBL13SRcN7Nzk=4X0Lu5agFsw<7tTm0K$<=x(-#4VPlPPPT^6(^$a^z zf{2LtgxDD*jXmiSdk`tzM7A9Sa>l5T1c-zn1XFLfO_Z!I=Drq$`X)8*+!PC2Vyejo zBGj0qi*Hq&KX+kkYbR@#A~C5Fl!^CLqhU9o(T#WCzz{d}CaU6nu-34(^F06j&wYM0 z8gV=^5J7^df?!j-HJQ0|ac55bp&jS2DU4!h;d777Xb>_6WK*K_PBnt*%l#l-Tj7{aNEk=cL=YQPM#AeW4ml94I`Ak07a!Ml$yEk6I| zo8NirsrAjRLx-RZz zvU+HA%gIBBSF=-R4vj|X((>(tp*5BbqQ9nw6c9DOstWH*!!#TXZNi%y>k74r_7i7a zV#q1Hs4gs=^p(%^Y302{A(h&WlZXgKZ#^E^5o#_#j(5CfkT-G2iHO;-MK2BBM#X_R zQ7PJO#5bpD%GQp@V?_W9R5Xb9qTU0{CL?kZ0JWYnhG9pUlVd9@l`l%~t02|Hk0<{1 zS1!H&`b)38xVE+BXWKN)4sWfMj{1pRaGd0MY1957Tj(XD)x~3>R1w+U*uHdSeX@y0fg7}ubQ zOBGF6@@f;`_1TphWReOsiy)||4#;^uf718;^a&I;dy(}a32~h$i zPsY|hdlUYZMuAh%InVtFS`$*L)52)@XBco~Va0o?NI*iuY+~7%c5{c1FhR`|s{& zb}-EPnO!}!m?SjlCrOfcnOjQ)D{4ohAxNyTB30$RsyD`hBri(u5!4a0wE4B!Ij0j9*t+Cdn39|u-hKeLe6~tG* zEQwO$z#yY!lpMh#7=_WU>1%bYe$)l+*KZ6MVrSU~Qb8b!p$kgWbb`$?M*oZjK=Sh+jo135g+-J|+ zej8guOv(%urJ5MTIUArt^wzuM-~Qqse(|ecn}^B8_4V8S>;LNbf}It4Ki1mTax>JC zPTbS>nD{0@kMErnwRUxO+3srAr!Igt%H%1*5RMNA>t&TJEq(rTpZm`sQXnTsr)*V;|hS^d^L4FeJu-ISh%Cg-By9Wfpe)Zmd9H8V z%4qrM(%~N5%3$T>;!$L76S)jvER6Bn<4a{VndLjPP#jz7&!w!&d@`R3X8F7tkJ%dk z*kjLRS+X$9vYv&MNy>wsOEOtKk{KJ4)H>_#zUR&~O|xF&tTQ%E5|d?Fl33>)J0zI} z=KGEG!>VYpu%$ zmZw|W%ZrCj-*)ow@dYH_q;mMk=;ZOkcb`6e{~dRnOi?JTz(7p|-q*?*97!OUNT5s< zM3_i5baR+-?F3Lz@`PtzeDUQs-X0u2wNrWGh<<3-SS$S72JZI?=5$koU0R36a)~zJ z`ug*AACe?dQ8sLxBf~_dCczdBMF~>zm7nL97Y*2w8dXOowQPyZUftR5g9eBadAoir zkeRDiFi~PGNHsL>I!Uc2a@}@Q8}|bn?*#%z&t0$00Ip5xc>Cw~{nKfhmSvS?*+UOK zt4MQ#0#oOz!>*|9-0MqNJEW3>{9K2WG%9 z?djp8OAn3ix$~Y^-dTJ3^>@ymJv+mn2Ej z%uP|*fg#w?*fm*Vd9tLCxx|rzx>nmY6g-+&hK7*M(4WI6vPoEWuUE#dx~T zQUxyoSneGof}hKHRtC)xe9$7u6y_Y;GD#9=?eBl_jb6Vu8V!2A9uxKY{n4o3>-C+p z)|p&Sa8bzO+Gb)?`GE;FuD_Df56dfm%ZgsDjYqBjH2+JgCA;Zw={}$ z^QlFpArf#BNa;q__)TrxYv5j_aMQhxK+{wu%d#xXRJEgR+ZyqPw&J}=P$s?Jcsf0G z`qVx5-AC*IQVDDwl#8MQDC=c{;@HZu=ia*fn_u{y?YUn%vwHgWTi<@`<<~A;IXl6f z!~Ue2CGbWmXsNI+)O;j?~WSvO5Fz@YpneQRHZ; zkL6s)X9$^U9^^=W;mBz5j-$sva4+6IcmDYoUwZf5cQ>|nsxVGcx#z(<%UgA4YkKM8 z#qng4&*!Qt;ww>h)_W${q9O@;X}Z03Wo%8lR?J-5TUZ<>iCsCg5G#O`{qfbKN&<+m zgr%dERAn{ufy8H3(4w4{k}E3V%7-#wy0Vg#ey1pkst80hFEHPPs)9r%2XbJ8xQ-YD z0xD~PH(+r%YR92Js11EAs;CF8URt6AD38aJW-z%<(h{J|&J;y4ofi^#adZ^50CbO0 zGCAfWL}q2-Zh}!U!4uS4oAt7xwdv0G%#exd5dB3MWBOT=rfzkCHH5M%NF?6jvdr_+ zU*1^T+MaG~Y?i)qE{y{vhQzrNGA)a|n2(l^t}HJdT0L^&8WlA~zy#wtoy8euG|HI0>+Y9=*OWu$gA4`m>HrsYzih1w-AUl>L)0Mon22jTgFqVb+#i!yZrpGZ|v$#299d!~w=RQPmJC?|oT{ zNC*{4F!016FD!ncH=qzgQCeqHc2?DBFwpQLjH=&wYvb>+-WEh&#IPYStOS)%1W;sz zB^(r%37zr0sf{}TRlNp){d@QZ)tUtiO=;5i*Cyj}kZ}Kl51c%CQYjWhDHHkNBfVS@ zKPxB0EdA!AkA3k=UtYcS1C$QWUfDi$>aN$$U%9wFJ~AAo&X(oeMNpyyg{rc2Qoj4m zdUMO;1vG19*X4N+MT@LRT*FLoOqn&g>Z~lQ;7wJ1@XU#ipE+@PK7Zq#v)_5@$v5A5 zJIVUnUYFgWLr0HP;`2P8&*tOFxSY<%Yg>6VM~^zkHXZd{-}V;>u97@RQHHr_rR+g|GTlgZ$s&l6?ro*cv2HvW zH^UYc?uD6|F)w$q((?^8EMsDJJp)0v1`w2)Rsp~mCQ?s*OZ`!;=cCd>x|$CH zM8?>}*&bl5$qc8KGOK*}M5gLR#QT5{h{#yB%oi`7ud1S~a`9nfeJzepAbW0Ohiqok zB+asHVPQU>Y)^J3^YLh9p}#mfeCAMZY3cB>TcjeDI+%i`nwKo0oq5-~W4*l^C-%%d3FF zO7i5(uRQqtnFmgOl8^*rf)4~G)~L4&kfR>E~WOdp^H(dAzo^ zwlm&w)-DVe7Z(o^%=Y1(&5ez%t(`KTU)oqVG_^eKvFST9K>zb4lV7W9{*iw-`3YskJaxvxJhwTGva1F`OD>h-fkyi`3j;A`<@rFdWuIasbAY z?Kq7PY6UK8od$v$>W*F$C5wVM$n&`}lg61vYU&uEiW)Y|EQG~{<(MQgO+?24%+@(a zWYhy{S&|SacvUHQJ}LZUKA)Fmxic9Dk>Gt5v@CsI`Kt6GKw*eTh%3g*ZFf(#DvJ5E zEZ=$eP1ox!EiN57c6?=JX*3$F9A54%4zgiyCm)N+LsH;W>vRDF>G88Nv5TH$NU+S}@0K%$(LG-u5Y{h%x#92$CZ@zow`IlY|6r&w5us}_{ z8DlS3Pqw%>bpJ*>-J98NB5e%ULurzTDs@Z*QISwqr39&b<*O?A-IOdf=ohX}BFK#E zIT&^c!w^`MTHNGMLTj=VWB_Zx%#g7A(od*yk4;&UH+@Z_Q!P)1Z(vdwWg zi0lG16}z|uX&v=u2Qc3+a^^-F)hoKrYAg-=q8fY|fD||}T7)rWsDcD$+&Nl0{Lm)~ z;FVX$FTe8g`HL4fH#Uo+n&m}Nm8WhywQ~H(EYCMKubj{`n_C+j8<%EzzIN$y&m_I9 zALCIX3Sw(0lf){KvSDIy5xk$xgM^D4SJKR+nR5yGvPd&C9QM+rN0Ozcmt|R!B$-{T z-ML4{8SXCtgWR+DT?7d0Wsf0RHw_7&6TLZbYOG4MEH%dgyFdH_k z1TT?um`Sm-vxAy$x>Th+&nJ^vF)IiC#j=npugYp>d*!s)-kFT&vwU%7#rtYrR7K?% zR#r>ZQYC;*;tW|KE=kw6uas7dG2F9@%eO2qE*(F5bY*FAb!8z`WmV0}d@CDOJaFsbzF`!=#E3E(tI7mJ%r#>u5D^L_(8!&yh)l?P=T~$+q!}ht6Nh1YRt)>; ztM8n9{yjif)~IMz6-7~$W!bgq?ILLi zETI}Abi%Q*3P*?(Cj6sTT6!-VF|0LSAQ}Mru6U4}+PJrL<%o1ZZIr3wz#l(;H0!0# znW`#>!(LGoU@FUsDdHIf3hAgO>=jYHfljDOb4=XW+`jv+yY9XBes~cLvRh?pt4eY| zgX?dW^e=zwD{q{?oD5cy%vGVd@cIh??z{8$Z-48_r$77fvCn>BHm8Ae4Bty_l@~1x zUzJpALOX3x*l6P8wPrP z5gP{787Dvh6c_;s@R7Sx`1Ni80Du5VL_t(WAGzz}0XTnY`^uFo=g(cZu)g#38|T!x z-hfW@SHX1p%n8-|LRDQlcfl8Bp66xhH@3FQvJ75~<05fJI7-6y6DLJgQK-staWtGE zjLR`fumR0jXA|~hJwfWi#JK53Q`H~1mNGP+Y2uERrfD1x0Lx1&q8d#+)%gY%5oSg# zE&~Xr9j-kI{9@KVo=&IDz{(^{1B;4An4U<8!3VAF8fyr;aVfID3*dbaqtqXo{=$R| z+06AVNVi2x6U1^*GEB_O%wm<3jehuUelukK60Y)OJ*hBYJ80W3mZ4Q#(GG`sLt<`?F}9dZVXRGzv#zdOX*N-b zgnZry34lcEn9z~2jNW>L)5Px#s{MX;cxgogoQq^(00=<=mG^=R;rnRcO8}v97Qg}B zq;hkKB+({ZD>!pg8+Y7*=YH(ivC(k2v9WRD#EG>_mwUZluh&;qsXSV)xF2Az?w$s! zvRqzXPLc#o1YZe}>Og`pn|@-y@bxF(zO`E&-gPkiUO`)fspTz?WvF_}QiIp|V07Ok@ z1PL*$7mYaHJ+CT67R}~IbqSb31dl3%3E)6H2B)WDJXtY5>?EfVoOoh($z&R*xM?({wl(C4IMac<3pJst>c- zY__ztc;v{@rN!R8cm4E9J`=ULPO{l-8CAf$uLcp zfCa&^BPTw5?+FRGbZO_Ux8Hv2%{SL~#swq~RaNG`3RyzOjx3$N<;c7U(_D(8nonnC zUKsIZUd*>A<$OLH&mgKH0IQQUG{+Jx9<2^Zq9-n;21SToc@x5_Lo`6mD;|Y8 zz)FhQeAaTSHQOZ%MQI8g)#b%rmh}hyEbA?e7E}ci6hSZ_rpa(P>ZjRgG&;0;=;Xg zc4^+Pgt94TwcU27`pj**U zzpxu_GuGaA`|aO;{P8@`2ZO<2(4Wuq&5eyChY!CeePG(L(vOGcXvqBukU3$PYH@ zF&wY;9BtL3W2d5psS)wI2QKm+4Eur6n?2zyWu*vDFtrs>GzC@xs-PjG7c0Yo<Eya;h!qU=GTaR|~)>A?-1_tDk#27?Am%*^- zeVOOes`8U!Epu0i2Deo03tnDmQcj zDzzw{u?)cb03{OCiDwZXB=}HEIkG@m5hBa4DhW$Ge<%>3La3l1dgYBPXD_bVbdbYD z=GGuAaB-kSJ=)UKR#%=Wh83Dh0(O?!z*=LCG1jVR2%#(s@2h$Rppz(%fun;=+dfsY zI(EbWV4Y)XnW^d#`H73VN53zGIzJ>qTI$p5w42(vqb)&_Jw9o7?>c zPBcef-KC9`8t1MIf(jdhM!j=4?{^hd!@hQH^WQ;SUbl7ldJwfOOigL5ZLE_418Y0S zkb#8`Aqqc8a>nUHt9t9I0Be`0v)OcOYioO&KmGC><2)aaCzIJU4-%IqD^A^UQoQ$- z4-!t^ancuMQ50oW-eK+vAyif6y=-r96EPDJxwT8%-osbk2S1t3B7_PsE#ioPe4e*m zB~wKrFj8<+S}71BtGjF;yES9dZVbS%w~LoQe#@=aTH~Ct#wD4t##v{q&9cl{oAr9e z+0D&$<80PToO6Y*LZ~!|NM#^wh*=Ejm9;mro*fJZ{cLdb=$VtpPMkb>qHpc7(c&m^ z{T{j%Yy^zBCcv_QK`^QiwOW%HYkiL$xuDj2iJ{_uJYrM0txY7=yv9>JBXP$oM_1E4ESYS#C zPQ_@9PKyQk%6pQar0~pmXJQ>*CxGsJZ=-9yNC<90(CX zA-i?yfPuGScmHl$V5GYq9Y!mIur!dPM?CN+KJ~$^3D!0@wpP zbL32F9J9T=wib23iA*wd!83UnueTgNr9vV>gihUYXBALYJ_Ij9?I~n3sSA<1G`|Et zFE+0V%RuUEeC+?8b-ui^(s_TRutkWdR%U0NwPre>8*7uqIkwaBSf!jzr$Lnf@%eN| zR6~+jW4V_&=PWezdf9L|>}U4Y+deuRrAtf83xk1mCP|Xim<$*S5(V?F{%AMe!KwtY z>WzA;nNuwQl}10d;oFEzimEC>)Q8GfL9d=`%{MD3s-`MLbUK?NF+F3~H@2UB@ui?f z*m)QQ6Q>m@asWVmROeu7Lhpu{h?$*pEw(TIVo?~f=iPwQ8yK^!z5h;=qe z>FCj;1XKdcNT@p->)U!$k;z>1>QtqP$;5Ue%l)P{?hy^)H87b*RAGNx-?(((UwV1fFn76lp z=!WvX?@6ic_uabMwF+s4pY|6ID-8Qo z8*x^h2}c)`LDCxz2U(Uy0-V8M*y|d-239 z0z;$-Fyx%GNfLmseEnt+uV21=`2YjSObXRdryReh-)73vbbEVyxVZ4Z0}uS= z|NJi>I(lq28xI#3>WmFTVLa%C*WUf3N1o{|9w{Uhuqd?@^c0PUNH0sOP?q!J%U}Ka z|L%YLYquUfG#ZS8da7Z>bpmeB?<*oRZA;rEB1Gi9XXaSDTc_+KkWyRC`$K@zT-B7B zI!m)rD2>#55yr_eo7g!J8)-w;F{%ai!3!382Ee>RUV=0999A4Eq+1?h43;v(Agn6j z6%tT}PgjDn3YCQQ_02rbBg5i+R#qWYRaFI@PUmQ*{)LMd+di~hF@WqYZ>nQpHT*R0 zOuPOd05Ig9+fTHA4*P@Ji-#;98d$^5S!3cta)NVQeI7k9E5I__jKs*L8xJ|;)Zrqt$RjK;&yKvZ8j4RQ= z)&&(2d(tqfiYhaa5*hW8ZC8|`ZgFX~H17Gg&wura=PqrRqhqIc@}T6rAV3k}@Cbl1 zbA#gr8#c^IVq3X1k4l)hOtXIe$?7n~kDG0>v zR0Mx*;hVy^A9(tTM-V0w0TaPQ{dvJ&Oo(%Cduw}fY4LCTjlc1K zdFp9jRmV@9c>ek4hrPbF))*5)XwP?S*c!WQ_&T2ZY&Pxp2W6->H#Qd+7km9)@L_Xj z+azv#GQQ*PyZ-jy{#*AwcpngY{Y*g~6hM{ABrgM!|Ml1Z;H~xGjZFq=9qVlPIpZA( z02w>k*;pD3FI}1Z{r~Bo{dfQE|HBdzwnodyW1ObxY&IjsV9=jTrW6mGqC^yHrhEty zB*MH4*yu_`wV0V3FaG)-TZhlD1|N1aSwJ-8F}~d)-p4NQe9b`|i$!B^oq+~Xf-^7{ z3XTqE3iK>+m2VO(yhR0so>7=vmyRejKvaznvHBDMu3VW(^V#*yt#+<8huY4(>m*cb zdmU+M70@4avG9Do9dPHZ`nZ!_FCI zHqH@|AgHPjmG_koLBw~RZ-&=hb!2%#w#8{?XM+}u?f!9Ebq9zea+ zjFbSAFaY6pvhF#_XsxUk7*$h9ReuE}MjwJDt>fSr9qJ=)t%TcF`yH<5gN3dr60S9; z``YoWOUyvpa?aHJDN(5iL8xoh^gT*RaI5K6bVv=5PVaDw8sV6$2oHYhL#U} zmrW8Tn&L*bc&hk@1339{3JgF(PQz9ucEvxW{z2qFq$W*EKN zvhN#&A9w$++nAIo1gO9g3!)6^oCW$r9 zCQQC4g%C42M3f}E;hhMui;s^UJvthVwkP9PUwQS8JMK7f^5ndjU%YtfPyg~S|FysV z*FXCw9yZKHQCMqz@IjcYn^%6JpFa1>`G5S+{+BD8^Ti`4J#!@Cs5?iywHCxwlzEo* zs&d}X(wAR<Ku}log8^YUFd|CCkcl?-z|m=L&0fRZjA!@NP8ss|&_v055m5-pv}sj@ zfDojrV$8j>F|?#YZTE-`Sil4WvYu=@z`3`!pLqH?ay>D%z+N--stl-FXGrTZ>bT-0 z1TRunx%VLiAF)Wy@HO)!j;k`-6UMbKZ7;KYy$g4|cp|V%Eg0L=>7!3Szj^W8+RjgX z_S5$+BqW+t>N93zsFnTc9x3;@9XE%SZ%a~xMvchm0Um7AyA%87HSYC(MF>z*5om}q z*?ZMeB*0l0BxE*AUGjJS&fggh2mk2*^N+^kZR?z~7C_8i5pW9+2gEXU^PuWc5f< zlp)AyxL}!_bIv(yEfZO5lQc=w#2DM_^@^$}%QDN-yY9OCFa76#>2Lnczj^z^w>}(1yg@zfeibq zGL}b+gG-mrFE0-t{_q1Mw%fCDmL$EbmrrNT+A7bZYNSG9gqV~mTAvs+=ossL@%KG8 z4ulTEZ?E}#Z>BI^qt!pb*Lsy`_rFO07cE0P*&70b7*P;;?;GPY@r~RZ%UMCHv51yB zRobjDP^;otog!hA5GRa;C^aTws{bQS*d%Nc=7cFBSinMU#E;YNe-^<)Es-S{W<$h4 zDo=bNQa>}pXVXeECY3k zXNX72W&=>{N`omthKLMV!z5Of6Ec0ZgQs79_h0|cAH2Q3E&auUof-#bV^Yf|O|sM_ zmJCH0wnVa2U-?Qx5Rvw(n~6zaV#7?k>US^GT5o|-O3d6QJjO`;6 zhyhqsRpq@W=GE2JLc_ZkFFyL6Z%^|aCh0AV28qo>?K{@4e(V2J4+x6p^f|saZ3Sc^(j>qF9NgjCM z{!^!J5!J1&tvB9yJ)h@L9W5**E~(0*`79e_2qZzg_aZW%=RSlaO@H~9|J2|8zyIA| z{&RnJWqC!tk4l?yGpP3$V;tKj-@5b<{^37<{-xK`!BQT0vbnQ(^jKaN3ZaHHYB$*G zm{JG8hbrQC$|_H+e)8iVTaukh%_~OXaG_XNP~{i z*9IEfjiug*@AIDB*=|Dhn*VA0YR$&m6&^u{>!iEny4~-9{tsG{F@ae_45$H?#F$C5 zB}5kBXy>&4_kjOG?dH{stBLUtx@2}uq+tJIYeu7cB)PiX$Oha^V($r3t0)vf1a&c- z1QB0WyL`w&Lhv6gqj|~y_6uM7+7r*%rPZ90$|P`^ zG0w2D#+u0Q2dZnA;zj~#Q$)<%C|fCa_NM53>D>(I2=aRNALAh5B*fX z-@oEHUT-@0)Af)9RkW3woV#f4!#a4M`|HpUW@oy=y-hn7G0xzBy};fEi3=%FM@ z#+&P-<&|PKV`Hq{6TcSl+gsDG{LwewI(uRD*e#Q3uvxF#**4aqu4`>>k2b{Ej1c8h z7_g?ua~OW&$?tsg8;{)itG|*YNmW*f;|>n&D(WR6kjUQ3j)-_L#>CAavNd$0?b@h6 zw;v(%qYKe|9~C0|qv7#JH`e{?FTBb~?m|%Zeu=5c)~E4 zYlXnsRIM{M6=r~0h+|ko0Tp6pFBQ~FI52X~k<_^}?A-wRKA1pcN~Nv{W#?a_cGKN+ z(G9Lxl?*ChI_7MU*mO4AxNz>>FF*Pnm$|?2r+zjwmchyhL4v|a<2~$UA#R8Ey(9S8 zGxB?H{{C4JpaiPCuY4uS-I&aGP5j=}#=SENQdJ@`%jN(j+sL)#MY)uX0OWbTxjkJR zj)-YKo9}Gpx7~KznOjaj{P4q1JpRO+Z@u~4bI)yWZBKT#+OO@U*S!?=aYy}FU0xsFSabf-UzWnvoW2Y;1mp9*H zn_+cnYkRvL_dQ031R@;g8(Bkko>#+RZ!($w(YGG?{KG#z>SrpUr$jLX2qCV;Gn(Tk z5W!ExG3*;xY_#d#dm=K%>_b2@ce8Up=63x^;hwzfRsC&08XDidJrV6&ao5j=9gKCO z&d*+ZsI;3w+3jr&GuijGKVFp|s;kvwT)nMotZ_eVjD(;fUE@MT!3UU{9ze+iVkP!! zEG64HzVXzv+g|Uu|D!Kl-lVLjY>23)$B*Yjkx1&&Sl)fSUUht*_HHG*C&qZd6pH5P@BN#vz25%b;?ihgVPRom z!HX;{FL)IRLBtbLJx`nUe>e>)FcmSq)WePg_}wG)(B zS)>8F>^jQ=pg-yh!H|kConh6$3WGe~dHcWr@BW{^_NV?dL(ShC*TiKUur#_wTf2RrYXS1mgwfjWUDd9~WOA+hvd4#QrkS*XK-C(- zE>cxh2w^^-1Bit65jYT?fSCCtB0wVD4O_dgur$w0wKmE6;|m)_j^fBpCW zFwYK2|H!)MSx`@bqu(opQbklnEAJ!wWw*c9{$wF{@gG9-0g>l#}_dK98h%7kX=6^ z1B|?v&U<^auD;8=G#EgRQ2H>P7ex?-^<*?L&0u*iGoU?-pnXHEcMrLOw)a zq|yLI3d_zI_Eo4upOMxc5M|nH`U$e(T{)3ut7|Du?AIB)ez2y?73-JVh}C(hw>D z0v51v^6e*|`cuE~i+(mc-0xY~NRUpfEW23}YPj^8pz<}B{Vraj3DNwxZ)m5{H7xrL zeC|e?&=1+YQa-3FH^srI?%-a_?j!urM}h%_5ZWk>YLiVg01!kBv0<))S0*9~3=l6J zK6G&#-+B2B9<9tvH=UO`^@5UWP>%JaQiUK@&6y8)v__{sUUd=uK;!mwApo^EcF+}x z9FRx3L27FQLfB>179^ccmCWjJ{)d4x-!Jjg6V*rw!xhJc#t%5 zU0~>S+D&NOuevshiPR+WPx~MNC4dy1SQo1{+WkrZrl=_)Q9w3`C;|}~!^}*^G=vNU zhD3^O%MwHc6qK2j8s#R%cs4t{eA0m4-kEu8k>RPA-uVCh#%~`wdRrC5m*j(H*&yvz z^Sp#Ah&xAj0oD1Rsw`1&KoY1Hdt<6p`0>Y|USHq2?Z^sz5Mnf-=>tcjOB1%6Vj^nI z`o1UI=nWd3ohV81qlZPJ9hGZ0{$4*&w`-a7w#c(hyIuXxJ#16mUK}_!-}~l42R_{U z)DLKo>{e8Q(6nRO+06&6n~X(edua-wqnu04y#oJI%Ky+t0r8#$;>r zp^ts=Qy+QYzS~9%7DgNVOwAfEbtvh*UM%|-EDlw5P#hWV2obC+0ZKr9Ru z_Q6LoV}gI1nI$qSQc(jT~@tY-6Fm0_ShNYwR# zO@SnJGJXUCuU+1J^pPj-`jwv(F)9JX027&74r3R59Yd28)2Q81YSECjR$OD*(VY8! zXlw-Uw;xZ_Zq~kiMm1V?5xJISzg8I5hrq@dV~Vme&PH1N!2HGrzV)3KUw-raVD&^E z$X8yt>?fI2K~(~RYDE0DA@A?a%iQgcT$2Qn^n0ipRn-vvs`eQ|3{^HYv9QX*CP^2D zgW({d*Ds!Z=ePdg<+sj$_M;#8&pv-YQ>-sh18+nOQ55z9NcBgN#A?Sx2tjL@SBMo0 zZ6NXnx^R;l_nQAmC;%g zC@Hf#ng_Mc*}8g2k<AHxUs8vUCB=iYV|y9p=~kOzvg z3ZlLS6{{-9vVue;3R1?BCm{x@#JZp8s@BeXjrT{Jr6=totAzm~VOH3nOk@iZ7iJ)A>C`M;&W@1E~IMg05(nhyr!J z8w1Q>hBY=xtaHk-@JBgPCkHKkm==|Ck`5P3N-l3~Jpb%dTRS^*btg_7P1B^vO9`Q$ z_L`x4@4*NMg<_zpG2=L^iqe-sM2Ly4G(_gwN$g##2RE;AS5N@T%9kPvl8AdEZW8Y# z3TP}UkM^C2pu};qYMeDS9$9slDzp1oq_*`8BmxJr3R4um*YAO_Hm)vimw)*6@BHik z@Ov-5b#5jmS36e++Yd@;3YcRV1iK!B8uc+vtEv=1jS7%NL7S#Tr%97S9cyCj#kbyK z!lys+>7_x!0+9fg$b=2Dl@Cg!ASF~)*;Fd-M><6>;Je!Qws@p1UVY!V|Kzngs4Z9f z>}`Qtd<>vXsN$e|9bKI?O;j}N_rN@v=YxeMW8D)ky!pR=;p^wOE7u#%D=|q=i2#XiKi=wKsB*_9c~$v1K*UCgK_sytxk>O|s|PoESO!WAjfSy%;$Suml1dZ;qvA!4 zP`}@2NB}F&yi<*865l3*O@0OZhV|z4GtB^37*odvjdK zXyq7{G?^BG!(g;fO!Cn7hoGuKz{$W#De9HrOK7Nn?%LPKMI~vk-(NZWhhP5c|Lt%8 zZ5$nxB?M|>DPLC!toBNz3I82%Huv6JYhzdj9g@Ge{;jojmKE=@?CSgNN8f6AifXj% zt)Jd~eEo0eCg&ZjG7P7zGM&$kr}o{o@t6MSvCCVNW2f)BeEIT`<0rPZ$5Pw%YZroj zzsceKr6J#At1p(Ai3|wVSYx6}EsQb75OeSzaZ6xVRCz@05ZV5*le6)-Eayp*xNIpq zmTnb0|KbZ@+L=uM;;;VVy(b3=Py#j*T0kIyAPtA4RpR&1C5lJ>sQDXIgZH8uc^Ood zRKeiL>KuQcsXajHE+I1GW;X89qFIRuakFYF096Da=7u+w6z~D#Y3|r2Nn#l(d-0V` zGPTAr#&ftHrqgOLbZ9USWmzpG4!};Ky_7a5C`!G&vAsE-J@w3U-+toBvzwDG^h@foY-ozC1r(Oow53z`;g88EG!?{+Pv&~gYo9< zw|@WkPW_+%Nz2U~zj)JvLo~mkxcdheKx~_~~3;Vy@uDMHGck0#98q_S33I%+$>}=RX z%_n1-C?K-P8LWVW9Oe)pS?zw*{wf9B^O{_~&z zSRd#SKnPWtpaKO*0XUcekbHmGv%N*{^=K&S@|>U{Kr0DM9FOF6o=_W_2xX9{LM;bX zuTlx%Od*;kWbI9A+^<;@Qmf>ssYB{atgVq_7Os@4dF6~!#5)KwCM9ox+If}hWcM3t}Ol9XO5WoxWD_nqgTpBB|E$Ck#ESz=5( z1lE$OX%I5fRxMo%=oX*2r(&vu`#RY;`rbE_E(;I`h~y#zyFIz7ZOtyhX&3< zj8uRihI#OwLD3pA83fe;t%C3MdO<0GSWE@hNIBaoZ7GXL>Ae_IYsvB?s7TV#t`J zXPBpDB`Ty>k!-}A2y0Nzi%NtvNnP4|{5wxQ_T*D1fA$kFmdq~ytsx3hs;V)lynyQE z&CCa4C))LVefusVV6gD}_WkB>EiFv<$%YFWk@T^BvW2=|KQiNNYOF~TYmG^g{!X!7 zG3>x>ZQ+S$UVQB7=a)|3BlA5UX+6lgEIgu(_jv2y+gxhNl=k5ruk8w{Iq4^02Me?w-h0*}yA2VEPyp>rrV3UzphVcA<{@QbhLRG5Ox8oCC>35o z3B7$jf9k2HUVH70o7%YJ`;82!5GQG}WETz}e){>Bic9O`N#S06buyXkZ0;ado&o@N zc6I<>7%eTW95OCVvLS3A#Fa-?QchCXAgoX;(g|~Sqv5s12Y>)&av;yCA!|9$gVdNN z(Oq@vF8-;MsD0LVi&R4(ojZc2$!$+5s;KOdMF2OLXF~R$*^Qi52wkx@fxudC2 zRn@js^?m#P6W0!88faU~588FxZzSg4P*yl&cvcllM-PuHqzNWf_}ZgS1UIB~D0%hW zdMED*kn~zH_x-4WSO~I9EXi!inmQ80#xx5=M1l{Y)x8l_{;oWBQQ})IVAMG4GLwvq zTR^t(>}wbQ*}wV1+AlnO_o<`l$${rALt<1|-(%xmCy@yNg246q04unHVc4KX>f$Vl zSi!(31GZ<_*ebSW`B%R2$g6L@^ZM(rZ*6bigvOoQ|7(e^p)q{js7S`(4DHrw)uyrz zBRV0>%PJWyeCB6A|Kiz8YnQH^xc!c^7cMOvIkC2#qlta@`~5@{fbDQ$c=)6bTn6M7 z<^h$kCk|wSK&8>8tW^zxUBp)u7&Cx~Didk2!YL?NA~gxX@KAxVL~78u)vC&5U1BO` zwMo#*xE=-zzxg}A|InvC`K!P5879-zi;@e5UKaydQtRIos99sMfN#g-flWk2C`~_^#D#HpUoYGHg_}3gXq1qrmq3hW^J# zpLp%;+TxK@8&a}K!H2#Pcb^64eo}Fk_yvYV3jDbCP|l$9{&0>uYc>Q=RWb^ z-GAvDr@!;|6Hh<)ou{7Pn&lhQLf9D|B*Vc?Xx#TSV~k-_R)YN`b4_sOpie0Q zX;uJ>M~>Zk&pq#MY;Vlx^PmV+a)Ma#qgu@+AOWybN_k_e1m8U%&`6l?(xwSW&np{)f+=Y(EQkxn&}_ue^&rq(IC@U49Z5G4EvWmn&CKTxZ6 zk{b)&y6WiA55y47b@t<0%z%i0otdMbnL)0M&WSb?E z%8w3@ZoB86$6tKq%EowF1-0rqjri_zGJ|1jQvmb1H@&o~Fq`CI;se#}Ys#z?6PQ{r zgKpb@B4adh!vGjX)*rHBu8IOEb08w?V^D|;2u#LUGGv5|QV}Xnv!|YW;aiVC{fiHO zh$!ZDh&0lM82}dW&A%jiU|RKRo*4kqPwz%`y7nDFE6dkrS$}N&Gw(M52c4oCA*I@a zw?tt3JooN-ZeQI)3~^gFS&~LMPOxEX`h#SroUd=p{^+sCUw-QyyL3w_t_VgQx8a~} zfA&1y@AR~R%00a8H+a<)xgl#F)0WYNiHMlkCf3?$+?7~@RKAK;C2?HP%>U@Kn+U5p zaHqLC6iGfp^OO*}`2b)#FPBFPtEWfRp`*{gz4rJ2=YR3jAOGP0@z4L_2M+fZj4*Rt zN(QF2?+2EQUF&4LkGO_GfCOlg^-|YYpzzopE(X&t2Tu+9?m6 zIPEnJNGdqnU!Kg0a%%@gaq}AY?_LXWy(Z28xks?KoH%*vmNRd?`?$d7Atu;a?o!|e1pMUs6vC=67Nu3F$hpMx#Qi+z`sH#fK zG;r`3b^sN)Zhp0X|9eE+^nUwcw60}u?R&dh$34Dv+YdA%@gT@10w9f#dQHq~>^S$s z<<&2I{cF#@`j#Cm6dszmP+Z#>b-oqA0n6cF2F+`>eF66x8^$JPO&e^FakXu?MC82) z0w6&{QI#>w67?*&AuVg6FgHNPB0#OC5HDo+BLqr^>*E>9e9$x5@W@-2&KBQ(;rSO{ z`oI3wzi{8JM{hm7YLlc4LhzQrA_jI3(y>Wu9h7gbVUPkSSb+c*Adn46O6r3!pX18L z^xNNg=A~C&d*S6*wsy9+XA|NSwnxcmT#+a$^_3EZ9ZJ%{(Id{KH=%JC)Qnks3oMCS zUjMyZ3_$CiG%q-a_%aJ+-(+Ww9lhh0(~sL{CZ(n>BVi*Uc&}BSB-VsEt8mIylBki% zd}mq}Nq;18LRP`b#8mTtHMfV`-;IY>u2tIsh=8F0vuK!<0?DYC^t0hyRAyTU3K+l( zAqsD>5g1|tv&%+{>$B;?p(B^pw`T=RRb+{U2$L;ENCO#T8I=etVg)a*@~pdjVdx-d zy!UCEws!nL`yM1j_vmKjpZQOybA%46%}vNEHbf8QH22I$J2 zOKW4Vy3XAva6Kr~<1Pjl`-9 zIDu7?UE){*8UggZrj}KOq!wL_YNbsF6=Xn``@>Qt1fQ**-UKG|^1u4W|MnL?`-xxu zr9XN1sdQkths0yTTBWcSMkAkcG}%$Oi#lUccSiw~T3E{FD7VHFlk|IOAM6Tixrc8) zQ#|s>Bd@;p##?W{tAJ3d?ntt5Scrw4!YY{nvT&pnSVZ#KJja}GLgNkq1Zt3|-`~e! zeAzQV0SnxA=GH;hGYJ<(!I4%}6e>o&4S`h@rt}r4RBx0(=rwcEvKj%gws_cme#*Ya zK!}ThRE1a@hr|sRD)Ks;zpQE9 z3nH*&qd?^icv1(n_^DWi?wq?m{{3d+Cx5>Id*kfg2hnqH12SkB+pqIg)^gTQiA*7~ zw7N2x6z(!#q)I5I7v*ki3n^WDxfGO1R<_8 zaW?(+uRihm#VddHFaGKKZd)@ zrXT5hs80?-k|dc{1-taN+fFYmEbLs~6g{|5ST(?x&^Q~EAy5HT0uWiVdt{8#cLs!R z1@@llNwp%3D67^EO8`5UWrKwrtg{{XNOu;wumej0fV7(U5bxY%mOuUU)1Um{?Zz-$ zRHe_HgOK-SkUCcuMfK_q>;=7DYk9ZP`Rn-a#u!nF%mi2K-Mrs^l&uA}GjSEFXwW0s zKuhWyMHXX)YOH&}-tg|8m^(oTX__jV>15U)F3h%fl+YWwOXt_V{p3?yleyYKAXZof zN8S!mBFMgqiY9^=8Yn?*jSa2QWwQI{ja+Z6Oay}!CSjXUny_{3oT|@5kjiUlt41U; zN&%w8G+K<$k&t-xq9H`1@jbx=8ZoFiay5;+K$L1^e=KlmFP68bWg`0gD{ub~|KOi| z`XjeL{HYIp<0HYp}+J%_3<`LcHkzsKtp)xEvlgOsaj4-id+ zOM1)OjiHuT1k_{L}*(0Co&z@&>~2b!`oaM2Z?^z{L&C6Rvo?acTPa z6Hh<+>CmpGxa3_lJay1DAQmseE)`}@X#stUe>cuRnIsDRj0 z%>@mS!h7o+8v=~sjL3jdlW?$!MDaFBjkVS!Y@M;zSj)z+HBu+~iLHZkuolE1N+NlY zv1yumK*d8;i6LI0B0(j<5UU1XPItBv@{5E1y?5U+n-#`@RH0%FLzUUIW3VSOdjt0O zKtj9rL9_yOuD@o*)>s~Vt*?FG+`m`tYAj0hj)R2gq<47*+TctZmf44G-}f&OS!ZqH zmR6Q_=Ck4A;-tt65oNpFOTP5jbAR~tCti8`;%Mc_EO4QT=fsm$Fx54B*Ck~?fF80n zj{BZz$RnFZyX8n^46~suwY@AE^pYe2BOuIuIVtAbezxQDol)OunECm*nr|hve%`z+JxRC2AZxSyi_J4Yg}1+ zW;a?rGAXOI&FRIBN$!*5$BvMp3beL9Hpa4LCPQFCvRxKCv!X&$c(b;VZ%^>@+nfL9 z4<7kISojHAaI^R=nC$(@D6y7oi1VIG_=94+lTUa*EMu2VY z=hn$vZliLo$}1W=w;ErikSHV%s4)mM81~s0EJ39NFa>13gAjR*_-X~O=bnG@cZU7X z|Lo7KjIuH>eW+MqtYMBMGrNnH8ZB%9UG}KDR|hH%U)z6=arqd3-}621hiHBzZC^2J zwCpYKf&hGIjg~M<&&Ms#op2aJe6V*oN5Y)QdTRGG#$AiM?`dQ&j}DH9jtCHl;`Eb zXvvUnZLbf8Cnhp`{KfOnzVI*4pZ}9T`>BsUc+XO@yfh0C(Tr8$C!t7_l`O%yz{@Yc z^YV*tJoebr&%JSW6RvbUGd#AqlzEdD0eS9o@4>+(S(5Y|vl2u^0f7x9suXoQl`Ii4 z6G@{F3RT?P+%o&7!ol~Vd4=^FFe5?;IDN|AfB*fz|E2#(;Cf5m`@W{aNCW}Gn9t@w zwqT7V;x6#9iQ*{>apZ5KsGLF&XmsAGPWnrIiXcnYF$h|**Zyz>$e0AP2||V7VQR=h z8@?o>Z$9#^uYLU+KmYJ&Gi#{wq5)NaGK0x*jKf67EkNV0vMHeW79iwtRfjHz_=ibmTLGVGs=K7U> znk|in{ZaqZKldxED~C>;ICf}xd107|V0&}p(xnT(@mv4y(&e?w8xuEJP3>ZU3c*vN zF|>U(mRV6BdYC$#jE!@)CvbC3`4J`VEiUbB??8F9a4h$e01{2|T>iWsz9?6#O&?precF=AjMETQ zgxOqe1=?^*%(7kwGI8VfJst=mGjRJ6jz^uE+~WO0r}v=k+jqOA2GO#&r?IYO-{-vJ zs-$|i#ga~It+7-TMUo`SMosECku-hrtxFd-%eh%d?O>LNL`{IIL;@>`S=|_sxPdZ= zJ=q#&4pjhPoRhE{mnR5RB!Ghq7Do&L0x19=`D`5()6KUQda^Ja_Iv%iKl8a;j-R;u zo;y#TI63T-bLd$(AOJm}yk%wQwv|ucee9`co_*q(SKc^#`Rz+P6_tUj3Q3?;U?Yz# z!Njas%v7^6DxTR$b0)t5P)(gBuDRSr^E`L`0hGsi4gyhTdOh14SSh~x_=_*T{?6MM zKJ%CV{7)Yqp`4Rf`-QLk!P76i_{>u;Uc9hPP=zonD;3Yy5~)N`5Hr-asC+|e5r`QSh}3|Hufam~V`_rkKph950_K&@iz@f( zK~W`ZU!$u~i5z7*s1y=~4P+~I{UP2sJO6+G)Bok&i|dnF`Npen#25;653aFBc1KhU z8D)!wB@9OCa52sL^GYRJd9`2zz+itaK47Foj`8xisU_^J+qo%tIha9FdbUZaDoWB-H;uMT zZv>pY3-UA8_`Cwaq`il|?iJ|FZv$0_p1jX}$c6VudgRHYeCB^xci|(=WgNl}8?b_NCX?w#&uC zCkCTMAL#OxO>(JoF6$+;**r;2KF?j&3uK{IG>S|ql&QOo?Kz#a;Plv)J#sn>AyQ`y zF?yDKHOuGQAs>J8V-MbS$EnSYOJDoiA63B{mpa=sCS|rz1F+X*W(FlJqSgq<1RzJD z2xZdH_LDfLC4l&`S1v#G!s{C|^=?og3zD!+yo9*nL|8`Tv1;U| z_ir9eJHX*3CJAknLzkA9C)+!|m<@Y;bTNZc@Y7=Fg3PuCJ-4_#9A*o*-*Wl`ci;QK zJ-09Sv69Yvu1XxS5sN_B3*l-KTk)X*9L%DC43ZSL+_iA(=tn+q$BDD+<0oHw>xpMx zdG4hbV6!79ZkbmypN)66CdtBrLo$~V&b=)&x<0OASEIOgb9FiLP8t>0TZC3 z#Rc!R%qQif(=H;EQf9r`~{Mny^NfMWc56tms z#-V}b6DtvWzq{09bj4a5m5~n~w`;^_x>>jo!hYq|_uCJ-byK5l(P`JRw=uWtGy3ka z?AGi$@`){qN;s_)U;EZ$PrvZ;RMK8Afj4OU(pcD`kX<+ByPWS2=!paY#5e;Wl*QJ$ zSC&^-7Z(?e&o$p1Z(hutoIG~u&X0cZ*shlfY+*P|c**qwKrK7I1=(z_QfpSye!uqmj&IPl_`5|Y5W zi_#YY873hzvKxcCiW7$StoM3@L9<4LqF$8^U_%Kp3%j+=iQ#0pe5R^`SM^{aXfwW{ z(TL`nyo5op@sw-;fQ=RQk+N7>NvN2w8&J=h#Gx2pmU8CvY4DTVZ&^5V>gav<-FNEL zsh=?8PWoNM01jk@77-sbD3(`NPM$pZ>`SjNE-rfy6%&m+L>1~qMW6_63>r+VT7}@N zIZ(KT1y&d!kX4Y95E*Efzk(wm_F5!CZCQBzn3zqH^p}R<2^iz;sKgRfBzSSD*yO3_ zUwZe#=7(=z4uB70Ktj|qR5G)ubaC$OPsh+op6A_P-yO-lr});s$FJH4jzq%?zvo)6 z!q2?##b3W&%k!0MCoS8UTbI}OYCzQ0Gi|@m4gjcvSGZ|WQE&9p%V)p*l|Q3WeG*REJRE8m(*S(F`K9OVh-QusFcT?=nMsKVIDYIH05&FZiNFFD$_$W2Nt_ok zo()8|MZltlL-<^QUszmPP5S9hUU-q99${L_)2Zi{xJkSiK*HBCZ&%?X4aiG{$prQh=i`3+&c@I3onHfKh9hDqv*rvmZY6 z(R=^Yg|+HGeBt;0)qnUsJ36wyvA%rhFpRBgZEe~u>Cg^9LwAusb(m7?_wOGK3DI~E z)4V8@Scr|wF0JnXkQl{PhHXF`9C3G17>W#$V`I6_kwkvV?d?r#DM{ERY=}cBigF&x z`ML9N8Ws5b_S2_7^T~(qx#QM*?>N>=;1~?AQw=vWdfxl)tR+#6r`@^Lf7_%v=f)gVZ6M2yT^4GrgtH1nFbJi8vUfg_rgm5_Ze#5Dw< zG;u{{K-JRn;$*UIEge2ISaSI^GImexu`sp!i%g_3w+0B*gFGSB@eH+&Y=H5=Aj9y8`?Eju(4d$8t3P;b;*B*X z5CICNhMR=qU>oMHBe@40A-h{F^X`eZhK*VSQe!QVA>#x*n-(=3vxY4;X1!sG1c@Vd zY!ef!-)p{4KnA@ugd(4hr#o{m1xX3=ELCRY^sytK`sjy#>Qf&-x;*GP^ioiOk*Y1q z{bOw0_a7)@s`;L~@4oZSJHP$d<14ExvwVz*VQD@v>9orhXamJrLZV>FVQeOhBGweG=Q``#Lku0`mI^R<6=op%7O zmQw^%U(HXj2PAjZruLt*xxboDAkyWxk(R4#k=k1jL+vpvvu_OB=vkW!i8shOmn63K z*$s$P;ge*j1OqU!OVTG_ee>6U_bXSnc5JdZ4Kf%l?@S77ZF}dU=u*updSJ*%1x>Zb zp63am(CZI8NSwcfB@vaGEQm_F#5XIOnlX4AL z|Df%R<@wkT#fuQ|0&z+AG}2h-_}EKaZN4i5e*cw`%HJt+dUv2;p3Cexm};V zmfKP?Y%K|K6%;PLxShX!Y5ObRcsv;$*(pfW40`>Ijdg1W2d|^O;mvLbuQbN% zT%r!kaI^Kcp|eJP8@0D3#00U->{!66Bw(mvQlgkI^~QkN5Jhq_RV4!giD)2I2{}YX zgGD*rUUN3|5>7I@{R8*ib@!d0{P;)jyN#Cs0A-1C5-1dg)Ie<{4{Ow(Z$jgKO@2<5 z1E!x)=o}{-{^b}kto`K}KqQF*Micz}LqGMUFMVxub7OgV`P{iR6hb!3B=`nfBHjym z189WNsAv!{vZikYYY8e0qjfw8$sm0Ckv}bUwY%+SI+r+PTEpnK?YGrv&9XY!ZF9`F!3L$ZoYAS_|H~?Jc@4zQ27#>q~m?BkVmM3-;$%ub<_8cnGE_)2(B;09;6_K5W84ksT2SRDH@->CHw*) zM7zZ$U1oMrd@Nv~Pa>>Bbqoxo>_NFy0QECw!YA%Kb>GRQ*UoQ{8!@HC3=*&rQOkx& zQPYP32qJ;BcHu>pA;E`u)an8gh=?iLR0g!FLL>>#vfA5YX5wJ2^WKYiQbA3VX8MES z#S3SV&qqr`qf(XAkmoA%UU}u%;^K!s^x!8y{?VgHk1j9wmzKaDRSu_RO2jH;EvYaO zL}T70rYmkj2+Y~qqk;gy`i5|Mzx1dwGmU;tHBRb{1(?n2O78_Wx9{+d|#D>{KmK5Sm|RV&0mXanf=@~Yhn`5p+qI}4qK zBe|J)>}>pkdpA(tos|2Mb@6TS4f{x`TH_uad35~u$TA;Wom|B(Q1U;`Jz$UL-YHW; zW0c!0cZ|&Jv+P|64GyX^pia;r?!moYFXm8zKy0!so8{$rJX=^iw7#+9TyI?9vB#gh zba}(|MlgxMf)b6DnZ&XuQQ6$JYgpLmvbUDKo?S|8cs`jKXH+qt7er=zYxB`ZAN|!| z_}I~VmPI8?l6_a9ampbGY>PnI)058oxfA6-s9KPTp@Jq(w7YPbI6x?ZP=Liz^6?Kp z`1Qx1p3ZY?`oaVassW-=={hpI#{w91);|HEJ||$84~J{GTn$Eup&jN}LR;f%ln4+n zv%K71+ZGWvFeV1vh2aT4NTpKUfA^_7Z#(hOM?dnR`&WAwMv+=r3kfI+Ab=oDq-1Jp z-@SCi+|&fzoW{K?RuV_FR(rher>>)p#GQ9Y<;}^HM^4>(;^M}1R?JjN4Es8scBV?~ zKnq~F>Khe-d~NiFPyuSdM#Pr_(}PR;08&OE7Gfc!Nm}|Uu4f;-LP1b)oC;8aHE2v^ zB{b*_{hVA9hO0xE06)33HKr5-2*K3w9;tb9v=!tf0BM@e=kpkOkG+rfeV^xk{VJFi zKhrwzZ5*IY*kZ4V+1IFhg8omYbuBWmUzS!odUyxM*;@|C>)f4vX1xs#)Zq~*V67oG zJ)-GsS{`1+V6-5>3vX<^^7=b!6PQFesR9GG5@pMw4kBOuYaDymqQc@#sQD@k*Saq4 zzGYpIP)ujW8V%lfQ6JVWuD$y5D<8V;Q?q=sG|DIlq;)BpOeMkSt_}S`w4J_dV_=xz z?%U7wEg4_1Eg>aTpaH4~P)N{&hob>A)SeJE6dg7mIGC+*-8&U`h=^O(An@KQdc8i# zS5+xm5In;}E0*H+(Jxt(jH5X9UJG^y3O&p^ir0k z`ij#Y2+{BHUcCemh>enK3ccYLmZqw`mBHHNN^h`Wki2yE{I{OI^fM0}bpnp+E7H2v z>e6hovo)O;S(c?~Ivfs*q9}?&Rns(0(-a-7G&NL$?V z?IOpU>Wz4@2Ol43k60abU#QKm)>gO{Or`b+t{LdiqB(hV_3V{5w9H{<23CBfQBX6A zb?l*rY^zB?#xWbiY^-tCMQDu#VZ$0jHcdFbHtiuGhz}u@mG=dcYHF;LGT#&_Lp8ho z){}SLcINbnqaXahJ$Ia18D(Gra%2>^#|B~={k6E7fDlJNM)_-sovQ}vCO7VN4w@CJ zH=2zy2>J=i>>5dP+`{8D#?L84UU|Xfg7ZWFt zhcXIZK>#E`IUB=O##V4isC;zPgL43ku_m#i3RY550*o;=VGu0yJP2oldC*`|)jYHA z($4nd&ph{2_a0qNL4kDda9lipc6D`ixUd9ZXJ^Mb*UNgwn(giF_B~funYK8MYut;`><1uwD zHM5CU#TiS^IcqHwgQQDd79<28BD)4tvpF~$%A%^o8nd>xcJ|WF-A5Oa#03#c7F3sn ze821Z`){!aPk-XBjL`!OFy5M_hK89n zjzTHoLml2}?s)3^N3Zk5UYCTgdK6i*ze|hEAQ8_(H6slkxc4sp z%|C#!_+Twnqyiyp0HZ--lGGRrCL%*bk(h*PN&t%SoAxJWvuPt=*2Hb%ZWok9RaH-PI@zx9cyU&>1?4G&k-03cl$1Qx%uAtF#^ zRfz5##%@$lYTmXQ5-&AM$9w3^11Jl!&bkyfrDR}T&t)lF2&qU_MVv1gGO9#DwU-RR z6hJT>N`-NyO2TGdXWIz4bb~cBiY$icW}TS3mhDmZ;$R0LK=< z-i0m3lg-tZy_@;CI=_7*O+>ORYxnGCY~xDtfDeE$g2AQ9{40-tr?A6{vOtNzDp+Ad z)E#Y1QtXU%w(U#|uNyXPO%n?T*<;y7gtfamh1CFJ4OdkVbw~#1uDtuk`72YgOT^x# zl_*;P2oU-~0_+VauKN|W0BY^ydO#vnq3NOls1SID%ZBM-#3EjTgi1LDGmJ4H<%XHV zS&GMMB4uJ?Ktv_P$=}#^f}o6ndjLWNR*9Z_%qkcK)BM5vZn@{q6CeHf19#tfWYmw{ z4?#mu!qAZTVtZp_agbW3)H-68z_oBEqCf>lsC;vs=v>$ScJmr{sR_91$d&Gmv|sn5 z-AEkvKIY){u2U=Lr@E4+4}bI{Pe1-lU;`&rW{XN#5&Dj+f#!4XOCwQUDS9+QQT~Ix z3PG)qv&{V@o#ylAC>p7N6`|7kI0g$#FvyzWvPt@;*QYdbX{MH$Pz67q=iJNE!EiL_ zM>$tg1t~FtFNus7?Jq18>IW+)OFw)0jg2yjkT59|#XzF+2mk-<{b{fz$CVxko^#wi zmb<+zGvCWSkx1QrB{&ctX zs**}oT}{}5FoK761gvLxqC#o`#JN&BjUzeGLaw_CRuVL6K}ci z-Uttm6UV>vo$tHzu4kTm_Q@xoTw7Z^cI?=D-t(S7m4QZ{p67W`lnsqe%|!lkid0)> zcFSvO5`B0>s4iGDix00v#1I!s#r$n9QP+Nm-yYVtn^&-Gg@2$YF*B1j5LT>(Ud(jQ8J0Q%aST7tM=m=ktR#$#|ffCpeDE={D< zib!BQnT&_SLx&F?z3%8ew;%h^qetQptQpi;02oPtQDXvQrvMkzB?JK{qQJ9I5G+6h zA&_8+U4k>XZ4v;Wp>cT)2ls0E0ssi}8+*RbhS71JL&PW=Zaa4L!1Auuu^$dcQESeD zLI)T{y43<8o`PquQ4zQxMu!b?(C~jDbi$E|Jace2mjKwYAh4R*ShE|h`zVuqLUCkT zEt9siA{N-Yyvrd7lD8Qk2@x`~C-SQB1&VjM<3Nc4Fpge5y>|K>EbjuPNyIaPVnPA$ z-QJbGKS^I0kH=s9;upR5x7>2ep+koViG>4?B97y=wKea3tJNxsBINSW$jUEA(%2Gt zn=nFMVudOURk9eHviP!cOQq1*_7MN`GMZt1du#so$X?qdZO_@8bK9K59VZ_fwkq{h z*H^9HDwW_2iI5W{ht4Z=VGK_`^UU0VLu-ybYC$971p$PFgUGD_5u=bW02y6A^_5my zX#jA(q-HwjytmF*R=pgQg*G2ERvkzp0wgN3!2P~O^51#x_{#E)dm`!=MGVr7Vg!`S zSADqYUAkSjvhl4+3;;}v+!r=Y(og_$wy?zrHEPo~s&y$J#&NF=bP3?hDm?y!S3dRm zuj|hI*aDfz#O)|b1jt$@lv-XX)JUO{lnMMa5yv7b6f`|^ks;V9rlnpNd_LN^SPU<& zZA@BeYhix=9e3V#&pr3t|BjmvECCE4W*gSOD&a2@3AB0$iD}@ivkxr68Yp|+@$Z@r z?g(!jiP^GlC`oY8XKIs1xcTOTH{W>d3y*z2XO5EvLJ|-_g;At|JQ7c)-UnI{3xSjw zh7LqVR060Fh%{1_#O2u}d=S7U?F#^gVrp#;&gA(dw%s^wp;k&93V1*PAwUn{nb;FD ziW6Y((N$YZ=Unm9D=)ry;{5JC%Sgyv;-!MrYPFACcZ9z7*!lD4opay*_P5WUKY!rB zfkz&Bq}^`kd0rF+5iKq*7DdtT_oFBZK_Or@b;P+ESfFM}!e$l?TqcXhh6P|~5dX!a zNbX2Cs$rQek^Ksj+*J5!{v=Fb6h&I=@L-loE@DeJSpa4k$RT+k0XTm8!grqfVP}5n z!iZT1?JHH$z=a5b!uNov0l>tiZVVwYIQHzFc=pb^5ak;uxlR8A0RTdervQpD6QU@O z)E{Tx`rgy`-g^Dgvht`6cn4rEQ&6oZh;bGKHt8_dEC*x&=ubu}Qc;w~QCxs{VCNmh z5y4U}evA=l;WE-#@pJpIz-Q@4pU`-q^y(ipw(6k=Dku^X### zc!zE#hFZZ59g-+Q1}KUQ##3+wh@0EJ2)3V%2ifS{9d{gDm`iWG{@Af&H{5jd(KrTU zpqN4|KInu4Tm@_{rJN^)%)K$io4Nm7&sB3=yTLtpMZehu3yx#DusZFu+hK2W`yF>Y z{=J{X)XuWP=v06>*la}#NCRpaj>5*Pd;@e)wy%*OFai-)&8L?gC_w0fbruv1<4Nuc z@it15OJ^oYlC(PAq?N9Z#{@*6#3OnX2JsGnkvx(IWbgA=&z(Mb;p~01903pkGkGKg zP)hGz**iBkHyVvPoz9svX9k18lTSW*{P^+rzW2R{4CshffLn`X*ztd@x|sQl&9n*H|vU<72NW4s(TLuCm>&YV1vref!_; z7~*FnjmA~0-=WqK0|+9x#G(Wg1Drf{?)>V;Lb{8T@ys5$sX~s``y*mtG-;*FyqhJ@ zY{1rcKE}R$fBEsH7sDk>kD*-%%cmN>9;F%0YhB_TXEhI^lxO{kVIvuX; zT6*^b?|koj?>(@8Y44u-2p|)14(!w`X0<6YU&T5vWBOIy5hM*i=W8&yH=98#+^un@ zJO9P&7?Tmq&$k@_Gq8u7j@__t-@YF`cgjRd49YV)W+6a@pe2dhxks4{fgJz=hUsDe z9~8%C&($p>G!|jWm}CIOKnM)XKwt=pNwJz0QIxd0w#dd=rs7B&{tgUrWCVBt>BA_)9#kJ$lb_)Ea^F@?K0IDNP69wJ^O>AkD zZD#S?QTY08-~L6|96L58HJOgvgSBkaWZ(Xp?cde~jQXr+rZJ6ekciaP6aWzMNJ1n; zKnfKR02Ce=v;`7?^(j35t?zZ_m-^$3(k|x$;5qcl!|XXRzqn|vbLE}@0mK$Q%QDO5 zPgo$xZ(u_(tL&Z&!eJ#B)+1>tZ`E1^hW772bnfI&PM*CGwdTe-bXtG_Vj-c5Y}OFn zZrn$*A3z!ga4ZE|&}s~vIbkx6)VT0bq=q@3KD#!_{ZC$a`RQkW^3p4(RtIB` zy0dU-p*3fn8d*189b^tzF)0qsF`@3y%or-n!Ym9T2qM6m0EE31c3KdFRyY`}q03W4 z^X=%thkxl;e)-+E-Mq*i2n)%IOaxgX#Dug8j|C16B!B^Q5-htkFTd1-+5v4BeBP<) ztlke?bHN?9HT#E_xHm&=x_Uzar~r*Udv@J;aVYF43^TK2k;1vKr<*JMCx|Cp8aq%G};6n#dJJAckb-^`r0e6oOtAs zhi|&+=2j~mjYdhUMT$bG3N6&^OY_yhZVY6YEpjNAo6;I3fSoeg8k*RmI=N*v6H?Rk z<7YcI1#6ZaU$7;1ZwctInYX^BWGxNBuk8}b^`@%+x73YkR8s+};(hf#k%?E=F7^9; z$GrFOVOH7$tPhI|YyG4%f8oNQ+lf#qg3`ew6f>0qrF3xY3cU+Kv#iKx5(p&|u$~qM zKnxvfP}N;R_fP29Wbe5m%L{^toW8Ky?##>B|Jh&sRqUqky6?6dc4HN}irkA2UD;{+QI&+%6 z6b?j3CPFWmWm9IrP?aTB2Gl?wLQ;xQF#w^syvSrc5Xq;RfZ?8jJMO&o{=08~;J!Qe z@79TewbjX7TZe8KLq-|p+2?stc&C(BGiUF&c3g|Wy&jwRG597UG$eosD?Pa3h8w;A zdN)mgQUVlUAa;rYS(p=Lh|GARvTQ6Cz!fkf2b3yt;GJg?ajLmbKS&CbzGyyOPDO3spSb%{&5S_nx;oQXw$M*Ju{(wgy1k@S; zcP;H=&r3^7*4jMJhoj+iG+A0&Op@f~mtT6}g%|F;^Nx4E^U-6+jsc<~a$Kh8b$l<& zI~BkZ{;fkiVJ(%n)Ag#N*cQF`8e|ZW01!8c@UvG|w9ZY!6K{K<-;wONrFOa{g4c!U z`sYo#&H5)-gLgF_exa|poOvRxbzsXhUo3#=d`K^bqrqcee{6Ma^~PIoTReD3v?>5D zto1Lf^$STrMb>jFn62~Pc~CoKlt@THTA~c@W&avuWiBKH z2qGNXZdg>FIrJ`3(T`s|{s(`uYA0*_z&-cupSOVla+%z%s$fFP*4a$N zr0qc_-~Pd~U;p;g-~QqA=Qk!3PYb(NKt)zM*jw0;$dOtfd zm?SA77M{H;0h!Y7IKb?{6!r9|ddc@$fY~#XszTG;y zyVV~Rp?TiruHc+Vwc=F8;KKXMmSz5yjB7WzQzgk*ZAjmox2MiD?%j-P|zc2sK^5zW)fQ4%4-6GOhSNM_2pF? zD`5cVya*B~<4lJ6SecZxF|iJf+KK=P2t|O`H#XKb23%gga?=oW;JV!|Gml0iBs9jv zah#ZFJf3W9Y#^f6=Br=*>bZ00@44rm_kZyHh=EEY&G;S~Uz>%{I>d{J7rw%ZteG1% z>|TfU?WD;qR#0$lB<#&|fy=XEw!e5w5a05IxcbQ6d|5L|4{3YI+`ab=2MHbK&3X5k zPk;K8pZwG7ufP5`{*V87!#V`80PDliI4{;Gu06kJJk8s4JrYHvkdQzjA}JJMSA<~h z>H~1r0f2ZWMNnzRH7-->O;;abovH&s=wyNlaS@SLyEi%YqFI{TbNKqT;l)4ri_e|C zc!_`QBRB4CX)NEUdTMR;ud5C3f=nw{fXo!pgDHTfqQ3EsXTS5z3*UR@Cl@wGVp_@K z?j&j#B2k>$sr5*4+%2*^TH5Q7ENkyc7{q&EO1o{())obefCS|=4tJ@56A)qx-U@q= zLV;^*bzuMUz4zUH$1O*1zOLOi5G$}bV605Lg^n+*4r6VCCx=!D#)ycw*0CVHeXIQ1 z4erp8A|=G;&X{MA$R^v0@ThG37NoKGW&+WIgF$~`dEPoWJ)GQg)4|)XUwPtt=hN;Y zPhFIx>>UPQbdU@=O_P>tb?n^u(rUiG;j$^%!ukvx3$Oqn3j&vlpfcm?h8rN1g$02{ z2pND>Ab*wFf2mxj06aMGh4`uDW#lta!5_c z`rOpAO4@1E{)>gp%+iWSd!b*5GXvIt`putw?%O~5&_nm!bZFm0@3?=@98!h4 z2m^Qr)$XSqM-IRWFqTkE1~3))(etNXJpSrSubddW=<)BrTwsf_3+X)Rh_nGT4t$o0 zXYJT$ZiGm}9*8UpNCIL21rjyQtwA5Km(gI9_IiXc9QBiSlBAJ$HXDqxi?1Fzxc9ol zhiyZ;^cE28meG#Ctn4RL_ni=ycDdJHlc45X}mgd00l_84};i{Uc(O!HUU z|AlKUbFcJat{j(Zn^UYL@0*BCd4ad3?R7LSmjqFO)B#{T8ZRy`m?*ME;oR)zZME8i z!2keyz20!tS2~FzC8EFk-S2++%U}M+6EFY6@BjHNhgLrOnQyJ_$4#g!f@g0g`XKmgXm7YG9I!xzq+ys-Mh zi8H6pT|9C2{KhC-A5IEMJG*W~Olp;4%icM5zDz{CD1egdg2E_Xf|f4Dc|rX#m@VYE2kspe(VbX_h% zpQ%c~n^;ENd0f-MU20&ulJ9xrqbQ1AD~gmZ3MYt~D2~(}ciz7H3qN@F#q;w^hbVNS z0*H8K?snVaz0Y0FoM_$Z%~|Vn=Rv#>fX`Sg2oe&AMqsJI7N|7MgB7xnNX3*dGt;Vd zx<23L@(>1_fhE?ua7v8vN})z;#Cvz?(xr{{VqtkEjh*LttEJnm_R`YQaHEfi!kp*% zrpau4mS^tudgsoa`>lWTThBiG?5}?KR}btzI5#)%t)EV_@Q1x#Z#W!!kY2AhEpqnW zdEcN;qHJj#u0Ci>HMN=7H;b-YqJIb&^|wDO)9q#jbqk>dHb?3@vcqQO-tBJ)jd<5= z0@wne1Hf=NM8qhHilS(;Vg`djuh$D-kV2!=_4Nzi`R;fB=nwy--|x55R(SvGufIM` z)6U|qF(P}&G8m4AL@J6RtJD^B$vW$ux6XoRscPMgi`3omb zoxE^m4$!UHu{kNq|^5XnU~ZkjSXeHx5<(E3m^5G67V= z3f!*wPB9ry2K~`wI=|2xt*?7ukmBjNQ%lz$de;Zv_sE0y9h#5lQs^e200yI=v98h( z*(=TM*E0gB^;WLqYc{x3bnBw3bO>pGndvt&gcY3+zeDfXV5-W@xwP^nbLYDwW5 zv900w?P>cK#JLI1G$-dR3iMl`m@WLp9ix0*N8O?i(;VA7e(PeXG~_eue~%u$Zlm8X ziXv*5T4=3^)MPRSfV7no%9G#v##g@bm7o0hCy1)w?=LPbYNb8fqt_i>n4d>fQvhMe z^I|%gMp0BK&NT5e#Ue7%^Q~_``S=qD4jg#ommd1ium0-py$5>Y&Yn86w77&ZWm%@9u%XAg-?B7gYUJ1T z$u`exdsu`<^oJ_^ZKqL&EWXK~d2_XBwzFckLorQ8BW&J$<#LpK{>6 z)JV>jb8*fqQfW6y)0T*YW>iGX^E~MCudT0r@)Ljj{qH|@>eQ*Z`MEqRA-Ii=_1kW{ zb>IGdq|`8r0n7@WNQ@|B?cc z@|h>4cNjp;x#qxsuS*jgeBK)O-mI@uAehk8D050{owPaavQ-m7qbXWgveQuxUK5-i z63}iDb_^ntrm60zwlUS!L1J>Akd=4^qJ1F>W3DQ%LGVRp9C-npRX!M)*n@L1VoZXZ zX)2U+Yo|~3+VKqscHMc`ZTH-B*P+A93yUBEo&lzy7$N{epa~QMct>o(1L#P&?C+)5 znb*BJSj3i9-MB5T>EQlW3{q4TGBKz*A_5>R?_Ip*<|9u%^@_I{q7K^y18TVjNOctjK|TQ*RTBs>z>78bm{c=6(; zOP6MUf6QPf-pqo=*FtA)5tXRywz$bLEGMfG`Jr zHx5Z|wL$S*3i=sv~L^jQ$b@tNgB_Lc` zUe0s7w!Th?yLRnLljxh@eEgLY$3O7?5B;sb^|zQgNm9?On3xEGLzPd3AXOT!zxI^` zsI6bT zm%jX^FMi>R=g*&yV>28Kv@yM2ugIM?W;h%gqYocG+-h~0Jt?vP1;B7TUfbA6_AE%5 z!R~lEEFyu~y&XR0s$LqtrDhGRZkt39spSU%8YNi(K+s&CZvadf&ML@Qw>te8NEIdB(+kxSzo zL=I&G0V-2u4toy(FdAVriL^v0tytf7<4rf;aNQ#h-hcR@5`esb{@T?0Y}Z^1(1{HD z1CK6FRGLI8ic@g~SnIt9LL%hXPwRNomf{ryw{M6D(CN-8ack!{nrRe^7^OnTV7t>cS`#9B zZ>_C`J47Vh03|FlnKFA&$~m7+b4^N^H`dnr2+PYW>uYPj{|6ucvp@aQcRu>)2R`tD zTkg0cn`BBW^rbR8i?DMPRPkPG$mJgZ%|KZL^s@ur=^erz_{{}p>a=~w%zb-vY4gah zY-Ke&Y(zz>MxRV<*jE>Nv$#refErmX_^AEwbo9j zMNxPs-EOxiia3r}mRAC$7L~F99$=E$(byW+Uc`r$4&{d-BD;V!F|bsYp~00`!A^XS zD^RqluB3U#<5XpyEiwVTv}TPjFeJJ znNBrId<2NV48oqB2T(u(&O|{D$1hBX!R;*)cd*u#YgT zJk26lx1C=@RIhSq53?m(x31K`F8LlmyAZ$QeRK8m*hICsfr~MMLIjaWO6|?j7;ZUy zbiR{*?+4E#KP^Y>Vt$jvO~BqLjRE0MLdMsgOK6ThuW|3J@on*5NJ(hnEA7+)1OFwEM?&qB0Ip9^t5hZ#&GSS=#u+7McDXB9rb?oP zJqUUcan1s86q{22092%N&|y1^&~7t3XNw}sjMnVO)_R|@2qS?2FgXAPkk(hlmxrx| z3^0a$z5j{LLg3qVitwyfy>E((h^B2(W>zc! zN>q$-M*&iyykrCgvS+Zs){7S?uStoh3nR);r%N{|cvmK*1Y1M=Wt7UdP{Ltzakc#UTSk%GQbgVUZ_Rz&p3cJ+9|<9L zH}@O?ZQtIoGM2v}B%gf8H zv?U_W7os8n^a8mRpu~CYSR4ZblavpJAPm>=tZS&*NGTtWhzvAK*jbp_0}EgILCA=k z%Iru05~!aVkd;yzsmu@T6v88f5LnoI%g#F|KKI^Rwq+|*?Q@MdE7Dd^6+i@v6d59~ z#by0^Zl`gywm#AdJMAPg(KO4vcg}eMBAk&X`OVe{dYeZbXSb{JLe;xK zsAsQikjstMq;^=-N!(#?i`-7_v}R_{o;?T#55NjQ-(;8`VrW^ut}Ee$QYm&o zwcIGs$?FLz@6*OwZ9a^`TbZz`gIgVnLPQqEvdJh^CfGXXy|dOcBcrf1h&LsDzVe8M z`glMXM1V)0#d~kTEzNhq<<{oI(OTgy?%6wc*IjqsdCTqh-FZ`@pqoI%kN}_+XAAT! z0dkenn6JLynzO!Ho0b|M|Fc}r+cAvhaq4VV$5&brAprt~*Hob3rs@1yAT*`DUDbaa znA&ghETQrMdv?w5+qb;&{JA`zD&6y*L6cHisoCu+0^WN8&)$RgB20jwlr}m-U}wNZ zqO`X;Dg!umE(h@#X+s*2k-gZ$yNta>_5sJg+Ic`!N()Zis5j$d-tNX&KAYm`dXT{h*TVF@11ao)m)*S72b?A{3^!`TYs%;@N44fTijx6 z=y~=lY*;C2YCu(0t(+y#rU0O|iX!vb&wu*UpZ@eWzxhpP-SYC@mAxzdjee_@21x*@ zYMb?>X|1v>OOj;Io;{)Isjx)?pa3!pMNw$27@+if510v+$#}@nYXRr_`V**ngJRtb z)(bzEdQa0#SvFt3CW$C~5n!cqW}w2dxNLR~)lg@xcaE(EW&zcRHFbi_p{*3WpM7*N zGf|=mv<7sLZ(P#g;|SYr^UJ^T!5eQnbkj{Y?V8gG0y?l0$i`V5gA%7nkyc76@hsNo zF4xAWS~lY~7ZSdO@XH$?dYap6m52aoLaagtA%(_Jsdhha!`P(fzQyDPn9BH0uPeS^ zj(^&?(?Gy_F$edUd+)j9_^Gw&bkLgbXr)^1h463|7G|){v3M58&JlPJZ~q_bU2t!ro-WA zxwnWxdk2UG9D^3vyLTl`+haQd2st=FsHq5Z-FxX~nOYO{m`-w|w9y(783`Ds(`oqd zNSgzD_X5BVpZ>w|mtOkO51)DPpjubxu|o;ZnrDKiwlbxDh1%IFC2rS(Rf5E1tCI>LbSQg;X@N#=!XawM;ca$)zkxv z$MWgLp%}+pqPPvukf3e`09xzVMB6V%NX)%=o|!#6v9tLPi!=BLaxG6rz?EZ#B2whM zWfX8uX%ojLiVU!~(@{hqE_d0W9h=*4z2UZ7Z``xed+^~SrK(iUETEmV5LHVX5QPLR zgd|=7kVUkKpl-FrEo*6OKY8=VKid$0x%j4S#eDKs1ci}3pdwI+p1lgHh2^>o7yB(Q zvCxq}%T0C`Zi-F(B>zxBg2t2vU7P0RZNr1a=0Y{tyOD8eKF2uLKrp2dL> zfd@hsC4|aoR7yui$0}(%n=?BJd50i)M&%eyXjyt)^@Y$_Xc2<|cS%sDpsgk>;>8Cu zHUJ1ME8!1C7ScQmSxu3I1WzAvlcvu003I6@p$sx?|%2$XP^DV zCq8lCefPcl-S58j)>{{Mtz^^wbUHEGC|zmUiwL9C8SZ8Uj^=sQ?fBb+`{6Xti4aFd7b%v^1?27JykZk+l{8k|gQ%dLoPsG;f*}(<}oZ0b)U9WMp9Q07xXv z6y7K#(4}nWHg$noz`a~UjrfLTWXFc`S45hCA-O^`@0QyY?<8sDM}iodQ&dhLlmD z1<*^dB@WeO2|e45ssrqhS^oSDUEgdBAceEuX-$zW5 z*vc4fUh}sAjcL3&3LsCNy5p|>N3J`tHaP)G;xrl$>TRhLW?>e_N|`8}Z(WZ$Da3l*ew_0suA|&L3 zYxx0|5^*iR<(Xhvlf^6o?7e3ekvuPmNNC1S=W+*6S`#8pCX;@@|LQ9zzV*#-e)z*5 z`Q`V#>+qpN3yUkGjZ3xhpa27vt{{xfmc>n+_sdC)ZR%Ei^FlllhTc~%{&oFf6KdZY z+=IUkNQkgOLb?9cmiI~0Hh}JLT=>$LzWBSp{X5S+_uTH?yKlVy*x3tbTJ1IfjK^aU z3~pK0*#wf=wU+uJO<9()aJ$pqy?Zx{G$H-*Xfzy;Y81sY160!4-j@%W&EQFRGF|EX zMFI?>!ntcz6ZY%Jb8YyS=XqUG&$7%r7qCREE0$YkWn1Gm%FK%x0T5VlLR1h%N~!5^ zowR9nl5U*r>U17?#~qJ6c>jUD3t)Xj3}6ueT=1z!V0O-W#|A+GYC<5S$_1!Sez8ip zppnA=oDS_v>o_3coLPzZlJ7*3CQT)-BvQs*DIaxJu2;R$o6h48fF%h~==cY@T3yVa zZm?*8Y&cw4=7(BJy|8h2nN6k zj=E5}`49J}F|R_e^zGb&O+wapkqq{G)~+PX}6 zfb*gNfL7Y-^?F-YLY8IOv+fxJ(=(Wxm?0l=jvF+@vu{@ z%!|rpo#)f?C`EQ|6ab*otFq$9g{QbsSz!a9N;MdOBQ3EKU~BV9QCPIa?uF&+t~%3#OH> z>|J^GnP*m3R*Kab=I+G>(2JQjRdHn#JOY)_4OB860KioB*a8TF_sjw0K_CTl^Ic(i z`Q?{SzIyVjU;XNV0|(yq=(`?#@WET}yi<9fTbJh!0OB~#iX6%rBa>{))*Cg3ik644 zIe#xNS<^M7DWKeZcI+6O5CuV4YH{tYjF(FCY)h;x37Swc`T;;1%}tS3ET!?Z)*-uh zETW)9C#KV>GLeb9ubz0}CqMr2SHAS+XP)`tOE0~wjh>&I3wdt17NK@Zh@nV=D9kqa zZdN(v?1Wpb*2cz0l17IP9|++r{JdX)_0sS6$t;3^Qd(@T07Ki-mir@|9t5cX-s}`s zo;(6T(wgla+O0NJCD}k=_nwhMFI3elgIuo@thn%@jjjyrLKVY^1%Sm;McPrI<`(CR zEFYXbjjbq7lrf5Yp7@E8%&|Rq_`rh?K6vAeH{No~9tF^5Fp>nqf+`<`RG(|b+{ap| z3Q-A*-^OJq&1#x!>1~htSHD--jDj95@ZyGC@gF}bC%}{W222iO{4&t)Fdn$ zj%S%HRoF2D(d*)=Z*56`yAwJViHN{@BuWtW@7i@>_tFa|&PDTcBbS#gM;HNU+{uZE z8n7flnFdIi43rNoK@c7AXHuvXC-_P^>t6%-<{rBDXp7*@> zUGIAI;E|*4R!bQ(8I1y}PI?xs@#ipq*MU8y%Lh-{xL+2HHz|YWc`hPR6s2iOq@H}@ ztDpVsXFvU!PmANA1(v31QP|OFY>aNDsr5c!7anStEh&lu1HCd(EgM@{$C-D&-EMDb zq*4UK;m~>qh5(2Z0du%#D@St*+o@R)FOe1sMiW&-6F|we0is#wYEcvzj8((4P$V#4 zH!q}y405y4iKT4Y17U{1-vJOKN`NbfQ7)Z10nVwG0?ce?v(Xf?zV*XjdFKNk{NM*~ zzWKVqTD&Q}apEwkmy@&{gJxX2dZ=6ifrJMaA=;R=PR*Fc2(xMFNNWi`+slgTr z@?NiJt(}xamoSqvwB37d&a<^MIy}~gmsa;q#Ba^WC@Ke*4|`-MeeoF7{q3=r1(XTsaHaLS=cgVD}OP=bD$jiF<<$ z)2J;&(G?dmfruOQM@f=&I&DQMv;e?gIDhu|%P)WKbD#U#*T2^9_md>CSzcHaVNzuC z+*?ZmRyil^H;2d&(96nYscTrjKoxmmon2U15ZP3%RT@@TSDp9lxe0D>f{d^-Y=<(k zlU4wrm16dx#9FxpBLEmvh70x_`sP^bjgGh0`OSS5&CgP0PjVUS!zKuVdaeg%R)7Qu zNI`80#V#$jj3R3%qv3#kcIeQ`J-0sm{s->Zzk6wAB|(Iu0A>INO`rjG%qQ!vquGjT zp7pkI4XOzI)MIOKXDn5A0Vr6UgD^O9HrU#npMZcnA^}LZxQ# zWaQ|{?GsX&;If+KYjA#Nkq&i6K#w*?smJ*dFyPJWx&#EwVkuWjlPO> z&3LK%MWL2!ppwNRcBNYW&rxbK``y)s_O<>NG{V=L7{3u6x7WWNh5PF zr8}w;aV;({RdDy7echbA{hb?k3Q6V4B0?fmI%P5dBYF}C=m-kneD(CHG*)}}@44^R z+wZ#bmRoPValWJWc7dlbTz5rLbh|CBAc`PX;HU7P#+I>JI4t}JsghD&07TVAnYzcdTBeuN9`e=I4@<8SSP6&qR&U#x1jvB~6hU#Y zX94cN`^b&g?LG6IXYyhSCV~=!E<5;9JcM(R88NiV*z3%lDuPikf(bab5Ro=27xCVT zIFT9EtJL(`?A8TU?+FBof|S4rN}f#%p6zzaz7hgp_MLV+B=5mbxrznCp385m+LyJq zB6Op$PyiVuIAZe_IY5@O5nH&bFa&`)Bt>d6$tIK1`zea_rAuptb4ilS&(9AAgKs_g z&6d)w!y=0RNDTt(?0EUk!GyNd#LWCF^TTlpzlu?`5KEh&)BFIa4W^AZ3 zNFCF8b6ZpRH!M-E_8$Tupa21dea`HZR>lyZ%d-(`$fg4gb}^>C%bn|w9e((c2kyG- z=3W;%1_U4sMsiS1t^k0>vOK$eQ1xQ`S@pBsnUr5oC_%-R48!@tI!j!_BUK2addj5PLb7>q0M^4BOD(0a zHFGB-QmSeHCd|R!zG^cRUl}?>I10jQ$ACmC^gRJU5UHtS;wA*Y{6z0OH;EzvQ0}xl zQJPF96X$HCP1vlWU8C@;mOv_+wGQTZYQa; zF3)qt zM?{uVM7lhSKtT&(ofMYIJ90^iZEO)30H7!e&!L+_NM?Pi^^1{SqnoGxb>*Ccs6hM_ z#Yculqq7#BX_*6i7C-u~hY#)9b?2S8>|KJ5418e+(=5`a6(zcQlj$@g0VF{r4iXo? zK%mN158n1|8A0`BUyCygq(;fMycy5TLXj9ed+WK-0Y2L%nS!W^6l<*zX$O9b!oYeg z3-uEGs~Rt>N|bNPLYE9?z!!=U;W0#^RDdUsqpu&R0^Z~N{Cu$c zapFq#4G{qeZB$T+*abF2<)dA8QHHO%M02*zxK!=puo>Kt&8uX6eIrQ{Hk@VI?%liB zydO;_*4nxGxuPge96$c4)zvS2_H)1V$RqE4|N9<&_q#XY{@ZvOCEg#J2E$J-Q;ktg zNV)MgSAGI-$J_z8sWER>qZE-OiLEQF^R_6GUg!Cr{P=s{``(K$zWDX8KX&}(mz{S> zlCG@m)mr6wzR~YrbY5#6$8j*_7pa&sg z5b(}#!;;J1dgYnCD6I%3Y_V%Cj^HgFxObJpIZdRKv}eayeNXKc4H7DC_oSr z@F2P@Rg^wwTqV%}s9K#4C?X5Ae>)na2V z8=PhWGS$AJL|~}AyK9H0%Up!Ox#5zff`S2F6ae&qK*EHRjSDZv#@>AEjSt*^-#g#= z;QT_`ia}Y>6WfZF(y8~E&n8y9BSBP=juhyyPHdh7OSNVsxO~5%Yx;9HW+`33?pQ!- zHGwU`od5s>0$Z|rujHOntD}W-PgOEyY%q+mMhh5_fF!sdmiJnyp;rR`ND`XINGU)B zCt!VPgoLQJKbPO67GV|y0c7Ox@EA-d)Jcqvk6eG`v8T@2Nud+1b(~udAb22y@?we##@SdYk`h;8ZWK#BN^XnkbeiXRk>$=>=NJHDZCFHA zm_z7LnHBf0XcH-(n|fHI(MUvM6O9MMAfK8~GZ3aW>HU9Ct&@J?8`G*E5;9W{^z z4P}@RRFO~-Ad+Vvm@`T#XWe)*-nF!gnF0LsKmPG2KKaLg{%3!_y1EVkQ4~c{)J{6$ zAvTG#JU2HF0M0r@vXzt@5!o!~audV~P`odkgRSB=C?bJb52aLZ3Cno)Bt)76r#?;F z(`jzvn1Mh*5H|)HqH^pzy?IuONrj7|NF$PpG%6KpV2J3Mt2!++2yj@W9%fzW0KTFY zu`mDvSMotJyU_z_xV{kR1Y8L5NMIBKiz~9C7$c!%gN23kL+`r#zB{hJ>+ZW3=X)Xo zwm^r9ITFIcf+q#2FaZq4X0!=H5I@`3F;ETrT#4qeV_vwO`SG(Hm&djmVT2eq=ji}| zp``$jh*XUmzDWnAf(?e$g~amX!yU?jLFfe#9Mo#eTqg(w0Gc4sE<^HIIOm*W!4P%< zD!As&9wD-O1W%9^x$!zN@zG<~8}psql4k~M%e7U7lJaH~kk>|wLYMOl(5g}%4v&@~ z#^;eN5fgcc(q3$=v#oAX6l@C!H7fx?@&GK_BT1Rdhj;P;s__6GL@Px~S?_>M6D4Qn z03r?ggDlIk>9nv`N=F{7TWKt~Sr;NUTkV71dZTEzSql($&?YHyobuZy;v%Any6ukj z?oa;YlV{GK`&a+!Up@NhI~hTW*RjE7geyIC2mnD5Do{azH>C1q_-;gkI`|@D6el7+ zFQ(R7?`;$rA{E*}ncdgF@zt+=`77W1?o%%xKYsf3$yS;M1#?7HKrS!p$05`9`cpV) z2@l*E@pK!tbPG8cks$2wLNH zstZ*0kcNbvXFG-pU#zQZ)lFO8wWY}s0Aa1&C?v!nfWm-`z?xVSEAZA%tsSo{FRrZY zy8hV1w;wxn<5IfRHoaa4QLHV>Ib=|wHN64#1u3yj>!&fDf4$&#?94G(0ut6pBFLV@Wv!i5`K>|T z89|T*iGfU#l4?1CU3(71Q97A|c<+3!R2#PUk0Eacy{=O6o^i_qdIseaBS$7yCXNA| zwWHD4O(#%RUsd3#Hxa5z_NTlBt;!!7k?MWRmB3p6AYc9ZG3o zXNQ}PMue+QzcOuun$@#y?0AE1C&kaEfJG1$2@&0W_nl8a{q)B_{_$IHy>(&NA`(gf zk*T6Y2gb-|cyW6c7Kpr6fq1r5rjr~1L`g%>3&o3T)D@b()x*)cF(!`VBu)!EjZ8F} zj4qtN@K>Myi>ID``s-i&+PQNVW3A&jj7ZW=-ztnE`jE+5Vxsm}q2oc3;l=RwM7>f~v7EK}#;>3C9fYFPTPlAfu z8btASIGDfcXx-3w60OY{wAzQrIjvQ1bJ&p$krnfDW#1;Dk%?zj;2WxGXmg@^HXBAYId}>D-$8M zTWt}xHfQE6%bq{={O3Ra`Okgsb1%K{lhxJLJkQg#W3*OEM^V)7bn>i}t|b9RocX~v z_B|dhlf}RGjBm{nkVQy5`+S-irCLd%wDw%g1UV2%YZFCjnhrhJI&Ot`-uuEiW*=^U z!O})`cKKfG*ib;wRTGaTwLqAJ73+#p;Iudd2j~d1UROW#f%iZB@GtG(w`b3i&T~JU zWGN|)Bm&|Xyhme{yrlwCKj)*0>?9!IK_J+kK!s@&QKFPmVhHIn1=SFXLtef811|T$ zxWk)l{(8o+1SomU3qnBy9zDu;aiTlzzPv??FcxC2{6v z>TFTcUQF6WQB21}mrW84D(7slZW$baCLPDAa9%%5tcX(j@R7qWyzoLmeL`}m02L`_ z$-HxU;jIlV>D2`cnft8Ic9RR+roM&Q;GK3V&1f#6u2xGYHqW}^VljiaVy)}-dhK=x zN-7>#)RZPrF3ve-CL*mhB55f5{cUI)_A?(>2)h5`z4syxlrn~hl)~~TL}ZfZX)7f_ zLCo^0bvBB0D{e6t$6r4F(n~M==tn>L@|VAK;*}GpPMy-m06>~{78Z6Hqh0PtqfwsQ zPNxIDBL0hD=?u5E63|=*Tr&4dfMZtGXm(eX6Qs7xd__+bWGRZQ)lR*)0A<0$gGkj$ zD~x$=odX9>oDZDlP+AveFD~%CfVmPhEt!&AuX{&2U3dSRyRtr z>7Z>`<=|;rfVTjefGWxP`WWIkj^nsWNJ|V=0g6a4PAZ9ajTX~4e^y_Qc0{Y)TI;XB z_r32swExi5Wr)~JvFpeV0Hs_wAOKizi;CM5NB7I^yk0u+2L>;$I;T#;>zB=gTY{NVIj-1 z(Rfs3dABpC19)B7dJaVx>w3)Q2V}EsTW+D=*bK90W{x6bqDW+uq=aYo%+6V~))r!+ zWTrEMFS}MyE(e!27RKd=19VUdm9Y2DI|oIf3hTY>+P!e=(F2DL@4M@cTW`K`Ulc@167?GsJD{DQuH~skPJuD-%=X)5LOM}smUOf54cc1z0)6ZB; zl5VfCv{RX(hE}jH@HRc*uLeKe0l2m<&+|BS5CH=*Q0NLlMCKAKHm%ecuT()cVG#%5 zfHlaLqGH-ggKi(pN}8-liHLP}nq^z05NF0orR~(4Fugmsl5U%sP)&LH<(J>{zW06X zV;{3zR@KTmq|nmH0KmZthyVdnz>&=dgTZ(_(oqt;H=Xm|v(_d}5^YRm;wXyZ#KejO z0F}~IX2&9IJtI=Alu^ohKc0-oqtSEE{rIz=`wx#l_Soa!_~zn#XV<)eI$%c6q^VfN6G+z^B$Q?qo~)jT(_^2GR4QOw@UNDP;X5_V$^E2+pSjl z69N$s1Zy)}6h)DtE35-wZV5{Dj|#;qF?wjo|6Oi`e(VZslKK{40GC^(RoYHkoyd$Y z9@^Er`|cZVzvGts?>*KvzyKH5ru~6x#Zj*fabz|wO$dE()+I6uQ4q8MUsk&3t?g*L z7RKdRe^}Y+AXaIifKiA{hA2{66KbSTmm~=iapilxrNR9*M-Xh;SsC#)C=gdOU$RN& zZ2N370tf}1-Jx1tn|$%>PyE?uzIbWqJhXN#AGvsLRVDMhnSfO->l(fYg47h=O``z- z1`8s<0;(=Q)Xib#+0|G@p!kPEr`SB3X0dLGjzV59NEl4$i4dGo8Wn~Afr*5GFhUS0 zZ1cp8isLxO(BQ%Bnb~_m3TeBuCF`#FCqLaJzg`CwLUP_kQDm)c{@p+SXaD@a_&@!Z zd-m)(d;Z+6U3(mJr3gQp`BUf4ojrT@#g|_?bLRZ3r%$c-*Uz87w6U?Fqa?(3@0`+6 zk|ga`D@l^wyO)zBZMRx!5_MYbJ8!@BzPs;ATX7m0LL?Lc9!zta<=^?vx4-a(FMjRo zU%Pnm;>N}rv%m4!k;!!0@Arp;K`Tu=t+utczrGR2aV3$ftdh_hnp^I*{_guedi~1M%F4Vpz@FFEM+#-B+w%pAhhhSD;?p?M6uivXacTC3 z@)j0OfBr_T-C3#%d1OEo1&AaXmC|CAGKw@30i$45Wt|Z z)52?BuT8bVO|RU!vtMgl_(UslmJp}Y$#^>b$N%|1{cr#K|JD;&?-qCOxwzh+o11eU zC)0_El7%!rxw`(1#~=TlfA_o3{^a=!=hvcEJ68xqfC_|4bURSL&=KX@OtsR{E9>=w z@p-Yl^u@dGxb^+-dE}$N_5ot&vgtynlNF;lHa~p!NB`sh@;|SvEIaRXWW2?qC=4l+ zrX(N^1ekOd3@P**b5KCCp-&A!m@tSK1Bxh8ghn|6 zmne!Au4C`G@2-a)dhqaWP-BP~zyUbc0+DVpGGtx_BwU36U2$Br&mS^tBuUGb~4%~0BJL%%ZL8sg4_1Z<@o5j7%PP@Gx zBW?`F3%lAridNV8N6#Mrlh1tR2hYDU;Z&z>Fx||e2L;MNSrBa&$0}H`^w^+^dQ73@ zi)Fc3lp)fF08x|@(&7|=5}+c@hlLwwV>i{>kuW0zu&@Jm>@##PQ<3D=lx#tMgXd=DEmENvBXQv}ags1^16xK))qVmow zt&B;u(x^%w7z9XDIDY2L`PC<0e)ZK8XHNab-}~Fw?_Mat&&|zgpbvleBTqj06ckI$hQv-stHTYL4CmYF(f#{=<>C8oz3s-shxhg7TJsA44h(~7B7RlV zD5HbA{4QJT5I^-3S+H+#gq<#LQ+CE+xICb-k%tr1gnOoT7 zQBS;htXOgY2&#PiOMoZU?8q4q39&S^(%u;*0M_#q#gZ^F13Cg$Q2wig$Ab$n?89UP zE~oh}0#oQn5diky7MvAx3yTgSAmacnE02Vr0U5Y#ExJN6PDB87+Df~f?&`)G1j?!3 z65MICBu>2#yxN+nsdNaUAD)uC?j+`}_9o|IOe0&Aab^hbyvbZBUwM1t0)Z z??3UW&;9-%lo2EY%Q-3M<$I?DMSTAgc`~=deTaW$QTp8t&6&&$rM$j zljxOKPyO%z{txEo+8_JdA6;&z2vE4<)*Ej82Y>$`eEG{?&azA!702}7X`csz1?&ZgqKXbXaE(b+%+$K`qvGbmtkY-Xy zXvG!m^TBw~iuJx-bKQ99SKj&P{*_(FZaCWMm~Ic4!8x$rCqLEA8d$Btq@$K7{Au3k z=Wx_ct+g<6nc(^v>jDwAqDYxoE29vJi2wx&2#`^z&eqHK+(~}mtviFwPG(nuuf0J# z?A^P2gF!x>x?02o06fUJ$dXp-P>-hYo$vqX@ozo#t?&Nu{Cc+M;7z$`LD(4dAu?oQ z4oyQ$L9ncOECF5*GG_`D3n*X!Hs}*2DAvk|UFM6N!2vP@Gq4i&!b)5x5}Aw5oQ^aN z*ES#&4AC(VumW${*?cenoias0N~s7590CzA3n~@N;XJeFz>Dxf@ul+YW&n;%l(tgX z02HWs5hUO$Dz`MK=)TIf$+K~PV_{+OzWeXH<(6BXd+xbxI_)kl+37?v2$f*S zj4&!NbBU`?>u1=r-Vh+$VQ1#qUHJ|VS6OQfS|bY=&VwV=5s-iouto=xTRRpzZEL>k z=A*yz?swgN#|;Zz=tST=42DpQSs92m8U*AkNrGHqQ8l|3{u&Mpgy~Sy;F7IWdYBLz z(pqDzlu@Xu?1n2_7%v}7Un970=3vf#@;VM0s=j%ECi4DP59@%1u@oYP$)w0^0VM6Y zI5yF#)!}Eq@c1V_^~HiCD`{_jX*5Bn$P>ifB`{>U2#x%p3AnUAu2?-3YExJ~rCg*{ ztQ7%@pW4wn+flcj-g4Is2M+E*^21?&b@kGPb7yUqPsbydO()r0SC^CAUF{4;E@PfNh!V>lpZ(DX}8-2aqV{Nx+B*efB9u? zi~?kV>2v}B3QC=DB;}oRo?Rm@P_woHvrBi`_J-zaxvDF}q=G6szkK%m|KU;mWFMRR*YCjh(S`D%ypB5|omPwm)7cUreWlQCt;>jQbGBMA$T9e_% zbTTB#Q{!*G`N)G0+;htTWkmV`oPy(jfGMXMX&t&-};#@;Cmj zRT4!Jk$UvecV2hoy61lUqfWcS)2UR2ecGuaag9(r>df6UgPKiZ6h&HVMWmDp(%hFn zU}km%Lcm19%v$n%-05_dmzRzlyl(HF-W|8xc406{*x~E%n-Fatg-ud zFKE3G!GQ>%$i1D8ye&XzeZyY7GZ$iJnM~o{S&)Ai@&NRv!#o*sy{~r zMNvpmL{U`sQXwFM!DwUB7m@zP@X(R#CLEtRefs>V({`Tn(S*`;dC$tFOP4BPkQuvt z);^Ey!Oz6bL;wjy3kU~WXcM10eeQ`TzxB`l{@Ew!4=* z6{^H<0cev0&RYx*mk1QqNjH{e0zof~Fm(J$rLSiUnMj!^@+z{8!`yz43lfOywaI0Z zX)($3ywmC2eDnT0ZoBP(1P-@e5Y%{*b*_u>pWA zb8+07PvGSXldnDY_`m<7PYx%U*}bndzvuMDf#5u;7GsJOg^H^pjY-={2DT9AMNomR zjVut6#W4w?11Sg!CB?;aCwm5u9lPm~2k(CPf%}#gk~o5FY^j(U(~b~9QQ|=ydzJ!4 zgJ`W$lhNs}1%33$%Ds2rXgzp@i);4c>e_n0e{S{sg-ffiyn5>V#nnk>3(jpJv5LG% zB&m^%p$O)aA`F}BtB9Co`TW9Sv)%wz5%t>9&(lg-XRULg&$Bt0d2Vj5-RYct=45Me zf2-As<`#66NJo3-iH&I#ui*EX#8 z;tB&G01Jx?x88c|bTG=>-7Pmpz1wI&+x)XkP6-jP>|@&LdTM}J8$vPKU|#)=0HP&n z)>;9O6%=P)d1by8EiKG!h zfUA!0Ti&qAU2XpA^=9ka51`Je8=No7a*v2hyISiT?yJwe_@{sRr=R%CPkAlSnrE{x z_NJ9Cdg)niGX+?{1&)Cf1rY-S62&H(jx!Kxw>r*w%MMX77o3lyu2$aV{nf+E^Y8hk zdmnwrU55@W&(B2&P8_!sP!v<{03Zg9(_%KOgaA5pZF^x5(ufKH5nBu9y2WLO%M#zX zHip&J;b=Hq>ko#*;ia|J{%ADHCe!J7GIX}nA;~w^Ry!+;VXGpHr8JcUad13%_)x3U znP!%PJj*slI?`Rl)pY`2a2#_YX!b8~a!@g!}f!{IP$ zb!|Rwa=?e#aIv#6jwgGT7S=9&M@;A3g-bTG2o8{tX4_4Y;5V{Kq^x=5>>Oy_>viH- zcRTah#BB60de4dwQN4QdT4j_%vT02`Cxe5>2-b`KssQj8}mSfxnC6UTbjvMq8o z&vD!N!t2~1ZGZG~)wEijpeRLwB;y?~E-u_~!wrMMptrbt>Zie|D!}U3Uw4GQ_JeFX zR~Ew*+qe3cUgOE)8y?$ZdSiV`X{|+oL}ZlGM6nL7Nuk3N zR7G`aDl}0gyTqYNb(uow>(1O?7j*Lm8825me~pg_YlsmX*eEhe!Kn+=C!ToXU;nTF z>x<7n-`TT!lurQ?j}bxSA!5*gN@o2urB6J7OvjT>s|7-n@xa?cnJ7x)B#NNj z**N{u+8EZc_!N&^|_4~xQ1vgy!gStPh`WlyAp?WPFQO1sl6%Zn^+x0P1j zJCTz0Jo66qT$#7MtzKj8c56JIgfCz^ef7kv09+JBqRnjCDCL0>@%rnp_r-r$zi=s= zOeD)8Df#|eI$1VZ&;iVvfg9%9hYla`g}t;Y(}`xE3kjl{p zYN~tn8RfU?+JKU)#yYRHNn2@TA_3R^N8|xR& zfy>gl*4=m9_Rzie{OTjOB?N$A9gz1*2?%T9h($9Ys+s+1X{{rrXn{1I=yizyPsw|8 zG}IiS@jOEXBm~F`Kq)dx#ad}9BRf{X)>p_(_+z?iZ4kZ9fA4J_a&>!!En`bGnn}b| zOU)w`0!akVK6m`z{k#9|t6%-9bGEazG#XDqMG$n;fS6b~G!QvxSOa3&^Wy=S%6}O# zUs`OtyvVb);b7`F&fk3Roxk?M_rCM~>-WyX#zi;cY-!h0;R=Ady_f0(o)Mn~nxDlu zQ@gDHMO3X=6#~A1f_=NKtOw`7IcUdGJJ!-l(AoJ;yQfG%a*@r+HwOW~mAxy*m|#z; zjDeun7=+-x50YZ9E3$8Y4!n^%4H90saAE!8g(!(DO-ew7$V5S~@WvZ&YPI6EVPESc z-zi*h@c01_v)U;G)+)hVA0IXv+!c`*r$iJWvyUQE6a^6>$l~0*QQ8xM=O7UwThFn+ zwdnO`5C`M z0`SW2`G+6*<=bw*>By0T32~wzR$w$(<(Uf*TV7lwCLkhYl1;3tE!U%7>b#T0-e2pn zsTB^G>a+t;ksxY?qDrPCDJ&N%ZrM+x)Mn0CIexy`GSWnNLQWTc0zf+Y%41Lc>7V`S zSHAKUS>5OzKAh({Km?!x3`l9i$jBfL5Kxp<%A&#y=m7*kTCH?4>7zie6=#EsT1i`j zj^M6`-t+Ev{?fg7?n?+ZE&;MNajXo?@+Tn(dS0Qy^>STDvMELg0-$067C{iL00F0C z>nmbQ0YbuBu>wEtZ=`cQquI=s0Riw}II!0Bdb-o@D5V3xEskThGgP`v+vV-H2p*3o z?RG1CVc9wFUw!q}TW`Ou`5FZ(XD1@w?xd{L4s|H!VH4uJ^FV=DPrRy$ zrqgj@i&&#p%G;b#*s~@xby*z8p1ITMC?a)L_N_ll%snupL?nu$wA~^d<>OH+>3Csg zCW5ieATLsb5=CP_ap(xZ2)DHyI(F#DkpqX1?0@vp2YPdmq(BVA)sYyYL`O!Lt)LBl zoP-g+$;INoUP(R8oZ18hf{rl}k^)Uc1eyquG?60ESR?F$&9)?x%V$w^xsZQV!TpV7 zXRrTnuSCn+l4ml)a5(JF^`b~Q3l}f0@7c3J8cv<*|J4`2^4Twb>AB~gZFLr>DjjSL z!Fp)5LB&9cQn6Bzh!?N|N@}m`AaoZqLji7=67#sdcq-F)*+FTM2A;^IO!%|rx|rdigo&Y;&+ zfPBqvv)6TXwN}&VbYWq!-|x3OopWc;e)5x_yz9OPtjkr^5=;OJkVTdj7WePl|AXgV z$yr+6h0H-Q9xtryOWLXTytcMlJ+82p5J8wFJfV6_D1+gK^g%=r7!X?RRxurUfQ9+_ zR+2D#vA)%ca&OZ#Ma1!F+|pWe2`B?>-gsSUvbN908`TG|44@IJPUCVVAPBAju0L0%A}(D1=?T z6vYFuSf>N^Cdg}$M%E$%$ZrIas&?dC#o&Iiv->6v6Z*XgKGB_)PSjS@R&WBHa((ddsqhI89Z0# z^IS})NC;I&CZZs4SO=Ox<5q20MAS+<>$K5xb8`SN9#5vzNgB;)?>{TfOp>Ji{zkvQ z(d~9yoz96@Pki~yUw;0_&m6n)W)TiCnt`>_4qTEX`}XZ4t&NTWXl|~zp{CvWxmGJ} zwc1M2`STaJm{xWcu-WA*oaWX8AOZ30yjNP!&CO|TG^uu{jQ~VyGMR)u&Cg_Vu4Ys$ z{<55~Z|^=$Bt@Z>_TG7605DOsTSfV}zjpC-A@Rb>{(B$1<(&^daKrw+2RhK!P*|{& zVre0=j`L#boJVD-(&4Q7V6e0lfl{~i+TmIKd<`NB5||{Q1NNfPD6JK0#F^x5@W7PP zKkto?YdpAb&EmKCl@O4MRpyKppA~X?z5m>^Kl$p{AN%50zq+`4ACU5b*4b>DAqfCU z5`#`n)G{hX6<6Iz4uAk+073==?-7IjJ@8RWzNAJD$p*wF`UW#Pul1fw$ zf;Iti^Eks#p<)LSKxtPVK5)l##Zoe;ei2D2-`Qy;!Lp+C!4a>7(F=)?fD({^CbI|% zA_nm+&py$~(W6Iuz20Opw${Zaf~y-*I06g=|GoStJXAd5} zP8(hG(iIRXl_b%1*WW|&qbSl*68;w@X$AtkrIgCed}n*4X3y5zZY$Zl zyqvaD>n#8bvuUjLr3)8}EYI`2ZOq%?;rY4-hL%)?h!lD_Smf9Z$BZ_4o(IJq(L`FM zq}NI_8?n-J%0OJXgwI%Zm!{&4i$zw^I+;qzZyJ9~D|b;pVvL})sl7Q-3(A@(S}>mQ9D_@yfn^qv_;N{^U>I^`7_M zdh4wsOsKqgK_oy_xV&!#jn+Ey9;bPpS)UbFlpRmk`ol4zO4IgqG%hXTNMR-Txlv$oq#SiHA|FPJ#Nif;{ofc0v5 zy->{0QfcR!87v|M3`m+l0R~820Y;i4RT2kO&0(+Z;xOJUVvGJM*eP$~xUzHLY zc0y9gTrqQ==ZB9RzVXJJUVP!jmAxxAn_d|97Zw*!o;=w}TiTE!MMT*oXYZL=>0nh< zv&CmhDSR1~KG`XVHogx1le6onA~l>0;#QnxS(>Kf@kjtpojUdEtFPR0%S{MGK-P1t zqyA)ITD|4v<=wlM&piKp=g2W;*u8t##$ePIH6D)u5XoqQsZ0Z+NdloI8wJAMg+dGx zEa(FNn*hiCeyh{Ebmr{dJh@m2G>Z^6)C^Lg-#6#ciJOF&@4 z7F&ZisEvY1kx>`|dhl(h2EnoHJKkxdjLrKC6>Pq{woi2Pe*8Je+_4%!8WFvKV_*-Y zK^e%$@NfUk?|tU4{_5P>v%6OI_6MWUnjHiO$xuU-dAx;G_f!P zkZ`AM`fI0&?aETG81~PdJAcoexBce-{lB>L#yt__(|#r_2~p5gjFf_zRu==K0s#pi zJ6-8{8A8CO;Qku7e#6QV0RR<=-+pg|ig{BeSwgrs+WgwD{f(Didg+;GezJ)V{X0fa(qxK^vRr zKx9gKXnC><@WO=)lkvFM>4Mu~qw`a^gS`of5g`)p-M8=f%P;FVYPZ|o`+X}bF1I(` zeDm(zyHSy~7C{4rCS(a3{{XB(OxeGzffXZ^bV?CL#2x~v5{OFwy=@on7rn{ojgBqz zQ)#g=5o*Fnkx>wl(ule=6)m*_>MzRi7R>WC9o)IfBE^dcdMQMZfvn|2ds|}*-+TJy zfBkQN>$xBO`25LNRkypb-giX~CXTdexXuNTqWs3_m|USe5MVyd1*||Jz;QR3Z$-r< z-?()4$iC&j`#0YAo_9ZTcv-D3UYxZ6Gl!Jz$K2d)l(HvVbGl9X+M6SC zWd#ARtyQx9)0>_oP5;tI-}&gX&p!LY3(ucBdv^Ek-H15NvUaC!ibxydtktNS?^2!M zCig37czC|vF(Y&l0;r-WwANbdtjGfF4gfD7KORnj*^!QNo5v=eFf7jXdYv{zTA{41 zUhK>-rLpPE&#(127y(F((k9l{+APaBcM7<=1OfuQlS{YK%4XT}%E}Gb9}6c{&)C|< zO9)_;a^7vLqP!hr%M1s2jYw^5tk2KSFYVb40LGYer_bDd=UxB&pZ&8qjtg%~9rvp^ zQVzP&K#c_!zOMhgG{7qlpdsLczfc+X8yTDZha2ApLW@E%T1T3UB88#=5T%}Rx?EV_ z`R4lRqy9A=+^bVY&`4kqD2QCnEx`FceEthx`lCPj7NrF}e^ zbh_Q&_>JFq`Q_uE_@h6z&UL%p(P(t((rU1JP+B2l?Kk_=9T5>SU+v!#QApm4qR8_+ zPLn;$%V*A<2?yYuk2P9rTP78Oxpvfw6e=;q?N-Ma8jnWf5t1+?5Q1YnH$OL-^3-|| z54Fk#Kw$BcfG-uAtN9ZFfWt?Q+;!KTB0yNS=S-(l?|qUaMPaW6GByzcASeO=_T27t zE?&GCMUmEOI2rx@fA|mLI3`7*|Jj#of_&YsA-rRbz(A_>F5dQ=Fy7wgte@XOr9Vml z1qGng<ZY4hF5cf+GvUb^1^AYqLj{Ea)0=T zfB08_^;fU_#qBafA9}aynN#OPklFzO2Gx>X5z3mXBs_{k4GbmcE~6tZ)9UQp#E@B1F{bv;cq+@_f2y z&mKiI&ZZ#@r>#~2PLqxl9N4oYqm7O8uyQy>U$hgo-d}6=I+Hw$qG)bz?$DvV-WO-j zojY}WAcX|(nL;dVCc(i3MHoSmR$3FZqjWW&96fq;d3lZm6e2K_01^!bgMPn%Bq3nQjMdu70bt;|wDPF?s0qdXwqY7^Ah?*yz9SeZTU-4}Q>lwz&f; zOC!j@$bbqEocEsD`>Ty1n~r=F1LRtG%v~#E*7_g96ng|fL`A5Hh=_ng;nWz^#0sd4 z<0#E5(SX4Cwf5*g{rq2h!F|)1NsxO~3rlLP4`2JzHy?Za@u#2q!HJV+!@+RP z`@;LI+iefdocG3PqoYXY#kBt1q}}%33p?-plZjsOXB^b3IEaLZEHW4jk|ZIcS65d*@PQBf(|`I;k|c?e)Q+=R3tl5mIBR`SSHC*L zzyCB|$H1V_8=Ov&2n>#S zI(F>fyWaKCKln$#tPs41{@OSq=_DpKzbvL zrffc*+}X6<%534if9Ja%z5UKRuD|iq}28yiU!x7#gJR65dOosw@p z(+1`qve%M7LuE^yltSmPap0k^GJMf)wMOHSV?J=;zyl9HKt#^jrmGPlbXw-0{o{}R z&Am3+2MDc=FJ_;ai za>c4o_Nqph&!%pB=*|ED!nD&eCc1d>;x9c#opo5;OxW%hcXuo9?ykihio1KEl;ZC0 z?oyoM?(Pc|ceet?t+2qJea|`9_hqlWcK(=bCdnk3%=6s8`|UUQ5&UGj?fooDZ{owq zIsf)%@vd+5SPM}&J5xaE2BHefix`a-zCVVzHk@-);ZpI$#L=l#CgCa2Hqy}?Kk8b8 zieYDN+Ajs_&-QkXfCVDk;J3{F+bT8x^N~bT10k;@{g|N>eUp4>7{+mqKNt#UUaOxX zs$1cRct>4-rQ_d9s73{oN%c8WLYPa`&eQ} z{5-o+f*Ic|yXaUH{&Oj9O?jUJiyqsDCA3f6u1wT-;e08Z+t=gzV{Kf_<6ebd{AI>P z44it}4}QNc6!r8FA%vGZYcJ+*PA`WjZT&d;`2!)LiCLqI{6vwa9$P`KNjt9FDg?w7 zVE~{Jig{0v;5yMb@TN@|!zW}P_G5Mzychm>d$w3HmoF$xlxXUGd<4-VuCL?F_1n>} z+wrvMg2JHX8#S4D^0DotV9O2akvO#~ zY?+{~Nd`B0ZnDupW4p&_iR-E2m(n#gp=D(|;rEWSnMS!_$uo@F{o>!Gqc^ z%q}CjQ6|kmjwG2dNFJ-`Sv9DIGdTug32}&<;G+l}H4=WXK_Z12PC7#i(OR$oHlq$N&}I93 zzA1RE{~rN(NV;)h17*yW^a@=T`4ufYb5I~x2xY^IDse<&Fupm>DX~kKboiV-oVgL`u-C>T6isZt?M*2PuXt_+EC#-tz8B7)+{408zbG)Y=J_8p zo4%xqzd}%yNA&TUV}!Nwnvg*bEmn46Avi9C zQAU~x73-;>_c^LEjY{e|J3HIIdt2YgsOK?ZGw^*i@EtewOYvZFZG5MF{dQ2$8ml-|2III1w24xnGjYTY@ zn5+SbP6HTlRicKVomUcYg<$Q=Uwn>xwRoGGS9^A{zwV^1>YT74UN{c(*sIWsB^(}y zkH*%727)2{D3`$J!5*ganpK>zGqc}0YAHMrJD&2*9Gmw| z7r_Um=dJfYFwZ*;fowMNuxn7h8rnND@$W3oVgGLb4|{hGLO%!*Qq1iHIL+Sw;{>=q zZ-+~jrpc3UqsUn6ZhR42LI~(7WNhSV%VXlfi`-xYaQHfsH9rGuc`hG)>^ENjleZ)% z`u)p!`+52gXj6{6DgA3pc;|vsqv5d+7br3SvUIp$2_ky0t^h`eX7u5n!g?9zr zP96>pEON@DMt~Z)Pyk7^OPJNw;L%T2v%6+X4=p@(0=TC9uf3ky5B3|kwp-~cq%(T#`3p`3@u$X%b zDg@FKFd>L(k4NpERUcAuDnh-`$e76*uo^tY8dHR2NYPSq;Yr{AG!DqxzuOAmiXQ^~ zyQipqZ3cB5x{&-1H|O3a>BV2t>;0_r3}dmBNG-a8;Hy3<8Ew!@=4(K@6)}D4AOLg0 ztiT9m0k@J29spw%~pk|EUZNElW(oKh|$LnUEL}c zMsQFZKV!PI8fg47to5j0bu6>5SQhg8Hv#djaXq?8Htx>wiJhhxz0EY;@w`cj$`Ysz z$Co;}g5r7_zNNWWO?$%CTC2piT&w0_@-#zG5OK?LY$*niDyzMmB7_}f??@a_naEoSz=9T$p#Q$^uSAtr@VyHN z!g&p-DU+pSdQI3_%*Nw*M=K?nk;ybSvS<|IR#GR!qU6(=C9&)+<5vFjNJit|`UV!> zaXm!iC+)oI>g?>KQ7G5XC^x=t-v7qKdZ${^4M&F!%YKk7QbYhX6u*xcW)gVPx6Ejt z8t`t-{e05+=4X4`vOb9djq?jv&sJK4A(^jHNAV}LMD<~Z76njQulqYABEN3g@8-oy zacwjD_WJ4BzbhB5X8}EJA-=yyX`zGI{q~jmLBjoRZ|R4Z&Yrd6|G@3fCvz!AtKNH_ zvz?t<%bQ)GN9cw|Y=C4GpplS9BFOABECc4As%x^HugE90u(5pi#@rIZG?AvNWP+(unJLmFM8ZIKU0HWRObGm34W2I(7o^4hP#h~pND#XGdghJMsNiU-`>tAYx%5*XsERR0T zmn|W9eJsr^)Au3@i>=GYG%CX01yD)by^S@;25J!cW_!EoZ?5iI-VP0hR4 zy2HNTEs}$e5X9dGA=iVQ&F;tawenc%z8z1tGQ@q?it7vmA$8J9D1XdL z9uY+1NhQ?O1d-~uuU;IzY-|{`uL?J{tr!|~-A0f=pi*iDLal9GK2H9kbN7%rM3K4a z68R=onm>u|HDYb|qf=)^oN43;(n#=ZlOasan;S%gjmd#5YDp!#&q4MD*2awC3CkA}_^T<{(Z~ z%hv<{wGDg+)(7l8s4yRv7<}g3QGdApdjSbh%3b*bvP8`B_TLA z<6>1-Fyb*+G_xeU#<@IRv2tq0b*&u2r-kcJE6WcP)=%lw%P-e*{FSA@G^h}N;tY?^ z5lTcHGg&H5s$8*%Lclk@pjNS{`92mNe_|y2F6kyv<2XG7D%+Xb*w|>KmeU^I*hm(c zyBFc-#+J>Gp(wun1}IuIWU9bvov1cbmL4JYrd)r)WC`2*Y!w%Mib-g)56P~49wgBl z3?^N($F-=w7PZeMbRhX7I#%)(s!sAytk8wRx~5C{5S3N>U?Q1@DuK}_7^rbeD7Ab@ zGJLC@QMTRCW!iZ|nQ%Bo_*_GEVv;6Pzj;PFseDu0@3T+-4tcXX1@Dt!>YIu;_I8F# zMJ`HtGTNFbR=8TXcDwIePd52p`>&pgKW9gN>H&|X=IhR4WMpvhVFbmEM#Y~B@UroB znix}HGxWe)SgMbr*rSG3za0NAV^5td-JxryaAk|$=2EEc%TtByNOX;J`U0rw1QoHm z*O{NrthTNz5tJVnSt;~fned8vZfnEtp}o#L2<#cGQMnipRo9&-G_6ytfK$o8IAK$w zK-LLcNQ`aToB?2N^}wHPNraC236iNyHyMd}P|Y-sq@BLRSGcqliM5SlV~v{3S0c25 zQ=RaOR)8U{!1AB=srh^;Vjct-2#aSe(PwI7sjnz}r15$3=P4|gsN-MajUA=&w!;|* zYI~NTBR_v#x0Ij|Lc(UWAjPJX%bQ@ynhj%U^IO&lS-3ZxCs|(EC2~@$eLwcO0!?+w zmK)Wq>zWla#1NQx?MI5gzqo*BGe6E>PPZ4ZvC?x5*Ei}~bk*5p9B zg~@~_y~TOQxw>^IhDm5hngCG5Ge_HXsX!P?@BHc9vT?7s8i7K!#C5U>*af&6!t&0E<)DJepTYTSkR-P&;{`npnz-46)eiVDG&n>$M4Z zuj)piQen+=MK$SVP?>|JB|o^s!P>+BNL+}FKJs-=bjK29uJ_$fdrs=nglG!h6}DAt zjg}2dRhmYK886q;n6wk)bm61zW9DY7mX5gwcVmcU>MiGcuN!K(`*#MX1%yqgAW^YdQ)zsm>Z|K7iEKTU89AKWFBGEX}x#tjXdMHd+;&xxB}Zg^Nk zz@zL$4kSd$=TTE>D`Jnc!MC3Of-hFbpg1SyQ~<)ulxG(4Zu^Oj=IHy*9a`j_c4CdC zDj1>BC}6KMeR`D7bD}UzHMU0R8;<)r}V!@Eb!8AGexg_zu~_BL+f}IYyE^7e0~5S$vO^v;I-T z4;=YBz2JLIs>^FG0f0M@n2i#>c_;sPQv#o3eB5AsaGV`kV;z*|N4;Vy$V=S-ONudF z^*1zl#gPC;Q<9O^oRoG2r#qnUju-pmJAo(B&)_ka4qossu0 zRCmCt(C+XlWkaksN_eQMremx5o`g7!DzEtsAeI=SqF;Y z`oOfP&9euu=-fRMnwLg>)z6v|I^ne4Z$*id8XsOCf0W&I2?)nDI zoC}LRXagTsUN7y~@RTD9Wa7Q^=#%ob_Gr>emCD)e@0sqQChu#P&8f(77Smn9YoyTv zlx@K1SS&RzN_@;ECa#ioQNKp4?yZ2O-m|~cV%=@0AHDrP-u~})6}kAwR<=jFIvF}$ z_8PFu%zMMt=MX+@2YBX*ULu#`=X2g=?j607=qg|Y*OX5 z%ueVG7NZ1JLb$Jz+|;Dkk0+M9ox3Sw5|3AsZ9K(1Tp7Z|HW#nWO)-#R;OQCt+?LP% znYzzkG~}7QhxR|LHJ8890JL;ecIxUx7U@M;S#ZP@KnLk$ON8qCH}0sO=n?5=&50K< zFF>QWeOr6?1Sg^JOY9$}fGhuLFRamUC_pP_bnm%sTol9ihR6wYtLmg7$6`u`0qBy6 z9h9K><$vEr)ekz5ytG5AFr*rLjExWz4jsBb5#f}nud-^1oJz-aEX1yK@hJw!})2QdHM%U=|gr|hfzjA_GyKV1PS$p(si#@ZlZp}P)233g9>aL1?G$w+3!N=Dh z=h^gXq^8C*9BjD021)09jWIt`-GLrC(6V=j)5=1<+r%knczRIXyHo^ZcXngs1| zpV`85K9&5*GeoprvVrD_IUg+x9i_Ix%o2D7F6##oYG}3dN*lR!b~f7hZq={W-aS;V zNdIa>#T+ln!6vbP7vnRTlQoQvw_wG<%w!*NRkLoON-N{9Eij})#0q9Mv0bW4TvrFm z){0ty5_fpv78Dy8*gTMs6r|+!!jk2ei1&mR%oc9imp#2jebQk}SJ8OtiP)Zh6K5X8 zNc^!k&NJ2cDTqOVYXdK8072PKK0OjV>pVdr90N+y&r zn*OCf;Q1MROzwBty$hCfaerT%BpKhCE$jt+XAq6686Pfrfrc>YH_o^;0&SVSb|-}t zQj}vS_lBlDA;d9)zMF8hfb%a9FA>N3&jBIv`K|{R1B2*7Z6`PJ8#rsD&Q~?#9VGgx zc(hqVOCgkFI+8;Z&Zs3Z(p)Z<;4)QGYID~S z)iqAxIwpQ58@U>~yS9D1`B5WIp$2Bht?h;6RPpzDjJ~Jqj~{L#ULOb;VjmyRJ6;Z7 zIdWLs@AE$rvg_DbQ_TfFRoMGjv64Lu%kc4YTQz1$8U@-`bhnJ4o9W`K?}ZbXyd8?a zyo!T*+2h9+7hMABjrs&x7-w|Vc3a->^y8*tXlV;*7zeW`m8-*bX-|M<$5wfzXSY8c zpT!^7YerUwklz~I-cQWeHrGg zi*n2Y*s8<$YKPJe!QK(C2`Ii0B9ynZm1!iizPf5pPyx>s&wr4o@Q>duS%SD_&_(gEU&d?3SuMvb%ZwBvjq|vxct#Kc(Z< zvlzYWX%VQPbYs6IoTC((?QQVK9{h@`IwbtGKC`ibti5as|8)IcA0xPY4wEqBxpZ_K zC$kKlOq9mrAh2Rc&+Wyly^JX{wTEY;g{P@Ms;M9Tx7x7jNdQBe0)&rdU;^u&ipgj= zIxu8~B!D%UMMjO?Bu5ryH^^%;*6}x9Hjhz=WyYhP1!Xdw%rgZPc>gcjvU+q~H((z- z;BIof|0cK4f3<$AEyY}O0D`YpQkt~FjVZy*kTyVSf3Lg?viotcf+Rs?W|OiIj78~8z6v{d)BP|cRfzWZENuGO=mYJ6kb;48R zE#W)rhT;_Bt1I)OvepGXmcO%TUXOI8cA>Q6sTI1eZ;jARqqWdC=Ro5KhvUYR^#9f}Zm^2;BsunO(OE)R2QffMl$lA`H%d8< zhD@igcpWaQtN%EVKn8a6HHX^y-Ij0fQAIiRxQfIRY71ii(k8l?`E}*4ozpxi=EbVQ z`%e+zwNj}KA~#BfM*)=4Irg&ee~b!i)k7^k3(67iOclDtu_$n#NKbHfzhd)npftxY zmgqCN7x3Ox4;e{4mK!?z?~fLOZX23C(s15W!OwHEUkkzi+~)GUA9}|VSjwuHEBaXW zHK7)6?O3+a&*!62js!oYpP0}9j$opak0?rp4(GrJn-BuRZQ#cdd;enh<813AiK*Xh zdSQQ)tCi?w?UM*i5)5gXF}))089Ngdhk7y{6B$tg{OHrkLKTVF!_p$e1giPE19b9% zpT($9nrrFXjT(M!wLTR?g8F_OKV^t%FkVo5M_XgT)>ht}H-Q=AeXlywh^al>K#Dnu zX@N$3_(}zAK&gTZem&K0CtVZW7z6+)(4Q@13;o|hp z_uKA|EjFxXePmbKm*SP89!wPNx zv+>#ewS~t1w<|SBwpbzfAyOQ)RUz*B`c+P0>m~jpnR?n=E>0-wM+dIkgx#tlUv|m4 zBwU=Uxn)bs#``F{$%|Ux#|-#iJeY^+@7nfrj+JeD#6)KIv>ftJ^gJv$m=VEXtzebf zuGFF2v}49OscARmd%JUjj6e7KoljC^^+8c9a1%U@bCh?k^HWd`wgJhQ?HP6m~sWRu`T<+svH5daJ<5 z{sbJFL@Hu<+{7qo)R8Ljy&4n&yY&xlx=laWO<&G+1K&~$d1-$@IiGh0S8M)B|2d9K zUcR&WEhKaHlc*1DDaomcko&7N;-Wq0Q|iZ`Oz``=n*ZKsHBtYQNqT3Y#wJ13#WNnI z1)*hlEjOSM|4G@mft>2zYG>B_UD(kwFM&ueb@#DGoXC>8tX~RBKwO7X{25eE-tFGY z5RIyC#lw2o<{oiQ{ydJal3%yk;~WjJ2C@gUc*8cP>(;`kpmZw9X=ATMbU)$Sq>ek! z`HQ>wo0io0t1o-Ibuya6GC&qHr1SkDp zn>P+CB+6PFqja4w3tQXP?o-Frv3;Z>I+qQ~@@`28us1r@qrdVxccKmZZfC9wx_^TQ z6ARvM+{pbvwakk_neB9%PinQ~!H_sB|6=Lpg%u!zS|C!RU;gglkI#3HMXe47*Qc@% zh!&sxeNT@4?QdE9pjLPORPNK!-E1{IJcV??`SMZ>cJYtiS+6yO7gcuFiucQWH?cHk zn$tyQf0JiPkI?U)?U{(k7$eeSmp_XZwx^ z#D{qRmR80EhwIJ8(RF=lF z9BClrOq|9~2wCk0DhcyE%Eqr7LbY1gPv=NVCD52>3QR?jh7zG49gw=HEFSYBo(Fss z!e0Ap{8`#8-7~ZJrUS9i;~+$D&(yhtPz-Nu#XysuTkc8)6c}*f&}QW=3=qCdqq#^E zP1&zd`)HKh#pOpQtv&HT5Ge5NF%bMH4$9D->Q)*AohTs6imeF10Pc1aiToJo8K$g+ z6haY3bry!o9)7<+LpUUd*S<%=hmOoF0-jfSK|VB-o z|MH|eeA8C+@TxFZ1AV{qXJ=X|-tWOesOL2bH%Gl?hPPIJ+I7kK>uqWr2e zB`!<0QG`#{qbB%V@&gORJ$}zAya4kLv0ij8ekn;fogzg1G6>%<|7-9 z&;rni*>FrBOmF~XlygDby0+u zQWUFAYZb527Eo^mcIl-g!#@~#c_S*0N}n1BC)UmTV5AW+o3zB6pfWnxD%w=i9vGC3 zqoCuXw0Jw>N1@3*efLY8)JJOPBHrUw_~(2e=u9o(_P%iYe%A9Bxv46*F1G2~&O~=- zX_i-i)8AR=xRpfu+|O@^;7bVHz3?5ql)A3sTM0gJMOqmBy~yucH$%Wcw7K3Y_T z(}8QS6VJQk$Fp0w=qHf59oy~eZeL>@=_44~2|7H{ZXKuOs+U6uM^e^#bknr5f#v3o ztE56cG_aLDK*2o(xUs_ohv`M(P|5w3NRXGn2Cv|XB6tXDZ>K-jILkTgjBkimPds6s zHCc+aBB=w?SIiurcD6H{T{bsR-QL@^bcdH#*FAcJx>j>E+>NMHN)1P=nCJfy6Vk}? zIx=?pbii`+bE1EDB1&Czj48j)?EK{2_Nww0#ulvaV%4qPB>L|jEMmoW-qaUp{rf64 zxBHm=s&n`}KoCJ@gSpUv*y5#GQ>&kj;3D+(>8ps7C%17c zBtSqX1!!W)4=XYuS`+g8n1~;z9eio-SJq9e{pEpn-2dVkc!GJ=dGW+;ThQ_N(0EKO zCz}d|Fx@n(1LgK+yZbgD_;1YA?-Km7NImZSZT;Miqu}Q$T(tphE6bz?JfMn3A*J-7 zeDTcA@{o+5+;mp8?_$SO?0&!Es{6X!yk7)7HFo#Ce)BR;_OnEHuL+HDwVp}~`g+^V zm{*{SAkSSzqooFk&ZZBe?&*Vv93Sr9gz2)$-W)&e<)C4aMc4LW+io;ao}pDSvu)a| z!?+sv-uaSHYbzw#)yXlZCfa2M*3GHPH}JzI@%J)%^$ZWU9NZ@=)iorggDBdQNy;F{ znZ{KlBajvZLuaAMph$aiynHzbd-Jm3a29*d?xHD6@6vNjvin*O!N@-cJRP9S`TaZd z4LDX+9L@X^vAgys@R1pO;u!ewSO~rwx;<>CecAY?6(UT0QY~;U%Z_g;&MKKhUnQ`< zzJV^r!uovG2_h>5FS#Z5oQ~Cs1-uNsv@Y+U(W}9-5-GOcSatwYjf!gfv^;S*zl=(+ z5jxeJ<9gm_VpI99=D{7o5a1Hn5;^%d;z>GKP&+j|;hTWvZc9e*@F+bDxqHQ`y_wA~ zi=6^fsVC?CngdH;upCtgQCeJY@xIck;KjQ;v4<$&w!qOU&n6#sl*s%dKF+Z2S6xdS z-G1j;p7tJhl3dP|WQKR3jz>|*^o+9RAtV*|aHBK47lv?EoXD5KlW!h8GBMpyB!F$8c z@AZMt*Kdja-X}-N$1^kE8@Tn1uRMGOlV#>-P3kkt&%Oz0En-3!Yl?2~s`PI)0E>lSe3q~%2_5U9 zJlb$MI^^tsZ2$&zH;bOOf@B5?+}8W~=ATH_mVfnKqYM=E&K16-H%i=7P7TM+9S4As z_c1G!lGh+3rU?0yD6%h9Z01uVf>KN=9HgHSFQbZ=GW^@>d(E?7^2zQh>r~b68UrVQ zsEX3x6)=DNCXXMtw5SOamN%vewFp%qbEHpQAPB0fCx3sa5QqDd+4oRCSGapqhWCZA zEKZqKyHr+Q_{@q25Z<$SYfh@|GV-IV+57wmi5omM%}y%X_tf_+dUphgV-|aEH%iI7 z>r^>tG5$O^L8v$hfc0V5FncVgzMoE82oQe~{f;{@b^;$4P5PyTsYrU?Y!=Z$?7A#Sb!=1NK;n~ngz2S~ zZQwsq&%YDd^yJ{ek0(<|AG7w>|AF1Llj6j?W2QiHPKfPmH%3_Jo%;A#-Ykh z|75~kD4$86R7dLQ(GtcRjc=Ld;+RYjbSDTkdJ7)bRlSF|rs znd`ebxWwoIt=kp|-5(wD=lvz(_>W7kLj&)oG5wUTzlU6`-M>rxS7|bwZ0O18f!QMn zON3BYY|u*({)Z~DH39kw>DTznQT{-(th-^$k1pU?L$z{ES*7JFPwWv@v?Z2+1TLv% zWb*YcI_jmdc*cnS8I&}ZHFW~6zghW&F!YxYY?RfO%(0Q#NG@eXhNd0jptBKRX-Wb> z-MxibzB}KEXAS`r?ynUURIo6(gPr(xZz7FL^Rz{hB>#7j}4!3xO(UQ$l3pyfHus|UIuSIKWT+H zB-;P|lp5kVNK*LGz@3!%5GIEG@LB?E+ZISU=FGd=DLbXalFI&6)BCaNhjK7Vm%^;H z@7vk&_TG0}d+v*!=mKS$&imtW*nSGv6Ce1~x2CX0^yQvzbbVv(eC22dV zPzF)*x}N&|C`&l$#dGdsM$|3r8$=~$yx`%4Ni9V$D3aymv1AB+JzL_euy0QlKD84d z9{l(370obL7#B2B6qMMcRNmFg3lvsuWswzb?|aXPgplF?JBG#Gt8$x|FoH4+Up}F%VPuHV% zCnui0JP!`Pqsgv5clJp>3jjc=SCE#}%9YKqgEX_+>6^k(1dGZ@GLEYXCD(wKMqDU` zPHX?1`>JtF{2_6~=A#QYH~CT=gVJ|%NLpPHerg??t3u8z7p{riFceCCT_M%5oj_b1 zapfiN-r?^4*tARFI9cJ_(YV;_R`w&WvZ#qqap3FHcfqJL9km9N3Wz-&;Gt`qKY!J3 zwadKmkBM0@Km2l+_!Frl5gjU@bXn<=E0r>L|J<*I&V(;RA!Kg+M%LX_7oNj9TCaPg zBq=PR2Eo`4iX7V9mJQG;RyIPU2^UwF4Q*|>Q@3O5x+x|ZrPb%}KTh2W15PHN#qah) zF_72oHZ_YkRoODX$dB$w234iVBU9MP$Z3aiinr@tGn-QY&@c|JaD?M_>{}B>;Svyt z9(oH+Z6$jkM-JMqxqX)B#zN9#bjfZg54o8F3qMIIk2+!hG3VzjYI!`1g`sTu42KYb zU;mS6t4Gry*#qt44rnhA3x|+`Vf`N?oL758v(gfn}*#R>~QBu5sTP{#4`$7LcI(y`Pbye`6XrWp?o zN<7stBdX{qefg-LfVicS2oxi11R~F-qERnsEo5y9^lC*}V#C1niy~w_s9lwgMPqFA z(7|xezW0ZprvFBKckcJ1ahNL-Dt;D|KZ1ZPV^(G>MH;kt05i8%P9Ffy=BR6#L!OE8 z;v!_T-vqNziZQh$V6nL?@ZCMS+*EgxL=dM+%CVJbFWdXK`PQ=k8gMEOiU#fakDp_k_}Tk93dco;@~Et? zX3+l}Dp^`|lvibI%7JY3YmkF0A(bMM6t4A+!x$kAuA$1;v40|ipqNiW-nz20Y$x7Dk_hhB_r4^TWTN&L`! zI(m?wdwNuit69ptS04S@xr5MJK}iDU4CDJJtM0Elr((~KFj}eTLl>O1W(qSiDfWJ>bkw<{BIkKQ9-^}8eF6-07X+F_F2Kxyk`i7 zcV=&-Gu=f0>d({kpBuD_1aZ*X7jnNh2wljvivdLv=}v2OJ{#4jy_MY9kO|rUrL4BB z?22ltaR7Ri+M(~L9MF;_=@^Ru zyA--@Rft92@$YFDA%6#7TVKbUX;n7ze|v|Ceb>e9+uz=n&@KYhpGM*%p$5Ktc9!Hj z#ZDQ{r~u$O{;b9i5zxEle`$3&1g!LaR^M)0PI}hq=fJP{`XOGF-pOqR) zX%IMJarGWjP9}EBw06;tkYPE|9$e0Q8c+^G1N;yoKRd1Zvr=y8>^@F ze}BGA6n(t`iQn`YIvd84@)M`aFC zYGYE8)n83|{R1Yl=a^?K=^$3*gnB}woYLET2leKh7nJ<;D>IOYS&lJ8eq8@| zA9#P>_1t8=*rs)IiBM(<)@b0;yNEeg-dHeO9&*^PWp5bZMdxcZK#rQkl-Y_R#UaU4 zKQW@>h4Hmq|BB`5ZM?Up4ac3&a`_CRQI;6WfFYHAAGBHD_4{`#2f?x8U~GZwNL)k| ztkjv|^`^2XwNRM-IPkx(H1w%2x~Z#dbNZN|5VVPj!+JhlM9Tc~3x+d6@tAkVYVn>T z8Usd0SvCa2B?x$Oi{}F(u%hfVgm1eB;Np1|aQ*&xbVd2W=+G=;4cjuW&u?D6ZqbXs ztsN#77>p*GtO>bV)IR8_j^X5U`K5d-pvzW@an)ODXK5ICjP9aFk|xbOlfvAWW^jW> zNgymmHD?Gm8_nzgRuo_TclU1F#PN} zT-92OVyJM?WuHd&I)Zl>^o@zBR|4o#qCYIB(^;b)Mjv@AZg2;If(A_chqF;G94m zE-6Ai?PtmAI zDpLxN!U3ayV3Z?78B=zV5MPWw#u4vV-zb@HQ6;0LLdD~}C%JTi!v0YrFk#Vkc)?sY z$Hzas?v`8OEdDZ*Jzn5<7v1eFIwck)qN@xuumfK>_4^(QOeVf`p?~54xoZ&p)lRZy za7DPMx@c7qF$Dbp8_>-46e+I=nd1U7rD7#Gf6g^p@L9s@2kaZf9?FqNN=@XeSK zvKcJLA-HA8=++}omV;6#oa-Jfd&AIV`x}N{!$(rq+h}xL`VbD&nT>AW!YTQXsAZ2I6}`2+`lbmDK?HZTK5xp zrS2uvok$}Ns?mM1`$L2N+k(se=-|;fsfD#+zxO)ENja&4(G>L-iqY%+}N*WWcI z?q8MHh=ob-_3k%QC)|8u8F!}cc1&@`4aT}7_sx0 z)5md0yOD$1f(nNakiIG-=MxM$&DD}lQP@*KQEpbsbU^(K8dcISf90VuqX!+QO^B@8 zWUxlGVfmH5&w8eYcx6x->%BtODUgs>$Z2L|p_!#s)r`nh$Z0zUo)}#|F$HRX|DBYu zCiO;{K`vwW_&?3u%~3e!P$+`q@?IvIFo3jyo^nt_gu2LKX!XRp~k@vylG-a2y#O literal 0 HcmV?d00001 diff --git a/apps/admin/build/src/assets/images/login-background.jpg b/apps/admin/build/src/assets/images/login-background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e68486f2b6238b8c37ede9a581a5c501465f7e2 GIT binary patch literal 89379 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 z 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 literal 0 HcmV?d00001 diff --git a/apps/admin/build/src/assets/images/logo.png b/apps/admin/build/src/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..848e03950bc3eeba48ea8d86acbeba60c2ea6b40 GIT binary patch literal 11266 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 HEk6Dq!_X9& literal 0 HcmV?d00001 diff --git a/apps/admin/build/src/assets/images/logo_name.png b/apps/admin/build/src/assets/images/logo_name.png new file mode 100644 index 0000000000000000000000000000000000000000..ff85108a4f3bad6dc1c2e1a99358a73e6505d9c5 GIT binary patch literal 5866 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 literal 0 HcmV?d00001 diff --git a/apps/admin/build/src/assets/images/name_white.png b/apps/admin/build/src/assets/images/name_white.png new file mode 100644 index 0000000000000000000000000000000000000000..2c25ebcdb27f3e680944bd508e65cde1224d6721 GIT binary patch literal 5080 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

+ ) +} + +export default AppLogo diff --git a/apps/admin/build/src/components/AppLogo/src/app-logo.module.less b/apps/admin/build/src/components/AppLogo/src/app-logo.module.less new file mode 100644 index 00000000..56186de7 --- /dev/null +++ b/apps/admin/build/src/components/AppLogo/src/app-logo.module.less @@ -0,0 +1,24 @@ +.app-logo { + display: flex; + align-items: center; + height: 48px; + padding-left: 24px; + cursor: pointer; + transition: all 0.3s ease; + + .logo-img { + display: block; + width: 32px; + height: 32px; + } + + .logo-name { + display: block; + width: 120px; + height: 15px; + + &.hidden { + display: none; + } + } +} diff --git a/apps/admin/build/src/components/LazyLoad/index.ts b/apps/admin/build/src/components/LazyLoad/index.ts new file mode 100644 index 00000000..6e954097 --- /dev/null +++ b/apps/admin/build/src/components/LazyLoad/index.ts @@ -0,0 +1,3 @@ +import LazyLoad from './src/LazyLoad' + +export { LazyLoad } \ No newline at end of file diff --git a/apps/admin/build/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/build/src/components/LazyLoad/src/LazyLoad.tsx new file mode 100644 index 00000000..06b6e887 --- /dev/null +++ b/apps/admin/build/src/components/LazyLoad/src/LazyLoad.tsx @@ -0,0 +1,29 @@ +import { ReactNode, Suspense, LazyExoticComponent } from 'react' +import { Spin } from 'antd' + +/** + * @description 路由懒加载 + * @param {Element} Component 需要访问的组件 + * @returns element + */ +const LazyLoad = (Component: LazyExoticComponent): ReactNode => { + return ( + + } + > + + + ) +} + +export default LazyLoad diff --git a/apps/admin/build/src/components/Page/index.ts b/apps/admin/build/src/components/Page/index.ts new file mode 100644 index 00000000..908eda9c --- /dev/null +++ b/apps/admin/build/src/components/Page/index.ts @@ -0,0 +1,3 @@ +import PageWrapper from './src/PageWrapper' + +export { PageWrapper } \ No newline at end of file diff --git a/apps/admin/build/src/components/Page/src/PageWrapper.tsx b/apps/admin/build/src/components/Page/src/PageWrapper.tsx new file mode 100644 index 00000000..14edb8c3 --- /dev/null +++ b/apps/admin/build/src/components/Page/src/PageWrapper.tsx @@ -0,0 +1,43 @@ +import { Button } from 'antd' +import { openWindow } from '@/utils' +import SvgIcon from '@/components/SvgIcon' +import compoStyle from './compo.module.less' + +interface PluginProp { + name?: string + desc?: string + url?: string +} + +interface PageProp { + plugin: PluginProp + children: JSX.Element +} + +const PageWrapper = (props: PageProp) => { + + function openGithub() { + openWindow(props.plugin?.url!) + } + + return ( +
+
+
+ + {props.plugin?.name} +
+

{props.plugin?.desc}

+

+ github源码: + +

+
+
+ {props.children} +
+
+ ) +} + +export default PageWrapper \ No newline at end of file diff --git a/apps/admin/build/src/components/Page/src/compo.module.less b/apps/admin/build/src/components/Page/src/compo.module.less new file mode 100644 index 00000000..4bab958e --- /dev/null +++ b/apps/admin/build/src/components/Page/src/compo.module.less @@ -0,0 +1,26 @@ +.compo_page-wrapper { + + .page-header { + width: 100%; + min-height: 48px; + padding: 16px 24px; + margin-bottom: 12px; + background: #fff; + box-sizing: border-box; + + &-name { + margin-bottom: 4px; + font-size: 16px; + font-weight: 600; + + svg { + margin-right: 6px; + } + } + + } + + .page-content { + min-height: 420px + } +} \ No newline at end of file diff --git a/apps/admin/build/src/components/SvgIcon/index.module.less b/apps/admin/build/src/components/SvgIcon/index.module.less new file mode 100644 index 00000000..88e9ca7c --- /dev/null +++ b/apps/admin/build/src/components/SvgIcon/index.module.less @@ -0,0 +1,6 @@ +.svg-icon { + display: inline-block; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; +} \ No newline at end of file diff --git a/apps/admin/build/src/components/SvgIcon/index.tsx b/apps/admin/build/src/components/SvgIcon/index.tsx new file mode 100644 index 00000000..8e6e52d6 --- /dev/null +++ b/apps/admin/build/src/components/SvgIcon/index.tsx @@ -0,0 +1,22 @@ +import { SvgIconProp } from './types' +import styles from './index.module.less' + +export default function SvgIcon({ + name, + prefix = 'icon', + size = 16, + style +} : SvgIconProp) { + const symbolId = `#${prefix}-${name}` + const iconStyle = { + width: `${size}px`, + height: `${size}px`, + ...style + } + + return ( + + ) +} \ No newline at end of file diff --git a/apps/admin/build/src/components/SvgIcon/types.ts b/apps/admin/build/src/components/SvgIcon/types.ts new file mode 100644 index 00000000..3402cee0 --- /dev/null +++ b/apps/admin/build/src/components/SvgIcon/types.ts @@ -0,0 +1,6 @@ +export interface SvgIconProp { + name: string + prefix?: string + size?: number, + style?: React.CSSProperties +} \ No newline at end of file diff --git a/apps/admin/build/src/components/Upload/index.ts b/apps/admin/build/src/components/Upload/index.ts new file mode 100644 index 00000000..f96de6ae --- /dev/null +++ b/apps/admin/build/src/components/Upload/index.ts @@ -0,0 +1,3 @@ +import UploadImage from './src/UploadImage' + +export { UploadImage } \ No newline at end of file diff --git a/apps/admin/build/src/components/Upload/src/UploadImage.tsx b/apps/admin/build/src/components/Upload/src/UploadImage.tsx new file mode 100644 index 00000000..d629cbfe --- /dev/null +++ b/apps/admin/build/src/components/Upload/src/UploadImage.tsx @@ -0,0 +1,60 @@ +import { FC } from 'react' +import type { UploadChangeParam } from 'antd/es/upload' +import { Upload, Button, message } from 'antd' + +interface propState { + onSuccess: (data: any) => void +} + +const UploadImage: FC = ({ onSuccess }) => { + + const handleChange = (imageFile: UploadChangeParam) => { + const { file } = imageFile + const rawImage = file.originFileObj + + if (!rawImage) return + if (!/\.(jpg|png|bmp|jpeg|webp)$/.test(rawImage.name)) { + message.warning('图片只支持.jpg, .png, .bmp, .jpeg, .webp格式!') + return + } + + const isLimit1M = rawImage.size / 1024 /1024 < 5 + if (!isLimit1M) { + message.warning('上传的图片大小不能超过5M!') + return + } + + readImage(rawImage) + } + + const readImage = (image: any) => { + const reader = new FileReader() + reader.onload = e => { + const data = e.target && e.target.result as any + // Convert Array Buffer to blob if it is base64 + const result = typeof data === 'object' ? window.URL.createObjectURL(new Blob([data])) : data + onSuccess(result) + } + // Convert to base64 + reader.readAsDataURL(image) + // Convert to blob + // reader.readAsArrayBuffer(image) + reader.onerror = () => { + message.error('图片读取出错!') + } + } + + return ( + + + + ) +} + +export default UploadImage \ No newline at end of file diff --git a/apps/admin/build/src/design/antd.less b/apps/admin/build/src/design/antd.less new file mode 100644 index 00000000..e3d87392 --- /dev/null +++ b/apps/admin/build/src/design/antd.less @@ -0,0 +1,35 @@ +.ant-menu { + + &.ant-menu-dark { + background: @primary-dark-bg !important; + + .ant-menu-sub { + background: @submenu-dark-bg !important; + } + } +} + +.ant-menu-inline { + svg +span { + margin-inline-start: 4px; + } +} + +.ant-layout-header { + padding: 0 !important; +} + +.ant-table-thead { + + .sub-title { + font-size: 12px; + color: rgba(0, 0, 0, .4); + } +} + +.ant-layout-sider { + + &-dark { + background: @primary-dark-bg !important; + } +} \ No newline at end of file diff --git a/apps/admin/build/src/design/index.less b/apps/admin/build/src/design/index.less new file mode 100644 index 00000000..0ffd18db --- /dev/null +++ b/apps/admin/build/src/design/index.less @@ -0,0 +1,102 @@ +@import './antd.less'; +@import './variable/index.less'; +@import './public.less'; +@import './scroll-bar.less'; + +// CSS resets +* { + padding: 0; + margin: 0; +} + +ul,li { + list-style: none; +} + +p { + margin: 0!important; +} + +a, +a:focus, +a:hover { + cursor: pointer; + color: inherit; + outline: none; + text-decoration: none; +} + +html { + height: 100%; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + box-sizing: border-box; + + &.color-weak { + filter: invert(80%); + } + + &.gray-mode { + filter: grayscale(100%); + filter: progid:dximagetransform.microsoft.basicimage(grayscale=1); + } +} + +body { + height: 100%; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + font-family: Microsoft YaHei,Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Arial, sans-serif; + font-size: 14px; + color: #222; +} + +img { + width: 100%; + height: 100%; + max-width: none; + border-style: none; +} + +pre { + font-family: Consolas,Menlo,Courier,monospace; +} + +.fr { + float: right; +} + +.fl { + float: left; +} + +.clear-fix { + &:before, + &:after { + content: ''; + display: table; + clear: both; + } +} + +.flex-center-v { + display: flex; + align-items: center; +} + +.flex-center-h { + display: flex; + justify-content: center; +} + +.flex-center { + display: flex; + align-items: center; + justify-content: center; +} + +.flex-between-h { + display: flex; + justify-content: space-between; +} \ No newline at end of file diff --git a/apps/admin/build/src/design/public.less b/apps/admin/build/src/design/public.less new file mode 100644 index 00000000..a82afe60 --- /dev/null +++ b/apps/admin/build/src/design/public.less @@ -0,0 +1,23 @@ +// html +span.icon-btn { + display: flex; + align-items: center; + cursor: pointer; + margin-left: 10px; +} + +.ant-upload-drag { + height: auto!important; +} + +.list-upload { + .ant-upload { + width: 100% !important; + } + + .ant-btn { + display: block; + margin: 0 auto 8px; + } +} + diff --git a/apps/admin/build/src/design/scroll-bar.less b/apps/admin/build/src/design/scroll-bar.less new file mode 100644 index 00000000..ead950d2 --- /dev/null +++ b/apps/admin/build/src/design/scroll-bar.less @@ -0,0 +1,29 @@ +// Customize the scroll-bar style +&::-webkit-scrollbar-track-piece { + background-color: rgba(0, 0, 0, 0); + border-left: 1px solid rgba(0, 0, 0, 0); +} + +&::-webkit-scrollbar { + width: 6px; + height: 6px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +&::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.2); + background-clip: padding-box; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + min-height: 28px; +} + +&::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.3); + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} diff --git a/apps/admin/build/src/design/variable/color.less b/apps/admin/build/src/design/variable/color.less new file mode 100644 index 00000000..8b41df9f --- /dev/null +++ b/apps/admin/build/src/design/variable/color.less @@ -0,0 +1,5 @@ +@white: #fff; +@primary-color: #1890ff; + +@primary-dark-bg: #263238; +@submenu-dark-bg: #202b30; \ No newline at end of file diff --git a/apps/admin/build/src/design/variable/index.less b/apps/admin/build/src/design/variable/index.less new file mode 100644 index 00000000..2462f65e --- /dev/null +++ b/apps/admin/build/src/design/variable/index.less @@ -0,0 +1,5 @@ +@import './color.less'; + +@namespace: v-desg; + +@layout-hybrid-sider-fixed-z-index: 550; diff --git a/apps/admin/build/src/enums/appEnum.ts b/apps/admin/build/src/enums/appEnum.ts new file mode 100644 index 00000000..6eda1b60 --- /dev/null +++ b/apps/admin/build/src/enums/appEnum.ts @@ -0,0 +1,32 @@ +export const SIDE_BAR_MIN_WIDTH = 48 +export const SIDE_BAR_SHOW_TITLE_MIN_WIDTH = 80 + +// App mode enum +export enum AppModeEnum { + DARK = 'dark', + LIGHT = 'light' +} + +// Menu theme enum +export enum ThemeEnum { + DARK = 'dark', + LIGHT = 'light' +} + +// Page switching animation +export enum PageTransitionEnum { + FADE = 'fade', + FADE_SIDE = 'fade-slide', + FADE_BOTTOM = 'fade-bottom', + FADE_SCALE = 'fade-scale', + ZOOM_FADE = 'zoom-fade', + ZOOM_OUT = 'zoom-out' +} + +// Permission mode +export enum PermissionModeEnum { + // Route mapping + MAPPING = 'MAPPING', + // The back-end response + BACKEND = 'BACKEND' +} diff --git a/apps/admin/build/src/enums/cacheEnum.ts b/apps/admin/build/src/enums/cacheEnum.ts new file mode 100644 index 00000000..c7c740e5 --- /dev/null +++ b/apps/admin/build/src/enums/cacheEnum.ts @@ -0,0 +1,18 @@ +export const TOKEN_KEY = 'TOKEN_KEY' + +export const LOCALE_KEY = 'LOCALE_KEY' + +export const USER_INFO_KEY = 'USER_INFO_KEY' + +export const APP_CONFIG_KEY = 'APP_CONFIG_KEY' + +export const APP_TAGS_KEY = 'APP_TAGS_KEY' + +export const APP_LOCAL_CACHE_KEY = 'APP_LOCAL_CACHE_KEY' + +export const APP_SESSION_CACHE_KEY = 'APP_SESSION_CACHE_KEY' + +export enum CacheTypeEnum { + SESSION, + LOCAL, +} \ No newline at end of file diff --git a/apps/admin/build/src/enums/exceptionEnum.ts b/apps/admin/build/src/enums/exceptionEnum.ts new file mode 100644 index 00000000..47d048ec --- /dev/null +++ b/apps/admin/build/src/enums/exceptionEnum.ts @@ -0,0 +1,10 @@ +export enum ExceptionEnum { + // page not access + PAGE_NOT_ACCESS = 403, + + // page not found + PAGE_NOT_FOUND = 404, + + // server error + SERVER_ERROR = 500 +} diff --git a/apps/admin/build/src/enums/menuEnum.ts b/apps/admin/build/src/enums/menuEnum.ts new file mode 100644 index 00000000..55b00de9 --- /dev/null +++ b/apps/admin/build/src/enums/menuEnum.ts @@ -0,0 +1,26 @@ +// Menu types +export enum MenuTypeEnum { + SIDER_MENU = 'sider-menu', + + HEADER_MENU = 'header-menu', + + HYBRID_MENU = 'hybrid-menu' +} + +// Menu modes +export enum MenuModeEnum { + VERTICAL = 'vertical', + + HORIZONTAL = 'horizontal', + + INLINE = 'inline' +} + +// Menu folding button location +export enum MenuFoldBtnEnum { + NONE = 'none', + + HEADER = 'header', + + SIDER = 'sider' +} diff --git a/apps/admin/build/src/enums/tagsEnum.ts b/apps/admin/build/src/enums/tagsEnum.ts new file mode 100644 index 00000000..0cbfdfab --- /dev/null +++ b/apps/admin/build/src/enums/tagsEnum.ts @@ -0,0 +1,8 @@ +export enum TagActionEnum { + REFRESH, + CLOSE, + CLOSE_LEFT, + CLOSE_RIGHT, + CLOSE_OTHER, + CLOSE_ALL +} diff --git a/apps/admin/build/src/hooks/web/useECharts.ts b/apps/admin/build/src/hooks/web/useECharts.ts new file mode 100644 index 00000000..ef6f8369 --- /dev/null +++ b/apps/admin/build/src/hooks/web/useECharts.ts @@ -0,0 +1,75 @@ +import type { EChartsOption } from 'echarts' +import { useRef, useEffect } from 'react' +import { useDebounceFn } from 'ahooks' +import echarts from '@/utils/echarts' + +export function useECharts( + options: EChartsOption, + loading: boolean = true, + theme: 'light' | 'dark' | 'default' = 'default' +) { + + const chartRef = useRef(null) + let chartInstance: echarts.ECharts | null = null + + const { run: resizeFn } = useDebounceFn( + () => { + chartInstance?.resize() + }, + { wait: 200 } + ) + + useEffect(() => { + initCharts() + + return () => { + disposeCharts() + } + }, []) + + useEffect(() => { + if (loading) return + setOptions(options) + + return () => { + disposeCharts() + } + }, [loading, options]) + + const initCharts = (t = theme) => { + const el = chartRef?.current + if (!el) return + + chartInstance = echarts.init(el, t) + + window.addEventListener('resize', resizeFn) + } + + const setOptions = (options: EChartsOption) => { + if (!chartInstance) { + initCharts() + + if (!chartInstance) return + } + + chartInstance?.clear() + + chartInstance?.setOption(options) + } + + const disposeCharts = () => { + if (!chartInstance) return + window.removeEventListener('resize', resizeFn) + chartInstance.dispose() + chartInstance = null + } + + const getInstance = (): echarts.ECharts | null => { + if (!chartInstance) { + initCharts() + } + return chartInstance + } + + return { chartRef, getInstance } +} \ No newline at end of file diff --git a/apps/admin/build/src/hooks/web/useMessage.tsx b/apps/admin/build/src/hooks/web/useMessage.tsx new file mode 100644 index 00000000..c2461fc3 --- /dev/null +++ b/apps/admin/build/src/hooks/web/useMessage.tsx @@ -0,0 +1,54 @@ +import type { ModalFuncProps } from 'antd' +import { Modal, message as Message } from 'antd' +import { InfoCircleFilled, CheckCircleFilled, CloseCircleFilled } from '@ant-design/icons' + +import { isString } from '@/utils/is' + +export interface ModalOptionsEx extends Omit { + iconType: 'success' | 'info' | 'warning' | 'error' +} + +function getIcon(iconType: string) { + if (iconType === 'warning') { + return + } else if (iconType === 'success') { + return + } else if (iconType === 'info') { + return + } else { + return + } +} + +function renderContent({ content }: Pick) { + if (isString(content)) { + // @ts-ignore + return
${content as string}
`}> + } else { + return content + } +} + +// Create confirmation box +function createConfirm(options: ModalOptionsEx) { + const iconType = options.iconType || 'warning' + Reflect.deleteProperty(options, 'iconType') + + const opt: ModalFuncProps = { + centered: true, + icon: getIcon(iconType), + content: renderContent(options), + okText: '确定', + cancelText: '取消', + ...options + } + + return Modal.confirm(opt) +} + +export function useMessage() { + return { + createMessage: Message, + createConfirm + } +} diff --git a/apps/admin/build/src/hooks/web/useTitle.ts b/apps/admin/build/src/hooks/web/useTitle.ts new file mode 100644 index 00000000..b8839455 --- /dev/null +++ b/apps/admin/build/src/hooks/web/useTitle.ts @@ -0,0 +1,18 @@ +import { useState, useEffect } from 'react' +import { useLocation } from 'react-router-dom' +import { useTitle as usePageTitle } from 'ahooks' +import { searchRoute } from '@/utils' +import { basicRoutes } from '@/router' + +// 监听页面变化和动态改变网站标题 +export function useTitle() { + const [pageTitle, setPageTitle] = useState('react-admin-design') + const { pathname } = useLocation() + + useEffect(() => { + const currRoute = searchRoute(pathname, basicRoutes) + setPageTitle(currRoute?.meta.title) + }, [pathname]) + + usePageTitle(pageTitle) +} diff --git a/apps/admin/build/src/layout/feature/components/DocLink.tsx b/apps/admin/build/src/layout/feature/components/DocLink.tsx new file mode 100644 index 00000000..470d23d3 --- /dev/null +++ b/apps/admin/build/src/layout/feature/components/DocLink.tsx @@ -0,0 +1,16 @@ +import { Tooltip } from 'antd' +import SvgIcon from '@/components/SvgIcon' + +export default function DocLink() { + return ( + + + + + + ) +} \ No newline at end of file diff --git a/apps/admin/build/src/layout/feature/components/FullScreen.tsx b/apps/admin/build/src/layout/feature/components/FullScreen.tsx new file mode 100644 index 00000000..a9de3727 --- /dev/null +++ b/apps/admin/build/src/layout/feature/components/FullScreen.tsx @@ -0,0 +1,15 @@ +import { Tooltip } from 'antd' +import { useFullscreen } from 'ahooks' +import SvgIcon from '@/components/SvgIcon' + +export default function FullScreen() { + const [isFullscreen, { toggleFullscreen }] = useFullscreen(document.body) + + return ( + + + {!isFullscreen ? : } + + + ) +} diff --git a/apps/admin/build/src/layout/feature/components/GithubLink.tsx b/apps/admin/build/src/layout/feature/components/GithubLink.tsx new file mode 100644 index 00000000..d98fdc91 --- /dev/null +++ b/apps/admin/build/src/layout/feature/components/GithubLink.tsx @@ -0,0 +1,27 @@ +import { Tooltip } from 'antd' +import { openWindow } from '@/utils' +import SvgIcon from '@/components/SvgIcon' + +export default function GithubLink() { + function openGithub () { + openWindow('https://github.com/baimingxuan/react-admin-design') + } + + return ( + + + + + + ) +} \ No newline at end of file diff --git a/apps/admin/build/src/layout/feature/components/UserDropdown.tsx b/apps/admin/build/src/layout/feature/components/UserDropdown.tsx new file mode 100644 index 00000000..1ef9b3d5 --- /dev/null +++ b/apps/admin/build/src/layout/feature/components/UserDropdown.tsx @@ -0,0 +1,98 @@ +import type { MenuProps } from 'antd' +import { Space, Dropdown } from 'antd' +import { LockOutlined, PoweroffOutlined } from '@ant-design/icons' +import { useNavigate } from 'react-router-dom' +import { getAuthCache, clearAuthCache } from '@/utils/auth' +import { TOKEN_KEY } from '@/enums/cacheEnum' +import { useAppDispatch, useAppSelector } from '@/stores' +import { useMessage } from '@/hooks/web/useMessage' +import { logoutApi } from '@/api' +import { resetState } from '@/stores/modules/user' +import headerImg from '@/assets/images/avatar.jpeg' + +export default function UserDropdown() { + const items: MenuProps['items'] = [ + { + key: 'lock', + label: ( + + + 锁定屏幕 + + ) + }, + { + key: 'logout', + label: ( + + + 退出登录 + + ) + } + ] + + const onClick: MenuProps['onClick'] = ({ key }) => { + switch (key) { + case 'lock': + handleLock() + break + case 'logout': + handleLogout() + break + } + } + + const navigate = useNavigate() + + const dispatch = useAppDispatch() + const { token } = useAppSelector(state => state.user) + const getToken = (): string => { + return token || getAuthCache(TOKEN_KEY) + } + + const handleLock = () => {} + + const handleLogout = () => { + const { createConfirm } = useMessage() + + createConfirm({ + iconType: 'warning', + title: 温馨提醒, + content: 是否确认退出系统?, + onOk: async () => { + await logoutAction(true) + } + }) + } + + const logoutAction = async (goLogin = false) => { + if (getToken()) { + try { + await logoutApi() + } catch (error) { + const { createMessage } = useMessage() + createMessage.error('注销失败!') + } + } + dispatch(resetState()) + clearAuthCache() + goLogin && navigate('/login') + } + + return ( + + + + + + ) +} diff --git a/apps/admin/build/src/layout/feature/components/index.ts b/apps/admin/build/src/layout/feature/components/index.ts new file mode 100644 index 00000000..5443d3ba --- /dev/null +++ b/apps/admin/build/src/layout/feature/components/index.ts @@ -0,0 +1,6 @@ +import FullScreen from './FullScreen' +import DocLink from './DocLink' +import GithubLink from './GithubLink' +import UserDropdown from './UserDropdown' + +export { FullScreen, DocLink, GithubLink, UserDropdown } \ No newline at end of file diff --git a/apps/admin/build/src/layout/feature/index.module.less b/apps/admin/build/src/layout/feature/index.module.less new file mode 100644 index 00000000..a5236973 --- /dev/null +++ b/apps/admin/build/src/layout/feature/index.module.less @@ -0,0 +1,19 @@ +.layout_feature { + display: flex; + align-items: center; + justify-content: space-between; + min-width: 210px; + height: 48px; + + &-main { + display: flex; + justify-content: right; + min-width: 156px; + } + + &-divider { + height: 50%; + margin: 0; + border-color: rgba(0, 0, 0, .3); + } +} \ No newline at end of file diff --git a/apps/admin/build/src/layout/feature/index.tsx b/apps/admin/build/src/layout/feature/index.tsx new file mode 100644 index 00000000..34771010 --- /dev/null +++ b/apps/admin/build/src/layout/feature/index.tsx @@ -0,0 +1,21 @@ +import { Divider } from 'antd' +import { FullScreen, DocLink, GithubLink, UserDropdown } from './components' +import moduleStyle from './index.module.less' + +export default function LayoutFeature() { + const prefixCls = 'layout_feature' + + return ( +
+
+ {/* */} + + {/* */} + + +
+ + +
+ ) +} \ No newline at end of file diff --git a/apps/admin/build/src/layout/header/components/Breadcrumb.tsx b/apps/admin/build/src/layout/header/components/Breadcrumb.tsx new file mode 100644 index 00000000..086212a2 --- /dev/null +++ b/apps/admin/build/src/layout/header/components/Breadcrumb.tsx @@ -0,0 +1,33 @@ +import { useState, useEffect } from 'react' +import { Breadcrumb } from 'antd' +import { useLocation, matchRoutes } from 'react-router-dom' +import { useAppSelector } from '@/stores' +import SvgIcon from '@/components/SvgIcon' + +export default function LayoutBreadcrumb() { + const [breadcrumbs, setBreadcrumbs] = useState([]) + const { pathname } = useLocation() + const getMenuList = useAppSelector(state => state.menu.menuList) + + useEffect(() => { + const matchRouteList = matchRoutes(getMenuList, pathname) || [] + const breadcrumbList = matchRouteList.map((item: any) => { + const { name, icon = '' } = item?.route + return { + title: ( + <> + {icon && } + {name} + + ) + } + }) + setBreadcrumbs(breadcrumbList) + }, [pathname]) + + return ( +
+ +
+ ) +} diff --git a/apps/admin/build/src/layout/header/components/FoldTrigger/index.module.less b/apps/admin/build/src/layout/header/components/FoldTrigger/index.module.less new file mode 100644 index 00000000..37bfa791 --- /dev/null +++ b/apps/admin/build/src/layout/header/components/FoldTrigger/index.module.less @@ -0,0 +1,14 @@ +.compo_fold-trigger { + display: flex; + align-items: center; + cursor: pointer; + + &.unfold { + + svg { + transform: scaleX(-1); + transition: transform 0.2s; + } + } + +} diff --git a/apps/admin/build/src/layout/header/components/FoldTrigger/index.tsx b/apps/admin/build/src/layout/header/components/FoldTrigger/index.tsx new file mode 100644 index 00000000..67d57685 --- /dev/null +++ b/apps/admin/build/src/layout/header/components/FoldTrigger/index.tsx @@ -0,0 +1,23 @@ +import { useAppSelector, useAppDispatch } from '@/stores' +import { setAppConfig } from '@/stores/modules/app' +import SvgIcon from '@/components/SvgIcon' +import style from './index.module.less' +import classNames from 'classnames' + +export default function FoldTrigger() { + const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) + const dispatch = useAppDispatch() + + function toggledMenuFold() { + dispatch(setAppConfig({ menuSetting: { menuFold: !getMenuFold } })) + } + + return ( + + + + ) +} diff --git a/apps/admin/build/src/layout/header/components/index.ts b/apps/admin/build/src/layout/header/components/index.ts new file mode 100644 index 00000000..5bd547de --- /dev/null +++ b/apps/admin/build/src/layout/header/components/index.ts @@ -0,0 +1,4 @@ +import FoldTrigger from './FoldTrigger' +import Breadcrumb from './Breadcrumb' + +export { FoldTrigger, Breadcrumb } \ No newline at end of file diff --git a/apps/admin/build/src/layout/header/index.tsx b/apps/admin/build/src/layout/header/index.tsx new file mode 100644 index 00000000..ca0ad5da --- /dev/null +++ b/apps/admin/build/src/layout/header/index.tsx @@ -0,0 +1,30 @@ +import { Layout } from 'antd' +import { Breadcrumb, FoldTrigger } from './components' +import LayoutFeature from '../feature' +import LayoutTags from '../tags' + +const LayoutHeader = (props: any) => { + const { Header } = Layout + + return ( +
+
+
+ + +
+ +
+ +
+ ) +} + +export default LayoutHeader diff --git a/apps/admin/build/src/layout/index.less b/apps/admin/build/src/layout/index.less new file mode 100644 index 00000000..344a5fbc --- /dev/null +++ b/apps/admin/build/src/layout/index.less @@ -0,0 +1,14 @@ +.layout_wrapper { + display: flex; + width: 100%; + height: 100vh; + overflow-x: hidden; + + .ant-layout-content { + height: calc(100vh - 48px); + box-sizing: border-box; + flex: 1; + padding: 12px; + overflow-x: hidden; + } +} \ No newline at end of file diff --git a/apps/admin/build/src/layout/index.tsx b/apps/admin/build/src/layout/index.tsx new file mode 100644 index 00000000..f84110bb --- /dev/null +++ b/apps/admin/build/src/layout/index.tsx @@ -0,0 +1,33 @@ +import { Layout } from 'antd' +import { Outlet } from 'react-router-dom' +import LayoutMenu from './menu' +import LayoutHeader from './header' +import { AppLogo } from '@/components/AppLogo' +import './index.less' +import { useTitle } from '@/hooks/web/useTitle' +import { useAppSelector } from '@/stores' +import ErrorBoundary from 'antd/es/alert/ErrorBoundary' + +export const BasicLayout = (props: any) => { + useTitle() + const { Sider, Content } = Layout + + const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) + + return ( + + + + + + + + + + + + + + + ) +} diff --git a/apps/admin/build/src/layout/menu/index.tsx b/apps/admin/build/src/layout/menu/index.tsx new file mode 100644 index 00000000..d25df59c --- /dev/null +++ b/apps/admin/build/src/layout/menu/index.tsx @@ -0,0 +1,113 @@ +import type { MenuProps } from 'antd' +import React, { useState, useEffect } from 'react' +import { useNavigate, useLocation } from 'react-router-dom' +import { connect } from 'react-redux' +import { Menu, Spin } from 'antd' +import { getAsyncMenus } from '@/router/menus' +import { AppMenu } from '@/router/types' +import { setMenuList } from '@/stores/modules/menu' +import { getOpenKeys } from '@/utils/helper/menuHelper' +import SvgIcon from '@/components/SvgIcon' + +type MenuItem = Required['items'][number] + +const getItem = ( + label: React.ReactNode, + key: React.Key, + icon?: React.ReactNode, + children?: MenuItem[], + type?: 'group' +): MenuItem => { + return { + label, + key, + icon, + children, + type + } as MenuItem +} + +const LayoutMenu = (props: any) => { + const { pathname } = useLocation() + const { setMenuList: setMenuListAction } = props + const [loading, setLoading] = useState(false) + const [menuList, setMenuList] = useState([]) + const [openKeys, setOpenKeys] = useState([]) + const [selectedKeys, setSelectedKeys] = useState([pathname]) + + useEffect(() => { + setSelectedKeys([pathname]) + + setOpenKeys(getOpenKeys(pathname)) + }, [pathname]) + + const addIcon = (icon?: string) => { + if (!icon) return null + return ( + + + + ) + } + + const getMenuItem = (data: AppMenu[], list: MenuItem[] = []) => { + data.forEach((item: AppMenu) => { + if (!item?.children?.length) { + return list.push(getItem(item.name, item.path, addIcon(item.icon))) + } + list.push(getItem(item.name, item.path, addIcon(item.icon), getMenuItem(item.children))) + }) + return list + } + + const getMenuList = async () => { + setLoading(true) + try { + const menus = await getAsyncMenus() + setMenuList(getMenuItem(menus)) + setMenuListAction(menus) + } finally { + setLoading(false) + } + } + + useEffect(() => { + getMenuList() + }, []) + + const handleOpenChange: MenuProps['onOpenChange'] = (keys: string[]) => { + if (keys.length === 0 || keys.length === 1) return setOpenKeys(keys) + const latestKey = keys[keys.length - 1] + if (latestKey.includes(keys[0])) return setOpenKeys(keys) + setOpenKeys([latestKey]) + } + + const navigate = useNavigate() + const handleMenuClick: MenuProps['onClick'] = ({ key }: { key: string }) => { + navigate(key) + } + + return ( +
+ + + +
+ ) +} + +const mapStateToProps = (state: any) => state.menu +const mapDispatchToProps = { setMenuList } + +export default connect(mapStateToProps, mapDispatchToProps)(LayoutMenu) diff --git a/apps/admin/build/src/layout/tags/components/TagItem/index.module.less b/apps/admin/build/src/layout/tags/components/TagItem/index.module.less new file mode 100644 index 00000000..d31f9e2a --- /dev/null +++ b/apps/admin/build/src/layout/tags/components/TagItem/index.module.less @@ -0,0 +1,47 @@ +.compo_tag-item { + display: inline-block; + vertical-align: top; + height: 24px; + margin: 0 2px; + padding: 0 8px; + border-radius: 3px; + line-height: 24px; + color: #555; + background: #fff; + overflow: hidden; + cursor: pointer; + + &__dot { + display: inline-block; + vertical-align: baseline; + width: 8px; + height: 8px; + margin-right: 6px; + border-radius: 50%; + background: #dcdee0; + } + + &__name { + font-size: 12px; + } + + :global .anticon-close { + vertical-align: baseline; + svg { + width: 8px; + height: 8px; + } + } + + &.active { + border: none; + color: #fff; + background: #1890ff; + & .compo_tag-item__dot{ + background: #fff; + } + :global .anticon-close { + color: #fff; + } + } +} diff --git a/apps/admin/build/src/layout/tags/components/TagItem/index.tsx b/apps/admin/build/src/layout/tags/components/TagItem/index.tsx new file mode 100644 index 00000000..56388f06 --- /dev/null +++ b/apps/admin/build/src/layout/tags/components/TagItem/index.tsx @@ -0,0 +1,28 @@ +import { FC } from 'react' +import { Tag } from 'antd' +import classNames from 'classnames' +import styles from './index.module.less' + +interface PropState { + name: string + fixed?: boolean + active?: boolean + closeTag: () => void + onClick: () => void +} + +const TagItem: FC = ({ name, fixed, active, closeTag, onClick }) => { + return ( + + + {name} + + ) +} + +export default TagItem diff --git a/apps/admin/build/src/layout/tags/components/index.ts b/apps/admin/build/src/layout/tags/components/index.ts new file mode 100644 index 00000000..49acc629 --- /dev/null +++ b/apps/admin/build/src/layout/tags/components/index.ts @@ -0,0 +1,3 @@ +import TagItem from './TagItem' + +export { TagItem } diff --git a/apps/admin/build/src/layout/tags/index.module.less b/apps/admin/build/src/layout/tags/index.module.less new file mode 100644 index 00000000..bb034ad6 --- /dev/null +++ b/apps/admin/build/src/layout/tags/index.module.less @@ -0,0 +1,30 @@ +.layout_tags { + z-index: 299; + display: flex; + justify-content: space-between; + height: 32px; + padding: 4px 12px; + line-height: 32px; + // border-top: dashed 1px #d9d9d9; + box-sizing: border-box; + + &__main { + position: relative; + width: calc(100% - 116px); + height: 24px; + overflow: hidden; + + &-body { + position: absolute; + height: 100%; + padding: 0 2px; + overflow: visible; + white-space: nowrap; + transition: left .5s ease; + } + } + + &__btn-space { + margin-left: 4px; + } +} diff --git a/apps/admin/build/src/layout/tags/index.tsx b/apps/admin/build/src/layout/tags/index.tsx new file mode 100644 index 00000000..fa41a72a --- /dev/null +++ b/apps/admin/build/src/layout/tags/index.tsx @@ -0,0 +1,210 @@ +import type { MenuProps } from 'antd' +import type { RouteObject } from '@/router/types' +import { FC, WheelEvent, useState, useEffect, useRef } from 'react' +import { Button, Dropdown } from 'antd' +import { LeftOutlined, RightOutlined, RedoOutlined, CloseOutlined } from '@ant-design/icons' +import { useLocation, useNavigate } from 'react-router-dom' +import { TagItem } from './components' +import { basicRoutes } from '@/router' +import { useAppSelector, useAppDispatch } from '@/stores' +import { addVisitedTags } from '@/stores/modules/tags' +import { searchRoute } from '@/utils' +import { closeAllTags, closeTagByKey, closeTagsByType } from '@/stores/modules/tags' +import classNames from 'classnames' +import styles from './index.module.less' + +const LayoutTags: FC = () => { + const items: MenuProps['items'] = [ + { key: 'left', label: '关闭左侧' }, + { key: 'right', label: '关闭右侧' }, + { key: 'other', label: '关闭其它' }, + { key: 'all', label: '关闭所有' } + ] + + const onClick: MenuProps['onClick'] = ({ key }) => { + if (key === 'all') { + // @ts-ignore + dispatch(closeAllTags()).then(({ payload }) => { + const lastTag = payload.slice(-1)[0] + if (activeTag !== lastTag?.fullPath) { + navigate(lastTag?.fullPath) + } + }) + } else { + dispatch(closeTagsByType({ type: key, path: activeTag })) + } + } + + const tagsMain = useRef(null) + const tagsMainBody = useRef(null) + + const [tagsBodyLeft, setTagsBodyLeft] = useState(0) + + const { pathname } = useLocation() + const navigate = useNavigate() + const visitedTags = useAppSelector(state => state.tags.visitedTags) + const dispatch = useAppDispatch() + + const [activeTag, setActiveTag] = useState(pathname) + + useEffect(() => { + const affixTags = initAffixTags(basicRoutes) + for (const tag of affixTags) { + dispatch(addVisitedTags(tag)) + } + }, []) + + useEffect(() => { + const currRoute = searchRoute(pathname, basicRoutes) + if (currRoute) { + dispatch(addVisitedTags(currRoute)) + } + setActiveTag(pathname) + }, [pathname]) + + useEffect(() => { + const tagNodeList = tagsMainBody.current?.childNodes as unknown as Array + const activeTagNode = Array.from(tagNodeList).find(item => item.dataset.path === activeTag)! + moveToActiveTag(activeTagNode) + }, [activeTag]) + + const initAffixTags = (routes: RouteObject[], basePath: string = '/') => { + let affixTags: RouteObject[] = [] + + for (const route of routes) { + if (route.meta?.affix) { + const fullPath = route.path!.startsWith('/') ? route.path : basePath + route.path + affixTags.push({ + ...route, + path: fullPath + }) + } + if (route.children && route.children.length) { + affixTags = affixTags.concat(initAffixTags(route.children, route.path)) + } + } + + return affixTags + } + + const moveToActiveTag = (tag: any) => { + let leftOffset: number = 0 + const mainBodyPadding = 4 + const mainWidth = tagsMain.current?.offsetWidth! + const mainBodyWidth = tagsMainBody.current?.offsetWidth! + if (mainBodyWidth < mainWidth) { + leftOffset = 0 + } else if (tag?.offsetLeft! < -tagsBodyLeft) { + // 标签在可视区域左侧 (The active tag on the left side of the layout_tags-main) + leftOffset = -tag?.offsetLeft! + mainBodyPadding + } else if (tag?.offsetLeft! > -tagsBodyLeft && tag?.offsetLeft! + tag?.offsetWidth! < -tagsBodyLeft + mainWidth) { + // 标签在可视区域 (The active tag on the layout_tags-main) + leftOffset = Math.min(0, mainWidth - tag?.offsetWidth! - tag?.offsetLeft! - mainBodyPadding) + } else { + // 标签在可视区域右侧 (The active tag on the right side of the layout_tags-main) + leftOffset = -(tag?.offsetLeft! - (mainWidth - mainBodyPadding - tag?.offsetWidth!)) + } + setTagsBodyLeft(leftOffset) + } + + const handleMove = (offset: number) => { + let leftOffset: number = 0 + const mainWidth = tagsMain.current?.offsetWidth! + const mainBodyWidth = tagsMainBody.current?.offsetWidth! + + if (offset > 0) { + leftOffset = Math.min(0, tagsBodyLeft + offset) + } else { + if (mainWidth < mainBodyWidth) { + if (tagsBodyLeft >= -(mainBodyWidth - mainWidth)) { + leftOffset = Math.max(tagsBodyLeft + offset, mainWidth - mainBodyWidth) + } + } else { + leftOffset = 0 + } + } + setTagsBodyLeft(leftOffset) + } + + const handleScroll = (e: WheelEvent) => { + const type = e.type + let distance: number = 0 + + if (type === 'wheel') { + distance = e.deltaY ? e.deltaY * 2 : -(e.detail || 0) * 2 + } + + handleMove(distance) + } + + const handleCloseTag = (path: string) => { + // @ts-ignore + dispatch(closeTagByKey(path)).then(({ payload }) => { + let currTag: RouteObject = {} + const { tagIndex, tagsList } = payload + const tagLen = tagsList.length + if (path === activeTag) { + if (tagIndex <= tagLen - 1) { + currTag = tagsList[tagIndex] + } else { + currTag = tagsList[tagLen - 1] + } + navigate(currTag?.fullPath!) + } + }) + } + + const handleClickTag = (path: string) => { + setActiveTag(path) + navigate(path) + } + + const handleReload = () => {} + + return ( +
+
+ ) +} + +export default LayoutTags diff --git a/apps/admin/build/src/main.tsx b/apps/admin/build/src/main.tsx new file mode 100644 index 00000000..39e49e1e --- /dev/null +++ b/apps/admin/build/src/main.tsx @@ -0,0 +1,20 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import { Provider } from 'react-redux' +import { PersistGate } from 'redux-persist/integration/react' +import { store, persistor } from './stores' +import App from './App' +import '@/design/index.less' + +// register svg icon +import 'virtual:svg-icons-register' + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + + + +) diff --git a/apps/admin/build/src/router/guard/guardRoute.tsx b/apps/admin/build/src/router/guard/guardRoute.tsx new file mode 100644 index 00000000..4ea774b2 --- /dev/null +++ b/apps/admin/build/src/router/guard/guardRoute.tsx @@ -0,0 +1,24 @@ +import { ReactNode } from 'react' +import { Navigate, useLocation } from 'react-router-dom' +import { getAuthCache } from '@/utils/auth' +import { TOKEN_KEY } from '@/enums/cacheEnum' +import { useAppSelector } from '@/stores' + +export const GuardRoute = ({ children }: { children: ReactNode }) => { + const whiteList: string[] = ['/', '/home', '/login'] + const { pathname } = useLocation() + const { token } = useAppSelector(state => state.user) + const getToken = (): string => { + return token || getAuthCache(TOKEN_KEY) + } + + if (!getToken()) { + if (whiteList.includes(pathname)) { + return + } else { + return + } + } + + return children +} diff --git a/apps/admin/build/src/router/guard/index.tsx b/apps/admin/build/src/router/guard/index.tsx new file mode 100644 index 00000000..70db9087 --- /dev/null +++ b/apps/admin/build/src/router/guard/index.tsx @@ -0,0 +1,10 @@ +import { BasicLayout } from '@/layout' +import { GuardRoute } from './guardRoute' + +export const LayoutGuard = () => { + return ( + + + + ) +} diff --git a/apps/admin/build/src/router/helpers/index.ts b/apps/admin/build/src/router/helpers/index.ts new file mode 100644 index 00000000..c4d890e4 --- /dev/null +++ b/apps/admin/build/src/router/helpers/index.ts @@ -0,0 +1,63 @@ +import type { RouteObject, AppMenu } from '../types' +import { cloneDeep } from 'lodash-es' +import { isUrl } from '@/utils/is' +import { treeMap } from '@/utils/helper/treeHelper' + +export function joinParentPath(menus: AppMenu[], parentPath = '') { + for (let index = 0; index < menus.length; index++) { + const menu = menus[index] + // Note that nested paths that start with / will be treated as a root path. + if (!(menu.path.startsWith('/') || isUrl(menu.path))) { + // Path doesn't start with /, nor is it a url, join parent path + menu.path = `${parentPath}/${menu.path}` + } + if (menu?.children?.length) { + joinParentPath(menu.children, menu.path) + } + } +} + +export function transformRouteToMenu(routes: RouteObject[]) { + const cloneRoutes = cloneDeep(routes) + const routeList: RouteObject[] = [] + + cloneRoutes.forEach(item => { + if (item.meta!.hideChildrenInMenu) { + item.children = [] + } + + routeList.push(item) + }) + + const list = treeMap(routeList, { + conversion: (node: RouteObject) => { + const { meta: { title, hideMenu = false, ...rest } = {} } = node + + return { + ...(rest || {}), + name: title, + hideMenu, + path: node.path + } + } + }) as AppMenu[] + + joinParentPath(list) + return cloneDeep(list) +} + +export function genFullPath(routes: RouteObject[], parentPath = '') { + for (let index = 0; index < routes.length; index++) { + const route = routes[index] + + if (route.path!.startsWith('/')) { + route.fullPath = route.path + } else { + route.fullPath = `${parentPath}/${route.path}` + } + + if (route?.children?.length) { + genFullPath(route.children, route.fullPath) + } + } +} diff --git a/apps/admin/build/src/router/index.tsx b/apps/admin/build/src/router/index.tsx new file mode 100644 index 00000000..49769255 --- /dev/null +++ b/apps/admin/build/src/router/index.tsx @@ -0,0 +1,59 @@ +import { RouteObject } from './types' +import { Navigate, createHashRouter, redirect } from 'react-router-dom' +import { genFullPath } from './helpers' +import { ExceptionEnum } from '@/enums/exceptionEnum' +import { getAuthCache } from '@/utils/auth' +import { TOKEN_KEY } from '@/enums/cacheEnum' +import LoginPage from '@/views/login' +import PageException from '@/views/exception' + +const metaRoutes = import.meta.glob('./routes/*.tsx', { eager: true }) as Recordable + +const routeList: RouteObject[] = [] + +Object.keys(metaRoutes).forEach(key => { + const module = metaRoutes[key].default || {} + const moduleList = Array.isArray(module) ? [...module] : [module] + genFullPath(moduleList) + routeList.push(...moduleList) +}) + +const rootRoutes: RouteObject[] = [ + { + path: '/', + element: + }, + { + path: '/login', + element: , + meta: { + title: '登录页', + key: 'login' + }, + loader: () => { + if (getAuthCache(TOKEN_KEY)) { + return redirect('/') + } + return null + } + }, + ...routeList, + { + path: '*', + element: + }, + { + path: '/403', + element: , + loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: false }) + }, + { + path: '/404', + element: , + loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: false }) + } +] + +export { routeList as basicRoutes } + +export default createHashRouter(rootRoutes) diff --git a/apps/admin/build/src/router/menus/index.ts b/apps/admin/build/src/router/menus/index.ts new file mode 100644 index 00000000..b49b4c26 --- /dev/null +++ b/apps/admin/build/src/router/menus/index.ts @@ -0,0 +1,13 @@ +import type { AppMenu } from '../types' +import { basicRoutes } from '..' +import { transformRouteToMenu } from '../helpers' + +// Get async menus +export async function getAsyncMenus(): Promise { + const staticMenus = transformRouteToMenu(basicRoutes) + staticMenus.sort((a, b) => { + return (a?.orderNo || staticMenus.length) - (b?.orderNo || staticMenus.length) + }) + + return staticMenus.filter((item) => !item.hideMenu) +} diff --git a/apps/admin/build/src/router/routes/compo.tsx b/apps/admin/build/src/router/routes/compo.tsx new file mode 100644 index 00000000..049b716e --- /dev/null +++ b/apps/admin/build/src/router/routes/compo.tsx @@ -0,0 +1,66 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// component module page +const CompoRoute: RouteObject = { + path: '/compo', + element: , + meta: { + title: '组件', + icon: 'compo', + orderNo: 6 + }, + children: [ + { + path: 'image-upload', + element: LazyLoad(lazy(() => import('@/views/compo/image-upload'))), + meta: { + title: '图片上传', + key: 'imageUpload' + } + }, + { + path: 'drag', + meta: { + title: '拖拽' + }, + children: [ + { + path: 'drag-list', + element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-list'))), + meta: { + title: '列表拖拽', + key: 'dragList' + } + }, + { + path: 'drag-resize', + element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-resize'))), + meta: { + title: '组件拖拽', + key: 'dragResize' + } + } + ] + }, + { + path: 'transfer', + element: LazyLoad(lazy(() => import('@/views/compo/transfer'))), + meta: { + title: '穿梭框' + } + }, + { + path: 'count-up', + element: LazyLoad(lazy(() => import('@/views/compo/count-up'))), + meta: { + title: '数字滚动', + key: 'countUp' + } + } + ] +} + +export default CompoRoute diff --git a/apps/admin/build/src/router/routes/excel.tsx b/apps/admin/build/src/router/routes/excel.tsx new file mode 100644 index 00000000..f4442649 --- /dev/null +++ b/apps/admin/build/src/router/routes/excel.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// excel module page +const ExcelRoute: RouteObject = { + path: '/excel', + element: , + meta: { + title: 'Excel', + icon: 'excel', + orderNo: 10 + }, + children: [ + { + path: 'export-excel', + element: LazyLoad(lazy(() => import('@/views/excel/export-excel'))), + meta: { + title: '导出Excel', + key: 'exportExcel' + } + }, + { + path: 'import-excel', + element: LazyLoad(lazy(() => import('@/views/excel/import-excel'))), + meta: { + title: '导入Excel', + key: 'importExcel' + } + } + ] +} + +export default ExcelRoute diff --git a/apps/admin/build/src/router/routes/exception.tsx b/apps/admin/build/src/router/routes/exception.tsx new file mode 100644 index 00000000..0e62ee68 --- /dev/null +++ b/apps/admin/build/src/router/routes/exception.tsx @@ -0,0 +1,47 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { ExceptionEnum } from '@/enums/exceptionEnum' +import { LazyLoad } from '@/components/LazyLoad' + +// exception module page +const ExceptionRoute: RouteObject = { + path: '/exception', + element: , + meta: { + title: '异常页面', + icon: 'bug', + orderNo: 11 + }, + children: [ + { + path: 'page-403', + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '403页面', + key: 'page403' + }, + loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }) + }, + { + path: 'page-404', + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '404页面', + key: 'page404' + }, + loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }) + }, + { + path: 'page-500', + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '500页面', + key: 'page500' + }, + loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }) + } + ] +} + +export default ExceptionRoute diff --git a/apps/admin/build/src/router/routes/form.tsx b/apps/admin/build/src/router/routes/form.tsx new file mode 100644 index 00000000..7417fd67 --- /dev/null +++ b/apps/admin/build/src/router/routes/form.tsx @@ -0,0 +1,43 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// form module page +const FormRoute: RouteObject = { + path: '/form', + element: , + meta: { + title: '表单', + icon: 'form', + orderNo: 2 + }, + children: [ + { + path: 'basic-form', + element: LazyLoad(lazy(() => import('@/views/form/basic-form'))), + meta: { + title: '基础表单', + key: 'basicForm' + } + }, + { + path: 'form-designer', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '表单设计器', + key: 'formDesigner' + } + }, + { + path: 'gbeata-form', + element: LazyLoad(lazy(() => import('@/views/form/gbeata-form'))), + meta: { + title: 'gbeata表单', + key: 'gbeataForm' + } + } + ] +} + +export default FormRoute diff --git a/apps/admin/build/src/router/routes/graph-editor.tsx b/apps/admin/build/src/router/routes/graph-editor.tsx new file mode 100644 index 00000000..26e3cd53 --- /dev/null +++ b/apps/admin/build/src/router/routes/graph-editor.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// graph-editor module page +const GraphEditorRoute: RouteObject = { + path: '/graph-editor', + element: , + meta: { + title: '图形编辑器', + icon: 'flow', + orderNo: 8 + }, + children: [ + { + path: 'flow-chart', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '流程图', + key: 'flowChart' + } + }, + { + path: 'mind-chart', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '思维导图', + key: 'mindChart' + } + } + ] +} + +export default GraphEditorRoute diff --git a/apps/admin/build/src/router/routes/home.tsx b/apps/admin/build/src/router/routes/home.tsx new file mode 100644 index 00000000..c7861110 --- /dev/null +++ b/apps/admin/build/src/router/routes/home.tsx @@ -0,0 +1,31 @@ +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import Home from '@/views/home' + +// Home route +const HomeRoute: RouteObject = { + path: '/home', + element: , + meta: { + title: '首页', + icon: 'home', + affix: true, + orderNo: 1, + hideChildrenInMenu: true + }, + children: [ + { + path: '', + element: , + meta: { + title: '首页', + key: 'home', + icon: 'home', + orderNo: 1, + hideMenu: true + } + } + ] +} + +export default HomeRoute diff --git a/apps/admin/build/src/router/routes/images.tsx b/apps/admin/build/src/router/routes/images.tsx new file mode 100644 index 00000000..e41c795d --- /dev/null +++ b/apps/admin/build/src/router/routes/images.tsx @@ -0,0 +1,43 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// image module page +const ImageRoute: RouteObject = { + path: '/image', + element: , + meta: { + title: '图片处理', + icon: 'image', + orderNo: 4 + }, + children: [ + { + path: 'image-cropper', + element: LazyLoad(lazy(() => import('@/views/image/image-cropper'))), + meta: { + title: '图片裁剪', + key: 'imageCropper' + } + }, + { + path: 'image-compress', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '图片压缩', + key: 'imageCompress' + } + }, + { + path: 'image-composition', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '图片合成', + key: 'imageComposition' + } + } + ] +} + +export default ImageRoute diff --git a/apps/admin/build/src/router/routes/table.tsx b/apps/admin/build/src/router/routes/table.tsx new file mode 100644 index 00000000..a925331e --- /dev/null +++ b/apps/admin/build/src/router/routes/table.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// table module page +const TableRoute: RouteObject = { + path: '/table', + element: , + meta: { + title: '表格', + icon: 'table', + orderNo: 3 + }, + children: [ + { + path: 'table-basic', + element: LazyLoad(lazy(() => import('@/views/table/table-basic'))), + meta: { + title: '基础表格', + key: 'tableBasic' + } + }, + { + path: 'table-edit-row', + element: LazyLoad(lazy(() => import('@/views/table/table-edit-row'))), + meta: { + title: '可编辑行表格', + key: 'tableEditRow' + } + } + ] +} + +export default TableRoute diff --git a/apps/admin/build/src/router/routes/text-editor.tsx b/apps/admin/build/src/router/routes/text-editor.tsx new file mode 100644 index 00000000..0ac9ec13 --- /dev/null +++ b/apps/admin/build/src/router/routes/text-editor.tsx @@ -0,0 +1,43 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// text-editor module page +const TextEditorRoute: RouteObject = { + path: '/editor', + element: , + meta: { + title: '文本编辑器', + icon: 'editor', + orderNo: 7 + }, + children: [ + { + path: 'markdown', + element: LazyLoad(lazy(() => import('@/views/editor/markdown'))), + meta: { + title: 'Markdown编辑器', + key: 'markdown' + } + }, + { + path: 'rich-text', + element: LazyLoad(lazy(() => import('@/views/editor/rich-text'))), + meta: { + title: '富文本编辑器', + key: 'richText' + } + }, + { + path: 'code-editor', + element: LazyLoad(lazy(() => import('@/views/editor/code-mirror'))), + meta: { + title: '代码编辑器', + key: 'codeEditor' + } + } + ] +} + +export default TextEditorRoute diff --git a/apps/admin/build/src/router/routes/tree.tsx b/apps/admin/build/src/router/routes/tree.tsx new file mode 100644 index 00000000..3a6cf422 --- /dev/null +++ b/apps/admin/build/src/router/routes/tree.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// tree module page +const TreeRoute: RouteObject = { + path: '/tree', + element: , + meta: { + title: '树形结构', + icon: 'tree', + orderNo: 9 + }, + children: [ + { + path: 'org-tree', + element: LazyLoad(lazy(() => import('@/views/tree/org-tree'))), + meta: { + title: '组织树', + key: 'orgTree' + } + }, + { + path: 'antd-tree', + element: LazyLoad(lazy(() => import('@/views/tree/antd-tree'))), + meta: { + title: '控件树', + key: 'antdTree' + } + } + ] +} + +export default TreeRoute diff --git a/apps/admin/build/src/router/routes/video.tsx b/apps/admin/build/src/router/routes/video.tsx new file mode 100644 index 00000000..d2d78697 --- /dev/null +++ b/apps/admin/build/src/router/routes/video.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// video module page +const VideoRoute: RouteObject = { + path: '/video', + element: , + meta: { + title: '视频处理', + icon: 'video', + orderNo: 5 + }, + children: [ + { + path: 'video-player', + element: LazyLoad(lazy(() => import('@/views/video/video-player'))), + meta: { + title: '视频播放器', + key: 'videoPlayer' + } + }, + { + path: 'video-mark', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '视频水印', + key: 'videoMark' + } + } + ] +} + +export default VideoRoute diff --git a/apps/admin/build/src/router/types.ts b/apps/admin/build/src/router/types.ts new file mode 100644 index 00000000..90bfb8d7 --- /dev/null +++ b/apps/admin/build/src/router/types.ts @@ -0,0 +1,37 @@ +import { ReactNode } from 'react' +import { LoaderFunction } from 'react-router-dom' + +export interface MetaProps { + title: string + key?: string + icon?: string + affix?: boolean + keepAlive?: boolean + orderNo?: number + hideMenu?: boolean + hideChildrenInMenu?: boolean +} + +export interface RouteObject { + id?: string + loader?: LoaderFunction + element?: ReactNode + path?: string + fullPath?: string + children?: RouteObject[] + index?: false + meta?: MetaProps +} + +export interface AppMenu { + name: string + path: string + children?: AppMenu[] + disabled?: boolean + icon?: string + affix?: boolean + orderNo?: number + hideMenu?: boolean + hideChildrenInMenu?: boolean + hideBreadcrumb?: boolean +} diff --git a/apps/admin/build/src/settings/appBaseSetting.ts b/apps/admin/build/src/settings/appBaseSetting.ts new file mode 100644 index 00000000..e550ff45 --- /dev/null +++ b/apps/admin/build/src/settings/appBaseSetting.ts @@ -0,0 +1,78 @@ +import type { AppConfig } from '@/types/config' +import { MenuTypeEnum, MenuModeEnum, MenuFoldBtnEnum } from '@/enums/menuEnum' +import { ThemeEnum, PageTransitionEnum, PermissionModeEnum } from '@/enums/appEnum' +import { CacheTypeEnum } from '@/enums/cacheEnum' + +export const appSetting: AppConfig = { + // Theme color + themeColor: '#1890ff', + // Permission-related cache is stored in sessionStorage or localStorage + permissionCacheType: CacheTypeEnum.LOCAL, + // Header configuration + headerSetting: { + // Show breadCrumb + showBreadCrumb: true, + // Show tags + showTags: true, + // Show search + showSearch: true, + // Turn on full screen + showFullScreen: true, + // Show locale + showLocale: false, + // Show document button + showDoc: false, + // Show github button + showGithub: true + }, + // Menu configuration + menuSetting: { + // Menu type + menuType: MenuTypeEnum.SIDER_MENU, + // Menu mode + menuMode: MenuModeEnum.INLINE, + // Menu theme + menuTheme: ThemeEnum.DARK, + // Menu split + menuSplit: false, + // Menu can drag + menuCanDrag: false, + // Menu collapse + menuFold: false, + // Menu collapse type + menuFoldBtn: MenuFoldBtnEnum.HEADER, + // Whether to display the menu name when folding the menu + menuFoldShowTitle: false, + // Menu width + menuWidth: 210, + // Hydrid sider menu fixed + menuFixed: false, + // Hybrid mode sider menu hidden + menuHidden: false + }, + // Transition settings + transitionSetting: { + // Whether to open the top progress bar + openNProgress: false, + // Whether to open page switching loading + openPageLoading: false, + // Whether to open the page switching animation + openTransition: true, + // Page basic switching animation + basicTransition: PageTransitionEnum.FADE + }, + // Permission mode + permissionMode: PermissionModeEnum.MAPPING, + // Whether tags cached + tagsCached: false, + // Route keepAlive + openKeepAlive: true, + // Lock screen time + lockScreenTime: 0, + // Whether to show the global footer + showFooter: false, + // Whether to turn on the color weak mode + colorWeak: false, + // Whether to turn on the gray mode + grayMode: false +} diff --git a/apps/admin/build/src/settings/designSetting.ts b/apps/admin/build/src/settings/designSetting.ts new file mode 100644 index 00000000..009a8539 --- /dev/null +++ b/apps/admin/build/src/settings/designSetting.ts @@ -0,0 +1,40 @@ +import { AppModeEnum } from '@/enums/appEnum' + +// app mode +export const baseAppMode = AppModeEnum.LIGHT + +// app theme color +export const APP_THEME_COLOR_LIST = [ + { + name: '拂晓蓝', + color: '#1765AE' + }, + { + name: '薄暮', + color: '#A71A1F' + }, + { + name: '火山', + color: '#AE3E17' + }, + { + name: '日暮', + color: '#B8831B' + }, + { + name: '明青', + color: '#269491' + }, + { + name: '极光绿', + color: '#509827' + }, + { + name: '极客蓝', + color: '#20389A' + }, + { + name: '酱紫', + color: '#60339A' + } +] diff --git a/apps/admin/build/src/settings/encryptionSetting.ts b/apps/admin/build/src/settings/encryptionSetting.ts new file mode 100644 index 00000000..17459dc3 --- /dev/null +++ b/apps/admin/build/src/settings/encryptionSetting.ts @@ -0,0 +1,13 @@ +import { isDevMode } from '@/utils/env' + +// System default cache time, in seconds +export const DEFAULT_CACHE_TIME = 60 * 60 * 24 * 7 + +// aes encryption key +export const cacheCipher = { + key: '_11111000001111@', + iv: '@11111000001111_' +} + +// Whether the system cache is encrypted using aes +export const enableStorageEncryption = !isDevMode() diff --git a/apps/admin/build/src/settings/websiteSetting.ts b/apps/admin/build/src/settings/websiteSetting.ts new file mode 100644 index 00000000..16acc09f --- /dev/null +++ b/apps/admin/build/src/settings/websiteSetting.ts @@ -0,0 +1,151 @@ +// Github repo url +export const GITHUB_URL = 'https://github.com/baimingxuan/vue3-admin-design' + +// Form component +export const FORM_COMPO = { + name: 'Form表单', + url: 'https://www.antdv.com/components/form', + desc: 'ant-design-form: 使用 ant-design 的 form 组件, 可用以收集、校验和提交数据等操作。' +} + +// Form-create plugin +export const FORM_CREATE_DESIGNER = { + name: 'Form表单设计器', + url: 'https://github.com/xaboy/form-create-designer/tree/next', + desc: 'form-create-designer: 一个通过拖拽的方式快速创建表单的设计器组件, 能提高开发者对表单的开发效率, 节省开发者的时间。' +} + +// Table component +export const TABLE_COMPO = { + name: 'Table表格', + url: 'https://ant-design.antgroup.com/components/table', + desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行相关操作。' +} + +// Table edit component +export const TABLE_EDIT_COMPO = { + name: 'Table表格(可编辑行)', + url: 'https://ant-design.antgroup.com/components/table', + desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行行数据编辑操作。' +} + +// Tree component +export const TREE_COMPO = { + name: 'Tree树形控件', + url: 'https://ant-design.antgroup.com/components/tree', + desc: 'ant-design-tree: 基于Ant-Design的Tree组件, 可以完整展现其中的层级关系, 并具有展开收起选择等交互功能。' +} + +// Transfer component +export const TRANSFER_COMPO = { + name: 'Transfer穿梭框', + url: 'https://ant-design.antgroup.com/components/transfer', + desc: 'ant-design-transfer: 使用 ant-design 的 transfer 组件, 可用于对列表数据进行选中、取消等操作。' +} + +// Upload component +export const UPLOAD_COMPO = { + name: 'Upload图片上传组件', + url: 'https://antdv.com/components/upload', + desc: 'ant-design-upload: 使用 ant-design 的 upload 组件, 并具有多种列表展示方式。' +} + +// Video player plugin +export const VIDEO_PLUGIN = { + name: 'Video视频播放器', + url: 'https://github.com/video-react/video-react', + desc: 'Video-React: 一个使用 React 为 HTML5 构建的web视频播放器, 适用于目前主流网络视频的播放。' +} + +// Video resource src +export const VIDEO_RES_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/videos/houlang.mp4' + +// Xlsx plugin +export const XLSX_PLUGIN = { + name: 'JS-xlsx插件', + url: 'https://github.com/SheetJS/sheetjs', + desc: 'JS-xlsx: 由SheetJS出品的一款非常方便的只需要纯JS即可读取和导出excel的工具库, 功能强大, 支持xlsx、csv、txt等格式。' +} + +// React-Sortable plugin +export const SORTABLE_PLUGIN = { + name: 'Sortable拖拽列表', + url: 'https://github.com/SortableJS/react-sortablejs', + desc: 'ReactSortable: 基于Sortable.js的react组件, 用以实现拖拽功能。' +} + +// React-Rnd plugin +export const REACT_RND_PLUGIN = { + name: 'React-Rnd拖拽组件', + url: 'https://github.com/bokuweb/react-rnd', + desc: 'React-Rnd: 一款可调整大小和可拖拽的React组件。' +} + +// React-cropper plugin +export const REACT_CROPPER_PLUGIN = { + name: 'React-Cropper图片裁剪', + url: 'https://github.com/react-cropper/react-cropper', + desc: 'react-cropper: 一个优雅的图片裁剪插件, 可实现图片裁剪、图片生成等功能, 并支持生成png、jpeg、webp等图片格式。' +} + +// Image-composition component +export const IMAGE_COMPOSITION = { + name: 'Image图片合成', + url: 'https://github.com/xyxiao001/vue-cropper', + desc: '图片合成: 基于VueDRR拖拽功能, 在其上通过叠加图片、文字等, 实现图片的叠加伪合成功能。' +} + +// Cropper image src +export const CROPPER_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img02.jpg' + +// Compress image src +export const COMPRESS_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg' + +// Image-compress component +export const IMAGE_COMPRESS = { + name: 'Image图片压缩', + url: 'https://github.com/baimingxuan/vue3-admin-design/blob/main/src/views/image/image-compress.tsx', + desc: 'ImageCompress: 纯JS实现对图片的等比压缩和放大的功能, 并能对图片进行下载。' +} + +// Count-to plugin +export const COUNTUP_PLUGIN = { + name: 'CountUp数字滚动', + url: 'https://github.com/glennreyes/react-countup', + desc: 'React-CountUp: 一个无依赖、轻量级的react数字滚动插件, 以更有趣的方式显示数字数据。' +} + +// React-CodeMirror plugin +export const CODEMIRROR_PLUGIN = { + name: 'CodeMirror代码编辑器', + url: 'https://github.com/uiwjs/react-codemirror', + desc: 'React-CodeMirror: 是一款基于 react 的代码编辑器, 可支持html、javascript、typescript等。' +} + +// Antv-g6 plugin +export const ANTV_G6_PLUGIN = { + name: 'AntV-G6流程图', + url: 'https://github.com/antvis/g6', + desc: 'antv-g6: 一个图可视化引擎。它提供了图的绘制、布局、分析、交互、动画等图可视化的基础能力。' +} + +// ReactTreeOrg plugin +export const React_TREE_ORG_PLUGIN = { + name: 'Tree-Org树状组织图', + url: 'https://github.com/artdong/react-org-tree', + desc: 'react-tree-org: 基于 react 的树结构组织图, 可用于公司组织架构展示。' +} + +// WangEditor plugin +export const WANG_EDITOR_PLUGIN = { + name: '富文本编辑器', + url: 'https://github.com/wangeditor-team/wangEditor', + desc: 'wangEditor: 基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费。' +} + +// React-Markdown-Editor plugin +export const MARKDOWN_EDITOR_PLUGIN = { + name: 'Markdown编辑器', + url: 'https://github.com/uiwjs/react-md-editor', + desc: 'React-Md-Editor: 是一款基于 react 的 Markdown 编辑器,比较适合博客系统。' +} \ No newline at end of file diff --git a/apps/admin/build/src/stores/index.ts b/apps/admin/build/src/stores/index.ts new file mode 100644 index 00000000..422b570a --- /dev/null +++ b/apps/admin/build/src/stores/index.ts @@ -0,0 +1,37 @@ +import type { Store } from 'redux' +import { configureStore, ThunkAction, Action } from '@reduxjs/toolkit' +import { useDispatch, useSelector, TypedUseSelectorHook } from 'react-redux' +import { persistStore, persistReducer } from 'redux-persist' +import storage from 'redux-persist/lib/storage' +import appSlice from './modules/app' +import menuSlice from './modules/menu' +import tagsSlice from './modules/tags' +import userSlice from './modules/user' + +const persistConfig = { + key: 'redux-persist', + storage +} + +export const store: Store = configureStore({ + reducer: { + app: persistReducer(persistConfig, appSlice), + menu: persistReducer(persistConfig, menuSlice), + tags: persistReducer(persistConfig, tagsSlice), + user: persistReducer(persistConfig, userSlice) + }, + middleware: getDefaultMiddleware => + getDefaultMiddleware({ + serializableCheck: false + }), + devTools: true +}) + +export const persistor = persistStore(store) + +export type RootState = ReturnType +export type AppDispatch = typeof store.dispatch +export type AppThunk = ThunkAction> + +export const useAppDispatch: () => AppDispatch = useDispatch +export const useAppSelector: TypedUseSelectorHook = useSelector diff --git a/apps/admin/build/src/stores/modules/app.ts b/apps/admin/build/src/stores/modules/app.ts new file mode 100644 index 00000000..6eebee44 --- /dev/null +++ b/apps/admin/build/src/stores/modules/app.ts @@ -0,0 +1,38 @@ +import { createSlice } from '@reduxjs/toolkit' +import { AppState } from '../types' +import { Persistent } from '@/utils/cache/persistent' +import { APP_CONFIG_KEY } from '@/enums/cacheEnum' +import { deepMerge } from '@/utils' + +const initialState: AppState = { + appMode: undefined, + themeMode: undefined, + appConfig: Persistent.getLocal(APP_CONFIG_KEY) +} + +const app = createSlice({ + name: 'app', + initialState, + reducers: { + setAppMode: (state, action) => { + state.appMode = action.payload + }, + setThemeMode: (state, action) => { + state.themeMode = action.payload + }, + setAppConfig: (state, action) => { + state.appConfig = deepMerge(state.appConfig || {}, action.payload) + Persistent.setLocal(APP_CONFIG_KEY, state.appConfig, true) + }, + resetState(state) { + state.appMode = undefined + state.themeMode = undefined + state.appConfig = null + Persistent.clearAll() + } + } +}) + +export const { setAppMode, setThemeMode, setAppConfig, resetState } = app.actions + +export default app.reducer diff --git a/apps/admin/build/src/stores/modules/menu.ts b/apps/admin/build/src/stores/modules/menu.ts new file mode 100644 index 00000000..b37e0cc3 --- /dev/null +++ b/apps/admin/build/src/stores/modules/menu.ts @@ -0,0 +1,24 @@ +import { createSlice } from '@reduxjs/toolkit' +import { MenuState } from '@/stores/types' + +const initialState: MenuState = { + menuList: [], + isCollapse: false +} + +const menu = createSlice({ + name: 'menu', + initialState, + reducers: { + setMenuList: (state, action) => { + state.menuList = action.payload + }, + updateCollapse: (state, action) => { + state.isCollapse = action.payload + } + } +}) + +export const { setMenuList, updateCollapse } = menu.actions + +export default menu.reducer diff --git a/apps/admin/build/src/stores/modules/tags.ts b/apps/admin/build/src/stores/modules/tags.ts new file mode 100644 index 00000000..980adb97 --- /dev/null +++ b/apps/admin/build/src/stores/modules/tags.ts @@ -0,0 +1,76 @@ +// import type { PayloadAction } from '@reduxjs/toolkit' +import type { RouteObject } from '@/router/types' +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit' +import { TagsState } from '@/stores/types' +import { RootState, AppDispatch } from '..' + +const initialState: TagsState = { + visitedTags: [], + cachedTags: [] +} + +const createAppAsyncThunk = createAsyncThunk.withTypes<{ + state: RootState + dispatch: AppDispatch + rejectValue: string + extra: { s: string; n: number } +}>() + +const tags = createSlice({ + name: 'tags', + initialState, + reducers: { + addVisitedTags: (state, action) => { + const hasExistIndex = state.visitedTags.findIndex(tag => tag.path === action.payload.path) + if (hasExistIndex < 0) { + state.visitedTags.push(action.payload) + } else { + state.visitedTags[hasExistIndex] = Object.assign({}, state.visitedTags[hasExistIndex], action.payload) + } + }, + updateVisitedTags: (state, action) => { + state.visitedTags = action.payload + }, + closeTagsByType: (state, action) => { + let restTags: RouteObject[] = [] + const { type, path } = action.payload + const { visitedTags } = state + const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path) + const affixTags = visitedTags.filter((tag: any) => tag?.meta?.affix) + switch (type) { + case 'left': + restTags = visitedTags.slice(tagIndex) + break + case 'right': + restTags = visitedTags.slice(0, tagIndex + 1) + break + case 'other': + restTags = visitedTags.filter((tag: any) => tag.fullPath === path) + break + } + state.visitedTags = affixTags.concat(restTags.filter((tag: RouteObject) => !tag.meta?.affix)) + } + } +}) + +export const closeTagByKey = createAppAsyncThunk('tags/closeTagByKey', (path: string, { getState, dispatch }) => { + const { visitedTags } = getState().tags + const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path) + const restTags = visitedTags.filter((tag: any) => tag.fullPath !== path) + dispatch(updateVisitedTags(restTags)) + return Promise.resolve({ + tagIndex, + tagsList: restTags + }) +}) + +export const closeAllTags = createAppAsyncThunk('tags/closeAllTags', (_, { getState, dispatch }) => { + const { visitedTags } = getState().tags + const restTags = visitedTags.filter((tag: any) => tag?.meta?.affix) + dispatch(updateVisitedTags(restTags)) + return Promise.resolve(restTags) +}) + +export const { addVisitedTags, updateVisitedTags, closeTagsByType } = tags.actions + +export default tags.reducer diff --git a/apps/admin/build/src/stores/modules/user.ts b/apps/admin/build/src/stores/modules/user.ts new file mode 100644 index 00000000..c6b51741 --- /dev/null +++ b/apps/admin/build/src/stores/modules/user.ts @@ -0,0 +1,40 @@ +import type { UserState } from '@/stores/types' +import { createSlice } from '@reduxjs/toolkit' +import { TOKEN_KEY, USER_INFO_KEY } from '@/enums/cacheEnum' +import { setAuthCache } from '@/utils/auth' + +const initialState: UserState = { + userInfo: null, + token: undefined, + sessionTimeout: false, + lastUpdateTime: 0 +} + +const user = createSlice({ + name: 'user', + initialState, + reducers: { + setToken: (state, action) => { + state.token = action.payload ? action.payload : '' + setAuthCache(TOKEN_KEY, action.payload) + }, + setUserInfo: (state, action) => { + state.userInfo = action.payload + state.lastUpdateTime = new Date().getTime() + setAuthCache(USER_INFO_KEY, action.payload) + }, + setSessionTimeout: (state, action) => { + state.sessionTimeout = action.payload + }, + resetState(state) { + state.userInfo = null + state.token = undefined + state.sessionTimeout = false + state.lastUpdateTime = 0 + } + } +}) + +export const { setToken, setUserInfo, setSessionTimeout, resetState } = user.actions + +export default user.reducer diff --git a/apps/admin/build/src/stores/types.ts b/apps/admin/build/src/stores/types.ts new file mode 100644 index 00000000..19ffacab --- /dev/null +++ b/apps/admin/build/src/stores/types.ts @@ -0,0 +1,47 @@ +import { AppConfig } from '@/types/config' +import { AppModeEnum, ThemeEnum } from '@/enums/appEnum' +import { RouteObject } from '@/router/types' + +export interface UserInfo { + userId: string | number + username: string + realName: string + avatar: string + token: string + desc?: string + homePath?: string +} + +export interface UserState { + userInfo: Nullable + token?: string + sessionTimeout?: boolean + lastUpdateTime: number +} + +export interface MenuOptions { + path: string + title: string + icon?: string + isLink?: string + close?: boolean + children?: MenuOptions[] +} + +export interface MenuState { + menuList: MenuOptions[] + isCollapse: boolean +} + +export interface TagsState { + visitedTags: RouteObject[] + cachedTags: string[] +} + +export interface AppState { + appMode?: AppModeEnum + + themeMode?: ThemeEnum + + appConfig: AppConfig | null +} diff --git a/apps/admin/build/src/types/config.ts b/apps/admin/build/src/types/config.ts new file mode 100644 index 00000000..44cf4b92 --- /dev/null +++ b/apps/admin/build/src/types/config.ts @@ -0,0 +1,84 @@ +import { MenuModeEnum, MenuTypeEnum, MenuFoldBtnEnum } from '../enums/menuEnum' +import { PageTransitionEnum, ThemeEnum } from '../enums/appEnum' +import { PermissionModeEnum } from '../enums/appEnum' +import { CacheTypeEnum } from '../enums/cacheEnum' + +export interface AppConfig { + // Theme color + themeColor: string + // Storage location of permission related information + permissionCacheType: CacheTypeEnum + // Header setting + headerSetting: HeaderSetting + // Menu setting + menuSetting: MenuSetting + // Transition setting + transitionSetting: TransitionSetting + // Permission mode + permissionMode: PermissionModeEnum + // Whether tags cached + tagsCached: boolean + // Route keepAlive + openKeepAlive: boolean + // Lock screen time + lockScreenTime: number + // Whether to show the global footer + showFooter: boolean + // Whether to turn on the color weak mode + colorWeak: boolean + // Whether to turn on the gray mode + grayMode: boolean +} + +export interface HeaderSetting { + // Show breadCrumb + showBreadCrumb: boolean + // Show tags + showTags: boolean + // Show search + showSearch: boolean + // Turn on full screen + showFullScreen: boolean + // Show locale + showLocale: boolean + // Show document button + showDoc: boolean + // Show github button + showGithub: boolean +} + +export interface MenuSetting { + // Menu type + menuType: MenuTypeEnum + // Menu mode + menuMode: MenuModeEnum + // Menu theme + menuTheme: ThemeEnum + // Menu split + menuSplit: boolean + // Menu can drag + menuCanDrag: boolean + // Menu collapse + menuFold: boolean + // Menu collapse type + menuFoldBtn: MenuFoldBtnEnum + // Whether to display the menu name when folding the menu + menuFoldShowTitle: boolean + // Menu width + menuWidth: number, + // Hydrid mode sider menu fixed + menuFixed: boolean, + // Hybrid mode sider menu hidden + menuHidden: boolean +} + +export interface TransitionSetting { + // Whether to open the top progress bar + openNProgress: boolean + // Whether to open page switching loading + openPageLoading: boolean + // Whether to open the page switching animation + openTransition: boolean + // Page basic switching animation + basicTransition: PageTransitionEnum +} \ No newline at end of file diff --git a/apps/admin/build/src/types/index.ts b/apps/admin/build/src/types/index.ts new file mode 100644 index 00000000..40d21287 --- /dev/null +++ b/apps/admin/build/src/types/index.ts @@ -0,0 +1,18 @@ +export interface LoginParams { + username: string + password: string +} + +export interface UserInfo { + userId: string | number + username: string + realName: string + avatar: string + token: string + desc?: string + homePath?: string +} + +export type ThemeMode = 'dark' | 'light' + +export type LocaleType = 'zh_CN' | 'en' diff --git a/apps/admin/build/src/utils/auth.ts b/apps/admin/build/src/utils/auth.ts new file mode 100644 index 00000000..d8f6289c --- /dev/null +++ b/apps/admin/build/src/utils/auth.ts @@ -0,0 +1,25 @@ +import { Persistent, BasicKeys } from './cache/persistent' +import { appSetting } from '@/settings/appBaseSetting' +import { TOKEN_KEY, CacheTypeEnum } from '@/enums/cacheEnum' + +const { permissionCacheType } = appSetting +const isLocal = permissionCacheType === CacheTypeEnum.LOCAL + +export function getToken() { + return getAuthCache(TOKEN_KEY) +} + +export function getAuthCache(key: BasicKeys) { + const fn = isLocal ? Persistent.getLocal : Persistent.getSession + return fn(key) as T +} + +export function setAuthCache(key: BasicKeys, value: any) { + const fn = isLocal ? Persistent.setLocal : Persistent.setSession + return fn(key, value, true) +} + +export function clearAuthCache(immediate = true) { + const fn = isLocal ? Persistent.clearLocal : Persistent.clearSession + return fn(immediate) +} diff --git a/apps/admin/build/src/utils/axios.ts b/apps/admin/build/src/utils/axios.ts new file mode 100644 index 00000000..63df5f86 --- /dev/null +++ b/apps/admin/build/src/utils/axios.ts @@ -0,0 +1,45 @@ +import type { InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios' +import axios from 'axios' +import { message } from 'antd' +import { getToken, clearAuthCache } from '@/utils/auth' + +// Create axios instance +const service = axios.create({ + baseURL: '/api', + timeout: 10 * 1000 +}) + +// Handle Error +const handleError = (error: AxiosError): Promise => { + if (error.response?.status === 401 || error.response?.status === 504) { + clearAuthCache() + location.href = '/login' + } + message.error(error.message || 'error') + return Promise.reject(error) +} + +// Request interceptors configuration +service.interceptors.request.use((config: InternalAxiosRequestConfig) => { + const token = getToken() + if (token) { + ;(config as Recordable).headers['Authorization'] = `${token}` + } + ;(config as Recordable).headers['Content-Type'] = 'application/json' + return config +}, handleError) + +// Respose interceptors configuration +service.interceptors.response.use((response: AxiosResponse) => { + const data = response.data + + if (data.code === 0) { + return data.data + } else { + message.error(data.message) + + return Promise.reject('error') + } +}, handleError) + +export { service } diff --git a/apps/admin/build/src/utils/cache/index.ts b/apps/admin/build/src/utils/cache/index.ts new file mode 100644 index 00000000..f51abc33 --- /dev/null +++ b/apps/admin/build/src/utils/cache/index.ts @@ -0,0 +1,30 @@ +import { createStorage as create, CreateStorageParams } from './storageCache' +import { enableStorageEncryption, DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting' + +type Options = Partial + +const createOptions = (storage: Storage, options: Options = {}): Options => { + return { + // No encryption in debug mode + hasEncrypt: enableStorageEncryption, + storage, + prefixKey: 'react-admin-design__', + ...options + } +} + +const WebStorage = create(createOptions(sessionStorage)) + +export const createStorage = (storage: Storage = sessionStorage, options: Options = {}) => { + return create(createOptions(storage, options)) +} + +export const createSessionStorage = (options: Options = {}) => { + return createStorage(sessionStorage, { ...options, timeout: DEFAULT_CACHE_TIME }) +} + +export const createLocalStorage = (options: Options = {}) => { + return createStorage(localStorage, { ...options, timeout: DEFAULT_CACHE_TIME }) +} + +export default WebStorage diff --git a/apps/admin/build/src/utils/cache/memory.ts b/apps/admin/build/src/utils/cache/memory.ts new file mode 100644 index 00000000..d3c9a617 --- /dev/null +++ b/apps/admin/build/src/utils/cache/memory.ts @@ -0,0 +1,88 @@ +export interface Cache { + value?: V + timeoutId?: ReturnType + time?: number + alive?: number +} + +export class Memory { + private cache: { [key in keyof T]?: Cache } = {} + private alive: number + + constructor(alive = 0) { + this.alive = alive * 1000 + } + + get getCache() { + return this.cache + } + + get(key: K) { + return this.cache[key] + } + + set(key: K, value: V, expires?: number) { + let item = this.get(key) + + if (!expires || (expires as number) <= 0) { + expires = this.alive + } + if (item) { + if (item.timeoutId) { + clearTimeout(item.timeoutId) + item.timeoutId = undefined + } + item.value = value + } else { + item = { value, alive: expires } + this.cache[key] = item + } + + if (!expires) { + return value + } + + const now = new Date().getTime() + item.time = now + this.alive + item.timeoutId = setTimeout( + () => { + this.remove(key) + }, + expires > now ? expires - now : expires + ) + + return value + } + + remove(key: K) { + const item = this.get(key) + Reflect.deleteProperty(this.cache, key) + if (item) { + clearTimeout(item.timeoutId!) + return item.value + } + } + + resetCache(cache: { [K in keyof T]: Cache }) { + Object.keys(cache).forEach(key => { + const k = key as any as keyof T + const item = cache[k] + if (item && item.time) { + const now = new Date().getTime() + const expire = item.time + if (expire > now) { + this.set(k, item.value, expire) + } + } + }) + } + + clear() { + Object.keys(this.cache).forEach(key => { + // @ts-ignore + const item = this.cache[key] + item.timeoutId && clearTimeout(item.timeoutId) + }) + this.cache = {} + } +} diff --git a/apps/admin/build/src/utils/cache/persistent.ts b/apps/admin/build/src/utils/cache/persistent.ts new file mode 100644 index 00000000..7ab77b4e --- /dev/null +++ b/apps/admin/build/src/utils/cache/persistent.ts @@ -0,0 +1,113 @@ +import type { RouteObject } from '@/router/types' + +import { Memory } from './memory' +import { AppConfig } from '@/types/config' +import { + TOKEN_KEY, + USER_INFO_KEY, + APP_CONFIG_KEY, + APP_TAGS_KEY, + APP_LOCAL_CACHE_KEY, + APP_SESSION_CACHE_KEY +} from '@/enums/cacheEnum' +import { createLocalStorage, createSessionStorage } from '@/utils/cache' +import { DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting' +import { UserInfo } from '@/types' + +interface BasicStore { + [TOKEN_KEY]: string | number | null | undefined + [USER_INFO_KEY]: UserInfo + [APP_CONFIG_KEY]: AppConfig + [APP_TAGS_KEY]: RouteObject[] +} + +type LocalStore = BasicStore +type SessionStore = BasicStore + +export type BasicKeys = keyof BasicStore +type LocalKeys = keyof LocalStore +type SessionKeys = keyof SessionStore + +const ls = createLocalStorage() +const ss = createSessionStorage() + +const localMemory = new Memory(DEFAULT_CACHE_TIME) +const sessionMemory = new Memory(DEFAULT_CACHE_TIME) + +function initPersistentMemory() { + const localCache = ls.get(APP_LOCAL_CACHE_KEY) + const sessionCache = ss.get(APP_SESSION_CACHE_KEY) + localCache && localMemory.resetCache(localCache) + sessionCache && sessionMemory.resetCache(sessionCache) +} + +export class Persistent { + static getLocal(key: LocalKeys) { + return localMemory.get(key)?.value as Nullable + } + + static setLocal(key: LocalKeys, value: LocalStore[LocalKeys], immediate = false): void { + localMemory.set(key, value) + immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache) + } + + static removeLocal(key: LocalKeys, immediate = false): void { + localMemory.remove(key) + immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache) + } + + static clearLocal(immediate = false): void { + localMemory.clear() + immediate && ls.clear() + } + + static getSession(key: SessionKeys) { + return sessionMemory.get(key)?.value as Nullable + } + + static setSession(key: SessionKeys, value: SessionStore[SessionKeys], immediate = false): void { + sessionMemory.set(key, value) + immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache) + } + + static removeSession(key: SessionKeys, immediate = false): void { + sessionMemory.remove(key) + immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache) + } + + static clearSession(immediate = false): void { + sessionMemory.clear() + immediate && ss.clear() + } + + static clearAll(immediate = false) { + sessionMemory.clear() + localMemory.clear() + if (immediate) { + ls.clear() + ss.clear() + } + } +} + +function storageChange(e: any) { + const { key, newValue, oldValue } = e + + if (!key) { + Persistent.clearAll() + return + } + + if (!!newValue && !!oldValue) { + if (APP_LOCAL_CACHE_KEY === key) { + Persistent.clearLocal() + } + if (APP_SESSION_CACHE_KEY === key) { + Persistent.clearSession() + } + } +} + +window.addEventListener('storage', storageChange) + +initPersistentMemory() diff --git a/apps/admin/build/src/utils/cache/storageCache.ts b/apps/admin/build/src/utils/cache/storageCache.ts new file mode 100644 index 00000000..d07629fa --- /dev/null +++ b/apps/admin/build/src/utils/cache/storageCache.ts @@ -0,0 +1,110 @@ +import type { EncryptParams } from '../cipher' +import { cacheCipher } from '@/settings/encryptionSetting' +import { AesEncrypt } from '../cipher' +import { isNullOrUnDef } from '../is' + +export interface CreateStorageParams extends EncryptParams { + prefixKey: string + storage: Storage + hasEncrypt: boolean + timeout?: Nullable +} + +export const createStorage = ({ + prefixKey = '', + storage = sessionStorage, + hasEncrypt = true, + key = cacheCipher.key, + iv = cacheCipher.iv, + timeout = null +}: Partial = {}) => { + if (hasEncrypt && [key.length, iv.length].some(item => item !== 16)) { + throw new Error('When hasEncrypt is true, the key or iv must be 16 bits!') + } + + const encrypt = new AesEncrypt({ key, iv }) + + /** + * Cache class + * Construction parameters can be passed into sessionStorage, localStorage + * @class Cache + * @example + */ + const WebStorage = class WebStorage { + private storage: Storage + private prefixKey?: string + private encrypt: AesEncrypt + private hasEncrypt: boolean + + constructor() { + this.storage = storage + this.prefixKey = prefixKey + this.encrypt = encrypt + this.hasEncrypt = hasEncrypt + } + + private getKey(key: string) { + return `${this.prefixKey}${key}`.toUpperCase() + } + + /** + * Set cache + * @param {string} key + * @param {*} value + * @param {*} expire Expiration time in seconds + * @memberof Cache + */ + set(key: string, value: any, expire: number | null = timeout) { + const stringData = JSON.stringify({ + value, + time: Date.now(), + expire: !isNullOrUnDef(expire) ? new Date().getTime() + expire * 1000 : null + }) + const stringifyValue = this.hasEncrypt + ? this.encrypt.encryptByAES(stringData) + : stringData + this.storage.setItem(this.getKey(key), stringifyValue) + } + + /** + * Read cache + * @param {string} key + * @param {*} def + * @memberof Cache + */ + get(key: string, def: any = null): any { + const val = this.storage.getItem(this.getKey(key)) + if (!val) return def + + try { + const decVal = this.hasEncrypt ? this.encrypt.decryptByAES(val) : val + const data = JSON.parse(decVal) + const { value, expire } = data + if (isNullOrUnDef(expire) || expire >= new Date().getTime()) { + return value + } + this.remove(key) + } catch (e) { + return def + } + } + + /** + * Delete cache based on key + * @param {string} key + * @memberof Cache + */ + remove(key: string) { + this.storage.removeItem(this.getKey(key)) + } + + /** + * Delete all caches of this instance + */ + clear(): void { + this.storage.clear() + } + } + + return new WebStorage() +} \ No newline at end of file diff --git a/apps/admin/build/src/utils/cipher.ts b/apps/admin/build/src/utils/cipher.ts new file mode 100644 index 00000000..ae3c49cd --- /dev/null +++ b/apps/admin/build/src/utils/cipher.ts @@ -0,0 +1,41 @@ +import { encrypt, decrypt } from 'crypto-js/aes' +import { parse } from 'crypto-js/enc-utf8' +import UTF8 from 'crypto-js/enc-utf8' +import PKCS7 from 'crypto-js/pad-pkcs7' +import ECB from 'crypto-js/mode-ecb' + +export interface EncryptParams { + key: string + iv: string +} + +export class AesEncrypt { + private key + private iv + + constructor(opt: Partial = {}) { + const { key, iv } = opt + if (key) { + this.key = parse(key) + } + if (iv) { + this.iv = parse(iv) + } + } + + get getOptions() { + return { + mode: ECB, + padding: PKCS7, + iv: this.iv + }; + } + + encryptByAES(cipherText: string) { + return encrypt(cipherText, this.key!, this.getOptions).toString() + } + + decryptByAES(cipherText: string) { + return decrypt(cipherText, this.key!, this.getOptions).toString(UTF8) + } +} \ No newline at end of file diff --git a/apps/admin/build/src/utils/download.ts b/apps/admin/build/src/utils/download.ts new file mode 100644 index 00000000..f65466a7 --- /dev/null +++ b/apps/admin/build/src/utils/download.ts @@ -0,0 +1,111 @@ +import { openWindow } from '.' +import { base64toBlob, urlToBase64 } from './image' + +/** + * Download image by url + * @param url + * @param filename + * @param mineType + * @param bom + */ +export function downloadImgByUrl( + url: string, + filename: string, + mineType?: string, + bom?: BlobPart +) { + urlToBase64(url).then((base64) => { + downloadImgByBase64(base64, filename, mineType, bom) + }) +} + +/** + * Download image based on base64 + * @param buf + * @param filename + * @param mineType + * @param bom + */ +export function downloadImgByBase64( + buf: string, + filename: string, + mineType?: string, + bom?: BlobPart +) { + const base64Buf = base64toBlob(buf) + downloadByData(base64Buf, filename, mineType, bom) +} + +/** + * Download by the back-end interface file stream + * @param {*} data + * @param {*} filename + * @param {*} mineType + * @param {*} bom + */ +export function downloadByData( + data: BlobPart, + filename: string, + mineType?: string, + bom?: BlobPart +) { + const blobData = typeof bom !== 'undefined' ? [bom, data] : [data] + const blob = new Blob(blobData, { type: mineType || 'application/octet-stream' }) + + const blobURL = window.URL.createObjectURL(blob) + const tempLink = document.createElement('a') + tempLink.style.display = 'none' + tempLink.href = blobURL + tempLink.setAttribute('download', filename) + if (typeof tempLink.download === 'undefined') { + tempLink.setAttribute('target', '_blank') + } + document.body.appendChild(tempLink) + tempLink.click() + document.body.removeChild(tempLink) + window.URL.revokeObjectURL(blobURL) +} + +/** + * Download file by url + * @param {*} sUrl + */ +export function downloadByUrl({ + url, + target = '_blank', + fileName +}: { + url: string + target?: TargetContext + fileName?: string +}): boolean { + const isChrome = window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1 + const isSafari = window.navigator.userAgent.toLowerCase().indexOf('safari') > -1 + + if (/(iP)/g.test(window.navigator.userAgent)) { + console.error('Your browser does not support download!') + return false + } + if (isChrome || isSafari) { + const link = document.createElement('a') + link.href = url + link.target = target + + if (link.download !== undefined) { + link.download = fileName || url.substring(url.lastIndexOf('/') + 1, url.length) + } + + if (document.createEvent) { + const e = document.createEvent('MouseEvents') + e.initEvent('click', true, true) + link.dispatchEvent(e) + return true + } + } + if (url.indexOf('?') === -1) { + url += '?download' + } + + openWindow(url, { target }) + return true +} \ No newline at end of file diff --git a/apps/admin/build/src/utils/echarts.ts b/apps/admin/build/src/utils/echarts.ts new file mode 100644 index 00000000..d0564593 --- /dev/null +++ b/apps/admin/build/src/utils/echarts.ts @@ -0,0 +1,54 @@ +import * as echarts from 'echarts/core' +import { SVGRenderer } from 'echarts/renderers' + +import { + BarChart, + LineChart, + PieChart, + MapChart, + PictorialBarChart, + RadarChart +} from 'echarts/charts' + +import { + TitleComponent, + TooltipComponent, + GridComponent, + PolarComponent, + AriaComponent, + ParallelComponent, + LegendComponent, + RadarComponent, + ToolboxComponent, + DataZoomComponent, + VisualMapComponent, + TimelineComponent, + CalendarComponent, + GraphicComponent +} from 'echarts/components' + +echarts.use([ + LegendComponent, + TitleComponent, + TooltipComponent, + GridComponent, + PolarComponent, + AriaComponent, + ParallelComponent, + BarChart, + LineChart, + PieChart, + MapChart, + RadarChart, + SVGRenderer, + PictorialBarChart, + RadarComponent, + ToolboxComponent, + DataZoomComponent, + VisualMapComponent, + TimelineComponent, + CalendarComponent, + GraphicComponent +]) + +export default echarts \ No newline at end of file diff --git a/apps/admin/build/src/utils/env.ts b/apps/admin/build/src/utils/env.ts new file mode 100644 index 00000000..7c91d053 --- /dev/null +++ b/apps/admin/build/src/utils/env.ts @@ -0,0 +1,15 @@ + // Get environment variables + export function getEnv(): string { + return import.meta.env.MODE + } + + // It is a development mode + export function isDevMode(): boolean { + return import.meta.env.DEV + } + + // It is a production mode + export function isProdMode(): boolean { + return import.meta.env.PROD + } + \ No newline at end of file diff --git a/apps/admin/build/src/utils/helper/menuHelper.ts b/apps/admin/build/src/utils/helper/menuHelper.ts new file mode 100644 index 00000000..c8e9b07c --- /dev/null +++ b/apps/admin/build/src/utils/helper/menuHelper.ts @@ -0,0 +1,16 @@ +/** + * @description Get expand subMenu + * @param {String} path Current route path + * @returns subMenu array + */ +export const getOpenKeys = (path: string) => { + let pathStr: string = '' + const openKeys: string[] = [] + path.split('/').forEach(key => { + if (key) { + pathStr += '/' + key + openKeys.push(pathStr) + } + }) + return openKeys.slice(0, -1) +} \ No newline at end of file diff --git a/apps/admin/build/src/utils/helper/treeHelper.ts b/apps/admin/build/src/utils/helper/treeHelper.ts new file mode 100644 index 00000000..b5ca16c2 --- /dev/null +++ b/apps/admin/build/src/utils/helper/treeHelper.ts @@ -0,0 +1,182 @@ +interface TreeHelperConfig { + id: string + children: string + pid: string +} + +const DEFAULT_CONFIG: TreeHelperConfig = { + id: 'id', + children: 'children', + pid: 'pid' +} + +const getConfig = (config: Partial) => Object.assign({}, DEFAULT_CONFIG, config) + +// tree from list +export function listToTree(list: any[], config: Partial = {}): T[] { + const conf = getConfig(config) as TreeHelperConfig + const nodeMap = new Map() + const result: T[] = [] + const { id, children, pid } = conf + + for (const node of list) { + node[children] = node[children] || [] + nodeMap.set(node[id], node) + } + for (const node of list) { + const parent = nodeMap.get(node[pid]) + ;(parent ? parent[children] : result).push(node) + } + return result +} + +export function treeToList(tree: any, config: Partial = {}): T { + config = getConfig(config) + const { children } = config + const result: any = [...tree] + for (let i = 0; i < result.length; i++) { + if (!result[i][children!]) continue + result.splice(i + 1, 0, ...result[i][children!]) + } + return result +} + +export function findNode(tree: any, func: Fn, config: Partial = {}): T | null { + config = getConfig(config) + const { children } = config + const list = [...tree] + for (const node of list) { + if (func(node)) return node + node[children!] && list.push(...node[children!]) + } + return null +} + +export function findNodeAll(tree: any, func: Fn, config: Partial = {}): T[] { + config = getConfig(config) + const { children } = config + const list = [...tree] + const result: T[] = [] + for (const node of list) { + func(node) && result.push(node) + node[children!] && list.push(...node[children!]) + } + return result +} + +export function findPath(tree: any, func: Fn, config: Partial = {}): T | T[] | null { + config = getConfig(config) + const path: T[] = [] + const list = [...tree] + const visitedSet = new Set() + const { children } = config + while (list.length) { + const node = list[0] + if (visitedSet.has(node)) { + path.pop() + list.shift() + } else { + visitedSet.add(node) + node[children!] && list.unshift(...node[children!]) + path.push(node) + if (func(node)) { + return path + } + } + } + return null +} + +export function findPathAll(tree: any, func: Fn, config: Partial = {}) { + config = getConfig(config) + const path: any[] = [] + const list = [...tree] + const result: any[] = [] + const visitedSet = new Set(), + { children } = config + while (list.length) { + const node = list[0] + if (visitedSet.has(node)) { + path.pop() + list.shift() + } else { + visitedSet.add(node) + node[children!] && list.unshift(...node[children!]) + path.push(node) + func(node) && result.push([...path]) + } + } + return result +} + +export function filter(tree: T[], func: (n: T) => boolean, config: Partial = {}): T[] { + config = getConfig(config) + const children = config.children as string + function listFilter(list: T[]) { + return list + .map((node: any) => ({ ...node })) + .filter(node => { + node[children] = node[children] && listFilter(node[children]) + return func(node) || (node[children] && node[children].length) + }) + } + return listFilter(tree) +} + +export function forEach(tree: T[], func: (n: T) => any, config: Partial = {}): void { + config = getConfig(config) + const list: any[] = [...tree] + const { children } = config + for (let i = 0; i < list.length; i++) { + //func 返回true就终止遍历,避免大量节点场景下无意义循环,引起浏览器卡顿 + if (func(list[i])) { + return + } + children && list[i][children] && list.splice(i + 1, 0, ...list[i][children]) + } +} + +/** + * @description: Extract tree specified structure + */ +export function treeMap(treeData: T[], opt: { children?: string; conversion: Fn }): T[] { + return treeData.map(item => treeMapEach(item, opt)) +} + +/** + * @description: Extract tree specified structure + */ +export function treeMapEach(data: any, { children = 'children', conversion }: { children?: string; conversion: Fn }) { + const haveChildren = Array.isArray(data[children]) && data[children].length > 0 + const conversionData = conversion(data) || {} + if (haveChildren) { + return { + ...conversionData, + [children]: data[children].map((i: number) => + treeMapEach(i, { + children, + conversion + }) + ) + } + } else { + return { + ...conversionData + } + } +} + +/** + * 递归遍历树结构 + * @param treeDatas 树 + * @param callBack 回调 + * @param parentNode 父节点 + */ +export function eachTree(treeDatas: any[], callBack: Fn, parentNode = {}) { + treeDatas.forEach(element => { + const newNode = callBack(element, parentNode) || element + if (element.children) { + eachTree(element.children, callBack, newNode) + } + }) +} diff --git a/apps/admin/build/src/utils/image.ts b/apps/admin/build/src/utils/image.ts new file mode 100644 index 00000000..d23b8fe4 --- /dev/null +++ b/apps/admin/build/src/utils/image.ts @@ -0,0 +1,44 @@ +/** + * Image base64 to Blob + * @param image + * @returns {Blob} + */ +export function base64toBlob(base64Buf: string): Blob { + const arr = base64Buf.split(',') + const typeItem = arr[0] + const mime = typeItem.match(/:(.*?);/)![1] + const bstr = window.atob(arr[1]) + let n = bstr.length + const u8arr = new Uint8Array(n) + while (n--) { + u8arr[n] = bstr.charCodeAt(n) + } + return new Blob([u8arr], { type: mime }) +} + +/** + * Image url to base64 + * @param url + * @param mineType + */ +export function urlToBase64(url: string, mineType?: string): Promise { + return new Promise((resolve, reject) => { + let canvas = document.createElement('CANVAS') as Nullable + const ctx = canvas!.getContext('2d') + + const img = new Image() + img.crossOrigin = '' + img.onload = function () { + if (!canvas || !ctx) { + return reject() + } + canvas.width = img.width + canvas.height = img.height + ctx.drawImage(img, 0, 0) + const dataURL = canvas.toDataURL(mineType || 'image/png') + canvas = null + resolve(dataURL) + } + img.src = url + }) +} \ No newline at end of file diff --git a/apps/admin/build/src/utils/index.ts b/apps/admin/build/src/utils/index.ts new file mode 100644 index 00000000..21a1c8ae --- /dev/null +++ b/apps/admin/build/src/utils/index.ts @@ -0,0 +1,44 @@ +import { isObject } from './is' + +export function openWindow( + url: string, + opt?: { + target?: TargetContext | string + noopener?: boolean + noreferrer?: boolean + } +) { + const { target = '__blank', noopener = true, noreferrer = true } = opt || {} + const feature: string[] = [] + + noopener && feature.push('noopener=yes') + noreferrer && feature.push('noreferrer=yes') + + window.open(url, target, feature.join(',')) +} + +export function promiseTimeout(ms: number, throwOnTimeout = false, reason = 'Timeout'): Promise { + return new Promise((resolve, reject) => { + if (throwOnTimeout) setTimeout(() => reject(reason), ms) + else setTimeout(resolve, ms) + }) +} + +export const searchRoute: any = (path: string, routes: any = []) => { + for (const item of routes) { + if (item.path === path || item.fullPath === path) return item + if (item.children) { + const result = searchRoute(path, item.children) + if (result) return result + } + } + return null +} + +export function deepMerge(src: any = {}, target: any = {}): T { + let key: string + for (key in target) { + src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key]) + } + return src +} diff --git a/apps/admin/build/src/utils/is.ts b/apps/admin/build/src/utils/is.ts new file mode 100644 index 00000000..2ff445e7 --- /dev/null +++ b/apps/admin/build/src/utils/is.ts @@ -0,0 +1,49 @@ +export function is(val: unknown, type: string) { + return Object.prototype.toString.call(val) === `[object ${type}]` +} + +export function isFunction(val: unknown): val is Function { + return typeof val === 'function' +} + +export function isArray(val: any): val is Array { + return val && Array.isArray(val) +} + +export function isObject(val: any): val is Record { + return val !== null && is(val, 'Object') +} + +export function isNumber(val: unknown): val is number { + return is(val, 'Number') +} + +export function isString(val: unknown): val is string { + return is(val, 'String') +} + +export function isDef(val?: T): val is T { + return typeof val !== 'undefined' +} + +export function isUnDef(val?: T): val is T { + return !isDef(val) +} + +export function isNull(val: unknown): val is null { + return val === null +} + +export function isNullOrUnDef(val: unknown): val is null | undefined { + return isUnDef(val) || isNull(val) +} + +export function isUrl(path: string): boolean { + const reg = + /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/; + return reg.test(path) +} + +export const isServer = typeof window === 'undefined' + +export const isClient = !isServer \ No newline at end of file diff --git a/apps/admin/build/src/views/blank.tsx b/apps/admin/build/src/views/blank.tsx new file mode 100644 index 00000000..42bddc96 --- /dev/null +++ b/apps/admin/build/src/views/blank.tsx @@ -0,0 +1,11 @@ +import { FC } from 'react' + +const BlankPage: FC = () => { + return ( +
+ 空页面 +
+ ) +} + +export default BlankPage diff --git a/apps/admin/build/src/views/compo/count-up.tsx b/apps/admin/build/src/views/compo/count-up.tsx new file mode 100644 index 00000000..850f7d92 --- /dev/null +++ b/apps/admin/build/src/views/compo/count-up.tsx @@ -0,0 +1,136 @@ +import React, { useRef, useState, useEffect } from 'react' +import { Row, Col, Card, Button, Form, Input, InputNumber, Space } from 'antd' +import { PageWrapper } from '@/components/Page' +import CountUp, { useCountUp } from 'react-countup' +import { COUNTUP_PLUGIN } from '@/settings/websiteSetting' + +const CountUpPage: React.FC = () => { + const [form] = Form.useForm() + const [formData, setFromData] = useState({ + start: 0, + end: 2020, + duration: 4, + decimals: 0, + separator: ',', + prefix: '¥ ', + suffix: ' rmb' + }) + + const countUpRef = useRef(null) + const { start, reset } = useCountUp({ + ref: countUpRef, + ...formData + }) + + useEffect(() => { + reset() + }, []) + + const onValuesChange = (values: any) => { + setFromData({...formData, ...values}) + } + + return ( + + + + + + + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+
+ ) +} + +export default CountUpPage \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/drag/drag-list.tsx b/apps/admin/build/src/views/compo/drag/drag-list.tsx new file mode 100644 index 00000000..ae45fa1c --- /dev/null +++ b/apps/admin/build/src/views/compo/drag/drag-list.tsx @@ -0,0 +1,110 @@ +import React, { useState } from 'react' +import { Row, Col, Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { cloneDeep } from 'lodash-es' +import { SORTABLE_PLUGIN } from '@/settings/websiteSetting' +import { ReactSortable } from 'react-sortablejs' + +interface ItemState { + id: number + name: string +} + +const DragList: React.FC = () => { + const [listOne, setListOne] = useState([ + { name: 'ECMAScript6', id: 1 }, + { name: 'VueJS', id: 2 }, + { name: 'ReactJS', id: 3 }, + { name: 'AngularJS', id: 4 }, + { name: 'Webpack', id: 5 } + ]) + const [listTwo, setListTwo] = useState([ + { name: 'NodeJS', id: 6 }, + { name: 'TypeScript', id: 7 } + ]) + + const [dragLogs, setDragLogs] = useState([ + '列表1 => 列表2, 6 => 1', + '列表1 => 列表2, 6 => 2' + ]) + + const handleDrop = (event: any) => { + const listMap = new Map([ + ['list1', '列表1'], + ['list2', '列表2'] + ]) + const fromClsName = event.from.className + const toClsName = event.to.className + const from = listMap.get(fromClsName) + const to = listMap.get(toClsName) + const newDrapLogs = cloneDeep(dragLogs) + newDrapLogs.push(`${from} => ${to}, ${event.oldIndex + 1} => ${event.newIndex + 1}`) + setDragLogs(newDrapLogs) + } + + return ( + + + + + + { + listOne.map(item => ( + + {item.name} + + )) + } + + + + + + + { + listTwo.map(item => ( + + {item.name} + + )) + } + + + + + + { dragLogs.map(item => { + return

{item}

+ }) } +
+ + + +
+              {JSON.stringify(listOne.map(({ name, id }) => ({ name, id })), null, 2)}
+            
+
+ + + +
+              {JSON.stringify(listTwo.map(({ name, id }) => ({ name, id })), null, 2)}
+            
+
+ +
+
+ ) +} + +export default DragList \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/drag/drag-resize.tsx b/apps/admin/build/src/views/compo/drag/drag-resize.tsx new file mode 100644 index 00000000..1a0b5018 --- /dev/null +++ b/apps/admin/build/src/views/compo/drag/drag-resize.tsx @@ -0,0 +1,69 @@ +import React, { useRef, useState } from 'react' +import { Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { REACT_RND_PLUGIN } from '@/settings/websiteSetting' +import { Rnd } from 'react-rnd' + +interface configState { + x: number + y: number + width: number + height: number +} + +const DragResize: React.FC = () => { + const rectWrapper = useRef(null) + const [config, setConfig] = useState({ + x: 650, + y: 130, + width: 180, + height: 180 + }) + + const handleDragStop = (_: any, d: any) => { + setConfig({ + ...config, + x: d.x, + y: d.y + }) + } + + const handleResize = (_e: any, _direction: any, ref: any, _delta: any, position: any) => { + setConfig({ + ...config, + width: ref.offsetWidth, + height: ref.offsetHeight, + ...position + }) + } + + return ( + + +
+ +
+
+

x: {config.x}

+

y: {config.y}

+

width: {config.width}

+

height: {config.height}

+
+
+
+
+
+
+ ) +} + +export default DragResize \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/image-upload.tsx b/apps/admin/build/src/views/compo/image-upload.tsx new file mode 100644 index 00000000..81d98eac --- /dev/null +++ b/apps/admin/build/src/views/compo/image-upload.tsx @@ -0,0 +1,129 @@ +import type { UploadFile } from 'antd/es/upload/interface' +import type { RcFile, UploadProps } from 'antd/es/upload' +import React, { useState } from 'react' +import { Row, Col, Card, Button, Upload, Modal } from 'antd' +import { CloudUploadOutlined, PlusOutlined } from '@ant-design/icons' +import { PageWrapper } from '@/components/Page' +import { UPLOAD_COMPO } from '@/settings/websiteSetting' + +const ImageUpload: React.FC = () => { + const { Dragger } = Upload + + const [previewVisible, setPreviewVisible] = useState(false) + const [previewImage, setPreviewImage] = useState('') + const [previewTitle, setPreviewTitle] = useState('') + + const dragImgs: UploadFile[] = [ + { uid: '-1', name: 'beautiful-girl.jpg' }, + { uid: '-2', name: 'beautiful-sunshine.jpg' } + ] + const [listImgs, setListImgs] = useState([ + { + uid: '-1', + name: 'beautiful-girl.jpg', + status: 'done', + url: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img04.jpg', + thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img04.jpg' + }, + { + uid: '-2', + name: 'beautiful-sunshine.jpg', + status: 'done', + url: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg', + thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg' + } + ]) + + const handlePreview = async (file: UploadFile) => { + if (!file.url && !file.preview) { + file.preview = (await getBase64(file.originFileObj as RcFile)) as string + } + setPreviewImage(file.url || (file.preview as string)) + setPreviewVisible(true) + setPreviewTitle(file.name || file.url!.substring(file.url!.lastIndexOf('/') + 1)) + } + + const getBase64 = (file: RcFile): Promise => { + return new Promise((resolve, reject) => { + const reader = new FileReader() + reader.readAsDataURL(file) + reader.onload = () => resolve(reader.result as string) + reader.onerror = error => reject(error) + }) + } + + const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => setListImgs(newFileList) + + const handleCancle = () => { + setPreviewVisible(false) + setPreviewTitle('') + } + + return ( + + + + + +

+ +

+

将图片拖到此处, 或点击上传

+

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

+
+
+ + + + + +

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

+
+
+ + + + +
+ +
点击上传
+
+
+
+ + + + +
+
+ ) +} + +export default ImageUpload \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/transfer/data.ts b/apps/admin/build/src/views/compo/transfer/data.ts new file mode 100644 index 00000000..2d529af7 --- /dev/null +++ b/apps/admin/build/src/views/compo/transfer/data.ts @@ -0,0 +1,56 @@ +import type { TransferItem, TransferProps } from 'antd/es/transfer' + +interface DataState { + key: string + title: string + children?: DataState[] + disabled?: boolean +} + +const mockData: Record[] = [] +for (let i = 1; i < 10; i++) { + mockData.push({ + key: i.toString(), + title: `备选项 ${i}` + }) +} + +const treeData: DataState[] = [ + { key: '1', title: '备选项 1' }, + { + key: '2', + title: '备选项 2', + children: [ + { key: '2-1', title: '备选项 2-1' }, + { key: '2-2', title: '备选项 2-2' }, + { key: '2-3', title: '备选项 2-3' } + ], + }, + { key: '3', title: '备选项 3-1' }, + { + key: '4', + title: '备选项 4', + children: [ + { key: '4-1', title: '备选项 4-1' }, + { + key: '4-2', + title: '备选项 4-2', + children: [ + { key: '4-2-1', title: '备选项 4-2-1' } + ] + }, + { key: '4-3', title: '备选项 4-3' } + ] + } +] + +const transferDataSource: DataState[] = [] +function flatten(list: DataState[] = []) { + list.forEach(item => { + transferDataSource?.push(item) + flatten(item.children) + }) +} +flatten(JSON.parse(JSON.stringify(treeData))) + +export { mockData, treeData, transferDataSource } \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/transfer/index.tsx b/apps/admin/build/src/views/compo/transfer/index.tsx new file mode 100644 index 00000000..887903c9 --- /dev/null +++ b/apps/admin/build/src/views/compo/transfer/index.tsx @@ -0,0 +1,145 @@ +import type { DataNode } from 'antd/es/tree' +import React, { useState } from 'react' +import { Row, Col, Card, Transfer, Table, Tree } from 'antd' +import { PageWrapper } from '@/components/Page' +import { TRANSFER_COMPO } from '@/settings/websiteSetting' +import { mockData, treeData, transferDataSource } from './data' + +const TransferPage: React.FC = () => { + const [targetKeys, setTargetKeys] = useState(['1', '5']) + const [selectedKeys, setSelectedKeys] = useState(['2', '6']) + const [treeTargetKeys, setTreeTargetKeys] = useState([]) + + const onChange = (nextTargetKeys: string[]) => { + setTargetKeys(nextTargetKeys) + } + + const onSelectChange = (sourceSelectedKeys: string[], targetSelectedKeys: string[]) => { + setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]) + } + + const isChecked = (selectedKeys: (string | number)[], eventKey: string | number) => + selectedKeys.includes(eventKey) + + const generateTree = (treeNodes: DataNode[] = [], checkedKeys: string[] = []): DataNode[] => + treeNodes.map(({ children, ...props }) => ({ + ...props, + disabled: checkedKeys.includes(props.key as string), + children: generateTree(children, checkedKeys) + })) + + const handleChange = (nextTargetKeys: string[]) => { + setTreeTargetKeys(nextTargetKeys) + } + + const getRowSelection = ({ + selectedKeys, + onItemSelectAll, + onItemSelect, + }: Record) => { + return { + onSelectAll(selected: boolean, selectedRows: Record[]) { + const treeSelectedKeys = selectedRows + .filter(item => !item.disabled) + .map(({ key }) => key) + onItemSelectAll(treeSelectedKeys, selected) + }, + onSelect({ key }: Record, selected: boolean) { + onItemSelect(key, selected) + }, + selectedRowKeys: selectedKeys + } + } + + return ( + + + + + item.title} + listStyle={{width: '230px', height: '360px'}} + locale={{itemsUnit: '项 '}} + onChange={onChange} + onSelectChange={onSelectChange} + /> + + + + + item.title} + showSelectAll={false} + listStyle={{width: '230px', height: '360px'}} + onChange={handleChange} + > + { + ({ + direction, + selectedKeys, + onItemSelect + }) => { + if (direction === 'left') { + const treeCheckedKeys = [...selectedKeys, ...treeTargetKeys] + return ( + { + onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)) + }} + onSelect={(_, { node: { key } }) => { + onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)) + }} + /> + ) + } + } + } + + + + + + + { + ({ + filteredItems, + selectedKeys, + onItemSelectAll, + onItemSelect + }) => ( + ({onClick: () => {onItemSelect(key, !selectedKeys.includes(key))}})} + /> + ) + } + + + + + + ) +} + +export default TransferPage \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/code-mirror/components/CodeInfo.tsx b/apps/admin/build/src/views/editor/code-mirror/components/CodeInfo.tsx new file mode 100644 index 00000000..d39cb281 --- /dev/null +++ b/apps/admin/build/src/views/editor/code-mirror/components/CodeInfo.tsx @@ -0,0 +1,31 @@ +import { FC } from 'react' +import { Form } from 'antd' +import { InfoState } from '../types' + +interface PropState { + info: InfoState +} + +const CodeInfo: FC = ({ info }) => { + + return ( +
+
+ + {info.length} + + + {info.lines} + + + {info.cursor} + + + {info.selected} + + +
+ ) +} + +export default CodeInfo \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/code-mirror/components/Toolbar.tsx b/apps/admin/build/src/views/editor/code-mirror/components/Toolbar.tsx new file mode 100644 index 00000000..89002205 --- /dev/null +++ b/apps/admin/build/src/views/editor/code-mirror/components/Toolbar.tsx @@ -0,0 +1,64 @@ +import { FC } from 'react' +import { Form, Select, Checkbox } from 'antd' +import { ConfigState } from '../types' + +interface PropState { + config: ConfigState + valueChange: (values: any) => void +} + +const CodeToolbar: FC = ({ config, valueChange }) => { + const [form] = Form.useForm() + + const onValuesChange = (values: any) => { + valueChange(values) + } + + return ( +
+
+ + + + +
+ ) +} + +export default CodeToolbar \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/code-mirror/index.tsx b/apps/admin/build/src/views/editor/code-mirror/index.tsx new file mode 100644 index 00000000..a134c1e5 --- /dev/null +++ b/apps/admin/build/src/views/editor/code-mirror/index.tsx @@ -0,0 +1,68 @@ +import { FC, useState } from 'react' +import { useImmer } from 'use-immer' +import { Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { CODEMIRROR_PLUGIN } from '@/settings/websiteSetting' +import { ConfigState, InfoState } from './types' +import Codemirror from '@uiw/react-codemirror' +import Toolbar from './components/Toolbar' +import CodeInfo from './components/CodeInfo' + +const CodeMirror: FC = () => { + const [codeVal, setCodeVal] = useState(`console.log('Hello, world!')`) + const [config, setConfig] = useState({ + language: 'javascript', + autoFocus: true, + indentWithTab: true, + height: '350px' + }) + const [codeInfo, setCodeInfo] = useImmer({ + lines: null as null | number, + cursor: null as null | number, + selected: null as null | number, + length: null as null | number + }) + + const handleValueChange = (values: any) => { + setConfig({...config, ...values}) + } + + const handleChange = (value: any) => { + setCodeVal(value) + } + + const handleStateUpdate = (viewUpdate: any) => { + const ranges = viewUpdate.state.selection.ranges + setCodeInfo({ + lines: viewUpdate.state.doc.lines, + cursor: ranges[0].anchor, + selected: ranges.reduce((plus: any, range: any) => plus + range.to - range.from, 0), + length: viewUpdate.state.doc.length + }) + } + + return ( + + + + + + + + ) +} + +export default CodeMirror \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/code-mirror/types.ts b/apps/admin/build/src/views/editor/code-mirror/types.ts new file mode 100644 index 00000000..c3ff233e --- /dev/null +++ b/apps/admin/build/src/views/editor/code-mirror/types.ts @@ -0,0 +1,13 @@ +export interface ConfigState { + language: string + autoFocus: boolean + indentWithTab: boolean + height: string +} + +export interface InfoState { + lines: null | number + cursor: null | number + selected: null | number + length: null | number +} \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/markdown.tsx b/apps/admin/build/src/views/editor/markdown.tsx new file mode 100644 index 00000000..77cdce0c --- /dev/null +++ b/apps/admin/build/src/views/editor/markdown.tsx @@ -0,0 +1,26 @@ +import { FC, useState } from 'react' +import { PageWrapper } from '@/components/Page' +import { MARKDOWN_EDITOR_PLUGIN } from '@/settings/websiteSetting' +import MDEditor from '@uiw/react-md-editor' + +const MarkdownEditor: FC = () => { + const [value, setValue] = useState("**Hello world!!!**") + + const handleChange = (value: any) => { + setValue(value) + } + + return ( + +
+ +
+
+ ) +} + +export default MarkdownEditor \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/rich-text/components/Editor.tsx b/apps/admin/build/src/views/editor/rich-text/components/Editor.tsx new file mode 100644 index 00000000..360a99bf --- /dev/null +++ b/apps/admin/build/src/views/editor/rich-text/components/Editor.tsx @@ -0,0 +1,91 @@ +import React, { useRef, useEffect, useState } from 'react' +import {SlateDescendant, IEditorConfig, createEditor, IDomEditor, SlateEditor, SlateTransforms } from '@wangeditor/editor' + +interface IProps { + defaultContent?: SlateDescendant[] + onCreated?: (editor: IDomEditor) => void + defaultHtml?: string + value?: string + onChange: (editor: IDomEditor) => void + defaultConfig: Partial + mode?: string + style?: React.CSSProperties + className?: string +} + +function EditorComponent(props: Partial) { + const { defaultContent = [], onCreated, defaultHtml = '', value = '', onChange, defaultConfig = {}, mode = 'default', style = {}, className } = props + const ref = useRef(null) + const [editor, setEditor] = useState(null) + const [curValue, setCurValue] = useState('') + + const handleCreated = (editor: IDomEditor) => { + // Component attr onCreated。(组件属性 onCreated) + if (onCreated) onCreated(editor) + + // Editor config onCreate。(编辑器 配置 onCreated) + const { onCreated: onCreatedFromConfig } = defaultConfig + if (onCreatedFromConfig) onCreatedFromConfig(editor) + } + + const handleChanged = (editor: IDomEditor) => { + // Records the current html value。(记录当前 html 值) + setCurValue(editor.getHtml()) + + // Component attr onChange。(组件属性 onChange) + if (onChange) onChange(editor) + + // Editor config onChange。(编辑器 配置 onChange) + const { onChange: onChangeFromConfig } = defaultConfig + if (onChangeFromConfig) onChangeFromConfig(editor) + } + + const handleDestroyed = (editor: IDomEditor) => { + const { onDestroyed } = defaultConfig + setEditor(null) + if(onDestroyed) { + onDestroyed(editor) + } + } + + // Value changes, resets HTML。(value 变化,重置 HTML) + useEffect(() => { + if (editor == null) return + + // Ignore if it is equal to the current html value。(如果和当前 html 值相等,则忽略) + if (value === curValue) return + + // Reset HTML。(重新设置 HTML) + try { + editor.setHtml(value) + } catch (error) { + console.error(error) + } + + }, [value]) + + useEffect(() => { + if (ref.current == null) return + if (editor != null) return + // Prevents duplicate rendering when the editor is already created。(防止重复渲染 当编辑器已经创建就不在创建了) + if (ref.current?.getAttribute('data-w-e-textarea')) return + + const newEditor = createEditor({ + selector: ref.current, + config: { + ...defaultConfig, + onCreated: handleCreated, + onChange: handleChanged, + onDestroyed: handleDestroyed, + }, + content: defaultContent, + html: defaultHtml || value, + mode, + }) + setEditor(newEditor) + }, [editor]) + + return
+} + +export default EditorComponent \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/rich-text/components/Toolbar.tsx b/apps/admin/build/src/views/editor/rich-text/components/Toolbar.tsx new file mode 100644 index 00000000..f8955ad3 --- /dev/null +++ b/apps/admin/build/src/views/editor/rich-text/components/Toolbar.tsx @@ -0,0 +1,31 @@ +import { useRef, useEffect } from 'react' +import * as wangEditor from '@wangeditor/editor' + +interface IProps { + editor: wangEditor.IDomEditor | null + defaultConfig?: Partial + mode?: string + style?: object + className?: string +} + +function ToolbarComponent(props: IProps) { + const { editor, defaultConfig = {}, mode = 'default', style = {}, className } = props + const ref = useRef(null) + + useEffect(() => { + if (ref.current == null) return + if (editor == null) return + + wangEditor.createToolbar({ + editor, + selector: ref.current, + config: defaultConfig, + mode, + }) + }, [editor]) + + return
+} + +export default ToolbarComponent \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/rich-text/index.tsx b/apps/admin/build/src/views/editor/rich-text/index.tsx new file mode 100644 index 00000000..e235eaae --- /dev/null +++ b/apps/admin/build/src/views/editor/rich-text/index.tsx @@ -0,0 +1,49 @@ +import {FC, useState, useEffect } from 'react' +import { PageWrapper } from '@/components/Page' +import { WANG_EDITOR_PLUGIN } from '@/settings/websiteSetting' +import { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor' +import Editor from './components/Editor' +import Toolbar from './components/Toolbar' +import '@wangeditor/editor/dist/css/style.css' + +const RichTextEditor: FC = () => { + const [editor, setEditor] = useState(null) + const [html, setHtml] = useState('

hello

') + + + const toolbarConfig: Partial = {} + const editorConfig: Partial = { // TS 语法 + placeholder: '请输入内容...' + } + + useEffect(() => { + return () => { + if (editor == null) return + editor.destroy() + setEditor(null) + } + }, [editor]) + + return ( + +
+ + setHtml(editor.getHtml())} + mode='default' + style={{ height: '500px', overflowY: 'hidden' }} + /> +
+
+ ) +} + +export default RichTextEditor \ No newline at end of file diff --git a/apps/admin/build/src/views/excel/export-excel/data.ts b/apps/admin/build/src/views/excel/export-excel/data.ts new file mode 100644 index 00000000..7d57239f --- /dev/null +++ b/apps/admin/build/src/views/excel/export-excel/data.ts @@ -0,0 +1,91 @@ +export interface DataItem { + key: number + name: string + sex: string + phone: number + birth: string + education: string + hobby: string + forbid: boolean + editable: boolean +} + +export const tableData: DataItem[] = [ + { + key: 1001, + name: '张三', + sex: '男', + phone: 15266001235, + birth: '2002-05-06', + education: '高中', + hobby: '羽毛球、篮球、听歌、阅读', + forbid: false, + editable: true + }, + { + key: 1002, + name: '李四', + sex: '男', + phone: 15266006621, + birth: '1998-09-21', + education: '初中', + hobby: '乒乓球、排球、游泳', + forbid: true, + editable: false + }, + { + key: 1003, + name: '王五', + sex: '男', + phone: 15264848125, + birth: '1993-06-06', + education: '本科', + hobby: '旱冰、滑雪、跳高、打游戏', + forbid: false, + editable: false + }, + { + key: 1004, + name: '辛八', + sex: '男', + phone: 15248491001, + birth: '1995-08-03', + education: '大专', + hobby: '网球、篮球、跳伞', + forbid: true, + editable: false + }, + { + key: 1005, + name: '刘二', + sex: '女', + phone: 15248411021, + birth: '1999-11-05', + education: '本科', + hobby: '滑翔、游泳、篮球、看电影', + forbid: true, + editable: false + }, + { + key: 1006, + name: '赵七', + sex: '男', + phone: 15298621500, + birth: '2000-07-18', + education: '大专', + hobby: '游泳、篮球、潜水', + forbid: false, + editable: false + }, + { + key: 1007, + name: '杨一', + sex: '女', + phone: 15267499461, + birth: '1998-12-25', + education: '高中', + hobby: '冲浪、上网、看书、打游戏', + forbid: false, + editable: false + } +] diff --git a/apps/admin/build/src/views/excel/export-excel/index.tsx b/apps/admin/build/src/views/excel/export-excel/index.tsx new file mode 100644 index 00000000..6d40b3df --- /dev/null +++ b/apps/admin/build/src/views/excel/export-excel/index.tsx @@ -0,0 +1,125 @@ +import { useState } from 'react' +import { Form, Button, Card, Input, Radio, Select, Table, Space, message } from 'antd' +import { ColumnType } from 'antd/es/table' +import { PageWrapper } from '@/components/Page' +import { XLSX_PLUGIN } from '@/settings/websiteSetting' +import { useExcel } from '../useExcel' +import { DataToSheet } from '../types' +import { tableData } from './data' + +type FileType = 'xlsx' | 'csv' | 'txt' + +interface FormState { + fileName: string + autoWidth: boolean + fileType: FileType +} + +const ExportExcel = (props: any) => { + const { Item } = Form + const { Group } = Radio + + const { exportDataToExcel } = useExcel() + + const formParam = { + fileName: '', + autoWidth: true, + fileType: 'xlsx' + } + + const tableColumns: ColumnType[] = [ + { title: '编号', dataIndex: 'key', align: 'center' }, + { title: '姓名', dataIndex: 'name', align: 'center' }, + { title: '性别', dataIndex: 'sex', align: 'center' }, + { title: '手机', dataIndex: 'phone', align: 'center' }, + { title: '学历', dataIndex: 'education', align: 'center' }, + { title: '爱好', dataIndex: 'hobby', align: 'center' } + ] + + const [tableSelectedKeys, setTableSelectedKeys] = useState([]) + const [tableSelectedRows, setTableSelectedRows] = useState([]) + + function handleTableChange(selectedKeys: any[]) { + setTableSelectedKeys(selectedKeys) + } + + function handleTableSelect( + _record: object, + _selected: boolean, + selectedRows: object[] + ) { + setTableSelectedRows(selectedRows) + } + + function handleTableSelectAll(_selected: boolean, selectedRows: object[]) { + setTableSelectedRows(selectedRows) + } + + + function handleExport(values: FormState) { + console.log('values', values) + if (!tableSelectedRows.length) { + message.warning('请勾选要导出的数据项!') + return + } + const { fileName, autoWidth, fileType: bookType } = values + + const params: DataToSheet = { + data: tableSelectedRows, + header: ['编号', '姓名', '性别', '手机', '学历', '爱好'], + key: ['key', 'name', 'sex', 'phone', 'education', 'hobby'], + fileName, autoWidth, bookType + } + exportDataToExcel(params) + setTableSelectedKeys([]) + setTableSelectedRows([]) + } + + return ( + + + +
+ + + + + + + +
+ + + + ) +} + +export default ExportExcel \ No newline at end of file diff --git a/apps/admin/build/src/views/excel/import-excel.tsx b/apps/admin/build/src/views/excel/import-excel.tsx new file mode 100644 index 00000000..c98cec56 --- /dev/null +++ b/apps/admin/build/src/views/excel/import-excel.tsx @@ -0,0 +1,76 @@ +import type { UploadChangeParam } from 'antd/es/upload' +import type { ColumnType } from 'antd/es/table' +import { useState } from 'react' +import { Card, Table, Upload, Space, message } from 'antd' +import { CloudUploadOutlined } from '@ant-design/icons' +import { PageWrapper } from '@/components/Page' +import { XLSX_PLUGIN } from '@/settings/websiteSetting' +import { useExcel } from './useExcel' + +const ImportExcel = (props: any) => { + const { Dragger } = Upload + const [tableData, setTableData] = useState([]) + const [tableColumns, setTableColumns] = useState[]>([]) + const { readDataFromExcel } = useExcel() + + function handleChange(fileParam: UploadChangeParam) { + const { file } = fileParam + const rawFile = file.originFileObj + + if (!rawFile) return + if (!/\.(xlsx|xls|csv)$/.test(rawFile.name)) { + message.warning('Excel文件只支持.xlsx, .xls, .csv格式!') + return + } + + const isLimit1M = rawFile.size / 1024 /1024 < 1 + if (!isLimit1M) { + message.warning('上传的Excel文件大小不能超过1M!') + return + } + + readFile(rawFile) + } + + function readFile(rawFile: File) { + const reader = new FileReader() + reader.onload = e => { + const data = e.target && e.target.result + const { header, results } = readDataFromExcel(data, 'array') + const columns = header.map(key => ({title: key, dataIndex: key, align: 'center'})) as ColumnType[] + setTableColumns(columns) + setTableData(results as object[]) + } + reader.readAsArrayBuffer(rawFile) + reader.onerror = () => { + message.error('Excel文件读取出错!') + } + } + + return ( + + + + +

+ +

+

将Excel文件拖到此处, 或点击上传

+
+
+ + + + ) +} + +export default ImportExcel \ No newline at end of file diff --git a/apps/admin/build/src/views/excel/types.ts b/apps/admin/build/src/views/excel/types.ts new file mode 100644 index 00000000..b27e22b2 --- /dev/null +++ b/apps/admin/build/src/views/excel/types.ts @@ -0,0 +1,12 @@ +import type { BookType } from 'xlsx' + +export type ImportType = 'base64' | 'binary' | 'string' | 'buffer' | 'array' | 'file' + +export interface DataToSheet { + data: T[] + header: T[] + key: T[] + fileName?: string + autoWidth?: boolean + bookType: BookType +} \ No newline at end of file diff --git a/apps/admin/build/src/views/excel/useExcel.ts b/apps/admin/build/src/views/excel/useExcel.ts new file mode 100644 index 00000000..15d2166a --- /dev/null +++ b/apps/admin/build/src/views/excel/useExcel.ts @@ -0,0 +1,119 @@ +import type { WorkSheet } from 'xlsx' +import { write, read, utils } from 'xlsx' +import { saveAs } from 'file-saver' +import { ImportType, DataToSheet } from './types' + +export function useExcel() { + // Automatic width calculation (自动宽度计算) + function AutoWidth(ws: WorkSheet, arr: any[][]) { + // Sets the maximum width of each column of the worksheet (设置worksheet每列的最大宽度) + const colWidth = arr.map(row => row.map(val => { + // Checked null or undefined(判断是否为null/undefined) + if (val == null) { + return { wch: 10 } + } else if (val.toString().charCodeAt(0) > 255) { // Checked Chinese (判断是否为中文) + return { wch: val.toString().length * 2 } + } else { + return { wch: val.toString().length } + } + })) + // The initial value of the first row (以第一行为初始值) + const result = colWidth[0] + for (let i = 1; i < colWidth.length; i++) { + for (let j = 0; j < colWidth[i].length; j++) { + if (result[j].wch < colWidth[i][j].wch) { + result[j].wch = colWidth[i][j].wch + } + } + } + ws['!cols'] = result + } + + // Array to JSON (数组转换成JSON) + function formatJSON(key: any[], data: any[]) { + return data.map(v => key.map(i => { return v[i] })) + } + + // String to ArrayBuffer (字符串转ArrayBuffer) + function s2ab(s: string) { + const buf = new ArrayBuffer(s.length) + const view = new Uint8Array(buf) + for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF + return buf + } + + // Exporting EXCEL (导出EXCEL表格) + function exportDataToExcel( + { + header, // Table header label (表头名数组) + key, // Table header key (列对应字段数组) + data, // Data to be exported (需要导出数据的数组) + fileName, // Export file name (导出文件名) + autoWidth = true, // Automatic width (是否自动宽度) + bookType = 'xlsx' // Export file type (导出文件格式) + }: DataToSheet) { + // Create the Workbook object (创建Workbook对象) + const wb = utils.book_new() + const arr = formatJSON(key, data) + fileName = fileName || 'excel-list' + arr.unshift(header) + // Convert the array to worksheet (将数组数据转换为worksheet) + const ws = utils.aoa_to_sheet(arr) + if (autoWidth) { + AutoWidth(ws, arr) + } + // Appends the worksheet and fileName to the Workbook object (向Workbook对象中追加worksheet和fileName) + utils.book_append_sheet(wb, ws, fileName) + // Generate EXCEL configuration items (生成EXCEL的配置项) + const wbout = write(wb, { + bookType: bookType, + bookSST: false, + type: 'binary' + }) + // Browser download (浏览器下载) + saveAs(new Blob([s2ab(wbout)], { + type: 'application/octet-stream' + }), `${fileName}.${bookType}`) + } + + // Get the table header from the Excel file (从Excel文件中获取表格头) + function getHeaderRow(sheet: WorkSheet) { + if (!sheet || !sheet['!ref']) return [] + + const headers: string[] = [] + // Converts a string such as A1:G8 to a column and row object (将 A1:G8 这种字符串转换为行列对象) + const range = utils.decode_range(sheet['!ref']) + + const R = range.s.r + // Start in the first row, walk every column in the range (从第一列开始,遍历范围中的每一列) + for (let C = range.s.c; C <= range.e.c; ++C) { + // Converts a row object to a string such as A1 (将行列对象转换为 A1 这种字符串) + const cell = sheet[utils.encode_cell({ c: C, r: R })] + // Replace with your desired default (用默认值替换) + let hdr = 'UNKNOWN ' + C + if (cell && cell.t) hdr = utils.format_cell(cell) + headers.push(hdr) + } + return headers + } + + // Reading excel files (读取Excel文件) + function readDataFromExcel(data: any, type: ImportType) { + // Read the Excel file and save it to the Workbook object (读取Excel文件并保存到Workbook对象) + const workbook = read(data, { type: type }) + const firstSheetName = workbook.SheetNames[0] + // Gets the worksheet of the Workbook object (获取Workbook对象的worksheet) + const worksheet = workbook.Sheets[firstSheetName] + const header = getHeaderRow(worksheet) + // Convert the worksheet to an array (将worksheet转化成数组) + const results = utils.sheet_to_json(worksheet) + return { header, results } + } + + return { + exportDataToExcel, + readDataFromExcel + } + +} + diff --git a/apps/admin/build/src/views/exception/index.tsx b/apps/admin/build/src/views/exception/index.tsx new file mode 100644 index 00000000..4ad71cfa --- /dev/null +++ b/apps/admin/build/src/views/exception/index.tsx @@ -0,0 +1,48 @@ +import { FC, ReactNode } from 'react' +import { Result, Card, Button } from 'antd' +import { useNavigate, useLoaderData } from 'react-router-dom' + +const subTitleMap = new Map([ + [403, '对不起,您没有权限访问此页面。'], + [404, '对不起,您访问的页面不存在。'], + [500, '对不起,服务器发生错误。'] +]) + +const PageException: FC = () => { + const navigate = useNavigate() + + const { status, withCard } = useLoaderData() as { status: any; withCard: boolean } + + const goHome = () => { + navigate('/home') + } + + const WithCard = ({ children }: { children: ReactNode }) => { + if (withCard) { + return {children} + } else { + return ( +
+ {children} +
+ ) + } + } + + return ( + + + 返回首页 + + } + /> + + ) +} + +export default PageException diff --git a/apps/admin/build/src/views/form/basic-form/data.ts b/apps/admin/build/src/views/form/basic-form/data.ts new file mode 100644 index 00000000..24f5cb50 --- /dev/null +++ b/apps/admin/build/src/views/form/basic-form/data.ts @@ -0,0 +1,248 @@ + +export const provinceData = ['guangdong', 'Zhejiang', 'Jiangsu'] + +export const cityData: Record = { + guangdong: ['guangzhou', 'shenzhen', 'foshan', 'dongguan', 'zhuhai'], + Zhejiang: ['Hangzhou', 'Ningbo', 'Wenzhou'], + Jiangsu: ['Nanjing', 'Suzhou', 'Zhenjiang', 'wuxi'] +} + +export const cascaderData = [{ + value: 'zhinan', + label: '指南', + children: [{ + value: 'shejiyuanze', + label: '设计原则', + children: [{ + value: 'yizhi', + label: '一致' + }, { + value: 'fankui', + label: '反馈' + }, { + value: 'xiaolv', + label: '效率' + }, { + value: 'kekong', + label: '可控' + }] + }, { + value: 'daohang', + label: '导航', + children: [{ + value: 'cexiangdaohang', + label: '侧向导航' + }, { + value: 'dingbudaohang', + label: '顶部导航' + }] + }] +}, { + value: 'zujian', + label: '组件', + children: [{ + value: 'basic', + label: 'Basic', + children: [{ + value: 'layout', + label: 'layout 布局' + }, { + value: 'color', + label: 'Color 色彩' + }, { + value: 'typography', + label: 'Typography 字体' + }, { + value: 'icon', + label: 'Icon 图标' + }, { + value: 'button', + label: 'Button 按钮' + }] + }, { + value: 'form', + label: 'Form', + children: [{ + value: 'radio', + label: 'Radio 单选框' + }, { + value: 'checkbox', + label: 'Checkbox 多选框' + }, { + value: 'input', + label: 'Input 输入框' + }, { + value: 'input-number', + label: 'InputNumber 计数器' + }, { + value: 'select', + label: 'Select 选择器' + }, { + value: 'cascader', + label: 'Cascader 级联选择器' + }, { + value: 'switch', + label: 'Switch 开关' + }, { + value: 'slider', + label: 'Slider 滑块' + }, { + value: 'time-picker', + label: 'TimePicker 时间选择器' + }, { + value: 'date-picker', + label: 'DatePicker 日期选择器' + }, { + value: 'datetime-picker', + label: 'DateTimePicker 日期时间选择器' + }, { + value: 'upload', + label: 'Upload 上传' + }, { + value: 'rate', + label: 'Rate 评分' + }, { + value: 'form', + label: 'Form 表单' + }] + }, { + value: 'data', + label: 'Data', + children: [{ + value: 'table', + label: 'Table 表格' + }, { + value: 'tag', + label: 'Tag 标签' + }, { + value: 'progress', + label: 'Progress 进度条' + }, { + value: 'tree', + label: 'Tree 树形控件' + }, { + value: 'pagination', + label: 'Pagination 分页' + }, { + value: 'badge', + label: 'Badge 标记' + }] + }, { + value: 'notice', + label: 'Notice', + children: [{ + value: 'alert', + label: 'Alert 警告' + }, { + value: 'loading', + label: 'Loading 加载' + }, { + value: 'message', + label: 'Message 消息提示' + }, { + value: 'message-box', + label: 'MessageBox 弹框' + }, { + value: 'notification', + label: 'Notification 通知' + }] + }, { + value: 'navigation', + label: 'Navigation', + children: [{ + value: 'menu', + label: 'NavMenu 导航菜单' + }, { + value: 'tabs', + label: 'Tabs 标签页' + }, { + value: 'breadcrumb', + label: 'Breadcrumb 面包屑' + }, { + value: 'dropdown', + label: 'Dropdown 下拉菜单' + }, { + value: 'steps', + label: 'Steps 步骤条' + }] + }, { + value: 'others', + label: 'Others', + children: [{ + value: 'dialog', + label: 'Dialog 对话框' + }, { + value: 'tooltip', + label: 'Tooltip 文字提示' + }, { + value: 'popover', + label: 'Popover 弹出框' + }, { + value: 'card', + label: 'Card 卡片' + }, { + value: 'carousel', + label: 'Carousel 走马灯' + }, { + value: 'collapse', + label: 'Collapse 折叠面板' + }] + }] +}, { + value: 'ziyuan', + label: '资源', + children: [{ + value: 'axure', + label: 'Axure Components' + }, { + value: 'sketch', + label: 'Sketch Templates' + }, { + value: 'jiaohu', + label: '组件交互文档' + }] +}] + +export const treeData = [{ + title: 'Node1', + value: '0-0', + children: [{ + title: 'Child Node1', + value: '0-0-0', + children: [{ + title: 'Child Node6', + value: '0-0-1' + }] + }] +}, { + title: 'Node2', + value: '0-1', + children: [{ + title: 'Child Node3', + value: '0-1-0', + disabled: true, + }, { + title: 'Child Node4', + value: '0-1-1', + }, { + title: 'Child Node5', + value: '0-1-2', + }] +}] + +export const radioData = [ + { label: '免费', value: 'free' }, + { label: '收费', value: 'fee' }, + { label: '赞助', value: 'sponsor' }, + { label: '线上', value: 'online', disabled: true }, + { label: '线下', value: 'offline', disabled: true } +] + +export const checkboxData = [ + { label: '游泳', value: 'swim' }, + { label: '跑步', value: 'run' }, + { label: '健身', value: 'fit' }, + { label: '阅读', value: 'read', disabled: true }, + { label: '音乐', value: 'music', disabled: true }, + { label: '电影', value: 'movie' } +] diff --git a/apps/admin/build/src/views/form/basic-form/index.tsx b/apps/admin/build/src/views/form/basic-form/index.tsx new file mode 100644 index 00000000..8d55119b --- /dev/null +++ b/apps/admin/build/src/views/form/basic-form/index.tsx @@ -0,0 +1,264 @@ +import type { CascaderProps, TreeSelectProps } from 'antd' +import type { Rule } from 'antd/es/form' +import { FC, useState } from 'react' +import { Card, Form, Row, Col, Input, InputNumber, Button, Select, DatePicker, TimePicker, + Switch, Slider, Cascader, TreeSelect, Radio, Checkbox } from 'antd' +import { FORM_COMPO } from '@/settings/websiteSetting' +import { PageWrapper } from '@/components/Page' +import { provinceData, cityData, cascaderData, treeData, radioData, checkboxData } from './data' + +const BasicForm: FC = () => { + const [form] = Form.useForm() + + const province = provinceData[0] + const [formState, setFormState] = useState({ + inputLimit: '', + inputNum: '', + password: '', + selectProvince: province, + selectCity: cityData[province][0], + dateVal: '', + timeVal: '', + switchVal: true, + sliderVal: 32, + cascaderVal: [], + cascaderLazy: [], + treeVal: ['0-0-1'], + treeLazy: '1', + radioVal: 'offline', + checkboxVal: ['read'], + textareaVal: '' + }) + + const formRules: Record = { + inputLimit: [ + { required: true, message: '内容不能为空' } + ], + inputNum: [ + { required: true, message: '内容不能为空' }, + { type: 'number', message: '内容必须为数字值' } + ], + password: [ + { required: true, message: '内容不能为空' }, + { min: 6, max: 16, message: '密码长度在 6 到 16 个字符' }, + { pattern: /^[a-zA-Z0-9_-]{6,16}$/, message: '密码只支持字母、数字和下划线' } + ] + } + + const switchVal = Form.useWatch('switchVal', form) + + const [cascaderLazyData, setCascaderLazyData] = useState([ + { value: 1, label: '选项1', isLeaf: false } + ]) + + const [treeLazyData, setTreeLazyData] = useState([ + { id: 1, pId: 0, value: '1', title: 'Expand to load' }, + { id: 2, pId: 0, value: '2', title: 'Expand to load' }, + { id: 3, pId: 0, value: '3', title: 'Tree Node', isLeaf: true }, + ]) + + const handleProvinceChange = (value: any) => { + form.setFieldsValue({ selectCity: cityData[value][0] }) + } + + const loadCascaderLazy = (selectedOptions: any) => { + const targetOption = selectedOptions[selectedOptions.length - 1] + targetOption.loading = true + + setTimeout(() => { + targetOption.loading = false + let id = selectedOptions.length + const level = selectedOptions.length + targetOption.children = Array.from({ length: level + 1 }) + .map(() => ({ + value: ++id, + label: `选项${id}`, + isLeaf: level >= 2 + })) + setCascaderLazyData([...cascaderLazyData!]) + }, 1000) + } + + const loadTreeLazy: TreeSelectProps['loadData'] = ({ id }) => { + const genTreeNode = (parentId: number, isLeaf = false) => { + const random = Math.random().toString(36).substring(2, 6) + return { + id: random, + pId: parentId, + value: random, + title: isLeaf ? 'Tree Node' : 'Expand to load', + isLeaf + } + } + + return new Promise(resolve => { + setTimeout(() => { + setTreeLazyData(treeLazyData?.concat([ + genTreeNode(id, false), + genTreeNode(id, true), + genTreeNode(id, true) + ])) + resolve(undefined) + }, 500) + }) + } + + const onFinish = (values: any) => { + console.log('Success:', values) + } + + const resetForm = () => { + form.resetFields() + } + + return ( + + + + + + + + + + + + + + +
+ + ({ value: city }))} + /> + + + + + + + + + + + + + + + + + + + + { + !switchVal + ? null + : ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) + } + + + + + + + + ) +} + +export default BasicForm diff --git a/apps/admin/build/src/views/form/form-designer.tsx b/apps/admin/build/src/views/form/form-designer.tsx new file mode 100644 index 00000000..c59d9e45 --- /dev/null +++ b/apps/admin/build/src/views/form/form-designer.tsx @@ -0,0 +1,15 @@ +import { FC } from 'react' +import { Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { FORM_CREATE_DESIGNER } from '@/settings/websiteSetting' + +const FormCreate: FC = () => { + + return ( + + + + ) +} + +export default FormCreate \ No newline at end of file diff --git a/apps/admin/build/src/views/form/gbeata-form/index.tsx b/apps/admin/build/src/views/form/gbeata-form/index.tsx new file mode 100644 index 00000000..050a3597 --- /dev/null +++ b/apps/admin/build/src/views/form/gbeata-form/index.tsx @@ -0,0 +1,27 @@ +import { GButton } from 'gbeata' + +const GbeataForm = () => { + const fields: Array = [ + { + title: '中文名', + key: 'cn' + }, + { + title: '年龄', + type: 'slider', + key: 'sex' + } + ] + const handleConfirm = (form: any) => { + console.log(form) + alert(JSON.stringify(form)) + } + + return ( + + 提交 + + ) +} + +export default GbeataForm diff --git a/apps/admin/build/src/views/home/components/ChartsCard.tsx b/apps/admin/build/src/views/home/components/ChartsCard.tsx new file mode 100644 index 00000000..6be515cf --- /dev/null +++ b/apps/admin/build/src/views/home/components/ChartsCard.tsx @@ -0,0 +1,32 @@ +import type { EChartsOption } from 'echarts' +import { FC } from 'react' +import { Card } from 'antd' +import { useECharts } from '@/hooks/web/useECharts' + +interface propState { + loading: boolean + options: EChartsOption + height: number +} + +const ChartsCard: FC = ({ loading, options, height }) => { + + const { chartRef } = useECharts(options, loading) + + return ( + +
+ + ) +} + +export default ChartsCard \ No newline at end of file diff --git a/apps/admin/build/src/views/home/components/CountUpCard.tsx b/apps/admin/build/src/views/home/components/CountUpCard.tsx new file mode 100644 index 00000000..a20f98d6 --- /dev/null +++ b/apps/admin/build/src/views/home/components/CountUpCard.tsx @@ -0,0 +1,55 @@ +import { FC } from 'react' +import { Card } from 'antd' +import CountUp from 'react-countup' +import SvgIcon from '@/components/SvgIcon' + +interface propState { + loading: boolean + title: string + color: string + iconName: string + countNum: number +} + +const CountUpCard: FC = (props) => { + + return ( + +
+
+ +
+
+ +

{props.title}

+
+
+
+ ) +} + +export default CountUpCard \ No newline at end of file diff --git a/apps/admin/build/src/views/home/data.ts b/apps/admin/build/src/views/home/data.ts new file mode 100644 index 00000000..51cd354b --- /dev/null +++ b/apps/admin/build/src/views/home/data.ts @@ -0,0 +1,278 @@ +import type { EChartsOption } from 'echarts' + +export const countUpData = [ + { + title: '今日点击', + icon: 'location', + count: 682, + color: '#1890ff' + }, + { + title: '新增用户', + icon: 'person', + count: 259, + color: '#fa541c' + }, + { + title: '信息发送', + icon: 'message', + count: 1262, + color: '#faad14' + }, + { + title: '点赞统计', + icon: 'like', + count: 508, + color: '#13c2c2' + }, + { + title: '累计收藏', + icon: 'heart', + count: 379, + color: '#722ed1' + } +] + +export const pieOptions: EChartsOption = { + tooltip: { + trigger: 'item' + }, + legend: { + bottom: 0, + left: 'center' + }, + series: [ + { + name: '访问来源', + type: 'pie', + radius: '70%', + center: ['50%', '45%'], + color: ['#1890ff', '#fa541c', '#faad14', '#13c2c2', '#722ed1'], + data: [ + { value: 1620, name: '直接访问' }, + { value: 1169, name: '邮件营销' }, + { value: 986, name: '联盟广告' }, + { value: 624, name: '视频广告' }, + { value: 857, name: '搜索引擎' } + ], + roseType: 'radius', + animationType: 'scale', + animationEasing: 'exponentialInOut', + animationDelay: function () { + return Math.random() * 400 + } + } + ] +} + +export const ringOptions: EChartsOption = { + tooltip: { + trigger: 'item' + }, + legend: { + bottom: 0, + left: 'center' + }, + series: [ + { + color: ['#1890ff', '#fa541c', '#faad14', '#13c2c2', '#722ed1'], + name: '访问来源', + type: 'pie', + radius: ['40%', '70%'], + center: ['50%', '45%'], + avoidLabelOverlap: false, + itemStyle: { + borderRadius: 10, + borderColor: '#fff', + borderWidth: 2 + }, + label: { + show: false, + position: 'center' + }, + emphasis: { + label: { + show: true, + fontSize: '12', + fontWeight: 'bold' + } + }, + labelLine: { + show: false + }, + data: [ + { value: 1620, name: '直接访问' }, + { value: 1169, name: '邮件营销' }, + { value: 986, name: '联盟广告' }, + { value: 624, name: '视频广告' }, + { value: 2758, name: '搜索引擎' } + ], + animationType: 'scale', + animationEasing: 'exponentialInOut', + animationDelay: function () { + return Math.random() * 100 + } + } + ] +} + +export const radarOptions: EChartsOption = { + legend: { + bottom: 0, + data: ['推广渠道', '广告投放', '访问来源'] + }, + radar: { + radius: '70%', + center: ['50%', '45%'], + splitNumber: 8, + indicator: [ + { + name: '直接访问' + }, + { + name: '邮件营销' + }, + { + name: '联盟广告' + }, + { + name: '视频广告' + }, + { + name: '搜索引擎' + } + ] + }, + series: [ + { + type: 'radar', + symbolSize: 0, + areaStyle: { + shadowBlur: 0, + shadowColor: 'rgba(0,0,0,.2)', + shadowOffsetX: 0, + shadowOffsetY: 10, + opacity: 1 + }, + data: [ + { + value: [1920, 1920, 1920, 0, 0], + name: '推广渠道', + itemStyle: { + color: '#1890ff' + } + }, + { + value: [1920, 0, 0, 1920, 1920], + name: '访问来源', + itemStyle: { + color: '#722ed1' + } + }, + { + value: [920, 920, 920, 920, 920], + name: '广告投放', + itemStyle: { + color: '#faad14' + } + } + ] + } + ] +} + +export const barOptions: EChartsOption = { + tooltip: { + trigger: 'axis', + axisPointer: { + lineStyle: { + width: 1, + color: '#fa541c' + } + } + }, + grid: { + left: 0, + right: '1%', + top: '2%', + bottom: 0, + containLabel: true + }, + xAxis: { + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + axisTick: { + alignWithLabel: true + } + }, + yAxis: { + type: 'value', + max: value => { + return Math.ceil(value.max / 100) * 100 + 300 + } + }, + label: { + show: true, + fontSize: 14, + color: '#1890ff', + position: 'top', + formatter: '{c}' + }, + series: [ + { + type: 'bar', + name: '访问量', + barWidth: '40%', + color: ['#1890ff'], + data: [782, 925, 1196, 812, 328, 223, 1080] + } + ] +} + +export const lineOptions: EChartsOption = { + tooltip: { + trigger: 'axis', + axisPointer: { + lineStyle: { + width: 1, + color: '#fa541c' + } + } + }, + grid: { + left: 0, + right: '1%', + top: '2%', + bottom: 0, + containLabel: true + }, + xAxis: { + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + axisTick: { + alignWithLabel: true + } + }, + yAxis: { + type: 'value', + max: value => { + return Math.ceil(value.max / 100) * 100 + 300 + } + }, + label: { + show: true, + fontSize: 14, + color: '#722ed1', + position: 'top', + formatter: '{c}' + }, + series: [ + { + type: 'line', + name: '访问量', + color: ['#722ed1'], + smooth: true, + data: [782, 925, 1196, 812, 328, 223, 1080] + } + ] +} diff --git a/apps/admin/build/src/views/home/index.tsx b/apps/admin/build/src/views/home/index.tsx new file mode 100644 index 00000000..45d148c6 --- /dev/null +++ b/apps/admin/build/src/views/home/index.tsx @@ -0,0 +1,56 @@ +import { FC, useState } from 'react' +import { Row, Col, Space } from 'antd' +import CountUpCard from './components/CountUpCard' +import ChartsCard from './components/ChartsCard' +import { countUpData, pieOptions, ringOptions, radarOptions, barOptions, lineOptions } from './data' + +const HomePage: FC = () => { + const [isLoading, setIsLoading] = useState(true) + + setTimeout(() => { + setIsLoading(false) + }, 1500) + + return ( + + + { + countUpData.map(item => { + return ( +
+ + + ) + }) + } + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default HomePage \ No newline at end of file diff --git a/apps/admin/build/src/views/image/image-cropper.tsx b/apps/admin/build/src/views/image/image-cropper.tsx new file mode 100644 index 00000000..efb98f45 --- /dev/null +++ b/apps/admin/build/src/views/image/image-cropper.tsx @@ -0,0 +1,74 @@ +import React, { useRef, useState } from 'react' +import { Row, Col, Card, Button, Space } from 'antd' +import { PageWrapper } from '@/components/Page' +import { REACT_CROPPER_PLUGIN, CROPPER_IMG_SRC } from '@/settings/websiteSetting' +import Cropper, { ReactCropperElement } from 'react-cropper' +import 'cropperjs/dist/cropper.css' +import { downloadImgByUrl } from '@/utils/download' +import { UploadImage } from '@/components/Upload' + +const ImageCropper: React.FC = () => { + const cropperRef = useRef(null) + const [imgSrc, setImgSrc] = useState(CROPPER_IMG_SRC) + + const handleSuccess = (data: any) => { + setImgSrc(data) + } + + const downloadImage = () => { + if (typeof cropperRef.current?.cropper !== 'undefined') { + const imgUrl = cropperRef.current?.cropper.getCroppedCanvas().toDataURL() + + downloadImgByUrl(imgUrl, 'demo.png') + } + } + + return ( + + + + + + + + + +
+ + + + +
+
+ + + +
+ + + + + ) +} + +export default ImageCropper \ No newline at end of file diff --git a/apps/admin/build/src/views/login/index.less b/apps/admin/build/src/views/login/index.less new file mode 100644 index 00000000..2a8969f5 --- /dev/null +++ b/apps/admin/build/src/views/login/index.less @@ -0,0 +1,42 @@ +.login-wrapper { + display: flex; + justify-content: center; + align-items: center; + width: 100vw; + height: 100vh; + background-image: url('@/assets/images/login-background.jpg'); + background-size: cover; + + .login-box { + padding: 16px 30px 10px; + background: #fff; + border-radius: 4px; + box-shadow: 0 15px 30px 0 rgba(0, 0, 1, .1); + + &-title { + margin: 0 auto 35px; + text-align: center; + color: #707070; + font-size: 18px; + letter-spacing: 2px; + + img { + width: 200px; + height: 82px; + margin: 12px auto 0; + } + } + + &-form { + width: 320px; + } + + .login-btn { + width: 100%; + } + + .no-margin { + margin-bottom: 0; + } + } +} diff --git a/apps/admin/build/src/views/login/index.tsx b/apps/admin/build/src/views/login/index.tsx new file mode 100644 index 00000000..977a42bd --- /dev/null +++ b/apps/admin/build/src/views/login/index.tsx @@ -0,0 +1,144 @@ +import type { FormInstance } from 'antd/es/form' +import type { LoginParams, UserInfo } from '@/types' +import { FC, useRef, useState } from 'react' +import { useNavigate, useSearchParams } from 'react-router-dom' +import { Form, Input, Checkbox, Button, message } from 'antd' +import { UserOutlined, LockOutlined } from '@ant-design/icons' +import { useAppSelector, useAppDispatch } from '@/stores' +import { setToken, setUserInfo, setSessionTimeout } from '@/stores/modules/user' +import { getAuthCache } from '@/utils/auth' +import { TOKEN_KEY } from '@/enums/cacheEnum' +import { loginApi, getUserInfo } from '@/api' +import logoIcon from '@/assets/images/logo_name.png' +import classNames from 'classnames' +import './index.less' + +const LoginPage: FC = () => { + const [form] = Form.useForm() + const loginFormRef = useRef(null) + const [loading, setLoading] = useState(false) + + const dispatch = useAppDispatch() + + const { token, sessionTimeout } = useAppSelector(state => state.user) + const getToken = (): string => { + return token || getAuthCache(TOKEN_KEY) + } + + const navigate = useNavigate() + const [searchParams] = useSearchParams() + + const handleLogin = async (values: any) => { + try { + setLoading(true) + const userInfo = await loginAction({ + username: values.username, + password: values.password + }) + if (userInfo) { + message.success('登陆成功!') + } + } catch (error) { + message.error((error as unknown as Error).message) + } finally { + setLoading(false) + } + } + + const loginAction = async ( + params: LoginParams & { + goHome?: boolean + } + ): Promise => { + try { + const { goHome = true, ...loginParams } = params + const data = await loginApi(loginParams) + + // 保存 Token + dispatch(setToken(data?.token)) + return afterLoginAction(goHome) + } catch (error) { + return Promise.reject(error) + } + } + + const afterLoginAction = async (goHome?: boolean): Promise => { + if (!getToken()) return null + + const userInfo = await getUserInfoAction() + + if (sessionTimeout) { + dispatch(setSessionTimeout(false)) + } else { + const redirect = searchParams.get('redirect') + if (redirect) { + navigate(redirect) + } else { + goHome && navigate(userInfo?.homePath || '/home') + } + } + + return userInfo + } + + const getUserInfoAction = async (): Promise => { + if (!getToken()) return null + + const userInfo = await getUserInfo() + + dispatch(setUserInfo(userInfo)) + + return userInfo + } + + return ( +
+
+
+ icon +

账 号 登 录

+
+
+ + } + /> + + + } + /> + + + + 记住我 + + + 忘记密码? + + + + + + +
+
+ ) +} + +export default LoginPage diff --git a/apps/admin/build/src/views/table/table-basic/index.tsx b/apps/admin/build/src/views/table/table-basic/index.tsx new file mode 100644 index 00000000..708a0a8f --- /dev/null +++ b/apps/admin/build/src/views/table/table-basic/index.tsx @@ -0,0 +1,172 @@ +import type { ColumnsType } from 'antd/es/table' +import { FC, useState, useEffect } from 'react' +import { Card, Button, Table, Tag, Select, Switch, Popover, Space, Modal, TableProps } from 'antd' +import { ExclamationCircleOutlined } from '@ant-design/icons' +import { TABLE_COMPO } from '@/settings/websiteSetting' +import { getTableList } from '@/api' +import { PageWrapper } from '@/components/Page' +import { APIResult, PageState, TableDataType } from './types' + +const marriedOptions = [ + { label: '单身', value: 0 }, + { label: '未婚', value: 1 }, + { label: '已婚', value: 2 }, + { label: '离异', value: 3 } +] + +const TableBasic: FC = () => { + + const [tableLoading, setTableLoading] = useState(false) + const [tableData, setTableData] = useState([]) + const [tableTotal, setTableTotal] = useState(0) + const [tableQuery, setTableQuery] = useState({ current: 1, pageSize: 10 }) + + const columns: ColumnsType = [ + { + title: '编号', + dataIndex: 'id', + align: 'center', + sorter: true + }, + { + title: '姓名', + dataIndex: 'name', + align: 'center', + render: (_, record: any) => { + const content = ( +
+

姓名: {record.name}

+

手机: {record.phone}

+

爱好: {record.hobby.join('、')}

+
+ ) + return ( + + {record.name} + + ) + } + }, + { + title: '性别', + dataIndex: 'sex', + align: 'center' + }, + { + title: '手机', + dataIndex: 'phone', + align: 'center' + }, + { + title: '学历', + dataIndex: 'education', + align: 'center' + }, + { + title: '婚姻状况', + dataIndex: 'married', + align: 'center', + render: (text, record: any) => ( +
`Total ${tableTotal} items`, + showSizeChanger: true, + showQuickJumper: true, + onChange: handlePageChange + }} + /> + + + ) +} + +export default TableBasic \ No newline at end of file diff --git a/apps/admin/build/src/views/table/table-basic/types.ts b/apps/admin/build/src/views/table/table-basic/types.ts new file mode 100644 index 00000000..6b82581a --- /dev/null +++ b/apps/admin/build/src/views/table/table-basic/types.ts @@ -0,0 +1,20 @@ +export interface APIResult { + list: any[], + total: number +} + +export interface PageState { + current: number + pageSize: number +} + +export interface TableDataType { + id: number + name: string + sex: string + phone: number + education: string + married: number + forbid: boolean + hobby: string[] +} \ No newline at end of file diff --git a/apps/admin/build/src/views/table/table-edit-row/data.ts b/apps/admin/build/src/views/table/table-edit-row/data.ts new file mode 100644 index 00000000..d76a136c --- /dev/null +++ b/apps/admin/build/src/views/table/table-edit-row/data.ts @@ -0,0 +1,75 @@ +export interface DataItem { + key: string + name: string + sex: string + birth: string + education: string + hobby: string + forbid: boolean +} + +export const tableData: DataItem[] = [ + { + key: '1001', + name: '张三', + sex: '男', + birth: '2002-05-06', + education: '高中', + hobby: '羽毛球、篮球、听歌、阅读', + forbid: false + }, + { + key: '1002', + name: '李四', + sex: '男', + birth: '1998-09-21', + education: '初中', + hobby: '乒乓球、排球、游泳', + forbid: true + }, + { + key: '1003', + name: '王五', + sex: '男', + birth: '1993-06-06', + education: '本科', + hobby: '旱冰、滑雪、跳高、打游戏', + forbid: false + }, + { + key: '1004', + name: '辛八', + sex: '男', + birth: '1995-08-03', + education: '大专', + hobby: '网球、篮球、跳伞', + forbid: true + }, + { + key: '1005', + name: '刘二', + sex: '女', + birth: '1999-11-05', + education: '本科', + hobby: '滑翔、游泳、篮球、看电影', + forbid: true + }, + { + key: '1006', + name: '赵七', + sex: '男', + birth: '2000-07-18', + education: '大专', + hobby: '游泳、篮球、潜水', + forbid: false + }, + { + key: '1007', + name: '杨一', + sex: '女', + birth: '1998-12-25', + education: '高中', + hobby: '冲浪、上网、看书、打游戏', + forbid: false + } +] diff --git a/apps/admin/build/src/views/table/table-edit-row/index.tsx b/apps/admin/build/src/views/table/table-edit-row/index.tsx new file mode 100644 index 00000000..f66764dd --- /dev/null +++ b/apps/admin/build/src/views/table/table-edit-row/index.tsx @@ -0,0 +1,305 @@ +import React, { useState } from 'react' +import { Form, Button, Table, Select, Switch, InputNumber, Input, DatePicker, Radio, Checkbox, Card, Popconfirm, Space } from 'antd' +import { ColumnType } from 'antd/es/table' +import { PageWrapper } from '@/components/Page' +import dayjs from 'dayjs' +import { TABLE_EDIT_COMPO } from '@/settings/websiteSetting' +import { tableData, DataItem } from './data' + +type CellType = 'number' | 'text' | 'radio' | 'date' | 'select' | 'checkbox' | 'switch' + +interface EditableCellProps extends React.HTMLAttributes { + editing: boolean + dataIndex: string + title: any + cellType: CellType + record: DataItem + index: number + children: React.ReactNode +} + +type theadKey = Record +const theadMap: theadKey = { + key: { title: '数字输入框', type: 'number' }, + name: { title: '输入框', type: 'text' }, + sex: { title: '单选框', type: 'radio' }, + birth: { title: '日期选择框', type: 'date' }, + education: { title: '选择器', type: 'select' }, + hobby: { title: '多选框', type: 'checkbox' }, + forbid: { title: '开关', type: 'switch' }, + action: { title: '按钮', type: 'button' } +} + +const nodeType = (type: CellType, record: DataItem) => { + switch (type) { + case 'number': + return + case 'text': + return + case 'radio': + return ({value: item, label: item}))} /> + case 'date': + return
+ case 'select': + return
+ ) +} + +const TableEditRow: React.FC = () => { + + const [form] = Form.useForm() + const [data, setData] = useState(tableData) + const [editingKey, setEditingKey] = useState('') + + const isEditing = (record: DataItem) => record.key === editingKey + + const edit = (record: Partial) => { + form.setFieldsValue({ ...record }) + setEditingKey(record.key!) + } + + const cancel = () => { + setEditingKey('') + } + + const save = async (key: React.Key) => { + try { + const row = (await form.validateFields()) as DataItem + + const newData = [...data] + const index = newData.findIndex((item) => key === item.key) + + if (index > -1) { + const item = newData[index] + newData.splice(index, 1, { + ...item, + ...row + }) + setData(newData) + setEditingKey('') + } else { + newData.push(row) + setData(newData) + setEditingKey('') + } + } catch (errInfo) { + console.log('Validate Failed:', errInfo); + } + } + + // @ts-ignore + const columns: ColumnType[] = [ + { + title: () => { + return ( + <> + 编号 +

(数字输入框)

+ + ) + }, + dataIndex: 'key', + width: 70, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 姓名 +

(输入框)

+ + ) + }, + dataIndex: 'name', + width: 110, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 性别 +

(单选框)

+ + ) + }, + dataIndex: 'sex', + width: 120, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 生日 +

(日期选择器)

+ + ) + }, + dataIndex: 'birth', + width: 140, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 学历 +

(选择器)

+ + ) + }, + dataIndex: 'education', + width: 80, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 爱好 +

(多选框)

+ + ) + }, + dataIndex: 'hobby', + width: 250, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 禁止编辑 +

(开关)

+ + ) + }, + dataIndex: 'forbid', + width: 70, + editable: true, + align: 'center', + render: (text: string, record: DataItem) => { + return ( + {record.forbid ? '是' : '否'} + ) + } + }, + { + title: () => { + return ( + <> + 操作 +

(按钮)

+ + ) + }, + dataIndex: 'action', + width: 70, + align: 'center', + render: (_: any, record: DataItem) => { + const editable = isEditing(record) + return editable ? ( + + + + + + + ) : ( + + ) + } + } + ] + + const mergedColumns = columns.map((col) => { + if (!col.editable) { + return col + } + return { + ...col, + onCell: (record: DataItem) => ({ + record, + cellType: theadMap[col.dataIndex].type, + dataIndex: col.dataIndex, + title: col.title, + editing: isEditing(record) + }) + } + }) + + return ( + + +
+
+ {editing ? ( + + {cellNode} + + ) : ( + children + )} +
+ + + + ) +} + +export default TableEditRow \ No newline at end of file diff --git a/apps/admin/build/src/views/tree/antd-tree/data.ts b/apps/admin/build/src/views/tree/antd-tree/data.ts new file mode 100644 index 00000000..a599f8b0 --- /dev/null +++ b/apps/admin/build/src/views/tree/antd-tree/data.ts @@ -0,0 +1,48 @@ +export const treeData = [{ + key: '1-0', + title: '一级 1', + children: [{ + key: '1-1', + title: '二级 1-1', + children: [{ + key: '1-1-1', + title: '三级 1-1-1' + }, { + key: '1-1-2', + title: '三级 1-1-2' + }] + }] +}, { + key: '2-0', + title: '一级 2', + children: [{ + key: '2-1', + title: '二级 2-1' + }, { + key:'2-2', + title: '二级 2-2', + disabled: true + }] +}, { + key: '3-0', + title: '一级 3', + children: [{ + key: '3-1', + title: '二级 3-1' + }, { + key: '3-2', + title: '二级 3-2', + children: [{ + key: '3-2-1', + title: '三级 3-2-1', + disableCheckbox: true + }, { + key: '3-2-2', + title: '三级 3-2-2' + }, { + key: '3-2-3', + title: '三级 3-2-3' + }] + }] +}] + diff --git a/apps/admin/build/src/views/tree/antd-tree/index.tsx b/apps/admin/build/src/views/tree/antd-tree/index.tsx new file mode 100644 index 00000000..928fcf55 --- /dev/null +++ b/apps/admin/build/src/views/tree/antd-tree/index.tsx @@ -0,0 +1,79 @@ +import { useState } from 'react' +import { Row, Col, Card, Tree } from 'antd' +import { TREE_COMPO } from '@/settings/websiteSetting' +import { PageWrapper } from '@/components/Page' +import { treeData } from './data' + +interface DataNode { + title: string; + key: string; + isLeaf?: boolean; + children?: DataNode[]; +} + +const initTreeData: DataNode[] = [ + { title: 'Expand to load', key: '0' }, + { title: 'Expand to load', key: '1' }, + { title: 'Tree Node', key: '2', isLeaf: true } +] + +const AntdTree = () => { + const [lazyTreeData, setLazyTreeData] = useState(initTreeData) + + function handleLoadData(treeNode: any) { + return new Promise(resolve => { + if (treeNode.dataRef.children) { + resolve() + return + } + setTimeout(() => { + treeNode.dataRef.children = [ + { title: 'Child Node', key: `${treeNode.eventKey}-0` }, + { title: 'Child Node', key: `${treeNode.eventKey}-1` } + ] + setLazyTreeData([...lazyTreeData]) + resolve() + }, 1000) + }) + } + + function handleDrop() {} + + return ( + + + + + + + + + + + + + + + + + + + + ) +} + +export default AntdTree \ No newline at end of file diff --git a/apps/admin/build/src/views/tree/org-tree/data.ts b/apps/admin/build/src/views/tree/org-tree/data.ts new file mode 100644 index 00000000..0f1dda3a --- /dev/null +++ b/apps/admin/build/src/views/tree/org-tree/data.ts @@ -0,0 +1,78 @@ +export const data = { + id: 1, + label: 'XXX科技有限公司', + children: [ + { + id: 2, + pid: 1, + label: '产品研发部', + children: [ + { + id: 5, + pid: 2, + label: '产品经理' + }, { + id: 6, + pid: 2, + label: 'UI设计' + }, { + id: 9, + pid: 2, + label: '研发-前端' + }, { + id: 10, + pid: 2, + label: '研发-后端' + }, { + id: 12, + pid: 2, + label: '测试' + } + ] + }, + { + id: 3, + pid: 1, + label: '销售部', + children: [ + { + id: 7, + pid: 3, + label: '销售一部', + children: [ + { + id: 14, + pid: 7, + label: '售前' + }, { + id: 15, + pid: 7, + label: '售后' + }, { + id: 16, + pid: 7, + label: '客服' + } + ] + }, { + id: 8, + pid: 3, + label: '销售二部' + }, { + id: 13, + pid: 3, + label: '销售三部' + } + ] + }, + { + id: 4, + pid: 1, + label: '财务部' + }, { + id: 11, + pid: 1, + label: 'HR人事' + } + ] +} diff --git a/apps/admin/build/src/views/tree/org-tree/index.tsx b/apps/admin/build/src/views/tree/org-tree/index.tsx new file mode 100644 index 00000000..4a11358a --- /dev/null +++ b/apps/admin/build/src/views/tree/org-tree/index.tsx @@ -0,0 +1,54 @@ +import { FC, useState } from 'react' +import { Card, Form, Radio, Switch } from 'antd' +import { PageWrapper } from '@/components/Page' +import { React_TREE_ORG_PLUGIN } from '@/settings/websiteSetting' +import OrgTree from 'react-org-tree' +import { data } from './data' + +const OrgTreePage: FC = () => { + const [form] = Form.useForm() + + const [config, setConfig] = useState({ + horizontal: false, + expandAll: true + }) + + const onValuesChange = (values: any) => { + console.log('values', values) + setConfig({...config, ...values}) + } + + return ( + + +
+ + + 水平 + 垂直 + + + + + + +
+ +
+
+
+ ) +} + +export default OrgTreePage \ No newline at end of file diff --git a/apps/admin/build/src/views/video/video-player.tsx b/apps/admin/build/src/views/video/video-player.tsx new file mode 100644 index 00000000..a3423632 --- /dev/null +++ b/apps/admin/build/src/views/video/video-player.tsx @@ -0,0 +1,47 @@ + +// @ts-nocheck +import { Row, Col, Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { VIDEO_RES_SRC, VIDEO_PLUGIN } from '@/settings/websiteSetting' +import { Player, ControlBar, BigPlayButton, CurrentTimeDisplay, TimeDivider, + PlaybackRateMenuButton, VolumeMenuButton } from 'video-react' +import 'video-react/dist/video-react.css' + +const VideoPlayers = () => { + + return ( + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default VideoPlayers \ No newline at end of file diff --git a/apps/admin/build/tsconfig.json b/apps/admin/build/tsconfig.json new file mode 100644 index 00000000..4c56e434 --- /dev/null +++ b/apps/admin/build/tsconfig.json @@ -0,0 +1,45 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "baseUrl": ".", + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "paths": { + "@/*": ["src/*"], + "#/*": ["types/*"] + }, + "types": [ + "vite/client", + "vite-plugin-svg-icons/client" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue", + "typings/**/*.d.ts", + "typings/**/*.ts", + "build/**/*.ts", + "build/**/*.d.ts", + "mock/*.ts", + "vite.config.ts" + ], + "exclude": [ + "node_modules", + "dist", + "**/*.js" + ] +} diff --git a/apps/admin/build/typings/global.d.ts b/apps/admin/build/typings/global.d.ts new file mode 100644 index 00000000..44afcf90 --- /dev/null +++ b/apps/admin/build/typings/global.d.ts @@ -0,0 +1,3 @@ +declare type Nullable = T | null +declare type Recordable = Record +declare type ElRef = Nullable diff --git a/apps/admin/build/typings/index.d.ts b/apps/admin/build/typings/index.d.ts new file mode 100644 index 00000000..69f39d3b --- /dev/null +++ b/apps/admin/build/typings/index.d.ts @@ -0,0 +1,9 @@ +declare interface Fn { + (...arg: T[]): R +} + +declare type AnyFn = (...args: any[]) => any + +declare type TargetContext = '_self' | '_blank' + +declare module 'react-org-tree' \ No newline at end of file diff --git a/apps/admin/build/utils.ts b/apps/admin/build/utils.ts new file mode 100644 index 00000000..39850141 --- /dev/null +++ b/apps/admin/build/utils.ts @@ -0,0 +1,39 @@ +declare type Recordable = Record + +interface ViteEnv { + VITE_PORT: number + VITE_PROXY: [string, string][] + VITE_DROP_CONSOLE: boolean +} + +// read all environment variable configuration files to process.env +export function wrapperEnv(envConf: Recordable): ViteEnv { + const result: any = {} + + for (const envName of Object.keys(envConf)) { + let realName = envConf[envName].replace(/\\n/g, '\n') + realName = realName === 'true' ? true : realName === 'false' ? false : realName + + if (envName === 'VITE_PORT') { + realName = Number(realName) + } + + if (envName === 'VITE_PROXY' && realName) { + try { + realName = JSON.parse(realName.replace(/'/g, '"')) + } catch (error) { + realName = '' + } + } + + result[envName] = realName + + if (typeof realName === 'string') { + process.env[envName] = realName + } else if (typeof realName === 'object') { + process.env[envName] = JSON.stringify(realName) + } + } + + return result +} \ No newline at end of file diff --git a/apps/admin/build/vite.config.ts b/apps/admin/build/vite.config.ts new file mode 100644 index 00000000..b5f144b4 --- /dev/null +++ b/apps/admin/build/vite.config.ts @@ -0,0 +1,60 @@ +import type { ConfigEnv, UserConfig } from 'vite' +import { loadEnv } from 'vite' +import react from '@vitejs/plugin-react' +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' +import { viteMockServe } from 'vite-plugin-mock' +import { wrapperEnv } from './build/utils' +// 需要安装 @typings/node 插件 +import { resolve } from 'path' + +/** @type {import('vite').UserConfig} */ +export default ({ command, mode }: ConfigEnv): UserConfig => { + const root = process.cwd() + const isBuild = command === 'build' + + const env = loadEnv(mode, root) + + // this function can be converted to different typings + const viteEnv: any = wrapperEnv(env) + const { VITE_PORT, VITE_DROP_CONSOLE } = viteEnv + + return { + base: isBuild ? '/react-admin-design/' : './', + server: { + // Listening on all local ips + host: true, + port: VITE_PORT + }, + plugins: [ + react(), + createSvgIconsPlugin({ + iconDirs: [resolve(process.cwd(), 'src/assets/icons')], + symbolId: 'icon-[dir]-[name]' + }), + viteMockServe({ + mockPath: 'mock', + ignore: /^_/ + }) + ], + + build: { + target: 'es2015', + cssTarget: 'chrome86', + minify: 'terser', + terserOptions: { + compress: { + keep_infinity: true, + // used to delete console and debugger in production environment + drop_console: VITE_DROP_CONSOLE + } + }, + chunkSizeWarningLimit: 2000 + }, + + resolve: { + alias: { + '@': resolve(__dirname, './src') + } + } + } +} diff --git a/apps/admin/eslint.config.js b/apps/admin/eslint.config.js new file mode 100644 index 00000000..111e3f71 --- /dev/null +++ b/apps/admin/eslint.config.js @@ -0,0 +1,128 @@ +// 配置文档: https://eslint.nodejs.cn/ + +export default { + root: true, + env: { + browser: true, + node: true, + es6: true + }, + settings: { + react: { + version: 'detect' + } + }, + // 指定如何解析语法 + parser: '@typescript-eslint/parser', + // 优先级低于 parse 的语法解析配置 + parserOptions: { + ecmaVersion: 7, + sourceType: 'module', + jsxPragma: 'React', + ecmaFeatures: { + jsx: true + } + }, + plugins: ['react', '@typescript-eslint', 'react-hooks', 'prettier'], + // 继承某些已有的规则 + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + 'prettier', + 'plugin:prettier/recommended' + ], + /* + * 'off' 或 0 ==> 关闭规则 + * 'warn' 或 1 ==> 规则提示为警告(不影响代码执行) + * 'error' 或 2 ==> 规则提示为错误(代码不能执行,界面报错) + */ + rules: { + /* + * Eslint规则配置 + * 配置文档: https://eslint.nodejs.cn/docs/latest/rules/ + */ + // 需要 let 或 const 而不是 var + 'no-var': 'error', + // 禁止在定义变量之前使用变量 + 'no-use-before-define': 'off', + // 声明后永远不会重新分配的变量需要 const 声明 + 'prefer-const': 'error', + // 禁止不规则空格 + 'no-irregular-whitespace': 'off', + // 禁止使用 debugger + 'no-debugger': 'off', + // 禁止未使用的变量 + 'no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_' + } + ], + // 使用 prettier 插件 + 'prettier/prettier': [ + 'error', + { + endOfLine: 'auto' + } + ], + + /* + * TypeScript规则配置 + * 配置文档: https://typescript-eslint.nodejs.cn/rules/) + */ + // 根据参数、属性和变量的默认值或初始值推断其类型 + '@typescript-eslint/no-inferrable-types': 'off', + // 禁止使用自定义 ts 模块和命名空间 + '@typescript-eslint/no-namespace': 'off', + // 禁止使用 any 类型 + '@typescript-eslint/no-explicit-any': 'off', + // 禁止使用特定类型 + '@typescript-eslint/ban-types': 'off', + // 不允许对初始化为数字、字符串或布尔值的变量或参数进行显式返回类型声明 + '@typescript-eslint/explicit-function-return-type': 'off', + // 不允许在 import 语句中使用 require 语句 + '@typescript-eslint/no-var-requires': 'off', + // 禁止空函数 + '@typescript-eslint/no-empty-function': 'off', + // 禁止在变量定义之前使用它们 + '@typescript-eslint/no-use-before-define': 'off', + // 禁止 @ts- 注释代码 + '@typescript-eslint/ban-ts-comment': 'off', + // 不允许使用后缀运算符的非空断言(!) + '@typescript-eslint/no-non-null-assertion': 'off', + // 要求导出函数和类的公共类方法的显式返回和参数类型 + '@typescript-eslint/explicit-module-boundary-types': 'off', + // 使用顶层 type 限定符进行导入 + '@typescript-eslint/no-import-type-side-effects': 'error', + // 禁止定义未使用的变量 + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_' + } + ], + // 允许在导入上指定 type 关键字 + '@typescript-eslint/consistent-type-imports': [ + 'error', + { + disallowTypeAnnotations: false, + fixStyle: 'inline-type-imports' + } + ], + // 允许枚举成员的值是多种不同类型的有效 js 表达式 + '@typescript-eslint/prefer-literal-enum-member': [ + 'error', + { + allowBitwiseExpressions: true + } + ], + + 'react-hooks/rules-of-hooks': 'off', + 'react-hooks/exhaustive-deps': 'off' + } +} diff --git a/apps/admin/index.html b/apps/admin/index.html new file mode 100644 index 00000000..d33e7830 --- /dev/null +++ b/apps/admin/index.html @@ -0,0 +1,13 @@ + + + + + + + react-admin-design + + +
+ + + diff --git a/apps/admin/mock/_utils.ts b/apps/admin/mock/_utils.ts new file mode 100644 index 00000000..8701dbec --- /dev/null +++ b/apps/admin/mock/_utils.ts @@ -0,0 +1,59 @@ +// Interface data format used to return a unified format + +export interface requestParams { + headers?: { authorization?: string } + method: string + body: any + query: any +} + +export function resultSuccess(data: T, { message = '成功' } = {}) { + return { + type: 'success', + code: 0, + data, + message + } +} + +export function resultError(message = '失败', { code = -1, data = null } = {}) { + return { + type: 'error', + code, + data, + message + } +} + +// This function is used to get a token from the request data +export function getRequestToken({ headers }: requestParams): string | undefined { + return headers?.authorization +} + +export function pagination( + currentPage: number, + pageSize: number, + array: T[] +): T[] { + const offset = (currentPage - 1) * Number(pageSize) + return (offset + Number(pageSize)) >= array.length + ? array.slice(offset, array.length) + : array.slice(offset, offset + Number(pageSize)) +} + +export function resultPageSuccess ( + currentPage: number, + pageSize: number, + list: T[], + { message = 'ok' } = {} +) { + const pageData = pagination(currentPage, pageSize, list) + + return { + ...resultSuccess({ + list: pageData, + total: list.length + }), + message + } +} \ No newline at end of file diff --git a/apps/admin/mock/data/table.ts b/apps/admin/mock/data/table.ts new file mode 100644 index 00000000..05ed4caa --- /dev/null +++ b/apps/admin/mock/data/table.ts @@ -0,0 +1,61 @@ +import { MockMethod } from 'vite-plugin-mock' +import { Random } from 'mockjs' +import { resultPageSuccess } from '../_utils' + +const getPhone = () => { + const prefixList = [135, 136, 137, 138, 139, 155, 158, 183, 185, 189] + const randomNum = Math.floor(Math.random() * 10) + const phoneStr = prefixList[randomNum] + Math.random().toString().slice(-8) + return Number(phoneStr) +} + +const getEducation = () => { + const educationList = ['小学', '初中', '高中', '专科', '本科', '研究生'] + const randomNum = Math.floor(Math.random() * educationList.length) + return educationList[randomNum] +} + +const getMarried = () => { + return Math.floor(Math.random() * 4) +} + +const getHobby = () => { + const list: any[] = [] + const hobbyList = ['羽毛球', '乒乓球', '篮球', '排球', '网球', '游泳', '滑雪', '跳高', '滑翔', '潜水'] + const len = [3, 4][Number(Random.boolean())] + for (let key = 0; key < len; key++) { + const randomNum = Math.floor(Math.random() * 10) + list.push(hobbyList[randomNum]) + } + return list +} + +const genList = () => { + const list: any[] = [] + for (let index = 0; index < 100; index++) { + const num = index < 10 ? '0' + index : index + list.push({ + id: Number(`10${num}`) + 1, + name: Random.cname(), + sex: ['男', '女'][Number(Random.boolean())], + phone: getPhone(), + education: getEducation(), + married: getMarried(), + forbid: Random.boolean(), + hobby: getHobby() + }) + } + return list +} + +export default [ + { + url: '/api/table/getTableList', + timeout: 200, + method: 'get', + response: ({ query }) => { + const { current = 1, pageSize = 10 } = query + return resultPageSuccess(current, pageSize, genList()) + } + } +] as MockMethod[] \ No newline at end of file diff --git a/apps/admin/mock/data/user.ts b/apps/admin/mock/data/user.ts new file mode 100644 index 00000000..8718612d --- /dev/null +++ b/apps/admin/mock/data/user.ts @@ -0,0 +1,68 @@ +import { MockMethod } from 'vite-plugin-mock' +import { requestParams, resultSuccess, resultError, getRequestToken } from '../_utils' + +export function createFakeUserList() { + return [ + { + userId: '10000', + username: 'admin', + realName: 'react admin design', + avatar: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/avatar.png', + desc: 'super admin', + password: '123456', + token: 'fakeToken', + homePath: '/home' + } + ] +} + +// Mock user login +export default [ + { + url: '/api/login', + timeout: 500, + method: 'post', + response: ({ body }) => { + const { username, password } = body + const checkUser = createFakeUserList().find(item => item.username === username && password === item.password) + if (!checkUser) { + return resultError('Incorrect account or password!') + } + const { userId, username: _username, token, realName, desc } = checkUser + return resultSuccess({ + userId, + username: _username, + token, + realName, + desc + }) + } + }, + { + url: '/api/getUserInfo', + method: 'get', + response: (request: requestParams) => { + const token = getRequestToken(request) + if (!token) return resultError('Invalid token!') + const checkUser = createFakeUserList().find(item => item.token === token) + if (!checkUser) { + return resultError('The corresponding user information was not obtained!') + } + return resultSuccess(checkUser) + } + }, + { + url: '/api/logout', + timeout: 200, + method: 'get', + response: (request: requestParams) => { + const token = getRequestToken(request) + if (!token) return resultError('Invalid token!') + const checkUser = createFakeUserList().find(item => item.token === token) + if (!checkUser) { + return resultError('Invalid token!') + } + return resultSuccess(undefined, { message: 'Token has been destroyed!' }) + } + } +] as MockMethod[] diff --git a/apps/admin/package.json b/apps/admin/package.json new file mode 100644 index 00000000..06fa6c81 --- /dev/null +++ b/apps/admin/package.json @@ -0,0 +1,101 @@ +{ + "name": "react-admin-design", + "version": "0.0.0", + "type": "module", + "scripts": { + "serve": "vite", + "build": "rimraf dist && tsc && vite build", + "preview": "vite preview", + "clean:cache": "rimraf .eslintcache && rimraf node_modules && pnpm install", + "lint:eslint": "eslint --cache --fix \"{src,mock,build}/**/*.{js,ts,tsx}\"", + "lint:prettier": "prettier --write \"src/**/*.{js,json,ts,tsx,css,less,html,md}\"", + "lint:lint-staged": "lint-staged", + "prepare": "husky install" + }, + "dependencies": { + "@ant-design/icons": "^5.2.6", + "@codemirror/view": "^6.22.0", + "@reduxjs/toolkit": "^2.0.1", + "@uiw/react-codemirror": "^4.21.20", + "@uiw/react-md-editor": "^3.25.6", + "@wangeditor/editor": "^5.1.23", + "ahooks": "^3.7.8", + "antd": "^5.11.2", + "axios": "^1.6.2", + "classnames": "^2.3.2", + "cropperjs": "^1.6.1", + "crypto-js": "^4.2.0", + "dayjs": "^1.11.10", + "echarts": "^5.4.3", + "file-saver": "^2.0.5", + "gbeata": "^1.2.5", + "immer": "^10.0.3", + "lodash-es": "^4.17.21", + "mockjs": "^1.1.0", + "react": "^18.2.0", + "react-countup": "^6.5.0", + "react-cropper": "^2.3.3", + "react-dom": "^18.2.0", + "react-org-tree": "^1.0.1", + "react-redux": "^8.1.3", + "react-rnd": "^10.4.1", + "react-router-dom": "^6.19.0", + "react-sortablejs": "^6.1.4", + "redux": "^4.2.1", + "redux-persist": "^6.0.0", + "sortablejs": "^1.15.0", + "use-immer": "^0.9.0", + "video-react": "^0.16.0", + "xlsx": "^0.18.5" + }, + "devDependencies": { + "@babel/core": "^7.23.3", + "@commitlint/cli": "^18.4.3", + "@commitlint/config-conventional": "^18.4.3", + "@types/crypto-js": "^4.2.1", + "@types/file-saver": "^2.0.7", + "@types/lodash-es": "^4.17.11", + "@types/node": "^20.9.2", + "@types/react": "^18.2.37", + "@types/react-dom": "^18.2.15", + "@types/sortablejs": "^1.15.5", + "@types/video-react": "^0.15.4", + "@typescript-eslint/eslint-plugin": "^6.11.0", + "@typescript-eslint/parser": "^6.11.0", + "@vitejs/plugin-react": "^4.2.0", + "autoprefixer": "^10.4.16", + "commitizen": "^4.3.0", + "cssnano": "^6.0.1", + "cz-git": "^1.7.1", + "esbuild": "^0.19.6", + "eslint": "^8.54.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "fast-glob": "^3.3.2", + "husky": "^8.0.3", + "less": "^4.2.0", + "lint-staged": "^15.1.0", + "postcss": "^8.4.31", + "prettier": "^3.1.0", + "rimraf": "^5.0.5", + "rollup": "^4.5.1", + "terser": "^5.24.0", + "typescript": "^5.2.2", + "vite": "4.5.0", + "vite-plugin-eslint": "^1.8.1", + "vite-plugin-mock": "2.9.8", + "vite-plugin-svg-icons": "^2.0.1" + }, + "lint-staged": { + "{src,mock,build}/**/*.{js,ts,tsx}": [ + "eslint --fix" + ] + }, + "config": { + "commitizen": { + "path": "node_modules/cz-git" + } + } +} diff --git a/apps/admin/pnpm-lock.yaml b/apps/admin/pnpm-lock.yaml new file mode 100644 index 00000000..754be048 --- /dev/null +++ b/apps/admin/pnpm-lock.yaml @@ -0,0 +1,25067 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + '@ant-design/icons': + specifier: ^5.2.6 + version: 5.2.6(react-dom@18.2.0)(react@18.2.0) + '@codemirror/view': + specifier: ^6.22.0 + version: 6.22.0 + '@reduxjs/toolkit': + specifier: ^2.0.1 + version: 2.0.1(react-redux@8.1.3)(react@18.2.0) + '@uiw/react-codemirror': + specifier: ^4.21.20 + version: 4.21.20(@babel/runtime@7.23.4)(@codemirror/autocomplete@6.11.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.22.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) + '@uiw/react-md-editor': + specifier: ^3.25.6 + version: 3.25.6(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0) + '@wangeditor/editor': + specifier: ^5.1.23 + version: 5.1.23 + ahooks: + specifier: ^3.7.8 + version: 3.7.8(react@18.2.0) + antd: + specifier: ^5.11.2 + version: 5.11.4(react-dom@18.2.0)(react@18.2.0) + axios: + specifier: ^1.6.2 + version: 1.6.2 + classnames: + specifier: ^2.3.2 + version: 2.3.2 + cropperjs: + specifier: ^1.6.1 + version: 1.6.1 + crypto-js: + specifier: ^4.2.0 + version: 4.2.0 + dayjs: + specifier: ^1.11.10 + version: 1.11.10 + echarts: + specifier: ^5.4.3 + version: 5.4.3 + file-saver: + specifier: ^2.0.5 + version: 2.0.5 + gbeata: + specifier: ^1.2.5 + version: registry.npmmirror.com/gbeata@1.2.5(@types/react@18.2.38)(antd-style@3.6.1)(antd@5.11.4)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + immer: + specifier: ^10.0.3 + version: 10.0.3 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + mockjs: + specifier: ^1.1.0 + version: 1.1.0 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-countup: + specifier: ^6.5.0 + version: 6.5.0(react@18.2.0) + react-cropper: + specifier: ^2.3.3 + version: 2.3.3(react@18.2.0) + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + react-org-tree: + specifier: ^1.0.1 + version: 1.0.1 + react-redux: + specifier: ^8.1.3 + version: 8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + react-rnd: + specifier: ^10.4.1 + version: 10.4.1(react-dom@18.2.0)(react@18.2.0) + react-router-dom: + specifier: ^6.19.0 + version: 6.20.0(react-dom@18.2.0)(react@18.2.0) + react-sortablejs: + specifier: ^6.1.4 + version: 6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0) + redux: + specifier: ^4.2.1 + version: 4.2.1 + redux-persist: + specifier: ^6.0.0 + version: 6.0.0(react@18.2.0)(redux@4.2.1) + sortablejs: + specifier: ^1.15.0 + version: 1.15.0 + use-immer: + specifier: ^0.9.0 + version: 0.9.0(immer@10.0.3)(react@18.2.0) + video-react: + specifier: ^0.16.0 + version: 0.16.0(react-dom@18.2.0)(react@18.2.0) + xlsx: + specifier: ^0.18.5 + version: 0.18.5 + +devDependencies: + '@babel/core': + specifier: ^7.23.3 + version: 7.23.3 + '@commitlint/cli': + specifier: ^18.4.3 + version: 18.4.3(typescript@5.3.2) + '@commitlint/config-conventional': + specifier: ^18.4.3 + version: 18.4.3 + '@types/crypto-js': + specifier: ^4.2.1 + version: 4.2.1 + '@types/file-saver': + specifier: ^2.0.7 + version: 2.0.7 + '@types/lodash-es': + specifier: ^4.17.11 + version: 4.17.12 + '@types/node': + specifier: ^20.9.2 + version: 20.10.0 + '@types/react': + specifier: ^18.2.37 + version: 18.2.38 + '@types/react-dom': + specifier: ^18.2.15 + version: 18.2.17 + '@types/sortablejs': + specifier: ^1.15.5 + version: 1.15.7 + '@types/video-react': + specifier: ^0.15.4 + version: 0.15.4 + '@typescript-eslint/eslint-plugin': + specifier: ^6.11.0 + version: 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': + specifier: ^6.11.0 + version: 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@vitejs/plugin-react': + specifier: ^4.2.0 + version: 4.2.0(vite@4.5.0) + autoprefixer: + specifier: ^10.4.16 + version: 10.4.16(postcss@8.4.31) + commitizen: + specifier: ^4.3.0 + version: 4.3.0(typescript@5.3.2) + cssnano: + specifier: ^6.0.1 + version: 6.0.1(postcss@8.4.31) + cz-git: + specifier: ^1.7.1 + version: 1.7.1 + esbuild: + specifier: ^0.19.6 + version: 0.19.7 + eslint: + specifier: ^8.54.0 + version: 8.54.0 + eslint-config-prettier: + specifier: ^9.0.0 + version: 9.0.0(eslint@8.54.0) + eslint-plugin-prettier: + specifier: ^5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0) + eslint-plugin-react: + specifier: ^7.33.2 + version: 7.33.2(eslint@8.54.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.54.0) + fast-glob: + specifier: ^3.3.2 + version: 3.3.2 + husky: + specifier: ^8.0.3 + version: 8.0.3 + less: + specifier: ^4.2.0 + version: 4.2.0 + lint-staged: + specifier: ^15.1.0 + version: 15.1.0 + postcss: + specifier: ^8.4.31 + version: 8.4.31 + prettier: + specifier: ^3.1.0 + version: 3.1.0 + rimraf: + specifier: ^5.0.5 + version: 5.0.5 + rollup: + specifier: ^4.5.1 + version: 4.5.2 + terser: + specifier: ^5.24.0 + version: 5.24.0 + typescript: + specifier: ^5.2.2 + version: 5.3.2 + vite: + specifier: 4.5.0 + version: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + vite-plugin-eslint: + specifier: ^1.8.1 + version: 1.8.1(eslint@8.54.0)(vite@4.5.0) + vite-plugin-mock: + specifier: 2.9.8 + version: 2.9.8(mockjs@1.1.0)(vite@4.5.0) + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: 2.0.1(vite@4.5.0) + +packages: + + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + + /@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + + /@ant-design/colors@7.0.0: + resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==} + dependencies: + '@ctrl/tinycolor': 3.6.1 + dev: false + + /@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ed2rruHMxZTVYGPec6QBZkrh00Df5K1FAufmBpONai5iGYxoxIkg1sRD8YdCw0NvPRAa4r1nJP5LbwICGHzGiQ==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': 7.23.4 + '@emotion/hash': 0.8.0 + '@emotion/unitless': 0.7.5 + classnames: 2.3.2 + csstype: 3.1.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + stylis: 4.3.0 + dev: false + + /@ant-design/icons-svg@4.3.1: + resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==} + dev: false + + /@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==} + engines: {node: '>=8'} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@ant-design/colors': 7.0.0 + '@ant-design/icons-svg': 4.3.1 + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@ant-design/react-slick@1.0.2(react@18.2.0): + resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==} + peerDependencies: + react: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + json2mq: 0.2.0 + react: 18.2.0 + resize-observer-polyfill: 1.5.1 + throttle-debounce: 5.0.0 + dev: false + + /@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.23.4 + chalk: 2.4.2 + + /@babel/compat-data@7.23.3: + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} + engines: {node: '>=6.9.0'} + + /@babel/core@7.23.3: + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 + '@babel/helper-compilation-targets': 7.22.15 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) + '@babel/helpers': 7.23.4 + '@babel/parser': 7.23.4 + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.4 + convert-source-map: 2.0.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + /@babel/generator@7.23.4: + resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + jsesc: 2.5.2 + + /@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': 7.23.3 + '@babel/helper-validator-option': 7.22.15 + browserslist: 4.22.1 + lru-cache: 5.1.1 + semver: 6.3.1 + + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/types': 7.23.4 + + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + + /@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + + /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-module-imports': 7.22.15 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/helper-validator-identifier': 7.22.20 + + /@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.4 + + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} + engines: {node: '>=6.9.0'} + + /@babel/helpers@7.23.4: + resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.15 + '@babel/traverse': 7.23.4 + '@babel/types': 7.23.4 + transitivePeerDependencies: + - supports-color + + /@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + + /@babel/parser@7.23.4: + resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.4 + + /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': 7.22.5 + dev: true + + /@babel/runtime@7.23.4: + resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.14.0 + dev: false + + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.4 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 + + /@babel/traverse@7.23.4: + resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.23.4 + '@babel/generator': 7.23.4 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + /@babel/types@7.23.4: + resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + + /@codemirror/commands@6.3.0: + resolution: {integrity: sha512-tFfcxRIlOWiQDFhjBSWJ10MxcvbCIsRr6V64SgrcaY0MwNk32cUOcCuNlWo8VjV4qRQCgNgUAnIeo0svkk4R5Q==} + dependencies: + '@codemirror/language': 6.9.2 + '@codemirror/state': 6.3.1 + '@codemirror/view': 6.22.0 + '@lezer/common': 1.1.1 + dev: false + + /@codemirror/language@6.9.2: + resolution: {integrity: sha512-QGTQXSpAKDIzaSE96zNK1UfIUhPgkT1CLjh1N5qVzZuxgsEOhz5RqaN8QCIdyOQklGLx3MgHd9YrE3X3+Pl1ow==} + dependencies: + '@codemirror/state': 6.3.1 + '@codemirror/view': 6.22.0 + '@lezer/common': 1.1.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.3.14 + style-mod: 4.1.0 + dev: false + + /@codemirror/state@6.3.1: + resolution: {integrity: sha512-88e4HhMtKJyw6fKprGaN/yZfiaoGYOi2nM45YCUC6R/kex9sxFWBDGatS1vk4lMgnWmdIIB9tk8Gj1LmL8YfvA==} + dev: false + + /@codemirror/view@6.22.0: + resolution: {integrity: sha512-6zLj4YIoIpfTGKrDMTbeZRpa8ih4EymMCKmddEDcJWrCdp/N1D46B38YEz4creTb4T177AVS9EyXkLeC/HL2jA==} + dependencies: + '@codemirror/state': 6.3.1 + style-mod: 4.1.0 + w3c-keyname: 2.2.8 + dev: false + + /@commitlint/cli@18.4.3(typescript@5.3.2): + resolution: {integrity: sha512-zop98yfB3A6NveYAZ3P1Mb6bIXuCeWgnUfVNkH4yhIMQpQfzFwseadazOuSn0OOfTt0lWuFauehpm9GcqM5lww==} + engines: {node: '>=v18'} + hasBin: true + dependencies: + '@commitlint/format': 18.4.3 + '@commitlint/lint': 18.4.3 + '@commitlint/load': 18.4.3(typescript@5.3.2) + '@commitlint/read': 18.4.3 + '@commitlint/types': 18.4.3 + execa: 5.1.1 + lodash.isfunction: 3.0.9 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - typescript + dev: true + + /@commitlint/config-conventional@18.4.3: + resolution: {integrity: sha512-729eRRaNta7JZF07qf6SAGSghoDEp9mH7yHU0m7ff0q89W97wDrWCyZ3yoV3mcQJwbhlmVmZPTkPcm7qiAu8WA==} + engines: {node: '>=v18'} + dependencies: + conventional-changelog-conventionalcommits: 7.0.2 + dev: true + + /@commitlint/config-validator@18.4.3: + resolution: {integrity: sha512-FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + ajv: 8.12.0 + dev: true + + /@commitlint/ensure@18.4.3: + resolution: {integrity: sha512-MI4fwD9TWDVn4plF5+7JUyLLbkOdzIRBmVeNlk4dcGlkrVA+/l5GLcpN66q9LkFsFv6G2X31y89ApA3hqnqIFg==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + lodash.camelcase: 4.3.0 + lodash.kebabcase: 4.1.1 + lodash.snakecase: 4.1.1 + lodash.startcase: 4.4.0 + lodash.upperfirst: 4.3.1 + dev: true + + /@commitlint/execute-rule@18.4.3: + resolution: {integrity: sha512-t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==} + engines: {node: '>=v18'} + dev: true + + /@commitlint/format@18.4.3: + resolution: {integrity: sha512-8b+ItXYHxAhRAXFfYki5PpbuMMOmXYuzLxib65z2XTqki59YDQJGpJ/wB1kEE5MQDgSTQWtKUrA8n9zS/1uIDQ==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + chalk: 4.1.2 + dev: true + + /@commitlint/is-ignored@18.4.3: + resolution: {integrity: sha512-ZseOY9UfuAI32h9w342Km4AIaTieeFskm2ZKdrG7r31+c6zGBzuny9KQhwI9puc0J3GkUquEgKJblCl7pMnjwg==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + semver: 7.5.4 + dev: true + + /@commitlint/lint@18.4.3: + resolution: {integrity: sha512-18u3MRgEXNbnYkMOWoncvq6QB8/90m9TbERKgdPqVvS+zQ/MsuRhdvHYCIXGXZxUb0YI4DV2PC4bPneBV/fYuA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/is-ignored': 18.4.3 + '@commitlint/parse': 18.4.3 + '@commitlint/rules': 18.4.3 + '@commitlint/types': 18.4.3 + dev: true + + /@commitlint/load@18.4.3(typescript@5.3.2): + resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/config-validator': 18.4.3 + '@commitlint/execute-rule': 18.4.3 + '@commitlint/resolve-extends': 18.4.3 + '@commitlint/types': 18.4.3 + '@types/node': 18.18.13 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.3.2) + cosmiconfig-typescript-loader: 5.0.0(@types/node@18.18.13)(cosmiconfig@8.3.6)(typescript@5.3.2) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - typescript + dev: true + + /@commitlint/message@18.4.3: + resolution: {integrity: sha512-ddJ7AztWUIoEMAXoewx45lKEYEOeOlBVWjk8hDMUGpprkuvWULpaXczqdjwVtjrKT3JhhN+gMs8pm5G3vB2how==} + engines: {node: '>=v18'} + dev: true + + /@commitlint/parse@18.4.3: + resolution: {integrity: sha512-eoH7CXM9L+/Me96KVcfJ27EIIbA5P9sqw3DqjJhRYuhaULIsPHFs5S5GBDCqT0vKZQDx0DgxhMpW6AQbnKrFtA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/types': 18.4.3 + conventional-changelog-angular: 7.0.0 + conventional-commits-parser: 5.0.0 + dev: true + + /@commitlint/read@18.4.3: + resolution: {integrity: sha512-H4HGxaYA6OBCimZAtghL+B+SWu8ep4X7BwgmedmqWZRHxRLcX2q0bWBtUm5FsMbluxbOfrJwOs/Z0ah4roP/GQ==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/top-level': 18.4.3 + '@commitlint/types': 18.4.3 + fs-extra: 11.1.1 + git-raw-commits: 2.0.11 + minimist: 1.2.8 + dev: true + + /@commitlint/resolve-extends@18.4.3: + resolution: {integrity: sha512-30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/config-validator': 18.4.3 + '@commitlint/types': 18.4.3 + import-fresh: 3.3.0 + lodash.mergewith: 4.6.2 + resolve-from: 5.0.0 + resolve-global: 1.0.0 + dev: true + + /@commitlint/rules@18.4.3: + resolution: {integrity: sha512-8KIeukDf45BiY+Lul1T0imSNXF0sMrlLG6JpLLKolkmYVQ6PxxoNOriwyZ3UTFFpaVbPy0rcITaV7U9JCAfDTA==} + engines: {node: '>=v18'} + dependencies: + '@commitlint/ensure': 18.4.3 + '@commitlint/message': 18.4.3 + '@commitlint/to-lines': 18.4.3 + '@commitlint/types': 18.4.3 + execa: 5.1.1 + dev: true + + /@commitlint/to-lines@18.4.3: + resolution: {integrity: sha512-fy1TAleik4Zfru1RJ8ZU6cOSvgSVhUellxd3WZV1D5RwHZETt1sZdcA4mQN2y3VcIZsUNKkW0Mq8CM9/L9harQ==} + engines: {node: '>=v18'} + dev: true + + /@commitlint/top-level@18.4.3: + resolution: {integrity: sha512-E6fJPBLPFL5R8+XUNSYkj4HekIOuGMyJo3mIx2PkYc3clel+pcWQ7TConqXxNWW4x1ugigiIY2RGot55qUq1hw==} + engines: {node: '>=v18'} + dependencies: + find-up: 5.0.0 + dev: true + + /@commitlint/types@18.4.3: + resolution: {integrity: sha512-cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==} + engines: {node: '>=v18'} + dependencies: + chalk: 4.1.2 + dev: true + + /@ctrl/tinycolor@3.6.1: + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + dev: false + + /@emotion/hash@0.8.0: + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} + dev: false + + /@emotion/unitless@0.7.5: + resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} + dev: false + + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.54.0 + eslint-visitor-keys: 3.4.3 + + /@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.23.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 2.0.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: registry.npmmirror.com/strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: registry.npmmirror.com/wrap-ansi@7.0.0 + dev: true + + /@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.20 + + /@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + engines: {node: '>=6.0.0'} + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + + /@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.20 + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + + /@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + dependencies: + '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/sourcemap-codec': 1.4.15 + + /@lezer/common@1.1.1: + resolution: {integrity: sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==} + dev: false + + /@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} + dependencies: + '@lezer/common': 1.1.1 + dev: false + + /@lezer/lr@1.3.14: + resolution: {integrity: sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==} + dependencies: + '@lezer/common': 1.1.1 + dev: false + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.15.0 + + /@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: 7.0.3 + fast-glob: 3.3.2 + is-glob: 4.0.3 + open: 9.1.0 + picocolors: 1.0.0 + tslib: 2.6.2 + dev: true + + /@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@ctrl/tinycolor': 3.6.1 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/mini-decimal@1.1.0: + resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} + engines: {node: '>=8.x'} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + /@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@reduxjs/toolkit@2.0.1(react-redux@8.1.3)(react@18.2.0): + resolution: {integrity: sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==} + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + dependencies: + immer: 10.0.3 + react: 18.2.0 + react-redux: 8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + redux: 5.0.0 + redux-thunk: 3.1.0(redux@5.0.0) + reselect: 5.0.1 + dev: false + + /@remix-run/router@1.13.0: + resolution: {integrity: sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==} + engines: {node: '>=14.0.0'} + dev: false + + /@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + + /@transloadit/prettier-bytes@0.0.7: + resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==} + dev: false + + /@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + dev: true + + /@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + dependencies: + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 + '@types/babel__generator': 7.6.7 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.4 + dev: true + + /@types/babel__generator@7.6.7: + resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} + dependencies: + '@babel/types': 7.23.4 + dev: true + + /@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + dependencies: + '@babel/parser': 7.23.4 + '@babel/types': 7.23.4 + dev: true + + /@types/babel__traverse@7.20.4: + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} + dependencies: + '@babel/types': 7.23.4 + dev: true + + /@types/crypto-js@4.2.1: + resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==} + dev: true + + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: false + + /@types/eslint@8.44.7: + resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} + dependencies: + '@types/estree': 1.0.5 + '@types/json-schema': 7.0.15 + dev: true + + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + dev: true + + /@types/event-emitter@0.3.5: + resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==} + dev: false + + /@types/file-saver@2.0.7: + resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} + dev: true + + /@types/hast@2.3.8: + resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /@types/hoist-non-react-statics@3.3.5: + resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==} + dependencies: + '@types/react': 18.2.38 + hoist-non-react-statics: 3.3.2 + dev: false + + /@types/js-cookie@2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + dev: false + + /@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: true + + /@types/lodash-es@4.17.12: + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + dependencies: + '@types/lodash': 4.14.202 + dev: true + + /@types/lodash@4.14.202: + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} + dev: true + + /@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + dev: true + + /@types/mockjs@1.0.10: + resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==} + dev: true + + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: false + + /@types/node@18.18.13: + resolution: {integrity: sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==} + dependencies: + undici-types: 5.26.5 + dev: true + + /@types/node@20.10.0: + resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==} + dependencies: + undici-types: 5.26.5 + + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + dev: true + + /@types/parse5@6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} + dev: false + + /@types/prismjs@1.26.3: + resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} + dev: false + + /@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} + + /@types/react-dom@18.2.17: + resolution: {integrity: sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==} + dependencies: + '@types/react': 18.2.38 + + /@types/react@18.2.38: + resolution: {integrity: sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==} + dependencies: + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.2 + + /@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} + + /@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + dev: true + + /@types/sortablejs@1.15.7: + resolution: {integrity: sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==} + + /@types/svgo@2.6.4: + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} + dependencies: + '@types/node': 20.10.0 + dev: true + + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: false + + /@types/use-sync-external-store@0.0.3: + resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} + dev: false + + /@types/video-react@0.15.4: + resolution: {integrity: sha512-EbBgFiHRFnKrUK7EMpQdJGf9coEcosTyEf62YTsJlNSGSbfz4ZyGHhKGWD4MfGdGWNAw9CFlP+06rWXw1VDVoQ==} + dependencies: + '@types/react': 18.2.38 + dev: true + + /@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/type-utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.12.0 + debug: 4.3.4 + eslint: 8.54.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.12.0 + debug: 4.3.4 + eslint: 8.54.0 + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager@6.12.0: + resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 + dev: true + + /@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + debug: 4.3.4 + eslint: 8.54.0 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/types@6.12.0: + resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + + /@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2): + resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.6 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + eslint: 8.54.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/visitor-keys@6.12.0: + resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.12.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@uiw/codemirror-extensions-basic-setup@4.21.20(@codemirror/autocomplete@6.11.0)(@codemirror/commands@6.3.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0): + resolution: {integrity: sha512-Wyi9q4uw0xGYd/tJ6bULG7tkCLqcUsQT0AQBfCDtnkV3LdiLU0LceTrzJoHJyIKSHsKDJxFQxa1qg3QLt4gIUA==} + peerDependencies: + '@codemirror/autocomplete': '>=6.0.0' + '@codemirror/commands': '>=6.0.0' + '@codemirror/language': '>=6.0.0' + '@codemirror/lint': '>=6.0.0' + '@codemirror/search': '>=6.0.0' + '@codemirror/state': '>=6.0.0' + '@codemirror/view': '>=6.0.0' + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.11.0(@codemirror/language@6.9.2)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0)(@lezer/common@1.1.1) + '@codemirror/commands': 6.3.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.4.2 + '@codemirror/search': registry.npmmirror.com/@codemirror/search@6.5.4 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': 6.22.0 + dev: false + + /@uiw/copy-to-clipboard@1.0.16: + resolution: {integrity: sha512-IXR+N363nLTR3ilklmM+B0nk774jVE/muOrBYt4Rdww/Pf3uP9XHyv2x6YZrbDh29F7w9BkzQyB8QF6WDShmJA==} + dev: false + + /@uiw/react-codemirror@4.21.20(@babel/runtime@7.23.4)(@codemirror/autocomplete@6.11.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.22.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PdyewPvNXnvT3JHj888yjpbWsAGw5qlxW6w1sMdsqJ0R6vPV++ob1iZXCGrM1FVpbqPK0DNfpXvjzp2gIr3lYw==} + peerDependencies: + '@babel/runtime': '>=7.11.0' + '@codemirror/state': '>=6.0.0' + '@codemirror/theme-one-dark': '>=6.0.0' + '@codemirror/view': '>=6.0.0' + codemirror: '>=6.0.0' + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@codemirror/commands': 6.3.0 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/theme-one-dark': registry.npmmirror.com/@codemirror/theme-one-dark@6.1.2 + '@codemirror/view': 6.22.0 + '@uiw/codemirror-extensions-basic-setup': 4.21.20(@codemirror/autocomplete@6.11.0)(@codemirror/commands@6.3.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0) + codemirror: registry.npmmirror.com/codemirror@6.0.1(@lezer/common@1.1.1) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@codemirror/autocomplete' + - '@codemirror/language' + - '@codemirror/lint' + - '@codemirror/search' + dev: false + + /@uiw/react-markdown-preview@4.2.2(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Jy3GtAqcF2pKgvFtgLUEwR8u2t0Yk/DAnLTl6cf1RzhNYcAxm1auDs3KndZRBDP01xhmYLX4KiOcOg/qv+Jc0A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@babel/runtime': 7.23.4 + '@uiw/copy-to-clipboard': 1.0.16 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-markdown: 8.0.7(@types/react@18.2.38)(react@18.2.0) + rehype-attr: 2.1.4 + rehype-autolink-headings: 6.1.1 + rehype-ignore: 1.0.5 + rehype-prism-plus: 1.6.3 + rehype-raw: 6.1.1 + rehype-rewrite: 3.0.6 + rehype-slug: 5.1.0 + remark-gfm: 3.0.1 + unist-util-visit: 4.1.2 + transitivePeerDependencies: + - '@types/react' + - supports-color + dev: false + + /@uiw/react-md-editor@3.25.6(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YuDv5KiM931WFYBDCyk9/HvtLdIWk9DXvzC6d1riaLufvchM7IUHkqTkSl3HqmTod1exSN+5ZsUtKZ+S+GAsug==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@babel/runtime': 7.23.4 + '@uiw/react-markdown-preview': 4.2.2(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + rehype: 12.0.1 + rehype-prism-plus: 1.6.3 + transitivePeerDependencies: + - '@types/react' + - supports-color + dev: false + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + /@uppy/companion-client@2.2.2: + resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==} + dependencies: + '@uppy/utils': 4.1.3 + namespace-emitter: 2.0.1 + dev: false + + /@uppy/core@2.3.4: + resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==} + dependencies: + '@transloadit/prettier-bytes': 0.0.7 + '@uppy/store-default': 2.1.1 + '@uppy/utils': 4.1.3 + lodash.throttle: 4.1.1 + mime-match: 1.0.2 + namespace-emitter: 2.0.1 + nanoid: 3.3.7 + preact: 10.19.2 + dev: false + + /@uppy/store-default@2.1.1: + resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==} + dev: false + + /@uppy/utils@4.1.3: + resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==} + dependencies: + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + dev: false + + /@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4): + resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==} + peerDependencies: + '@uppy/core': ^2.3.3 + dependencies: + '@uppy/companion-client': 2.2.2 + '@uppy/core': 2.3.4 + '@uppy/utils': 4.1.3 + nanoid: 3.3.7 + dev: false + + /@vitejs/plugin-react@4.2.0(vite@4.5.0): + resolution: {integrity: sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.3) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.0 + vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + transitivePeerDependencies: + - supports-color + dev: true + + /@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + is-url: 1.2.4 + lodash.throttle: 4.1.1 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + prismjs: 1.29.0 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==} + peerDependencies: + '@uppy/core': ^2.1.1 + '@uppy/xhr-upload': ^2.0.3 + dom7: ^3.0.0 + is-hotkey: ^0.2.0 + lodash.camelcase: ^4.3.0 + lodash.clonedeep: ^4.5.0 + lodash.debounce: ^4.0.8 + lodash.foreach: ^4.5.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + lodash.toarray: ^4.4.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@types/event-emitter': 0.3.5 + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + dom7: 3.0.0 + event-emitter: 0.3.5 + html-void-elements: 2.0.1 + i18next: 20.6.1 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.7 + scroll-into-view-if-needed: 2.2.31 + slate: 0.72.8 + slate-history: 0.66.0(slate@0.72.8) + snabbdom: 3.5.1 + dev: false + + /@wangeditor/editor@5.1.23: + resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==} + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + is-hotkey: 0.2.0 + lodash.camelcase: 4.3.0 + lodash.clonedeep: 4.5.0 + lodash.debounce: 4.0.8 + lodash.foreach: 4.5.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + lodash.toarray: 4.4.0 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==} + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + lodash.isequal: 4.5.0 + lodash.throttle: 4.1.1 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==} + peerDependencies: + '@uppy/core': ^2.0.3 + '@uppy/xhr-upload': ^2.0.3 + '@wangeditor/basic-modules': 1.x + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.foreach: ^4.5.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + lodash.foreach: 4.5.0 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==} + peerDependencies: + '@uppy/core': ^2.1.4 + '@uppy/xhr-upload': ^2.0.7 + '@wangeditor/core': 1.x + dom7: ^3.0.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@uppy/core': 2.3.4 + '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) + '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: 3.0.0 + nanoid: 3.3.7 + slate: 0.72.8 + snabbdom: 3.5.1 + dev: false + + /JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + dev: true + + /acorn-jsx@5.3.2(acorn@8.11.2): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.11.2 + + /acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + engines: {node: '>=0.4.0'} + hasBin: true + + /adler-32@1.3.1: + resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} + engines: {node: '>=0.8'} + dev: false + + /ahooks-v3-count@1.0.0: + resolution: {integrity: sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==} + dev: false + + /ahooks@3.7.8(react@18.2.0): + resolution: {integrity: sha512-e/NMlQWoCjaUtncNFIZk3FG1ImSkV/JhScQSkTqnftakRwdfZWSw6zzoWSG9OMYqPNs2MguDYBUFFC6THelWXA==} + engines: {node: '>=8.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.23.4 + '@types/js-cookie': 2.2.7 + ahooks-v3-count: 1.0.0 + dayjs: 1.11.10 + intersection-observer: 0.12.2 + js-cookie: 2.2.1 + lodash: 4.17.21 + react: 18.2.0 + resize-observer-polyfill: 1.5.1 + screenfull: 5.2.0 + tslib: 2.6.2 + dev: false + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.21.3 + dev: true + + /ansi-escapes@5.0.0: + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} + dependencies: + type-fest: 1.4.0 + dev: true + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} + engines: {node: '>=0.10.0'} + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /antd@5.11.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-FuaV/viyZiMlCL1JzdQpSlzPcWcBlGYDAbtj3FM4BgwAso+ge3d4tXkZZG4yZkktUoLvWrcaJObs3Nk32Oiwuw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/colors': 7.0.0 + '@ant-design/cssinjs': 1.17.5(react-dom@18.2.0)(react@18.2.0) + '@ant-design/icons': 5.2.6(react-dom@18.2.0)(react@18.2.0) + '@ant-design/react-slick': 1.0.2(react@18.2.0) + '@babel/runtime': 7.23.4 + '@ctrl/tinycolor': 3.6.1 + '@rc-component/color-picker': 1.4.1(react-dom@18.2.0)(react@18.2.0) + '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/tour': 1.10.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + copy-to-clipboard: 3.3.3 + dayjs: 1.11.10 + qrcode.react: 3.1.0(react@18.2.0) + rc-cascader: 3.20.0(react-dom@18.2.0)(react@18.2.0) + rc-checkbox: 3.1.0(react-dom@18.2.0)(react@18.2.0) + rc-collapse: 3.7.1(react-dom@18.2.0)(react@18.2.0) + rc-dialog: 9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-drawer: 6.5.2(react-dom@18.2.0)(react@18.2.0) + rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-field-form: 1.40.0(react-dom@18.2.0)(react@18.2.0) + rc-image: 7.5.1(react-dom@18.2.0)(react@18.2.0) + rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-input-number: 8.4.0(react-dom@18.2.0)(react@18.2.0) + rc-mentions: 2.9.1(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-notification: 5.3.0(react-dom@18.2.0)(react@18.2.0) + rc-pagination: 3.7.0(react-dom@18.2.0)(react@18.2.0) + rc-picker: 3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + rc-progress: 3.5.1(react-dom@18.2.0)(react@18.2.0) + rc-rate: 2.12.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-segmented: 2.2.2(react-dom@18.2.0)(react@18.2.0) + rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-slider: 10.4.0(react-dom@18.2.0)(react@18.2.0) + rc-steps: 6.0.1(react-dom@18.2.0)(react@18.2.0) + rc-switch: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-table: 7.36.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: 12.13.1(react-dom@18.2.0)(react@18.2.0) + rc-textarea: 1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-tooltip: 6.1.2(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-tree-select: 5.15.0(react-dom@18.2.0)(react@18.2.0) + rc-upload: 4.3.5(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: 3.1.0 + throttle-debounce: 5.0.0 + transitivePeerDependencies: + - date-fns + - luxon + - moment + dev: false + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + dev: true + + /arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.5 + is-array-buffer: 3.0.2 + dev: true + + /array-ify@1.0.0: + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} + dev: true + + /array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-string: 1.0.7 + dev: true + + /array-tree-filter@2.1.0: + resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + dev: true + + /array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + dev: true + + /array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-shim-unscopables: 1.0.2 + get-intrinsic: 1.2.2 + dev: true + + /arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + is-array-buffer: 3.0.2 + is-shared-array-buffer: 1.0.2 + dev: true + + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + + /assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + dev: true + + /async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + dev: false + + /asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} + dependencies: + has-symbols: 1.0.3 + dev: true + + /asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + dev: false + + /at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + dev: true + + /atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + dev: true + + /autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001564 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /axios@1.6.2: + resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} + dependencies: + follow-redirects: 1.15.3 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + dev: false + + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + dev: true + + /base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + dev: true + + /bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} + dev: false + + /big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + dev: true + + /big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + + /bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + /bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: 1.6.52 + dev: true + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001564 + electron-to-chromium: 1.4.594 + node-releases: 2.0.13 + update-browserslist-db: 1.0.13(browserslist@4.22.1) + + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + /buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + + /bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} + engines: {node: '>=12'} + dependencies: + run-applescript: 5.0.0 + dev: true + + /cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + dev: true + + /cachedir@2.3.0: + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} + dev: true + + /call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + dependencies: + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + set-function-length: 1.1.1 + dev: true + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + + /camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + dev: true + + /caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} + dependencies: + browserslist: 4.22.1 + caniuse-lite: 1.0.30001564 + lodash.memoize: 4.1.2 + lodash.uniq: 4.5.0 + dev: true + + /caniuse-lite@1.0.30001564: + resolution: {integrity: sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==} + + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + + /cfb@1.2.2: + resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} + engines: {node: '>=0.8'} + dependencies: + adler-32: 1.3.1 + crc-32: 1.2.2 + dev: false + + /chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: 2.2.1 + escape-string-regexp: 1.0.5 + has-ansi: 2.0.0 + strip-ansi: 3.0.1 + supports-color: 2.0.0 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + dev: true + + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false + + /chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + dev: true + + /chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + dev: true + + /classnames@2.3.1: + resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==} + dev: false + + /classnames@2.3.2: + resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} + dev: false + + /cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + dependencies: + restore-cursor: 3.1.0 + dev: true + + /cli-cursor@4.0.0: + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + restore-cursor: 4.0.0 + dev: true + + /cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + dev: true + + /cli-truncate@3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + + /cli-width@3.0.0: + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + dev: true + + /cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + dev: true + + /clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} + dev: true + + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + dev: false + + /codepage@1.15.0: + resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==} + engines: {node: '>=0.8'} + dev: false + + /collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: true + + /combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: 1.0.0 + dev: false + + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + + /commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + + /commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + /commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + dev: true + + /commitizen@4.3.0(typescript@5.3.2): + resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} + engines: {node: '>= 12'} + hasBin: true + dependencies: + cachedir: 2.3.0 + cz-conventional-changelog: 3.3.0(typescript@5.3.2) + dedent: 0.7.0 + detect-indent: 6.1.0 + find-node-modules: 2.1.3 + find-root: 1.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + inquirer: 8.2.5 + is-utf8: 0.2.1 + lodash: 4.17.21 + minimist: 1.2.7 + strip-bom: 4.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - typescript + dev: true + + /compare-func@2.0.0: + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + dev: true + + /component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + dev: true + + /compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} + dev: false + + /compute-scroll-into-view@3.1.0: + resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} + dev: false + + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + /connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + + /conventional-changelog-angular@7.0.0: + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-changelog-conventionalcommits@7.0.2: + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} + dependencies: + compare-func: 2.0.0 + dev: true + + /conventional-commit-types@3.0.0: + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} + dev: true + + /conventional-commits-parser@5.0.0: + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + JSONStream: 1.3.5 + is-text-path: 2.0.0 + meow: 12.1.1 + split2: 4.2.0 + dev: true + + /convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + /copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + dependencies: + is-what: 3.14.1 + dev: true + + /copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + dev: true + + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + + /cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + dev: true + + /cosmiconfig-typescript-loader@5.0.0(@types/node@18.18.13)(cosmiconfig@8.3.6)(typescript@5.3.2): + resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} + engines: {node: '>=v16'} + peerDependencies: + '@types/node': '*' + cosmiconfig: '>=8.2' + typescript: '>=4' + dependencies: + '@types/node': 18.18.13 + cosmiconfig: 8.3.6(typescript@5.3.2) + jiti: 1.21.0 + typescript: 5.3.2 + dev: true + + /cosmiconfig@8.3.6(typescript@5.3.2): + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + path-type: 4.0.0 + typescript: 5.3.2 + dev: true + + /countup.js@2.8.0: + resolution: {integrity: sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==} + dev: false + + /crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + dev: false + + /cropperjs@1.6.1: + resolution: {integrity: sha512-F4wsi+XkDHCOMrHMYjrTEE4QBOrsHHN5/2VsVAaRq8P7E5z7xQpT75S+f/9WikmBEailas3+yo+6zPIomW+NOA==} + dev: false + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + dev: false + + /css-declaration-sorter@6.4.1(postcss@8.4.31): + resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: 8.4.31 + dev: true + + /css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 4.3.1 + domutils: 2.8.0 + nth-check: 2.1.1 + dev: true + + /css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + dev: true + + /css-selector-parser@1.4.1: + resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} + dev: false + + /css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: 2.0.14 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: true + + /css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: true + + /css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: true + + /css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + dev: true + + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /cssnano-preset-default@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.4.31) + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-calc: 9.0.1(postcss@8.4.31) + postcss-colormin: 6.0.0(postcss@8.4.31) + postcss-convert-values: 6.0.0(postcss@8.4.31) + postcss-discard-comments: 6.0.0(postcss@8.4.31) + postcss-discard-duplicates: 6.0.0(postcss@8.4.31) + postcss-discard-empty: 6.0.0(postcss@8.4.31) + postcss-discard-overridden: 6.0.0(postcss@8.4.31) + postcss-merge-longhand: 6.0.0(postcss@8.4.31) + postcss-merge-rules: 6.0.1(postcss@8.4.31) + postcss-minify-font-values: 6.0.0(postcss@8.4.31) + postcss-minify-gradients: 6.0.0(postcss@8.4.31) + postcss-minify-params: 6.0.0(postcss@8.4.31) + postcss-minify-selectors: 6.0.0(postcss@8.4.31) + postcss-normalize-charset: 6.0.0(postcss@8.4.31) + postcss-normalize-display-values: 6.0.0(postcss@8.4.31) + postcss-normalize-positions: 6.0.0(postcss@8.4.31) + postcss-normalize-repeat-style: 6.0.0(postcss@8.4.31) + postcss-normalize-string: 6.0.0(postcss@8.4.31) + postcss-normalize-timing-functions: 6.0.0(postcss@8.4.31) + postcss-normalize-unicode: 6.0.0(postcss@8.4.31) + postcss-normalize-url: 6.0.0(postcss@8.4.31) + postcss-normalize-whitespace: 6.0.0(postcss@8.4.31) + postcss-ordered-values: 6.0.0(postcss@8.4.31) + postcss-reduce-initial: 6.0.0(postcss@8.4.31) + postcss-reduce-transforms: 6.0.0(postcss@8.4.31) + postcss-svgo: 6.0.0(postcss@8.4.31) + postcss-unique-selectors: 6.0.0(postcss@8.4.31) + dev: true + + /cssnano-utils@4.0.0(postcss@8.4.31): + resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /cssnano@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 6.0.1(postcss@8.4.31) + lilconfig: 2.1.0 + postcss: 8.4.31 + dev: true + + /csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} + engines: {node: '>=8.0.0'} + dependencies: + css-tree: 1.1.3 + dev: true + + /csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + dev: true + + /csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + + /cz-conventional-changelog@3.3.0(typescript@5.3.2): + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} + dependencies: + chalk: 2.4.2 + commitizen: 4.3.0(typescript@5.3.2) + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.5 + optionalDependencies: + '@commitlint/load': registry.npmmirror.com/@commitlint/load@18.4.3(typescript@5.3.2) + transitivePeerDependencies: + - typescript + dev: true + + /cz-git@1.7.1: + resolution: {integrity: sha512-NMe4REukCS7op1YA1jixRXOgII8Um2/Ii8TeyFEOISgp2ZzeobzkMOP8dXSrTQ3bvmm7YpPOdr2301yJkOJcbA==} + engines: {node: '>=v12.20.0'} + dev: true + + /d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} + dependencies: + es5-ext: 0.10.62 + type: 1.2.0 + dev: false + + /dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + dev: true + + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + dev: false + + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: true + + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + requiresBuild: true + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + optional: true + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + + /decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false + + /decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + dev: true + + /dedent@0.7.0: + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dev: true + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + /default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + dev: true + + /default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} + engines: {node: '>=14.16'} + dependencies: + bundle-name: 3.0.0 + default-browser-id: 3.0.0 + execa: 7.2.0 + titleize: 3.0.0 + dev: true + + /defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + dependencies: + clone: 1.0.4 + dev: true + + /define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + dev: true + + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.1 + object-keys: 1.1.1 + dev: true + + /define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 0.1.7 + dev: true + + /define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + dev: true + + /define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + dev: true + + /delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + dev: false + + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: false + + /detect-file@1.0.0: + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} + dev: true + + /detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + dev: true + + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} + hasBin: true + dev: false + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + + /dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} + dependencies: + domelementtype: 2.3.0 + entities: 2.2.0 + dev: true + + /dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} + dependencies: + domelementtype: 2.3.0 + domhandler: 4.3.1 + entities: 2.2.0 + dev: true + + /dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + dev: true + + /dom7@3.0.0: + resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==} + dependencies: + ssr-window: 3.0.0 + dev: false + + /domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} + dev: true + + /domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + dev: true + + /domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} + dependencies: + domelementtype: 1.3.1 + dev: true + + /domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.3.0 + dev: true + + /domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} + dependencies: + dom-serializer: 0.2.2 + domelementtype: 1.3.1 + dev: true + + /domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} + dependencies: + dom-serializer: 1.4.1 + domelementtype: 2.3.0 + domhandler: 4.3.1 + dev: true + + /domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dev: true + + /dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dependencies: + is-obj: 2.0.0 + dev: true + + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /echarts@5.4.3: + resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==} + dependencies: + tslib: 2.3.0 + zrender: 5.4.4 + dev: false + + /ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + dev: true + + /electron-to-chromium@1.4.594: + resolution: {integrity: sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==} + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + + /emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + dev: true + + /entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} + dev: true + + /entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + dev: true + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: 1.0.0 + arraybuffer.prototype.slice: 1.0.2 + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + es-set-tostringtag: 2.0.2 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.2 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + internal-slot: 1.0.6 + is-array-buffer: 3.0.2 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.12 + is-weakref: 1.0.2 + object-inspect: 1.13.1 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.1 + safe-array-concat: 1.0.1 + safe-regex-test: 1.0.0 + string.prototype.trim: 1.2.8 + string.prototype.trimend: 1.0.7 + string.prototype.trimstart: 1.0.7 + typed-array-buffer: 1.0.0 + typed-array-byte-length: 1.0.0 + typed-array-byte-offset: 1.0.0 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.13 + dev: true + + /es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} + dependencies: + asynciterator.prototype: 1.0.0 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-set-tostringtag: 2.0.2 + function-bind: 1.1.2 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + has-property-descriptors: 1.0.1 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + iterator.prototype: 1.1.2 + safe-array-concat: 1.0.1 + dev: true + + /es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + has-tostringtag: 1.0.0 + hasown: 2.0.0 + dev: true + + /es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + dependencies: + hasown: 2.0.0 + dev: true + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /es5-ext@0.10.62: + resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: 2.0.3 + es6-symbol: 3.1.3 + next-tick: 1.1.0 + dev: false + + /es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + es6-symbol: 3.1.3 + dev: false + + /es6-symbol@3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} + dependencies: + d: 1.0.1 + ext: 1.7.0 + dev: false + + /esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.14.54 + esbuild-android-64: registry.npmmirror.com/esbuild-android-64@0.14.54 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64@0.14.54 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64@0.14.54 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64@0.14.54 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64@0.14.54 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32@0.14.54 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64@0.14.54 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm@0.14.54 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64@0.14.54 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le@0.14.54 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64@0.14.54 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x@0.14.54 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64@0.14.54 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64@0.14.54 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64@0.14.54 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32@0.14.54 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64@0.14.54 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64@0.14.54 + dev: true + + /esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.18.20 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.18.20 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.18.20 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.18.20 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.18.20 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.18.20 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.18.20 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.18.20 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.18.20 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.18.20 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.18.20 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.18.20 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.18.20 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.18.20 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.18.20 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.18.20 + dev: true + + /esbuild@0.19.7: + resolution: {integrity: sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.19.7 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.19.7 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.19.7 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.19.7 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.19.7 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.7 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.19.7 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.19.7 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.19.7 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.19.7 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.19.7 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.19.7 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.19.7 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.19.7 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.19.7 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.19.7 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.19.7 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.19.7 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.19.7 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.19.7 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.19.7 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.19.7 + + /escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + + /escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + dev: false + + /eslint-config-prettier@9.0.0(eslint@8.54.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.54.0 + dev: true + + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0): + resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.54.0 + eslint-config-prettier: 9.0.0(eslint@8.54.0) + prettier: 3.1.0 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.54.0 + dev: true + + /eslint-plugin-react@7.33.2(eslint@8.54.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.7 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.2 + doctrine: 2.1.0 + es-iterator-helpers: 1.0.15 + eslint: 8.54.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.7 + object.fromentries: 2.0.7 + object.hasown: 1.1.3 + object.values: 1.1.7 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.10 + dev: true + + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) + '@eslint-community/regexpp': 4.10.0 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.54.0 + '@humanwhocodes/config-array': 0.11.13 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.23.0 + graphemer: 1.4.0 + ignore: 5.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.11.2 + acorn-jsx: 5.3.2(acorn@8.11.2) + eslint-visitor-keys: 3.4.3 + + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + /etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + dev: true + + /event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} + dependencies: + d: 1.0.1 + es5-ext: 0.10.62 + dev: false + + /eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + dev: true + + /execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + dev: true + + /execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 4.3.1 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 3.0.7 + strip-final-newline: 3.0.0 + dev: true + + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.1.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + dev: true + + /expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /expand-tilde@2.0.2: + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: 1.0.3 + dev: true + + /ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} + dependencies: + type: 2.7.2 + dev: false + + /extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: 0.1.1 + dev: true + + /extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + dev: true + + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + + /external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + dev: true + + /extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + /fast-memoize@2.5.2: + resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} + dev: false + + /fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + dependencies: + reusify: 1.0.4 + + /figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.2.0 + + /file-saver@2.0.5: + resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} + dev: false + + /fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /find-node-modules@2.1.3: + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} + dependencies: + findup-sync: 4.0.0 + merge: 2.1.1 + dev: true + + /find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + dev: true + + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + /findup-sync@4.0.0: + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} + dependencies: + detect-file: 1.0.0 + is-glob: 4.0.3 + micromatch: 4.0.5 + resolve-dir: 1.0.1 + dev: true + + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.9 + keyv: 4.5.4 + rimraf: 3.0.2 + + /flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + + /follow-redirects@1.15.3: + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + dev: true + + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + + /frac@1.1.2: + resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==} + engines: {node: '>=0.8'} + dev: false + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + + /fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + dependencies: + map-cache: 0.2.2 + dev: true + + /fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + /get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + dev: true + + /get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + dependencies: + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.0 + dev: true + + /get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + dev: true + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + dev: true + + /git-raw-commits@2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + dargs: 7.0.0 + lodash: 4.17.21 + meow: 8.1.2 + split2: 3.2.2 + through2: 4.0.2 + dev: true + + /github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} + engines: {node: '>=4'} + dependencies: + ini: 1.3.8 + dev: true + + /global-modules@1.0.0: + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: 1.0.2 + is-windows: 1.0.2 + resolve-dir: 1.0.1 + dev: true + + /global-prefix@1.0.2: + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + homedir-polyfill: 1.0.3 + ini: 1.3.8 + is-windows: 1.0.2 + which: 1.3.1 + dev: true + + /globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + /globals@13.23.0: + resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.1 + dev: true + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.0 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + + /graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + + /has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 + dev: true + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + + /has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} + engines: {node: '>=0.10.0'} + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} + dependencies: + get-intrinsic: 1.2.2 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + dev: true + + /has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + dev: true + + /has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + dev: true + + /has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + dev: true + + /hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + + /hast-util-from-parse5@7.1.2: + resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} + dependencies: + '@types/hast': 2.3.8 + '@types/unist': 2.0.10 + hastscript: 7.2.0 + property-information: 6.4.0 + vfile: 5.3.7 + vfile-location: 4.1.0 + web-namespaces: 2.0.1 + dev: false + + /hast-util-has-property@2.0.1: + resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==} + dev: false + + /hast-util-heading-rank@2.1.1: + resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==} + dependencies: + '@types/hast': 2.3.8 + dev: false + + /hast-util-is-element@2.1.3: + resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==} + dependencies: + '@types/hast': 2.3.8 + '@types/unist': 2.0.10 + dev: false + + /hast-util-parse-selector@3.1.1: + resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} + dependencies: + '@types/hast': 2.3.8 + dev: false + + /hast-util-raw@7.2.3: + resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} + dependencies: + '@types/hast': 2.3.8 + '@types/parse5': 6.0.3 + hast-util-from-parse5: 7.1.2 + hast-util-to-parse5: 7.1.0 + html-void-elements: 2.0.1 + parse5: 6.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-select@5.0.5: + resolution: {integrity: sha512-QQhWMhgTFRhCaQdgTKzZ5g31GLQ9qRb1hZtDPMqQaOhpLBziWcshUS0uCR5IJ0U1jrK/mxg35fmcq+Dp/Cy2Aw==} + dependencies: + '@types/hast': 2.3.8 + '@types/unist': 2.0.10 + bcp-47-match: 2.0.3 + comma-separated-tokens: 2.0.3 + css-selector-parser: 1.4.1 + direction: 2.0.1 + hast-util-has-property: 2.0.1 + hast-util-to-string: 2.0.0 + hast-util-whitespace: 2.0.1 + not: 0.1.0 + nth-check: 2.1.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: false + + /hast-util-to-html@8.0.4: + resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} + dependencies: + '@types/hast': 2.3.8 + '@types/unist': 2.0.10 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-raw: 7.2.3 + hast-util-whitespace: 2.0.1 + html-void-elements: 2.0.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.3 + zwitch: 2.0.4 + dev: false + + /hast-util-to-parse5@7.1.0: + resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} + dependencies: + '@types/hast': 2.3.8 + comma-separated-tokens: 2.0.3 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + dev: false + + /hast-util-to-string@2.0.0: + resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} + dependencies: + '@types/hast': 2.3.8 + dev: false + + /hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + dev: false + + /hastscript@7.2.0: + resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} + dependencies: + '@types/hast': 2.3.8 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 3.1.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + dev: false + + /he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + dev: true + + /hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + dependencies: + react-is: 16.13.1 + dev: false + + /homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: 1.0.0 + dev: true + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + dependencies: + lru-cache: 6.0.0 + dev: true + + /html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + dev: false + + /htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} + dependencies: + domelementtype: 1.3.1 + domhandler: 2.4.2 + domutils: 1.7.0 + entities: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + dev: true + + /human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + + /human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} + dev: true + + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + dev: true + + /husky@8.0.3: + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} + hasBin: true + dev: true + + /i18next@20.6.1: + resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + /iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: 2.1.2 + dev: true + + /iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + requiresBuild: true + dependencies: + safer-buffer: 2.1.2 + optional: true + + /ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + dev: true + + /ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + engines: {node: '>= 4'} + + /image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + dev: true + + /immer@10.0.3: + resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} + dev: false + + /immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} + dev: false + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + dev: true + + /inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + dev: false + + /inquirer@8.2.5: + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 7.0.0 + dev: true + + /internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.2 + hasown: 2.0.0 + side-channel: 1.0.4 + dev: true + + /intersection-observer@0.12.2: + resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} + dev: false + + /is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + dependencies: + hasown: 2.0.0 + dev: true + + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false + + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: false + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: true + + /is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: true + + /is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} + engines: {node: '>=4'} + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.0 + dev: true + + /is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + dependencies: + hasown: 2.0.0 + dev: true + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + + /is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + dev: true + + /is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + dev: true + + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: true + + /is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + dev: true + + /is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: 2.0.4 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false + + /is-hotkey@0.2.0: + resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} + dev: false + + /is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: true + + /is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + dev: true + + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-obj@2.0.0: + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} + dev: true + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + + /is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + dev: false + + /is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + dev: false + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + has-tostringtag: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + + /is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-text-path@2.0.0: + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} + dependencies: + text-extensions: 2.4.0 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.13 + dev: true + + /is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + dev: true + + /is-url@1.2.4: + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} + dev: false + + /is-utf8@0.2.1: + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.5 + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + dev: true + + /is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + dev: true + + /is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + dev: true + + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + dependencies: + isarray: 1.0.0 + dev: true + + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + dev: true + + /iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.4 + set-function-name: 2.0.1 + dev: true + + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': registry.npmmirror.com/@pkgjs/parseargs@0.11.0 + dev: true + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + dev: true + + /js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + dev: true + + /js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + dev: false + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + /json2mq@0.2.0: + resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} + dependencies: + string-convert: 0.2.1 + dev: false + + /json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + dependencies: + minimist: 1.2.8 + dev: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: true + + /jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + dev: true + + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.7 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.1.7 + dev: true + + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + dependencies: + json-buffer: 3.0.1 + + /kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: 1.1.6 + dev: true + + /kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} + engines: {node: '>=0.10.0'} + dev: true + + /kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + dev: true + + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: false + + /less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.6.2 + optionalDependencies: + errno: registry.npmmirror.com/errno@0.1.8 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + image-size: registry.npmmirror.com/image-size@0.5.5 + make-dir: registry.npmmirror.com/make-dir@2.1.0 + mime: registry.npmmirror.com/mime@1.6.0 + needle: registry.npmmirror.com/needle@3.2.0 + source-map: registry.npmmirror.com/source-map@0.6.1 + transitivePeerDependencies: + - supports-color + dev: true + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lint-staged@15.1.0: + resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==} + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + chalk: 5.3.0 + commander: 11.1.0 + debug: 4.3.4 + execa: 8.0.1 + lilconfig: 2.1.0 + listr2: 7.0.2 + micromatch: 4.0.5 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.3.4 + transitivePeerDependencies: + - supports-color + dev: true + + /listr2@7.0.2: + resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} + engines: {node: '>=16.0.0'} + dependencies: + cli-truncate: 3.1.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 5.0.1 + rfdc: 1.3.0 + wrap-ansi: 8.1.0 + dev: true + + /loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.2 + dev: true + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + + /lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false + + /lodash.camelcase@4.3.0: + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + + /lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} + dev: false + + /lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + dev: false + + /lodash.foreach@4.5.0: + resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} + dev: false + + /lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + dev: false + + /lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + dev: true + + /lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + + /lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + dev: true + + /lodash.map@4.6.0: + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} + dev: true + + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + /lodash.mergewith@4.6.2: + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + dev: true + + /lodash.snakecase@4.1.1: + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} + dev: true + + /lodash.startcase@4.4.0: + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + dev: true + + /lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} + dev: false + + /lodash.toarray@4.4.0: + resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==} + dev: false + + /lodash.uniq@4.5.0: + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + dev: true + + /lodash.upperfirst@4.3.1: + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} + dev: true + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + /log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + dev: true + + /log-update@5.0.1: + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + ansi-escapes: 5.0.0 + cli-cursor: 4.0.0 + slice-ansi: 5.0.0 + strip-ansi: 7.1.0 + wrap-ansi: 8.1.0 + dev: true + + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false + + /longest@2.0.1: + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} + engines: {node: '>=0.10.0'} + dev: true + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lru-cache@10.1.0: + resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} + engines: {node: 14 || >=16.14} + dev: true + + /lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + + /map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + dependencies: + object-visit: 1.0.1 + dev: true + + /markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + dev: false + + /mdast-util-definitions@5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-find-and-replace@2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + dependencies: + '@types/mdast': 3.0.15 + escape-string-regexp: 5.0.0 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + decode-named-character-reference: 1.0.2 + mdast-util-to-string: 3.2.0 + micromark: 3.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-decode-string: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + unist-util-stringify-position: 3.0.3 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-autolink-literal@1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + dependencies: + '@types/mdast': 3.0.15 + ccount: 2.0.1 + mdast-util-find-and-replace: 2.2.2 + micromark-util-character: 1.2.0 + dev: false + + /mdast-util-gfm-footnote@1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + micromark-util-normalize-identifier: 1.1.0 + dev: false + + /mdast-util-gfm-strikethrough@1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm-table@1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + dependencies: + '@types/mdast': 3.0.15 + markdown-table: 3.0.3 + mdast-util-from-markdown: 1.3.1 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-gfm-task-list-item@1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-to-markdown: 1.5.0 + dev: false + + /mdast-util-gfm@2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + dependencies: + mdast-util-from-markdown: 1.3.1 + mdast-util-gfm-autolink-literal: 1.0.3 + mdast-util-gfm-footnote: 1.0.2 + mdast-util-gfm-strikethrough: 1.0.3 + mdast-util-gfm-table: 1.0.7 + mdast-util-gfm-task-list-item: 1.0.2 + mdast-util-to-markdown: 1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + dependencies: + '@types/mdast': 3.0.15 + unist-util-is: 5.2.1 + dev: false + + /mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + dependencies: + '@types/hast': 2.3.8 + '@types/mdast': 3.0.15 + mdast-util-definitions: 5.1.2 + micromark-util-sanitize-uri: 1.2.0 + trim-lines: 3.0.1 + unist-util-generated: 2.0.1 + unist-util-position: 4.0.4 + unist-util-visit: 4.1.2 + dev: false + + /mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + dependencies: + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 + longest-streak: 3.1.0 + mdast-util-phrasing: 3.0.1 + mdast-util-to-string: 3.2.0 + micromark-util-decode-string: 1.1.0 + unist-util-visit: 4.1.2 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + dependencies: + '@types/mdast': 3.0.15 + dev: false + + /mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + dev: true + + /mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: true + + /mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: true + + /meow@12.1.1: + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} + dev: true + + /meow@8.1.2: + resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} + engines: {node: '>=10'} + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + dev: true + + /merge-options@1.0.1: + resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==} + engines: {node: '>=4'} + dependencies: + is-plain-obj: 1.1.0 + dev: true + + /merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /merge@2.1.1: + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + dev: true + + /micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-factory-destination: 1.1.0 + micromark-factory-label: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-factory-title: 1.1.0 + micromark-factory-whitespace: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-html-tag-name: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-autolink-literal@1.0.5: + resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-gfm-footnote@1.1.2: + resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + dependencies: + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-strikethrough@1.0.7: + resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-classify-character: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-table@1.0.7: + resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm-tagfilter@1.0.2: + resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-extension-gfm-task-list-item@1.0.5: + resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-extension-gfm@2.0.3: + resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + dependencies: + micromark-extension-gfm-autolink-literal: 1.0.5 + micromark-extension-gfm-footnote: 1.1.2 + micromark-extension-gfm-strikethrough: 1.0.7 + micromark-extension-gfm-table: 1.0.7 + micromark-extension-gfm-tagfilter: 1.0.2 + micromark-extension-gfm-task-list-item: 1.0.5 + micromark-util-combine-extensions: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + dependencies: + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + dependencies: + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 1.2.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + dev: false + + /micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + dev: false + + /micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + dependencies: + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + dependencies: + micromark-util-types: 1.1.0 + dev: false + + /micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + dependencies: + micromark-util-character: 1.2.0 + micromark-util-encode: 1.1.0 + micromark-util-symbol: 1.1.0 + dev: false + + /micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + dependencies: + micromark-util-chunked: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + dev: false + + /micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + dev: false + + /micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + dev: false + + /micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + micromark-core-commonmark: 1.1.0 + micromark-factory-space: 1.1.0 + micromark-util-character: 1.2.0 + micromark-util-chunked: 1.1.0 + micromark-util-combine-extensions: 1.1.0 + micromark-util-decode-numeric-character-reference: 1.1.0 + micromark-util-encode: 1.1.0 + micromark-util-normalize-identifier: 1.1.0 + micromark-util-resolve-all: 1.1.0 + micromark-util-sanitize-uri: 1.2.0 + micromark-util-subtokenize: 1.1.0 + micromark-util-symbol: 1.1.0 + micromark-util-types: 1.1.0 + uvu: 0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + /micromatch@3.1.0: + resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 1.0.0 + extend-shallow: 2.0.1 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 5.1.0 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + + /mime-match@1.0.2: + resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} + dependencies: + wildcard: 1.1.2 + dev: false + + /mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false + + /mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + + /mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + dev: true + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + + /minimist@1.2.7: + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + dev: true + + /minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + dev: true + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + + /mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + dev: true + + /mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} + hasBin: true + dependencies: + commander: 11.1.0 + + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + dev: false + + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: true + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + requiresBuild: true + optional: true + + /mute-stream@0.0.8: + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + dev: true + + /namespace-emitter@2.0.1: + resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} + dev: false + + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + /nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + /next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} + dev: false + + /node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.13.1 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + + /not@0.1.0: + resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} + dev: false + + /npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + + /npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + dev: true + + /nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + dependencies: + boolbase: 1.0.0 + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + /object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + dev: true + + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} + dependencies: + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + dependencies: + isobject: 3.0.1 + dev: true + + /object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + dependencies: + ee-first: 1.1.1 + dev: true + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + + /onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + dependencies: + mimic-fn: 4.0.0 + dev: true + + /open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} + engines: {node: '>=14.16'} + dependencies: + default-browser: 4.0.0 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 2.2.0 + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + + /ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + dev: true + + /os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + dev: true + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + dependencies: + '@types/unist': 2.0.10 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: false + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.23.4 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + dev: true + + /parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + dev: false + + /parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} + dev: true + + /parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + dev: false + + /parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + dev: true + + /pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + dev: true + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.1.0 + minipass: 7.0.4 + dev: true + + /path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: true + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} + dev: true + + /picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + + /pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + requiresBuild: true + optional: true + + /posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + dev: true + + /postcss-calc@9.0.1(postcss@8.4.31): + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-colormin@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-convert-values@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-discard-comments@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-discard-duplicates@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-discard-empty@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-discard-overridden@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-merge-longhand@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + stylehacks: 6.0.0(postcss@8.4.31) + dev: true + + /postcss-merge-rules@6.0.1(postcss@8.4.31): + resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-minify-font-values@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-gradients@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-params@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-minify-selectors@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-normalize-charset@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + dev: true + + /postcss-normalize-display-values@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-positions@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-repeat-style@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-string@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-timing-functions@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-unicode@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-url@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-normalize-whitespace@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-ordered-values@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-utils: 4.0.0(postcss@8.4.31) + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-prefix-selector@1.16.0(postcss@5.2.18): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: 5.2.18 + dev: true + + /postcss-reduce-initial@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + caniuse-api: 3.0.0 + postcss: 8.4.31 + dev: true + + /postcss-reduce-transforms@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + dev: true + + /postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-svgo@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-value-parser: 4.2.0 + svgo: 3.0.4 + dev: true + + /postcss-unique-selectors@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + + /postcss@5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} + engines: {node: '>=0.12'} + dependencies: + chalk: 1.1.3 + js-base64: 2.6.4 + source-map: registry.npmmirror.com/source-map@0.5.7 + supports-color: 3.2.3 + dev: true + + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: 3.3.7 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /posthtml-parser@0.2.1: + resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} + dependencies: + htmlparser2: 3.10.1 + isobject: 2.1.0 + dev: true + + /posthtml-rename-id@1.0.12: + resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==} + dependencies: + escape-string-regexp: 1.0.5 + dev: true + + /posthtml-render@1.4.0: + resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==} + engines: {node: '>=10'} + dev: true + + /posthtml-svg-mode@1.0.3: + resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==} + dependencies: + merge-options: 1.0.1 + posthtml: 0.9.2 + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /posthtml@0.9.2: + resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==} + engines: {node: '>=0.10.0'} + dependencies: + posthtml-parser: 0.2.1 + posthtml-render: 1.4.0 + dev: true + + /preact@10.19.2: + resolution: {integrity: sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg==} + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + /prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + dependencies: + fast-diff: 1.3.0 + dev: true + + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} + engines: {node: '>=14'} + hasBin: true + + /prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + dev: false + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + /property-information@6.4.0: + resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} + dev: false + + /proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + dev: false + + /prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + requiresBuild: true + optional: true + + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + /qrcode.react@3.1.0(react@18.2.0): + resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} + engines: {node: '>=0.10.0'} + dependencies: + object-assign: 4.1.1 + strict-uri-encode: 1.1.0 + dev: true + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + + /rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + array-tree-filter: 2.1.0 + classnames: 2.3.2 + rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==} + peerDependencies: + react: '>=16.11.0' + react-dom: '>=16.11.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-field-form@1.40.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OM3N01X2BYFGJDJcwpk9/BBtlwgveE7eh2SQAKIxVCt9KVWlODYJ9ypTHQdxchfDbeJKJKxMBFXlLAmyvlgPHg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + async-validator: 4.2.5 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-dialog: 9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/mini-decimal': 1.1.0 + classnames: 2.3.2 + rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-/HjTaKi8/Ts4zNbYaB5oWCquxFyFQO4Co1MnMgoCeGJlpe7k8Eir2HN0a0F9IHDmmo+GYiGgPpz7w/d/krzsJA==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-textarea: 1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-pagination@3.7.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IxSzKapd13L91/195o1TPkKnCNw8gIR25UP1GCW/7c7n/slhld4npu2j2PB9IWjXm4SssaAaSAt2lscYog7wzg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==} + engines: {node: '>=8.x'} + peerDependencies: + date-fns: '>= 2.x' + dayjs: '>= 1.x' + luxon: '>= 3.x' + moment: '>= 2.x' + react: '>=16.9.0' + react-dom: '>=16.9.0' + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + dayjs: 1.11.10 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + resize-observer-polyfill: 1.5.1 + dev: false + + /rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==} + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-slider@10.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ZlpWjFhOlEf0w4Ng31avFBkXNNBj60NAcTPaIoiCxBkJ29wOtHSPMqv9PZeEoqmx64bpJkgK7kPa47HG4LPzww==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3xVcdCC5OLeOOhaCg+5Lps2oPreM/GWXmUXWTSX4p6vF7F76ABM4dfPpMJ9Dnf5yGRyh+8pe7FRyhRVnWw2H/w==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/context': 1.4.0(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-83u3l2QkO0UznCzdBLEk9WnNcT+imtmDmMT993sUUEOGnNQAmqOdev0XjeqrcvsAMe9CDpAWDFd7L/RZw+LVJQ==} + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-oH682ghHx++stFNYrosPRBfwsypywrTXpaD0/5Z8MPkUOnyOQUaY9ueL9tMu6BP1LfsuYQ1VLpg5OtshViLNgA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: 2.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==} + engines: {node: '>=10.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': 7.23.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.2.0 + dev: false + + /rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==} + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /re-resizable@6.9.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-0xYKS5+Z0zk+vICQlcZW+g54CcJTTmHluA7JUUgvERDxnKAnytylcyPsA+BSFi759s5hPlHmBRegFrwXs2FuBQ==} + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + dependencies: + fast-memoize: 2.5.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-countup@6.5.0(react@18.2.0): + resolution: {integrity: sha512-26JFHbUHsHxu8SetkJwWVIUEkaNnrj4P9msxNGC8tS4hGr1bngRzbwtJYOgXD2G/ItjaKJ3JfYKd85sw7qRVeA==} + peerDependencies: + react: '>= 16.3.0' + dependencies: + countup.js: 2.8.0 + react: 18.2.0 + dev: false + + /react-cropper@2.3.3(react@18.2.0): + resolution: {integrity: sha512-zghiEYkUb41kqtu+2jpX2Ntigf+Jj1dF9ew4lAobPzI2adaPE31z0p+5TcWngK6TvmWQUwK3lj4G+NDh1PDQ1w==} + peerDependencies: + react: '>=17.0.2' + dependencies: + cropperjs: 1.6.1 + react: 18.2.0 + dev: false + + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: false + + /react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + dependencies: + clsx: 1.2.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + /react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} + dev: false + + /react-markdown@8.0.7(@types/react@18.2.38)(react@18.2.0): + resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' + dependencies: + '@types/hast': 2.3.8 + '@types/prop-types': 15.7.11 + '@types/react': 18.2.38 + '@types/unist': 2.0.10 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 2.0.1 + prop-types: 15.8.1 + property-information: 6.4.0 + react: 18.2.0 + react-is: 18.2.0 + remark-parse: 10.0.2 + remark-rehype: 10.1.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unified: 10.1.2 + unist-util-visit: 4.1.2 + vfile: 5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + /react-org-tree@1.0.1: + resolution: {integrity: sha512-NK1d8VIAzxJyMC/Rx9MupAusoFnokYr81Hw3oEpqxqBLQmpBVAexjvPSAJmhCmsom9Zymu+BMNrjRw5D54n7aw==} + dependencies: + classnames: 2.3.2 + dev: false + + /react-redux@8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1): + resolution: {integrity: sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==} + peerDependencies: + '@types/react': ^16.8 || ^17.0 || ^18.0 + '@types/react-dom': ^16.8 || ^17.0 || ^18.0 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + react-native: '>=0.59' + redux: ^4 || ^5.0.0-beta.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + react-dom: + optional: true + react-native: + optional: true + redux: + optional: true + dependencies: + '@babel/runtime': 7.23.4 + '@types/hoist-non-react-statics': 3.3.5 + '@types/react': 18.2.38 + '@types/react-dom': 18.2.17 + '@types/use-sync-external-store': 0.0.3 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: 18.2.0 + redux: 4.2.1 + use-sync-external-store: 1.2.0(react@18.2.0) + dev: false + + /react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + engines: {node: '>=0.10.0'} + dev: true + + /react-rnd@10.4.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-0m887AjQZr6p2ADLNnipquqsDq4XJu/uqVqI3zuoGD19tRm6uB83HmZWydtkilNp5EWsOHbLGF4IjWMdd5du8Q==} + peerDependencies: + react: '>=16.3.0' + react-dom: '>=16.3.0' + dependencies: + re-resizable: 6.9.6(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-draggable: 4.4.5(react-dom@18.2.0)(react@18.2.0) + tslib: 2.3.1 + dev: false + + /react-router-dom@6.20.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': 1.13.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.20.0(react@18.2.0) + dev: false + + /react-router@6.20.0(react@18.2.0): + resolution: {integrity: sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': 1.13.0 + react: 18.2.0 + dev: false + + /react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0): + resolution: {integrity: sha512-fc7cBosfhnbh53Mbm6a45W+F735jwZ1UFIYSrIqcO/gRIFoDyZeMtgKlpV4DdyQfbCzdh5LoALLTDRxhMpTyXQ==} + peerDependencies: + '@types/sortablejs': '1' + react: '>=16.9.0' + react-dom: '>=16.9.0' + sortablejs: '1' + dependencies: + '@types/sortablejs': 1.15.7 + classnames: 2.3.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + sortablejs: 1.15.0 + tiny-invariant: 1.2.0 + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: false + + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + + /redux-persist@6.0.0(react@18.2.0)(redux@4.2.1): + resolution: {integrity: sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==} + peerDependencies: + react: '>=16' + redux: '>4.0.0' + peerDependenciesMeta: + react: + optional: true + dependencies: + react: 18.2.0 + redux: 4.2.1 + dev: false + + /redux-thunk@3.1.0(redux@5.0.0): + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} + peerDependencies: + redux: ^5.0.0 + dependencies: + redux: 5.0.0 + dev: false + + /redux@4.2.1: + resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} + dependencies: + '@babel/runtime': 7.23.4 + dev: false + + /redux@5.0.0: + resolution: {integrity: sha512-blLIYmYetpZMET6Q6uCY7Jtl/Im5OBldy+vNPauA8vvsdqyt66oep4EUpAMWNHauTC6xa9JuRPhRB72rY82QGA==} + dev: false + + /reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + globalthis: 1.0.3 + which-builtin-type: 1.1.3 + dev: true + + /refractor@4.8.1: + resolution: {integrity: sha512-/fk5sI0iTgFYlmVGYVew90AoYnNMP6pooClx/XKqyeeCQXrL0Kvgn8V0VEht5ccdljbzzF1i3Q213gcntkRExg==} + dependencies: + '@types/hast': 2.3.8 + '@types/prismjs': 1.26.3 + hastscript: 7.2.0 + parse-entities: 4.0.1 + dev: false + + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + + /regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + dev: true + + /regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + set-function-name: 2.0.1 + dev: true + + /rehype-attr@2.1.4: + resolution: {integrity: sha512-iAeaL5JyF4XxkcvWzpi/0SAF7iV7qOTaHS56tJuEsXziQc3+PEmMn65kV8OFgbO9mRVY7J1fRC/aLvot1PsNkg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-autolink-headings@6.1.1: + resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} + dependencies: + '@types/hast': 2.3.8 + extend: 3.0.2 + hast-util-has-property: 2.0.1 + hast-util-heading-rank: 2.1.1 + hast-util-is-element: 2.1.3 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-ignore@1.0.5: + resolution: {integrity: sha512-JQXS5eDwXaYKwB8JEYFJJA/YvGi0sSNUOYuiURMtuPTg8tuWHFB91JMYLbImH1FyvyGQM4fIBqNMAPB50WR2Bw==} + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + hast-util-select: 5.0.5 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-parse@8.0.5: + resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} + dependencies: + '@types/hast': 2.3.8 + hast-util-from-parse5: 7.1.2 + parse5: 6.0.1 + unified: 10.1.2 + dev: false + + /rehype-prism-plus@1.6.3: + resolution: {integrity: sha512-F6tn376zimnvy+xW0bSnryul+rvVL7NhDIkavc9kAuzDx5zIZW04A6jdXPkcFBhojcqZB8b6pHt6CLqiUx+Tbw==} + dependencies: + hast-util-to-string: 2.0.0 + parse-numeric-range: 1.3.0 + refractor: 4.8.1 + rehype-parse: 8.0.5 + unist-util-filter: 4.0.1 + unist-util-visit: 4.1.2 + dev: false + + /rehype-raw@6.1.1: + resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==} + dependencies: + '@types/hast': 2.3.8 + hast-util-raw: 7.2.3 + unified: 10.1.2 + dev: false + + /rehype-rewrite@3.0.6: + resolution: {integrity: sha512-REDTNCvsKcAazy8IQWzKp66AhSUDSOIKssSCqNqCcT9sN7JCwAAm3mWGTUdUzq80ABuy8d0D6RBwbnewu1aY1g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + hast-util-select: 5.0.5 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-slug@5.1.0: + resolution: {integrity: sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==} + dependencies: + '@types/hast': 2.3.8 + github-slugger: 2.0.0 + hast-util-has-property: 2.0.1 + hast-util-heading-rank: 2.1.1 + hast-util-to-string: 2.0.0 + unified: 10.1.2 + unist-util-visit: 4.1.2 + dev: false + + /rehype-stringify@9.0.4: + resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} + dependencies: + '@types/hast': 2.3.8 + hast-util-to-html: 8.0.4 + unified: 10.1.2 + dev: false + + /rehype@12.0.1: + resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==} + dependencies: + '@types/hast': 2.3.8 + rehype-parse: 8.0.5 + rehype-stringify: 9.0.4 + unified: 10.1.2 + dev: false + + /remark-gfm@3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-gfm: 2.0.2 + micromark-extension-gfm: 2.0.3 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + dependencies: + '@types/mdast': 3.0.15 + mdast-util-from-markdown: 1.3.1 + unified: 10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype@10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + dependencies: + '@types/hast': 2.3.8 + '@types/mdast': 3.0.15 + mdast-util-to-hast: 12.3.0 + unified: 10.1.2 + dev: false + + /repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + dev: true + + /repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + dev: true + + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + dev: true + + /require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /reselect@5.0.1: + resolution: {integrity: sha512-D72j2ubjgHpvuCiORWkOUxndHJrxDaSolheiz5CO+roz8ka97/4msh2E8F5qay4GawR5vzBt5MkbDHT+Rdy/Wg==} + dev: false + + /resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + dev: false + + /resolve-dir@1.0.1: + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: 2.0.2 + global-modules: 1.0.0 + dev: true + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + + /resolve-global@1.0.0: + resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} + engines: {node: '>=8'} + dependencies: + global-dirs: 0.1.1 + dev: true + + /resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /restore-cursor@4.0.0: + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + dev: true + + /ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rfdc@1.3.0: + resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} + dev: true + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: 10.3.10 + dev: true + + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /rollup@4.5.2: + resolution: {integrity: sha512-CRK1uoROBfkcqrZKyaFcqCcZWNsvJ6yVYZkqTlRocZhO2s5yER6Z3f/QaYtO8RGyloPnmhwgzuPQpNGeK210xQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': registry.npmmirror.com/@rollup/rollup-android-arm-eabi@4.5.2 + '@rollup/rollup-android-arm64': registry.npmmirror.com/@rollup/rollup-android-arm64@4.5.2 + '@rollup/rollup-darwin-arm64': registry.npmmirror.com/@rollup/rollup-darwin-arm64@4.5.2 + '@rollup/rollup-darwin-x64': registry.npmmirror.com/@rollup/rollup-darwin-x64@4.5.2 + '@rollup/rollup-linux-arm-gnueabihf': registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf@4.5.2 + '@rollup/rollup-linux-arm64-gnu': registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu@4.5.2 + '@rollup/rollup-linux-arm64-musl': registry.npmmirror.com/@rollup/rollup-linux-arm64-musl@4.5.2 + '@rollup/rollup-linux-x64-gnu': registry.npmmirror.com/@rollup/rollup-linux-x64-gnu@4.5.2 + '@rollup/rollup-linux-x64-musl': registry.npmmirror.com/@rollup/rollup-linux-x64-musl@4.5.2 + '@rollup/rollup-win32-arm64-msvc': registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc@4.5.2 + '@rollup/rollup-win32-ia32-msvc': registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.5.2 + '@rollup/rollup-win32-x64-msvc': registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.5.2 + fsevents: registry.npmmirror.com/fsevents@2.3.3 + + /run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} + engines: {node: '>=12'} + dependencies: + execa: 5.1.1 + dev: true + + /run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} + dev: true + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + dependencies: + tslib: 2.6.2 + dev: true + + /sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + dependencies: + mri: 1.2.0 + dev: false + + /safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + engines: {node: '>=0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + isarray: 2.0.5 + dev: true + + /safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + dev: true + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-regex: 1.1.4 + dev: true + + /safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + dependencies: + ret: 0.1.15 + dev: true + + /safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + /sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + requiresBuild: true + optional: true + + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: false + + /screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + dev: false + + /scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} + dependencies: + compute-scroll-into-view: 1.0.20 + dev: false + + /scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + dependencies: + compute-scroll-into-view: 3.1.0 + dev: false + + /semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + /semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + get-intrinsic: 1.2.2 + gopd: 1.0.1 + has-property-descriptors: 1.0.1 + dev: true + + /set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.1 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.1 + dev: true + + /set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + dev: true + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + object-inspect: 1.13.1 + dev: true + + /signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + dev: true + + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slate-history@0.66.0(slate@0.72.8): + resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==} + peerDependencies: + slate: '>=0.65.3' + dependencies: + is-plain-object: 5.0.0 + slate: 0.72.8 + dev: false + + /slate@0.72.8: + resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==} + dependencies: + immer: 9.0.21 + is-plain-object: 5.0.0 + tiny-warning: 1.0.3 + dev: false + + /slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + + /snabbdom@3.5.1: + resolution: {integrity: sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==} + engines: {node: '>=8.3.0'} + dev: false + + /snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + dev: true + + /snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: registry.npmmirror.com/source-map@0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /sortablejs@1.15.0: + resolution: {integrity: sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==} + dev: false + + /source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + dev: true + + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + /source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true + + /source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false + + /spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.16 + dev: true + + /spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} + dev: true + + /split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: 3.0.2 + dev: true + + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.2 + dev: true + + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + dev: true + + /ssf@0.11.2: + resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==} + engines: {node: '>=0.8'} + dependencies: + frac: 1.1.2 + dev: false + + /ssr-window@3.0.0: + resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==} + dev: false + + /stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: true + + /static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + dev: true + + /statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + dev: true + + /strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} + engines: {node: '>=0.10.0'} + dev: true + + /string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + dev: true + + /string-convert@0.2.1: + resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} + dev: false + + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + internal-slot: 1.0.6 + regexp.prototype.flags: 1.5.1 + set-function-name: 2.0.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + dev: true + + /string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: false + + /strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /strip-bom@4.0.0: + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} + dev: true + + /strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + + /strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + dev: true + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + /style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} + dev: false + + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + dependencies: + inline-style-parser: 0.1.1 + dev: false + + /stylehacks@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.22.1 + postcss: 8.4.31 + postcss-selector-parser: 6.0.13 + dev: true + + /stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} + dev: false + + /supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} + engines: {node: '>=0.8.0'} + dev: true + + /supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} + engines: {node: '>=0.8.0'} + dependencies: + has-flag: 1.0.0 + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + + /svg-baker@1.7.0: + resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} + dependencies: + bluebird: 3.7.2 + clone: 2.1.2 + he: 1.2.0 + image-size: 0.5.5 + loader-utils: 1.4.2 + merge-options: 1.0.1 + micromatch: 3.1.0 + postcss: 5.2.18 + postcss-prefix-selector: 1.16.0(postcss@5.2.18) + posthtml-rename-id: 1.0.12 + posthtml-svg-mode: 1.0.3 + query-string: 4.3.4 + traverse: 0.6.7 + transitivePeerDependencies: + - supports-color + dev: true + + /svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 4.3.0 + css-tree: 1.1.3 + csso: 4.2.0 + picocolors: 1.0.0 + stable: 0.1.8 + dev: true + + /svgo@3.0.4: + resolution: {integrity: sha512-T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.0.0 + dev: true + + /synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.4.2 + tslib: 2.6.2 + dev: true + + /terser@5.24.0: + resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': 0.3.5 + acorn: 8.11.2 + commander: 2.20.3 + source-map-support: 0.5.21 + + /text-extensions@2.4.0: + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} + dev: true + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + /throttle-debounce@5.0.0: + resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} + engines: {node: '>=12.22'} + dev: false + + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.2 + dev: true + + /through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + dev: true + + /tiny-invariant@1.2.0: + resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==} + dev: false + + /tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + dev: false + + /titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} + engines: {node: '>=12'} + dev: true + + /tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: 1.0.2 + dev: true + + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + /to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + dependencies: + kind-of: 3.2.2 + dev: true + + /to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + dev: true + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + dev: true + + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + + /traverse@0.6.7: + resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} + dev: true + + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + + /trough@2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + dev: false + + /ts-api-utils@1.0.3(typescript@5.3.2): + resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.3.2 + dev: true + + /tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + dev: false + + /tslib@2.3.1: + resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + dev: false + + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + + /type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + /type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + dev: true + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + dev: true + + /type@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} + dev: false + + /type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} + dev: false + + /typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + has-proto: 1.0.1 + is-typed-array: 1.1.12 + dev: true + + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.5 + for-each: 0.3.3 + is-typed-array: 1.1.12 + dev: true + + /typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} + engines: {node: '>=14.17'} + hasBin: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.5 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + /unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + dependencies: + '@types/unist': 2.0.10 + bail: 2.0.2 + extend: 3.0.2 + is-buffer: 2.0.5 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 5.3.7 + dev: false + + /union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + dev: true + + /unist-util-filter@4.0.1: + resolution: {integrity: sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==} + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /unist-util-generated@2.0.1: + resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + dev: false + + /unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + dependencies: + '@types/unist': 2.0.10 + dev: false + + /unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + dev: false + + /unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} + dependencies: + '@types/unist': 2.0.10 + unist-util-is: 5.2.1 + unist-util-visit-parents: 5.1.3 + dev: false + + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + + /unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + dev: true + + /unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + dev: true + + /untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.22.1 + escalade: 3.1.1 + picocolors: 1.0.0 + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.3.1 + + /urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: true + + /use-immer@0.9.0(immer@10.0.3)(react@18.2.0): + resolution: {integrity: sha512-/L+enLi0nvuZ6j4WlyK0US9/ECUtV5v9RUbtxnn5+WbtaXYUaOBoKHDNL9I5AETdurQ4rIFIj/s+Z5X80ATyKw==} + peerDependencies: + immer: '>=2.0.0' + react: ^16.8.0 || ^17.0.1 || ^18.0.0 + dependencies: + immer: 10.0.3 + react: 18.2.0 + dev: false + + /use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + /use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + + /utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + dev: true + + /uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: 2.0.3 + diff: 5.1.0 + kleur: 4.1.5 + sade: 1.8.1 + dev: false + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + dev: true + + /vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + dev: true + + /vfile-location@4.1.0: + resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} + dependencies: + '@types/unist': 2.0.10 + vfile: 5.3.7 + dev: false + + /vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + dependencies: + '@types/unist': 2.0.10 + unist-util-stringify-position: 3.0.3 + dev: false + + /vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + dependencies: + '@types/unist': 2.0.10 + is-buffer: 2.0.5 + unist-util-stringify-position: 3.0.3 + vfile-message: 3.1.4 + dev: false + + /video-react@0.16.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-138NHPS8bmgqCYVCdbv2GVFhXntemNHWGw9AN8iJSzr3jizXMmWJd2LTBppr4hZJUbyW1A1tPZ3CQXZUaexMVA==} + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.23.4 + classnames: 2.3.2 + lodash.throttle: 4.1.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + redux: 4.2.1 + dev: false + + /vite-plugin-eslint@1.8.1(eslint@8.54.0)(vite@4.5.0): + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} + peerDependencies: + eslint: '>=7' + vite: '>=2' + dependencies: + '@rollup/pluginutils': 4.2.1 + '@types/eslint': 8.44.7 + eslint: 8.54.0 + rollup: 2.79.1 + vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + dev: true + + /vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.0): + resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==} + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@types/mockjs': 1.0.10 + chalk: 4.1.2 + chokidar: 3.5.3 + connect: 3.7.0 + debug: 4.3.4 + esbuild: 0.14.54 + fast-glob: 3.3.2 + mockjs: 1.1.0 + path-to-regexp: 6.2.1 + vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-svg-icons@2.0.1(vite@4.5.0): + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': 2.6.4 + cors: 2.8.5 + debug: 4.3.4 + etag: 1.8.1 + fs-extra: 10.1.0 + pathe: 0.2.0 + svg-baker: 1.7.0 + svgo: 2.8.0 + vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) + transitivePeerDependencies: + - supports-color + dev: true + + /vite@4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.10.0 + esbuild: 0.18.20 + less: 4.2.0 + postcss: 8.4.31 + rollup: 3.29.4 + terser: 5.24.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + + /w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + dev: false + + /wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + dependencies: + defaults: 1.0.4 + dev: true + + /web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.0 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.0.2 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.13 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.5 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /wildcard@1.1.2: + resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} + dev: false + + /wmf@1.0.2: + resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==} + engines: {node: '>=0.8'} + dev: false + + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + dev: true + + /word@0.3.0: + resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==} + engines: {node: '>=0.8'} + dev: false + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /xlsx@0.18.5: + resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==} + engines: {node: '>=0.8'} + hasBin: true + dependencies: + adler-32: 1.3.1 + cfb: 1.2.2 + codepage: 1.15.0 + crc-32: 1.2.2 + ssf: 0.11.2 + wmf: 1.0.2 + word: 0.3.0 + dev: false + + /y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + dev: true + + /yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} + engines: {node: '>= 14'} + dev: true + + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + dev: true + + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + /zrender@5.4.4: + resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==} + dependencies: + tslib: 2.3.0 + dev: false + + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false + + registry.npmmirror.com/@ampproject/remapping@2.2.1: + resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz} + name: '@ampproject/remapping' + version: 2.2.1 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + dev: false + + registry.npmmirror.com/@ant-design/colors@7.0.0: + resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.0.tgz} + name: '@ant-design/colors' + version: 7.0.0 + dependencies: + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + dev: false + + registry.npmmirror.com/@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Ed2rruHMxZTVYGPec6QBZkrh00Df5K1FAufmBpONai5iGYxoxIkg1sRD8YdCw0NvPRAa4r1nJP5LbwICGHzGiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.17.5.tgz} + id: registry.npmmirror.com/@ant-design/cssinjs/1.17.5 + name: '@ant-design/cssinjs' + version: 1.17.5 + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.8.0 + '@emotion/unitless': registry.npmmirror.com/@emotion/unitless@0.7.5 + classnames: registry.npmmirror.com/classnames@2.3.2 + csstype: registry.npmmirror.com/csstype@3.1.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + stylis: registry.npmmirror.com/stylis@4.3.0 + dev: false + + registry.npmmirror.com/@ant-design/icons-svg@4.3.1: + resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz} + name: '@ant-design/icons-svg' + version: 4.3.1 + dev: false + + registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons/-/icons-5.2.6.tgz} + id: registry.npmmirror.com/@ant-design/icons/5.2.6 + name: '@ant-design/icons' + version: 5.2.6 + engines: {node: '>=8'} + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 + '@ant-design/icons-svg': registry.npmmirror.com/@ant-design/icons-svg@4.3.1 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0): + resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-1.0.2.tgz} + id: registry.npmmirror.com/@ant-design/react-slick/1.0.2 + name: '@ant-design/react-slick' + version: 1.0.2 + peerDependencies: + react: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + json2mq: registry.npmmirror.com/json2mq@0.2.0 + react: 18.2.0 + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 + dev: false + + registry.npmmirror.com/@antfu/install-pkg@0.1.1: + resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-0.1.1.tgz} + name: '@antfu/install-pkg' + version: 0.1.1 + dependencies: + execa: registry.npmmirror.com/execa@5.1.1 + find-up: registry.npmmirror.com/find-up@5.0.0 + dev: false + + registry.npmmirror.com/@antfu/utils@0.7.7: + resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz} + name: '@antfu/utils' + version: 0.7.7 + dev: false + + registry.npmmirror.com/@babel/code-frame@7.23.4: + resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.4.tgz} + name: '@babel/code-frame' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.npmmirror.com/@babel/highlight@7.23.4 + chalk: registry.npmmirror.com/chalk@2.4.2 + dev: false + + registry.npmmirror.com/@babel/compat-data@7.23.3: + resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.3.tgz} + name: '@babel/compat-data' + version: 7.23.3 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/core@7.23.2: + resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.23.2.tgz} + name: '@babel/core' + version: 7.23.2 + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping@2.2.1 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.4 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.22.15 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.2) + '@babel/helpers': registry.npmmirror.com/@babel/helpers@7.23.4 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 + debug: registry.npmmirror.com/debug@4.3.4 + gensync: registry.npmmirror.com/gensync@1.0.0-beta.2 + json5: registry.npmmirror.com/json5@2.2.3 + semver: registry.npmmirror.com/semver@6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@babel/core@7.23.3: + resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.23.3.tgz} + name: '@babel/core' + version: 7.23.3 + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping@2.2.1 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.4 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.22.15 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3) + '@babel/helpers': registry.npmmirror.com/@babel/helpers@7.23.4 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 + debug: registry.npmmirror.com/debug@4.3.4 + gensync: registry.npmmirror.com/gensync@1.0.0-beta.2 + json5: registry.npmmirror.com/json5@2.2.3 + semver: registry.npmmirror.com/semver@6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.54.0): + resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz} + id: registry.npmmirror.com/@babel/eslint-parser/7.22.15 + name: '@babel/eslint-parser' + version: 7.22.15 + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 + '@nicolo-ribaudo/eslint-scope-5-internals': registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1 + eslint: 8.54.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@2.1.0 + semver: registry.npmmirror.com/semver@6.3.1 + dev: false + + registry.npmmirror.com/@babel/generator@7.23.4: + resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/generator/-/generator-7.23.4.tgz} + name: '@babel/generator' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + jsesc: registry.npmmirror.com/jsesc@2.5.2 + dev: false + + registry.npmmirror.com/@babel/helper-compilation-targets@7.22.15: + resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz} + name: '@babel/helper-compilation-targets' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.23.3 + '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option@7.22.15 + browserslist: registry.npmmirror.com/browserslist@4.22.1 + lru-cache: registry.npmmirror.com/lru-cache@5.1.1 + semver: registry.npmmirror.com/semver@6.3.1 + dev: false + + registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz} + name: '@babel/helper-environment-visitor' + version: 7.22.20 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz} + name: '@babel/helper-function-name' + version: 7.23.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz} + name: '@babel/helper-hoist-variables' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-module-imports@7.22.15: + resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz} + name: '@babel/helper-module-imports' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.2): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz} + id: registry.npmmirror.com/@babel/helper-module-transforms/7.23.3 + name: '@babel/helper-module-transforms' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + dev: false + + registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz} + id: registry.npmmirror.com/@babel/helper-module-transforms/7.23.3 + name: '@babel/helper-module-transforms' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + dev: false + + registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz} + name: '@babel/helper-plugin-utils' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helper-simple-access@7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz} + name: '@babel/helper-simple-access' + version: 7.22.5 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz} + name: '@babel/helper-split-export-declaration' + version: 7.22.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz} + name: '@babel/helper-string-parser' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz} + name: '@babel/helper-validator-identifier' + version: 7.22.20 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helper-validator-option@7.22.15: + resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz} + name: '@babel/helper-validator-option' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/@babel/helpers@7.23.4: + resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.4.tgz} + name: '@babel/helpers' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@babel/highlight@7.23.4: + resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz} + name: '@babel/highlight' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + chalk: registry.npmmirror.com/chalk@2.4.2 + js-tokens: registry.npmmirror.com/js-tokens@4.0.0 + dev: false + + registry.npmmirror.com/@babel/parser@7.23.4: + resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.23.4.tgz} + name: '@babel/parser' + version: 7.23.4 + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-async-generators/7.8.4 + name: '@babel/plugin-syntax-async-generators' + version: 7.8.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-bigint/7.8.3 + name: '@babel/plugin-syntax-bigint' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-class-properties/7.12.13 + name: '@babel/plugin-syntax-class-properties' + version: 7.12.13 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-import-meta/7.10.4 + name: '@babel/plugin-syntax-import-meta' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-json-strings/7.8.3 + name: '@babel/plugin-syntax-json-strings' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4 + name: '@babel/plugin-syntax-logical-assignment-operators' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3 + name: '@babel/plugin-syntax-nullish-coalescing-operator' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/7.10.4 + name: '@babel/plugin-syntax-numeric-separator' + version: 7.10.4 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/7.8.3 + name: '@babel/plugin-syntax-object-rest-spread' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/7.8.3 + name: '@babel/plugin-syntax-optional-catch-binding' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/7.8.3 + name: '@babel/plugin-syntax-optional-chaining' + version: 7.8.3 + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-top-level-await/7.14.5 + name: '@babel/plugin-syntax-top-level-await' + version: 7.14.5 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.3): + resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/7.23.0 + name: '@babel/plugin-transform-modules-commonjs' + version: 7.23.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.23.3 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3) + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/7.23.3 + name: '@babel/plugin-transform-react-jsx-self' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): + resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/7.23.3 + name: '@babel/plugin-transform-react-jsx-source' + version: 7.23.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + dev: false + + registry.npmmirror.com/@babel/runtime@7.23.2: + resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.2.tgz} + name: '@babel/runtime' + version: 7.23.2 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.0 + dev: false + + registry.npmmirror.com/@babel/runtime@7.23.4: + resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.4.tgz} + name: '@babel/runtime' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.0 + dev: false + + registry.npmmirror.com/@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz} + name: '@babel/template' + version: 7.22.15 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@babel/traverse@7.23.4: + resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.4.tgz} + name: '@babel/traverse' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.4 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.23.0 + '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables@7.22.5 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + debug: registry.npmmirror.com/debug@4.3.4 + globals: registry.npmmirror.com/globals@11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@babel/types@7.23.4: + resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.23.4.tgz} + name: '@babel/types' + version: 7.23.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser@7.23.4 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 + to-fast-properties: registry.npmmirror.com/to-fast-properties@2.0.0 + dev: false + + registry.npmmirror.com/@bloomberg/record-tuple-polyfill@0.0.4: + resolution: {integrity: sha512-h0OYmPR3A5Dfbetra/GzxBAzQk8sH7LhRkRUTdagX6nrtlUgJGYCTv4bBK33jsTQw9HDd8PE2x1Ma+iRKEDUsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@bloomberg/record-tuple-polyfill/-/record-tuple-polyfill-0.0.4.tgz} + name: '@bloomberg/record-tuple-polyfill' + version: 0.0.4 + dev: false + + registry.npmmirror.com/@codemirror/autocomplete@6.11.0(@codemirror/language@6.9.2)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0)(@lezer/common@1.1.1): + resolution: {integrity: sha512-LCPH3W+hl5vcO7OzEQgX6NpKuKVyiKFLGAy7FXROF6nUpsWUdQEgUb3fe/g7B0E1KZCRFfgzdKASt6Wly2UOBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.11.0.tgz} + id: registry.npmmirror.com/@codemirror/autocomplete/6.11.0 + name: '@codemirror/autocomplete' + version: 6.11.0 + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': 6.22.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + dev: false + + registry.npmmirror.com/@codemirror/commands@6.3.0: + resolution: {integrity: sha512-tFfcxRIlOWiQDFhjBSWJ10MxcvbCIsRr6V64SgrcaY0MwNk32cUOcCuNlWo8VjV4qRQCgNgUAnIeo0svkk4R5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/commands/-/commands-6.3.0.tgz} + name: '@codemirror/commands' + version: 6.3.0 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + dev: false + + registry.npmmirror.com/@codemirror/language@6.9.2: + resolution: {integrity: sha512-QGTQXSpAKDIzaSE96zNK1UfIUhPgkT1CLjh1N5qVzZuxgsEOhz5RqaN8QCIdyOQklGLx3MgHd9YrE3X3+Pl1ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/language/-/language-6.9.2.tgz} + name: '@codemirror/language' + version: 6.9.2 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.2.0 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.14 + style-mod: registry.npmmirror.com/style-mod@4.1.0 + dev: false + + registry.npmmirror.com/@codemirror/lint@6.4.2: + resolution: {integrity: sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/lint/-/lint-6.4.2.tgz} + name: '@codemirror/lint' + version: 6.4.2 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + crelt: registry.npmmirror.com/crelt@1.0.6 + dev: false + + registry.npmmirror.com/@codemirror/search@6.5.4: + resolution: {integrity: sha512-YoTrvjv9e8EbPs58opjZKyJ3ewFrVSUzQ/4WXlULQLSDDr1nGPJ67mMXFNNVYwdFhybzhrzrtqgHmtpJwIF+8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/search/-/search-6.5.4.tgz} + name: '@codemirror/search' + version: 6.5.4 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + crelt: registry.npmmirror.com/crelt@1.0.6 + dev: false + + registry.npmmirror.com/@codemirror/state@6.3.1: + resolution: {integrity: sha512-88e4HhMtKJyw6fKprGaN/yZfiaoGYOi2nM45YCUC6R/kex9sxFWBDGatS1vk4lMgnWmdIIB9tk8Gj1LmL8YfvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/state/-/state-6.3.1.tgz} + name: '@codemirror/state' + version: 6.3.1 + dev: false + + registry.npmmirror.com/@codemirror/theme-one-dark@6.1.2: + resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz} + name: '@codemirror/theme-one-dark' + version: 6.1.2 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.2.0 + dev: false + + registry.npmmirror.com/@codemirror/view@6.22.0: + resolution: {integrity: sha512-6zLj4YIoIpfTGKrDMTbeZRpa8ih4EymMCKmddEDcJWrCdp/N1D46B38YEz4creTb4T177AVS9EyXkLeC/HL2jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/view/-/view-6.22.0.tgz} + name: '@codemirror/view' + version: 6.22.0 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + style-mod: registry.npmmirror.com/style-mod@4.1.0 + w3c-keyname: registry.npmmirror.com/w3c-keyname@2.2.8 + dev: false + + registry.npmmirror.com/@commitlint/load@18.4.3(typescript@5.3.2): + resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@commitlint/load/-/load-18.4.3.tgz} + id: registry.npmmirror.com/@commitlint/load/18.4.3 + name: '@commitlint/load' + version: 18.4.3 + engines: {node: '>=v18'} + requiresBuild: true + dependencies: + '@commitlint/config-validator': 18.4.3 + '@commitlint/execute-rule': 18.4.3 + '@commitlint/resolve-extends': 18.4.3 + '@commitlint/types': 18.4.3 + '@types/node': 18.18.13 + chalk: 4.1.2 + cosmiconfig: 8.3.6(typescript@5.3.2) + cosmiconfig-typescript-loader: 5.0.0(@types/node@18.18.13)(cosmiconfig@8.3.6)(typescript@5.3.2) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + resolve-from: 5.0.0 + transitivePeerDependencies: + - typescript + dev: true + optional: true + + registry.npmmirror.com/@csstools/postcss-color-function@1.1.1(postcss@8.4.31): + resolution: {integrity: sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-color-function/1.1.1 + name: '@csstools/postcss-color-function' + version: 1.1.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-font-format-keywords@1.0.1(postcss@8.4.31): + resolution: {integrity: sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-font-format-keywords/1.0.1 + name: '@csstools/postcss-font-format-keywords' + version: 1.0.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-hwb-function@1.0.2(postcss@8.4.31): + resolution: {integrity: sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz} + id: registry.npmmirror.com/@csstools/postcss-hwb-function/1.0.2 + name: '@csstools/postcss-hwb-function' + version: 1.0.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-ic-unit@1.0.1(postcss@8.4.31): + resolution: {integrity: sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-ic-unit/1.0.1 + name: '@csstools/postcss-ic-unit' + version: 1.0.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-is-pseudo-class@2.0.7(postcss@8.4.31): + resolution: {integrity: sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz} + id: registry.npmmirror.com/@csstools/postcss-is-pseudo-class/2.0.7 + name: '@csstools/postcss-is-pseudo-class' + version: 2.0.7 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/selector-specificity': registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/@csstools/postcss-normalize-display-values@1.0.1(postcss@8.4.31): + resolution: {integrity: sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-normalize-display-values/1.0.1 + name: '@csstools/postcss-normalize-display-values' + version: 1.0.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-oklab-function@1.1.1(postcss@8.4.31): + resolution: {integrity: sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-oklab-function/1.1.1 + name: '@csstools/postcss-oklab-function' + version: 1.1.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31): + resolution: {integrity: sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz} + id: registry.npmmirror.com/@csstools/postcss-progressive-custom-properties/1.3.0 + name: '@csstools/postcss-progressive-custom-properties' + version: 1.3.0 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-stepped-value-functions@1.0.1(postcss@8.4.31): + resolution: {integrity: sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz} + id: registry.npmmirror.com/@csstools/postcss-stepped-value-functions/1.0.1 + name: '@csstools/postcss-stepped-value-functions' + version: 1.0.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/@csstools/postcss-unset-value@1.0.2(postcss@8.4.31): + resolution: {integrity: sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz} + id: registry.npmmirror.com/@csstools/postcss-unset-value/1.0.2 + name: '@csstools/postcss-unset-value' + version: 1.0.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13): + resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz} + id: registry.npmmirror.com/@csstools/selector-specificity/2.2.0 + name: '@csstools/selector-specificity' + version: 2.2.0 + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss-selector-parser: ^6.0.10 + dependencies: + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/@ctrl/tinycolor@3.6.1: + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz} + name: '@ctrl/tinycolor' + version: 3.6.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/@emotion/babel-plugin@11.11.0: + resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz} + name: '@emotion/babel-plugin' + version: 11.11.0 + dependencies: + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.9.1 + '@emotion/memoize': registry.npmmirror.com/@emotion/memoize@0.8.1 + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + babel-plugin-macros: registry.npmmirror.com/babel-plugin-macros@3.1.0 + convert-source-map: registry.npmmirror.com/convert-source-map@1.9.0 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@4.0.0 + find-root: registry.npmmirror.com/find-root@1.1.0 + source-map: registry.npmmirror.com/source-map@0.5.7 + stylis: registry.npmmirror.com/stylis@4.2.0 + dev: false + + registry.npmmirror.com/@emotion/cache@11.11.0: + resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/cache/-/cache-11.11.0.tgz} + name: '@emotion/cache' + version: 11.11.0 + dependencies: + '@emotion/memoize': registry.npmmirror.com/@emotion/memoize@0.8.1 + '@emotion/sheet': registry.npmmirror.com/@emotion/sheet@1.2.2 + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + '@emotion/weak-memoize': registry.npmmirror.com/@emotion/weak-memoize@0.3.1 + stylis: registry.npmmirror.com/stylis@4.2.0 + dev: false + + registry.npmmirror.com/@emotion/css@11.11.2: + resolution: {integrity: sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/css/-/css-11.11.2.tgz} + name: '@emotion/css' + version: 11.11.2 + dependencies: + '@emotion/babel-plugin': registry.npmmirror.com/@emotion/babel-plugin@11.11.0 + '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + '@emotion/sheet': registry.npmmirror.com/@emotion/sheet@1.2.2 + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + dev: false + + registry.npmmirror.com/@emotion/hash@0.8.0: + resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz} + name: '@emotion/hash' + version: 0.8.0 + dev: false + + registry.npmmirror.com/@emotion/hash@0.9.1: + resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.1.tgz} + name: '@emotion/hash' + version: 0.9.1 + dev: false + + registry.npmmirror.com/@emotion/memoize@0.8.1: + resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.8.1.tgz} + name: '@emotion/memoize' + version: 0.8.1 + dev: false + + registry.npmmirror.com/@emotion/react@11.11.1(@types/react@18.2.38)(react@18.2.0): + resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/react/-/react-11.11.1.tgz} + id: registry.npmmirror.com/@emotion/react/11.11.1 + name: '@emotion/react' + version: 11.11.1 + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/babel-plugin': registry.npmmirror.com/@emotion/babel-plugin@11.11.0 + '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + '@emotion/use-insertion-effect-with-fallbacks': registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0) + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + '@emotion/weak-memoize': registry.npmmirror.com/@emotion/weak-memoize@0.3.1 + '@types/react': 18.2.38 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + react: 18.2.0 + dev: false + + registry.npmmirror.com/@emotion/serialize@1.1.2: + resolution: {integrity: sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/serialize/-/serialize-1.1.2.tgz} + name: '@emotion/serialize' + version: 1.1.2 + dependencies: + '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.9.1 + '@emotion/memoize': registry.npmmirror.com/@emotion/memoize@0.8.1 + '@emotion/unitless': registry.npmmirror.com/@emotion/unitless@0.8.1 + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + csstype: registry.npmmirror.com/csstype@3.1.2 + dev: false + + registry.npmmirror.com/@emotion/server@11.11.0(@emotion/css@11.11.2): + resolution: {integrity: sha512-6q89fj2z8VBTx9w93kJ5n51hsmtYuFPtZgnc1L8VzRx9ti4EU6EyvF6Nn1H1x3vcCQCF7u2dB2lY4AYJwUW4PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/server/-/server-11.11.0.tgz} + id: registry.npmmirror.com/@emotion/server/11.11.0 + name: '@emotion/server' + version: 11.11.0 + peerDependencies: + '@emotion/css': ^11.0.0-rc.0 + peerDependenciesMeta: + '@emotion/css': + optional: true + dependencies: + '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + html-tokenize: registry.npmmirror.com/html-tokenize@2.0.1 + multipipe: registry.npmmirror.com/multipipe@1.0.2 + through: registry.npmmirror.com/through@2.3.8 + dev: false + + registry.npmmirror.com/@emotion/sheet@1.2.2: + resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/sheet/-/sheet-1.2.2.tgz} + name: '@emotion/sheet' + version: 1.2.2 + dev: false + + registry.npmmirror.com/@emotion/unitless@0.7.5: + resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.7.5.tgz} + name: '@emotion/unitless' + version: 0.7.5 + dev: false + + registry.npmmirror.com/@emotion/unitless@0.8.1: + resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz} + name: '@emotion/unitless' + version: 0.8.1 + dev: false + + registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): + resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz} + id: registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks/1.0.1 + name: '@emotion/use-insertion-effect-with-fallbacks' + version: 1.0.1 + peerDependencies: + react: '>=16.8.0' + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/@emotion/utils@1.2.1: + resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/utils/-/utils-1.2.1.tgz} + name: '@emotion/utils' + version: 1.2.1 + dev: false + + registry.npmmirror.com/@emotion/weak-memoize@0.3.1: + resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz} + name: '@emotion/weak-memoize' + version: 0.3.1 + dev: false + + registry.npmmirror.com/@esbuild/android-arm64@0.17.19: + resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz} + name: '@esbuild/android-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/android-arm64@0.18.20: + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz} + name: '@esbuild/android-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm64@0.19.7: + resolution: {integrity: sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz} + name: '@esbuild/android-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.17.19: + resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz} + name: '@esbuild/android-arm' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.18.20: + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz} + name: '@esbuild/android-arm' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-arm@0.19.7: + resolution: {integrity: sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.7.tgz} + name: '@esbuild/android-arm' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.17.19: + resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz} + name: '@esbuild/android-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.18.20: + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz} + name: '@esbuild/android-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/android-x64@0.19.7: + resolution: {integrity: sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.19.7.tgz} + name: '@esbuild/android-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19: + resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz} + name: '@esbuild/darwin-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20: + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz} + name: '@esbuild/darwin-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-arm64@0.19.7: + resolution: {integrity: sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz} + name: '@esbuild/darwin-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.17.19: + resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz} + name: '@esbuild/darwin-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.18.20: + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz} + name: '@esbuild/darwin-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/darwin-x64@0.19.7: + resolution: {integrity: sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz} + name: '@esbuild/darwin-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19: + resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20: + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.7: + resolution: {integrity: sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19: + resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz} + name: '@esbuild/freebsd-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20: + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz} + name: '@esbuild/freebsd-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/freebsd-x64@0.19.7: + resolution: {integrity: sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz} + name: '@esbuild/freebsd-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.17.19: + resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz} + name: '@esbuild/linux-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.18.20: + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz} + name: '@esbuild/linux-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm64@0.19.7: + resolution: {integrity: sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz} + name: '@esbuild/linux-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.17.19: + resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz} + name: '@esbuild/linux-arm' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.18.20: + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz} + name: '@esbuild/linux-arm' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-arm@0.19.7: + resolution: {integrity: sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz} + name: '@esbuild/linux-arm' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.17.19: + resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz} + name: '@esbuild/linux-ia32' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.18.20: + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz} + name: '@esbuild/linux-ia32' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ia32@0.19.7: + resolution: {integrity: sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz} + name: '@esbuild/linux-ia32' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz} + name: '@esbuild/linux-loong64' + version: 0.14.54 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.17.19: + resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz} + name: '@esbuild/linux-loong64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.18.20: + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz} + name: '@esbuild/linux-loong64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.19.7: + resolution: {integrity: sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz} + name: '@esbuild/linux-loong64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19: + resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz} + name: '@esbuild/linux-mips64el' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20: + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz} + name: '@esbuild/linux-mips64el' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-mips64el@0.19.7: + resolution: {integrity: sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz} + name: '@esbuild/linux-mips64el' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19: + resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz} + name: '@esbuild/linux-ppc64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20: + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz} + name: '@esbuild/linux-ppc64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-ppc64@0.19.7: + resolution: {integrity: sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz} + name: '@esbuild/linux-ppc64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19: + resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz} + name: '@esbuild/linux-riscv64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20: + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz} + name: '@esbuild/linux-riscv64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-riscv64@0.19.7: + resolution: {integrity: sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz} + name: '@esbuild/linux-riscv64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.17.19: + resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz} + name: '@esbuild/linux-s390x' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.18.20: + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz} + name: '@esbuild/linux-s390x' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-s390x@0.19.7: + resolution: {integrity: sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz} + name: '@esbuild/linux-s390x' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.17.19: + resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz} + name: '@esbuild/linux-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.18.20: + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz} + name: '@esbuild/linux-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/linux-x64@0.19.7: + resolution: {integrity: sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz} + name: '@esbuild/linux-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19: + resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz} + name: '@esbuild/netbsd-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.18.20: + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz} + name: '@esbuild/netbsd-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/netbsd-x64@0.19.7: + resolution: {integrity: sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz} + name: '@esbuild/netbsd-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19: + resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz} + name: '@esbuild/openbsd-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.18.20: + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz} + name: '@esbuild/openbsd-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/openbsd-x64@0.19.7: + resolution: {integrity: sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz} + name: '@esbuild/openbsd-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.17.19: + resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz} + name: '@esbuild/sunos-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.18.20: + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz} + name: '@esbuild/sunos-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/sunos-x64@0.19.7: + resolution: {integrity: sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz} + name: '@esbuild/sunos-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.17.19: + resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz} + name: '@esbuild/win32-arm64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.18.20: + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz} + name: '@esbuild/win32-arm64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-arm64@0.19.7: + resolution: {integrity: sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz} + name: '@esbuild/win32-arm64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.17.19: + resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz} + name: '@esbuild/win32-ia32' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.18.20: + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz} + name: '@esbuild/win32-ia32' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-ia32@0.19.7: + resolution: {integrity: sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz} + name: '@esbuild/win32-ia32' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.17.19: + resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz} + name: '@esbuild/win32-x64' + version: 0.17.19 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.18.20: + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz} + name: '@esbuild/win32-x64' + version: 0.18.20 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@esbuild/win32-x64@0.19.7: + resolution: {integrity: sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz} + name: '@esbuild/win32-x64' + version: 0.19.7 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} + id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 + name: '@eslint-community/eslint-utils' + version: 4.4.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.54.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + dev: false + + registry.npmmirror.com/@eslint-community/regexpp@4.10.0: + resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz} + name: '@eslint-community/regexpp' + version: 4.10.0 + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: false + + registry.npmmirror.com/@floating-ui/core@0.6.2: + resolution: {integrity: sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.2.tgz} + name: '@floating-ui/core' + version: 0.6.2 + dev: false + + registry.npmmirror.com/@floating-ui/core@1.5.2: + resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/core/-/core-1.5.2.tgz} + name: '@floating-ui/core' + version: 1.5.2 + dependencies: + '@floating-ui/utils': registry.npmmirror.com/@floating-ui/utils@0.1.6 + dev: false + + registry.npmmirror.com/@floating-ui/dom@0.4.5: + resolution: {integrity: sha512-b+prvQgJt8pieaKYMSJBXHxX/DYwdLsAWxKYqnO5dO2V4oo/TYBZJAUQCVNjTWWsrs6o4VDrNcP9+E70HAhJdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.5.tgz} + name: '@floating-ui/dom' + version: 0.4.5 + dependencies: + '@floating-ui/core': registry.npmmirror.com/@floating-ui/core@0.6.2 + dev: false + + registry.npmmirror.com/@floating-ui/dom@1.5.3: + resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.5.3.tgz} + name: '@floating-ui/dom' + version: 1.5.3 + dependencies: + '@floating-ui/core': registry.npmmirror.com/@floating-ui/core@1.5.2 + '@floating-ui/utils': registry.npmmirror.com/@floating-ui/utils@0.1.6 + dev: false + + registry.npmmirror.com/@floating-ui/react-dom-interactions@0.3.1(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-tP2KEh7EHJr5hokSBHcPGojb+AorDNUf0NYfZGg/M+FsMvCOOsSEeEF0O1NDfETIzDnpbHnCs0DuvCFhSMSStg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react-dom-interactions/-/react-dom-interactions-0.3.1.tgz} + id: registry.npmmirror.com/@floating-ui/react-dom-interactions/0.3.1 + name: '@floating-ui/react-dom-interactions' + version: 0.3.1 + deprecated: Package renamed to @floating-ui/react + dependencies: + '@floating-ui/react-dom': registry.npmmirror.com/@floating-ui/react-dom@0.6.3(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0) + aria-hidden: registry.npmmirror.com/aria-hidden@1.2.3 + point-in-polygon: registry.npmmirror.com/point-in-polygon@1.1.0 + use-isomorphic-layout-effect: registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.1.0) + transitivePeerDependencies: + - '@types/react' + - react + - react-dom + dev: false + + registry.npmmirror.com/@floating-ui/react-dom@0.6.3(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-hC+pS5D6AgS2wWjbmSQ6UR6Kpy+drvWGJIri6e1EDGADTPsCaa4KzCgmCczHrQeInx9tqs81EyDmbKJYY2swKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-0.6.3.tgz} + id: registry.npmmirror.com/@floating-ui/react-dom/0.6.3 + name: '@floating-ui/react-dom' + version: 0.6.3 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom@0.4.5 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + use-isomorphic-layout-effect: registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.1.0) + transitivePeerDependencies: + - '@types/react' + dev: false + + registry.npmmirror.com/@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-2.0.4.tgz} + id: registry.npmmirror.com/@floating-ui/react-dom/2.0.4 + name: '@floating-ui/react-dom' + version: 2.0.4 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom@1.5.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@floating-ui/react@0.24.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AuYeDoaR8jtUlUXtZ1IJ/6jtBkGnSpJXbGNzokBL87VDJ8opMq1Bgrc0szhK482ReQY6KZsMoZCVSb4xwalkBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react/-/react-0.24.8.tgz} + id: registry.npmmirror.com/@floating-ui/react/0.24.8 + name: '@floating-ui/react' + version: 0.24.8 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/react-dom': registry.npmmirror.com/@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0) + aria-hidden: registry.npmmirror.com/aria-hidden@1.2.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + tabbable: registry.npmmirror.com/tabbable@6.2.0 + dev: false + + registry.npmmirror.com/@floating-ui/utils@0.1.6: + resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.1.6.tgz} + name: '@floating-ui/utils' + version: 0.1.6 + dev: false + + registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0: + resolution: {integrity: sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.0.tgz} + name: '@formatjs/ecma402-abstract' + version: 1.18.0 + dependencies: + '@formatjs/intl-localematcher': registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/fast-memoize@2.2.0: + resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz} + name: '@formatjs/fast-memoize' + version: 2.2.0 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3: + resolution: {integrity: sha512-X/jy10V9S/vW+qlplqhMUxR8wErQ0mmIYSq4mrjpjDl9mbuGcCILcI1SUYkL5nlM4PJqpc0KOS0bFkkJNPxYRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.3.tgz} + name: '@formatjs/icu-messageformat-parser' + version: 2.7.3 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/icu-skeleton-parser': registry.npmmirror.com/@formatjs/icu-skeleton-parser@1.7.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/icu-skeleton-parser@1.7.0: + resolution: {integrity: sha512-Cfdo/fgbZzpN/jlN/ptQVe0lRHora+8ezrEeg2RfrNjyp+YStwBy7cqDY8k5/z2LzXg6O0AdzAV91XS0zIWv+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.7.0.tgz} + name: '@formatjs/icu-skeleton-parser' + version: 1.7.0 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4: + resolution: {integrity: sha512-ET8KQ+L9Q0K8x1SnJQa4DNssUcbATlMopWqYvGGR8yAvw5qwAQc1fv+DshCoZNIE9pbcue0IGC4kWNAkWqlFag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl-displaynames/-/intl-displaynames-6.6.4.tgz} + name: '@formatjs/intl-displaynames' + version: 6.6.4 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/intl-localematcher': registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/intl-listformat@7.5.3: + resolution: {integrity: sha512-l7EOr0Yh1m8KagytukB90yw81uyzrM7amKFrgxXqphz4KeSIL0KPa68lPsdtZ+JmQB73GaDQRwLOwUKFZ1VZPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl-listformat/-/intl-listformat-7.5.3.tgz} + name: '@formatjs/intl-listformat' + version: 7.5.3 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/intl-localematcher': registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2: + resolution: {integrity: sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.2.tgz} + name: '@formatjs/intl-localematcher' + version: 0.5.2 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@formatjs/intl@2.9.9(typescript@5.3.2): + resolution: {integrity: sha512-JI3CNgL2Zdg5lv9ncT2sYKqbAj2RGrCbdzaCckIxMPxn4QuHuOVvYUGmBAXVusBmfG/0sxLmMrnwnBioz+QKdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl/-/intl-2.9.9.tgz} + id: registry.npmmirror.com/@formatjs/intl/2.9.9 + name: '@formatjs/intl' + version: 2.9.9 + peerDependencies: + typescript: '5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/fast-memoize': registry.npmmirror.com/@formatjs/fast-memoize@2.2.0 + '@formatjs/icu-messageformat-parser': registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3 + '@formatjs/intl-displaynames': registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4 + '@formatjs/intl-listformat': registry.npmmirror.com/@formatjs/intl-listformat@7.5.3 + intl-messageformat: registry.npmmirror.com/intl-messageformat@10.5.8 + tslib: registry.npmmirror.com/tslib@2.6.2 + typescript: 5.3.2 + dev: false + + registry.npmmirror.com/@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz} + name: '@iconify/types' + version: 2.0.0 + dev: false + + registry.npmmirror.com/@iconify/utils@2.1.1: + resolution: {integrity: sha512-H8xz74JDzDw8f0qLxwIaxFMnFkbXTZNWEufOk3WxaLFHV4h0A2FjIDgNk5LzC0am4jssnjdeJJdRs3UFu3582Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.1.tgz} + name: '@iconify/utils' + version: 2.1.1 + dependencies: + '@antfu/install-pkg': registry.npmmirror.com/@antfu/install-pkg@0.1.1 + '@antfu/utils': registry.npmmirror.com/@antfu/utils@0.7.7 + '@iconify/types': registry.npmmirror.com/@iconify/types@2.0.0 + debug: registry.npmmirror.com/debug@4.3.4 + kolorist: registry.npmmirror.com/kolorist@1.8.0 + local-pkg: registry.npmmirror.com/local-pkg@0.4.3 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@istanbuljs/load-nyc-config@1.1.0: + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz} + name: '@istanbuljs/load-nyc-config' + version: 1.1.0 + engines: {node: '>=8'} + dependencies: + camelcase: registry.npmmirror.com/camelcase@5.3.1 + find-up: registry.npmmirror.com/find-up@4.1.0 + get-package-type: registry.npmmirror.com/get-package-type@0.1.0 + js-yaml: registry.npmmirror.com/js-yaml@3.14.1 + resolve-from: registry.npmmirror.com/resolve-from@5.0.0 + dev: false + + registry.npmmirror.com/@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz} + name: '@istanbuljs/schema' + version: 0.1.3 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz} + name: '@jest/schemas' + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': registry.npmmirror.com/@sinclair/typebox@0.27.8 + dev: false + + registry.npmmirror.com/@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/transform/-/transform-29.7.0.tgz} + name: '@jest/transform' + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul@6.1.1 + chalk: registry.npmmirror.com/chalk@4.1.2 + convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-haste-map: registry.npmmirror.com/jest-haste-map@29.7.0 + jest-regex-util: registry.npmmirror.com/jest-regex-util@29.6.3 + jest-util: registry.npmmirror.com/jest-util@29.7.0 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + pirates: registry.npmmirror.com/pirates@4.0.6 + slash: registry.npmmirror.com/slash@3.0.0 + write-file-atomic: registry.npmmirror.com/write-file-atomic@4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@jest/types@27.5.1: + resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz} + name: '@jest/types' + version: 27.5.1 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 + '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports@3.0.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + '@types/yargs': registry.npmmirror.com/@types/yargs@16.0.9 + chalk: registry.npmmirror.com/chalk@4.1.2 + dev: false + + registry.npmmirror.com/@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/types/-/types-29.6.3.tgz} + name: '@jest/types' + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': registry.npmmirror.com/@jest/schemas@29.6.3 + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 + '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports@3.0.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + '@types/yargs': registry.npmmirror.com/@types/yargs@17.0.32 + chalk: registry.npmmirror.com/chalk@4.1.2 + dev: false + + registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz} + name: '@jridgewell/gen-mapping' + version: 0.3.3 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array@1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + dev: false + + registry.npmmirror.com/@jridgewell/resolve-uri@3.1.1: + resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz} + name: '@jridgewell/resolve-uri' + version: 3.1.1 + engines: {node: '>=6.0.0'} + dev: false + + registry.npmmirror.com/@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} + name: '@jridgewell/set-array' + version: 1.1.2 + engines: {node: '>=6.0.0'} + dev: false + + registry.npmmirror.com/@jridgewell/source-map@0.3.5: + resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz} + name: '@jridgewell/source-map' + version: 0.3.5 + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + dev: false + + registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.15 + dev: false + + registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20: + resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.20 + dependencies: + '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri@3.1.1 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 + dev: false + + registry.npmmirror.com/@lezer/common@1.1.1: + resolution: {integrity: sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/common/-/common-1.1.1.tgz} + name: '@lezer/common' + version: 1.1.1 + dev: false + + registry.npmmirror.com/@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/highlight/-/highlight-1.2.0.tgz} + name: '@lezer/highlight' + version: 1.2.0 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + dev: false + + registry.npmmirror.com/@lezer/lr@1.3.14: + resolution: {integrity: sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/lr/-/lr-1.3.14.tgz} + name: '@lezer/lr' + version: 1.3.14 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 + dev: false + + registry.npmmirror.com/@loadable/component@5.15.2(react@18.1.0): + resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.15.2.tgz} + id: registry.npmmirror.com/@loadable/component/5.15.2 + name: '@loadable/component' + version: 5.15.2 + engines: {node: '>=8'} + peerDependencies: + react: '>=16.3.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + react: registry.npmmirror.com/react@18.1.0 + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + + registry.npmmirror.com/@loadable/component@5.15.2(react@18.2.0): + resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.15.2.tgz} + id: registry.npmmirror.com/@loadable/component/5.15.2 + name: '@loadable/component' + version: 5.15.2 + engines: {node: '>=8'} + peerDependencies: + react: '>=16.3.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + react: 18.2.0 + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + + registry.npmmirror.com/@makotot/ghostui@2.0.0(react@18.2.0): + resolution: {integrity: sha512-LD6OeMv+yGjpYZNjh34yDTCIE1NegqOtJq5gm4wX6op3QL7K5psTVzMjkWzseBoYj0XOD4g+UJVIZTprfoOPGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@makotot/ghostui/-/ghostui-2.0.0.tgz} + id: registry.npmmirror.com/@makotot/ghostui/2.0.0 + name: '@makotot/ghostui' + version: 2.0.0 + engines: {node: '>=10'} + peerDependencies: + react: '>=16' + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/@minko-fe/use-antd-resizable-header@2.9.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-LH/J5QTQMcZjwzWHd4bP3aI6IkRZ9753Y5ZTWTg9vJgyGQ1fxd0m1+P/2bqxoZji8Y5ZlZqwt2+O8YFK9k58dA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@minko-fe/use-antd-resizable-header/-/use-antd-resizable-header-2.9.0.tgz} + id: registry.npmmirror.com/@minko-fe/use-antd-resizable-header/2.9.0 + name: '@minko-fe/use-antd-resizable-header' + version: 2.9.0 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + lodash.debounce: registry.npmmirror.com/lodash.debounce@4.0.8 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + react: 18.2.0 + react-detectable-overflow: registry.npmmirror.com/react-detectable-overflow@0.7.1(react-dom@18.2.0)(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + react-resizable: registry.npmmirror.com/react-resizable@3.0.5(react-dom@18.2.0)(react@18.2.0) + dev: false + + registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: + resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz} + name: '@nicolo-ribaudo/eslint-scope-5-internals' + version: 5.1.1-v1 + dependencies: + eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 + dev: false + + registry.npmmirror.com/@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} + name: '@nodelib/fs.scandir' + version: 2.1.5 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + run-parallel: registry.npmmirror.com/run-parallel@1.2.0 + dev: false + + registry.npmmirror.com/@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} + name: '@nodelib/fs.stat' + version: 2.0.5 + engines: {node: '>= 8'} + dev: false + + registry.npmmirror.com/@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} + name: '@nodelib/fs.walk' + version: 1.2.8 + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': registry.npmmirror.com/@nodelib/fs.scandir@2.1.5 + fastq: registry.npmmirror.com/fastq@1.15.0 + dev: false + + registry.npmmirror.com/@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz} + name: '@pkgjs/parseargs' + version: 0.11.0 + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@pkgr/utils@2.4.2: + resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@pkgr/utils/-/utils-2.4.2.tgz} + name: '@pkgr/utils' + version: 2.4.2 + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + open: registry.npmmirror.com/open@9.1.0 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-1.4.1.tgz} + id: registry.npmmirror.com/@rc-component/color-picker/1.4.1 + name: '@rc-component/color-picker' + version: 1.4.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/context/-/context-1.4.0.tgz} + id: registry.npmmirror.com/@rc-component/context/1.4.0 + name: '@rc-component/context' + version: 1.4.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/mini-decimal@1.1.0: + resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz} + name: '@rc-component/mini-decimal' + version: 1.1.0 + engines: {node: '>=8.x'} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz} + id: registry.npmmirror.com/@rc-component/mutate-observer/1.1.0 + name: '@rc-component/mutate-observer' + version: 1.1.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/portal/-/portal-1.1.2.tgz} + id: registry.npmmirror.com/@rc-component/portal/1.1.2 + name: '@rc-component/portal' + version: 1.1.2 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/tour/-/tour-1.10.0.tgz} + id: registry.npmmirror.com/@rc-component/tour/1.10.0 + name: '@rc-component/tour' + version: 1.10.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/trigger/-/trigger-1.18.2.tgz} + id: registry.npmmirror.com/@rc-component/trigger/1.18.2 + name: '@rc-component/trigger' + version: 1.18.2 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/@rollup/rollup-android-arm-eabi@4.5.2: + resolution: {integrity: sha512-ee7BudTwwrglFYSc3UnqInDDjCLWHKrFmGNi4aK7jlEyg4CyPa1DCMrZfsN1O13YT76UFEqXz2CoN7BCGpUlJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.2.tgz} + name: '@rollup/rollup-android-arm-eabi' + version: 4.5.2 + cpu: [arm] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-android-arm64@4.5.2: + resolution: {integrity: sha512-xOuhj9HHtn8128ir8veoQsBbAUBasDbHIBniYTEx02pAmu9EXL+ZjJqngnNEy6ZgZ4h1JwL33GMNu3yJL5Mzow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.2.tgz} + name: '@rollup/rollup-android-arm64' + version: 4.5.2 + cpu: [arm64] + os: [android] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-darwin-arm64@4.5.2: + resolution: {integrity: sha512-NTGJWoL8bKyqyWFn9/RzSv4hQ4wTbaAv0lHHRwf4OnpiiP4P8W0jiXbm8Nc5BCXKmWAwuvJY82mcIU2TayC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.2.tgz} + name: '@rollup/rollup-darwin-arm64' + version: 4.5.2 + cpu: [arm64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-darwin-x64@4.5.2: + resolution: {integrity: sha512-hlKqj7bpPvU15sZo4za14u185lpMzdwWLMc9raMqPK4wywt0wR23y1CaVQ4oAFXat3b5/gmRntyfpwWTKl+vvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.2.tgz} + name: '@rollup/rollup-darwin-x64' + version: 4.5.2 + cpu: [x64] + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf@4.5.2: + resolution: {integrity: sha512-7ZIZx8c3u+pfI0ohQsft/GywrXez0uR6dUP0JhBuCK3sFO5TfdLn/YApnVkvPxuTv3+YKPIZend9Mt7Cz6sS3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.2.tgz} + name: '@rollup/rollup-linux-arm-gnueabihf' + version: 4.5.2 + cpu: [arm] + os: [linux] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu@4.5.2: + resolution: {integrity: sha512-7Pk/5mO11JW/cH+a8lL/i0ZxmRGrbpYqN0VwO2DHhU+SJWWOH2zE1RAcPaj8KqiwC8DCDIJOSxjV9+9lLb6aeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.2.tgz} + name: '@rollup/rollup-linux-arm64-gnu' + version: 4.5.2 + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-arm64-musl@4.5.2: + resolution: {integrity: sha512-KrRnuG5phJx756e62wxvWH2e+TK84MP2IVuPwfge+GBvWqIUfVzFRn09TKruuQBXzZp52Vyma7FjMDkwlA9xpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.2.tgz} + name: '@rollup/rollup-linux-arm64-musl' + version: 4.5.2 + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-x64-gnu@4.5.2: + resolution: {integrity: sha512-My+53GasPa2D2tU5dXiyHYwrELAUouSfkNlZ3bUKpI7btaztO5vpALEs3mvFjM7aKTvEbc7GQckuXeXIDKQ0fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.2.tgz} + name: '@rollup/rollup-linux-x64-gnu' + version: 4.5.2 + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-x64-musl@4.5.2: + resolution: {integrity: sha512-/f0Q6Sc+Vw54Ws6N8fxaEe4R7at3b8pFyv+O/F2VaQ4hODUJcRUcCBJh6zuqtgQQt7w845VTkGLFgWZkP3tUoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.2.tgz} + name: '@rollup/rollup-linux-x64-musl' + version: 4.5.2 + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc@4.5.2: + resolution: {integrity: sha512-NCKuuZWLht6zj7s6EIFef4BxCRX1GMr83S2W4HPCA0RnJ4iHE4FS1695q6Ewoa6A9nFjJe1//yUu0kgBU07Edw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.2.tgz} + name: '@rollup/rollup-win32-arm64-msvc' + version: 4.5.2 + cpu: [arm64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.5.2: + resolution: {integrity: sha512-J5zL3riR4AOyU/J3M/i4k/zZ8eP1yT+nTmAKztCXJtnI36jYH0eepvob22mAQ/kLwfsK2TB6dbyVY1F8c/0H5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.2.tgz} + name: '@rollup/rollup-win32-ia32-msvc' + version: 4.5.2 + cpu: [ia32] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.5.2: + resolution: {integrity: sha512-pL0RXRHuuGLhvs7ayX/SAHph1hrDPXOM5anyYUQXWJEENxw3nfHkzv8FfVlEVcLyKPAEgDRkd6RKZq2SMqS/yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.2.tgz} + name: '@rollup/rollup-win32-x64-msvc' + version: 4.5.2 + cpu: [x64] + os: [win32] + requiresBuild: true + optional: true + + registry.npmmirror.com/@selderee/plugin-htmlparser2@0.11.0: + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz} + name: '@selderee/plugin-htmlparser2' + version: 0.11.0 + dependencies: + domhandler: registry.npmmirror.com/domhandler@5.0.3 + selderee: registry.npmmirror.com/selderee@0.11.0 + dev: false + + registry.npmmirror.com/@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz} + name: '@sinclair/typebox' + version: 0.27.8 + dev: false + + registry.npmmirror.com/@sketch-hq/sketch-file-format-ts@6.5.0: + resolution: {integrity: sha512-shaGl4ttFDpHjYBoMaZpciOtsi/lKvJ3VfcBYk6+PjjbFs6H5GxPAyhbiSqy3Vmx30aos284pd88QzD3rE6iag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sketch-hq/sketch-file-format-ts/-/sketch-file-format-ts-6.5.0.tgz} + name: '@sketch-hq/sketch-file-format-ts' + version: 6.5.0 + dev: false + + registry.npmmirror.com/@stackblitz/sdk@1.9.0: + resolution: {integrity: sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@stackblitz/sdk/-/sdk-1.9.0.tgz} + name: '@stackblitz/sdk' + version: 1.9.0 + dev: false + + registry.npmmirror.com/@stylelint/postcss-css-in-js@0.38.0(postcss-syntax@0.36.2)(postcss@8.4.31): + resolution: {integrity: sha512-XOz5CAe49kS95p5yRd+DAIWDojTjfmyAQ4bbDlXMdbZTQ5t0ThjSLvWI6JI2uiS7MFurVBkZ6zUqcimzcLTBoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.38.0.tgz} + id: registry.npmmirror.com/@stylelint/postcss-css-in-js/0.38.0 + name: '@stylelint/postcss-css-in-js' + version: 0.38.0 + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + peerDependencies: + postcss: '>=7.0.0' + postcss-syntax: '>=0.36.2' + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-syntax: registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.31) + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/6.5.1 + name: '@svgr/babel-plugin-add-jsx-attribute' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.3): + resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/8.0.0 + name: '@svgr/babel-plugin-remove-jsx-attribute' + version: 8.0.0 + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.3): + resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/8.0.0 + name: '@svgr/babel-plugin-remove-jsx-empty-expression' + version: 8.0.0 + engines: {node: '>=14'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/6.5.1 + name: '@svgr/babel-plugin-replace-jsx-attribute-value' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/6.5.1 + name: '@svgr/babel-plugin-svg-dynamic-title' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/6.5.1 + name: '@svgr/babel-plugin-svg-em-dimensions' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/6.5.1 + name: '@svgr/babel-plugin-transform-react-native-svg' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/6.5.1 + name: '@svgr/babel-plugin-transform-svg-component' + version: 6.5.1 + engines: {node: '>=12'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + dev: false + + registry.npmmirror.com/@svgr/babel-preset@6.5.1(@babel/core@7.23.3): + resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/babel-preset/6.5.1 + name: '@svgr/babel-preset' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@svgr/babel-plugin-add-jsx-attribute': registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-remove-jsx-attribute': registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.3) + '@svgr/babel-plugin-remove-jsx-empty-expression': registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.3) + '@svgr/babel-plugin-replace-jsx-attribute-value': registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-svg-dynamic-title': registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-svg-em-dimensions': registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-transform-react-native-svg': registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.23.3) + '@svgr/babel-plugin-transform-svg-component': registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.23.3) + dev: false + + registry.npmmirror.com/@svgr/core@6.5.1: + resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/core/-/core-6.5.1.tgz} + name: '@svgr/core' + version: 6.5.1 + engines: {node: '>=10'} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@svgr/babel-preset': registry.npmmirror.com/@svgr/babel-preset@6.5.1(@babel/core@7.23.3) + '@svgr/plugin-jsx': registry.npmmirror.com/@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1) + camelcase: registry.npmmirror.com/camelcase@6.3.0 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@svgr/hast-util-to-babel-ast@6.5.1: + resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz} + name: '@svgr/hast-util-to-babel-ast' + version: 6.5.1 + engines: {node: '>=10'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + entities: registry.npmmirror.com/entities@4.5.0 + dev: false + + registry.npmmirror.com/@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): + resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/plugin-jsx/6.5.1 + name: '@svgr/plugin-jsx' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': ^6.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@svgr/babel-preset': registry.npmmirror.com/@svgr/babel-preset@6.5.1(@babel/core@7.23.3) + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + '@svgr/hast-util-to-babel-ast': registry.npmmirror.com/@svgr/hast-util-to-babel-ast@6.5.1 + svg-parser: registry.npmmirror.com/svg-parser@2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): + resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz} + id: registry.npmmirror.com/@svgr/plugin-svgo/6.5.1 + name: '@svgr/plugin-svgo' + version: 6.5.1 + engines: {node: '>=10'} + peerDependencies: + '@svgr/core': '*' + dependencies: + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + svgo: registry.npmmirror.com/svgo@2.8.0 + dev: false + + registry.npmmirror.com/@swc/core-darwin-arm64@1.3.72: + resolution: {integrity: sha512-oNSI5hVfZ+1xpj+dH1g4kQqA0VsGtqd8S9S+cDqkHZiOOVOevw9KN6dzVtmLOcPtlULVypVc0TVvsB55KdVZhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.72.tgz} + name: '@swc/core-darwin-arm64' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-darwin-x64@1.3.72: + resolution: {integrity: sha512-y5O/WQ1g0/VfTgeNahWIOutbdD5U2Gi703jaefdcoJo3FUx8WU108QQdbVGwGMgaqapo3iQB6Qs9paixYQAYsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.72.tgz} + name: '@swc/core-darwin-x64' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-arm-gnueabihf@1.3.72: + resolution: {integrity: sha512-05JdWcso0OomHF+7bk5MBDgI8MZ9skcQ/4nhSv5gboSgSiuBmKM15Bg3lZ5iAUwGByNj7pGkSmmd3YwTrXEB+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.72.tgz} + name: '@swc/core-linux-arm-gnueabihf' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-arm64-gnu@1.3.72: + resolution: {integrity: sha512-8qRELJaeYshhJgqvyOeXCKqBOpai+JYdWuouMbvvDUL85j3OcZhzR+bipexEbbJKcOCdRnoYB7Qg6mjqZ0t7VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.72.tgz} + name: '@swc/core-linux-arm64-gnu' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-arm64-musl@1.3.72: + resolution: {integrity: sha512-tOqAGZw+Pe7YrBHFrwFVyRiKqjgjzwYbJmY+UDxLrzWrZSVtC3eO2TPrp7kWmhirg40Og81BbdfRAl8ds48w0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.72.tgz} + name: '@swc/core-linux-arm64-musl' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-x64-gnu@1.3.72: + resolution: {integrity: sha512-U2W2xWR3s9nplGVWz376GiBlcLTgxyYKlpZPBNZk0w3OvTcjKC62gW1Pe7PUkk4NgJUnaQDBa/mb4V4Zl+GZPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.72.tgz} + name: '@swc/core-linux-x64-gnu' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-linux-x64-musl@1.3.72: + resolution: {integrity: sha512-3+2dUiZBsifKgvnFEHWdysXjInK8K+BfPBw2tTZJmq1+fZLt0rvuErYDVMLfIJnVWLCcJMnDtTXrvkFV1y/6iA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.72.tgz} + name: '@swc/core-linux-x64-musl' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-win32-arm64-msvc@1.3.72: + resolution: {integrity: sha512-ndI8xZ2AId806D25xgqw2SFJ9gc/jhg21+5hA8XPq9ZL+oDiaYDztaP3ijVmZ1G5xXKD9DpgB7xmylv/f6o6GA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.72.tgz} + name: '@swc/core-win32-arm64-msvc' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.72: + resolution: {integrity: sha512-F3TK8JHP3SRFjLRlzcRVZPnvvGm2CQ5/cwbIkaEq0Dla3kyctU8SiRqvtYwWCW4JuY10cUygIg93Ec/C9Lkk4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.72.tgz} + name: '@swc/core-win32-ia32-msvc' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.72: + resolution: {integrity: sha512-FXMnIUtLl0yEmGkw+xbUg/uUPExvUxUlLSHbX7CnbSuOIHqMHzvEd9skIueLAst4bvmJ8kT1hDyAIWQcTIAJYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.72.tgz} + name: '@swc/core-win32-x64-msvc' + version: 1.3.72 + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@swc/core@1.3.72: + resolution: {integrity: sha512-+AKjwLH3/STfPrd7CHzB9+NG1FVT0UKJMUChuWq9sQ8b9xlV8vUeRgZXgh/EHYvNQgl/OUTQKtL6xU2yOLuEuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core/-/core-1.3.72.tgz} + name: '@swc/core' + version: 1.3.72 + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + optionalDependencies: + '@swc/core-darwin-arm64': registry.npmmirror.com/@swc/core-darwin-arm64@1.3.72 + '@swc/core-darwin-x64': registry.npmmirror.com/@swc/core-darwin-x64@1.3.72 + '@swc/core-linux-arm-gnueabihf': registry.npmmirror.com/@swc/core-linux-arm-gnueabihf@1.3.72 + '@swc/core-linux-arm64-gnu': registry.npmmirror.com/@swc/core-linux-arm64-gnu@1.3.72 + '@swc/core-linux-arm64-musl': registry.npmmirror.com/@swc/core-linux-arm64-musl@1.3.72 + '@swc/core-linux-x64-gnu': registry.npmmirror.com/@swc/core-linux-x64-gnu@1.3.72 + '@swc/core-linux-x64-musl': registry.npmmirror.com/@swc/core-linux-x64-musl@1.3.72 + '@swc/core-win32-arm64-msvc': registry.npmmirror.com/@swc/core-win32-arm64-msvc@1.3.72 + '@swc/core-win32-ia32-msvc': registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.72 + '@swc/core-win32-x64-msvc': registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.72 + dev: false + + registry.npmmirror.com/@trysound/sax@0.2.0: + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz} + name: '@trysound/sax' + version: 0.2.0 + engines: {node: '>=10.13.0'} + dev: false + + registry.npmmirror.com/@types/babel__core@7.20.5: + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz} + name: '@types/babel__core' + version: 7.20.5 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + '@types/babel__generator': registry.npmmirror.com/@types/babel__generator@7.6.7 + '@types/babel__template': registry.npmmirror.com/@types/babel__template@7.4.4 + '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse@7.20.4 + dev: false + + registry.npmmirror.com/@types/babel__generator@7.6.7: + resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.7.tgz} + name: '@types/babel__generator' + version: 7.6.7 + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@types/babel__template@7.4.4: + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz} + name: '@types/babel__template' + version: 7.4.4 + dependencies: + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@types/babel__traverse@7.20.4: + resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz} + name: '@types/babel__traverse' + version: 7.20.4 + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + dev: false + + registry.npmmirror.com/@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz} + name: '@types/debug' + version: 4.1.12 + dependencies: + '@types/ms': registry.npmmirror.com/@types/ms@0.7.34 + dev: false + + registry.npmmirror.com/@types/eslint-scope@3.7.7: + resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz} + name: '@types/eslint-scope' + version: 3.7.7 + dependencies: + '@types/eslint': registry.npmmirror.com/@types/eslint@8.44.7 + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + dev: false + + registry.npmmirror.com/@types/eslint@8.44.7: + resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/eslint/-/eslint-8.44.7.tgz} + name: '@types/eslint' + version: 8.44.7 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 + dev: false + + registry.npmmirror.com/@types/estree-jsx@1.0.3: + resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree-jsx/-/estree-jsx-1.0.3.tgz} + name: '@types/estree-jsx' + version: 1.0.3 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + dev: false + + registry.npmmirror.com/@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz} + name: '@types/estree' + version: 1.0.5 + dev: false + + registry.npmmirror.com/@types/fs-extra@11.0.1: + resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.1.tgz} + name: '@types/fs-extra' + version: 11.0.1 + dependencies: + '@types/jsonfile': registry.npmmirror.com/@types/jsonfile@6.1.4 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/graceful-fs@4.1.9: + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz} + name: '@types/graceful-fs' + version: 4.1.9 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/hapi__joi@17.1.9: + resolution: {integrity: sha512-oOMFT8vmCTFncsF1engrs04jatz8/Anwx3De9uxnOK4chgSEgWBvFtpSoJo8u3784JNO+ql5tzRR6phHoRnscQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__joi/-/hapi__joi-17.1.9.tgz} + name: '@types/hapi__joi' + version: 17.1.9 + dev: false + + registry.npmmirror.com/@types/hast@2.3.8: + resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hast/-/hast-2.3.8.tgz} + name: '@types/hast' + version: 2.3.8 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5: + resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz} + name: '@types/hoist-non-react-statics' + version: 3.3.5 + dependencies: + '@types/react': registry.npmmirror.com/@types/react@18.2.38 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + dev: false + + registry.npmmirror.com/@types/html-minifier-terser@6.1.0: + resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz} + name: '@types/html-minifier-terser' + version: 6.1.0 + dev: false + + registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6: + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz} + name: '@types/istanbul-lib-coverage' + version: 2.0.6 + dev: false + + registry.npmmirror.com/@types/istanbul-lib-report@3.0.3: + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz} + name: '@types/istanbul-lib-report' + version: 3.0.3 + dependencies: + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 + dev: false + + registry.npmmirror.com/@types/istanbul-reports@3.0.4: + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz} + name: '@types/istanbul-reports' + version: 3.0.4 + dependencies: + '@types/istanbul-lib-report': registry.npmmirror.com/@types/istanbul-lib-report@3.0.3 + dev: false + + registry.npmmirror.com/@types/js-cookie@2.2.7: + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-2.2.7.tgz} + name: '@types/js-cookie' + version: 2.2.7 + dev: false + + registry.npmmirror.com/@types/json-schema@7.0.15: + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz} + name: '@types/json-schema' + version: 7.0.15 + dev: false + + registry.npmmirror.com/@types/jsonfile@6.1.4: + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/jsonfile/-/jsonfile-6.1.4.tgz} + name: '@types/jsonfile' + version: 6.1.4 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/keyv/-/keyv-3.1.4.tgz} + name: '@types/keyv' + version: 3.1.4 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz} + name: '@types/mdast' + version: 3.0.15 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/@types/minimist@1.2.5: + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.5.tgz} + name: '@types/minimist' + version: 1.2.5 + dev: false + + registry.npmmirror.com/@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz} + name: '@types/ms' + version: 0.7.34 + dev: false + + registry.npmmirror.com/@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz} + name: '@types/node' + version: 17.0.45 + dev: false + + registry.npmmirror.com/@types/node@20.10.0: + resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-20.10.0.tgz} + name: '@types/node' + version: 20.10.0 + dependencies: + undici-types: registry.npmmirror.com/undici-types@5.26.5 + dev: false + + registry.npmmirror.com/@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz} + name: '@types/normalize-package-data' + version: 2.4.4 + dev: false + + registry.npmmirror.com/@types/parse-json@4.0.2: + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.2.tgz} + name: '@types/parse-json' + version: 4.0.2 + dev: false + + registry.npmmirror.com/@types/parse5@6.0.3: + resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/parse5/-/parse5-6.0.3.tgz} + name: '@types/parse5' + version: 6.0.3 + dev: false + + registry.npmmirror.com/@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.11.tgz} + name: '@types/prop-types' + version: 15.7.11 + dev: false + + registry.npmmirror.com/@types/q@1.5.8: + resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/q/-/q-1.5.8.tgz} + name: '@types/q' + version: 1.5.8 + dev: false + + registry.npmmirror.com/@types/ramda@0.29.3: + resolution: {integrity: sha512-Yh/RHkjN0ru6LVhSQtTkCRo6HXkfL9trot/2elzM/yXLJmbLm2v6kJc8yftTnwv1zvUob6TEtqI2cYjdqG3U0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ramda/-/ramda-0.29.3.tgz} + name: '@types/ramda' + version: 0.29.3 + dependencies: + types-ramda: registry.npmmirror.com/types-ramda@0.29.6 + dev: false + + registry.npmmirror.com/@types/react@18.2.38: + resolution: {integrity: sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react/-/react-18.2.38.tgz} + name: '@types/react' + version: 18.2.38 + dependencies: + '@types/prop-types': registry.npmmirror.com/@types/prop-types@15.7.11 + '@types/scheduler': registry.npmmirror.com/@types/scheduler@0.16.8 + csstype: registry.npmmirror.com/csstype@3.1.2 + dev: false + + registry.npmmirror.com/@types/responselike@1.0.3: + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz} + name: '@types/responselike' + version: 1.0.3 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/sax@1.2.7: + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/sax/-/sax-1.2.7.tgz} + name: '@types/sax' + version: 1.2.7 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + dev: false + + registry.npmmirror.com/@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.8.tgz} + name: '@types/scheduler' + version: 0.16.8 + dev: false + + registry.npmmirror.com/@types/semver@7.5.6: + resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz} + name: '@types/semver' + version: 7.5.6 + dev: false + + registry.npmmirror.com/@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/unist/-/unist-2.0.10.tgz} + name: '@types/unist' + version: 2.0.10 + dev: false + + registry.npmmirror.com/@types/yargs-parser@21.0.3: + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz} + name: '@types/yargs-parser' + version: 21.0.3 + dev: false + + registry.npmmirror.com/@types/yargs@16.0.9: + resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz} + name: '@types/yargs' + version: 16.0.9 + dependencies: + '@types/yargs-parser': registry.npmmirror.com/@types/yargs-parser@21.0.3 + dev: false + + registry.npmmirror.com/@types/yargs@17.0.32: + resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.32.tgz} + name: '@types/yargs' + version: 17.0.32 + dependencies: + '@types/yargs-parser': registry.npmmirror.com/@types/yargs-parser@21.0.3 + dev: false + + registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.62.0 + name: '@typescript-eslint/eslint-plugin' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp@4.10.0 + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 + '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.54.0 + graphemer: registry.npmmirror.com/graphemer@1.4.0 + ignore: registry.npmmirror.com/ignore@5.3.0 + natural-compare-lite: registry.npmmirror.com/natural-compare-lite@1.4.0 + semver: registry.npmmirror.com/semver@7.5.4 + tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/parser/5.62.0 + name: '@typescript-eslint/parser' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.54.0 + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0: + resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz} + name: '@typescript-eslint/scope-manager' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0 + dev: false + + registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/type-utils/5.62.0 + name: '@typescript-eslint/type-utils' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) + debug: registry.npmmirror.com/debug@4.3.4 + eslint: 8.54.0 + tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@typescript-eslint/types@5.62.0: + resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.62.0.tgz} + name: '@typescript-eslint/types' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2): + resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/typescript-estree/5.62.0 + name: '@typescript-eslint/typescript-estree' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0 + debug: registry.npmmirror.com/debug@4.3.4 + globby: registry.npmmirror.com/globby@11.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + semver: registry.npmmirror.com/semver@7.5.4 + tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2) + typescript: 5.3.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.62.0.tgz} + id: registry.npmmirror.com/@typescript-eslint/utils/5.62.0 + name: '@typescript-eslint/utils' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0) + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 + '@types/semver': registry.npmmirror.com/@types/semver@7.5.6 + '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2) + eslint: 8.54.0 + eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 + semver: registry.npmmirror.com/semver@7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + + registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0: + resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz} + name: '@typescript-eslint/visitor-keys' + version: 5.62.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 + eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + dev: false + + registry.npmmirror.com/@umijs/ast@4.0.89: + resolution: {integrity: sha512-19J5oQubKa/TiAFuQIEp9AZXN0WcGLtWxDdLyVS0ja8T8q0/74yUDTIdbz6zb/i3dX3qeySoi5lQwHc9i/i3Aw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/ast/-/ast-4.0.89.tgz} + name: '@umijs/ast' + version: 4.0.89 + dependencies: + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89: + resolution: {integrity: sha512-Q9/SaEU3K9q+aNMmwIxcfkqtYdhE4n/J0BRx0XUo71rN0mN+4EOuOPLNMD8hKtJw5CZeASeS3qQbQKd44SjOow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/babel-preset-umi/-/babel-preset-umi-4.0.89.tgz} + name: '@umijs/babel-preset-umi' + version: 4.0.89 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@bloomberg/record-tuple-polyfill': registry.npmmirror.com/@bloomberg/record-tuple-polyfill@0.0.4 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + core-js: registry.npmmirror.com/core-js@3.28.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89: + resolution: {integrity: sha512-VF/67qtDmSnTZLTK6tIPUb3meKhkzha0kalSYlrvYLkOxGVIfKrxgDZB3hqi2pmwPdNiDxP16Cp1OewCZed4Gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-esbuild/-/bundler-esbuild-4.0.89.tgz} + name: '@umijs/bundler-esbuild' + version: 4.0.89 + hasBin: true + dependencies: + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.9.3 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-flexbugs-fixes: registry.npmmirror.com/postcss-flexbugs-fixes@5.0.2(postcss@8.4.31) + postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31) + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/bundler-utils@4.0.89: + resolution: {integrity: sha512-/nKdEj0ku9MX5RYYLzDObuvDBb1sd89XD2Opldk7kgLbLw1iePksrWtP8gR5X2UGjqtEZYvcfrYFt0jV0LCcQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-utils/-/bundler-utils-4.0.89.tgz} + name: '@umijs/bundler-utils' + version: 4.0.89 + dependencies: + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + esbuild: registry.npmmirror.com/esbuild@0.17.19 + regenerate: registry.npmmirror.com/regenerate@1.4.2 + regenerate-unicode-properties: registry.npmmirror.com/regenerate-unicode-properties@10.1.1 + spdy: registry.npmmirror.com/spdy@4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.10.0)(postcss@8.4.31)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0): + resolution: {integrity: sha512-4dfBmVK44AqsJm1+YhFijKXcrHoM26vO9Ju5Us4+J0Ca3rDUtWQZJ9xFEkqsNsf7AMaJ7B8zDd422sThvvSXGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-vite/-/bundler-vite-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/bundler-vite/4.0.89 + name: '@umijs/bundler-vite' + version: 4.0.89 + hasBin: true + dependencies: + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + '@vitejs/plugin-react': registry.npmmirror.com/@vitejs/plugin-react@4.0.0(vite@4.3.1) + core-js: registry.npmmirror.com/core-js@3.28.0 + less: registry.npmmirror.com/less@4.1.3 + postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31) + rollup-plugin-visualizer: registry.npmmirror.com/rollup-plugin-visualizer@5.9.0(rollup@4.5.2) + systemjs: registry.npmmirror.com/systemjs@6.14.2 + vite: registry.npmmirror.com/vite@4.3.1(@types/node@20.10.0)(less@4.1.3)(sass@1.69.5)(terser@5.24.0) + transitivePeerDependencies: + - '@types/node' + - postcss + - rollup + - sass + - stylus + - sugarss + - supports-color + - terser + dev: false + + registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-BfCpmxDIzhRa7wnEAODOj5auHXd/n954qt0QUkUUlGJYa5GrtgRiKsGtnwew+8uVX1vm0y7XDqnCU+trWAq0nQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-webpack/-/bundler-webpack-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/bundler-webpack/4.0.89 + name: '@umijs/bundler-webpack' + version: 4.0.89 + hasBin: true + dependencies: + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + '@svgr/plugin-jsx': registry.npmmirror.com/@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1) + '@svgr/plugin-svgo': registry.npmmirror.com/@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1) + '@types/hapi__joi': registry.npmmirror.com/@types/hapi__joi@17.1.9 + '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/case-sensitive-paths-webpack-plugin': registry.npmmirror.com/@umijs/case-sensitive-paths-webpack-plugin@1.0.1 + '@umijs/mfsu': registry.npmmirror.com/@umijs/mfsu@4.0.89 + '@umijs/react-refresh-webpack-plugin': registry.npmmirror.com/@umijs/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack@5.89.0) + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + cors: registry.npmmirror.com/cors@2.8.5 + css-loader: registry.npmmirror.com/css-loader@6.7.1(webpack@5.89.0) + es5-imcompatible-versions: registry.npmmirror.com/es5-imcompatible-versions@0.1.88 + fork-ts-checker-webpack-plugin: registry.npmmirror.com/fork-ts-checker-webpack-plugin@8.0.0(typescript@5.3.2)(webpack@5.89.0) + jest-worker: registry.npmmirror.com/jest-worker@29.4.3 + lightningcss: registry.npmmirror.com/lightningcss@1.22.1 + node-libs-browser: registry.npmmirror.com/node-libs-browser@2.2.1 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31) + react-error-overlay: registry.npmmirror.com/react-error-overlay@6.0.9 + react-refresh: registry.npmmirror.com/react-refresh@0.14.0 + transitivePeerDependencies: + - '@types/webpack' + - sockjs-client + - supports-color + - type-fest + - typescript + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + registry.npmmirror.com/@umijs/case-sensitive-paths-webpack-plugin@1.0.1: + resolution: {integrity: sha512-kDKJ8yTarxwxGJDInG33hOpaQRZ//XpNuuznQ/1Mscypw6kappzFmrBr2dOYave++K7JHouoANF354UpbEQw0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-1.0.1.tgz} + name: '@umijs/case-sensitive-paths-webpack-plugin' + version: 1.0.1 + dev: false + + registry.npmmirror.com/@umijs/core@4.0.89: + resolution: {integrity: sha512-S6K2Y8h6DyRoPP0EVrYgDs3iO7B2hHcd9QN+n6v0JHzhkHMVvsPnGlPx66yAptACBlBirR/ICIm0Pr1CrDADbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/core/-/core-4.0.89.tgz} + name: '@umijs/core' + version: 4.0.89 + dependencies: + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/did-you-know@1.0.3: + resolution: {integrity: sha512-9EZ+rgY9+2HEaE+Z9dGkal2ccw8L4uuz77tCB5WpskW7NBZX5nOj82sqF/shEtA5tU3SWO/Mi4n35K3iONvDtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/did-you-know/-/did-you-know-1.0.3.tgz} + name: '@umijs/did-you-know' + version: 1.0.3 + dev: false + + registry.npmmirror.com/@umijs/es-module-parser-darwin-arm64@0.0.7: + resolution: {integrity: sha512-1QeNupekuVYVvL4UHyCRq4ISP2PNk4rDd9UOPONW+KpqTyP9p7RfgGpwB0VLPaFSu2ADtm0XZyIaYEGPY6zuDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-darwin-arm64/-/es-module-parser-darwin-arm64-0.0.7.tgz} + name: '@umijs/es-module-parser-darwin-arm64' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-darwin-x64@0.0.7: + resolution: {integrity: sha512-FBFmfigmToPc9qBCW7wHiTYpqnLdPbAvoMGOydzAu2NspdPEF7TfILcr8vCPNbNe3vCobS+T/YM1dP+SagERlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-darwin-x64/-/es-module-parser-darwin-x64-0.0.7.tgz} + name: '@umijs/es-module-parser-darwin-x64' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-arm-gnueabihf@0.0.7: + resolution: {integrity: sha512-AXfmg3htkadLGsXUyiyrTig4omGCWIN4l+HS7Qapqv0wlfFYSpC0KPemjyBQgzXO70tDcT+1FNhGjIy+yr2pIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-arm-gnueabihf/-/es-module-parser-linux-arm-gnueabihf-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-arm-gnueabihf' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-gnu@0.0.7: + resolution: {integrity: sha512-2wSdChFc39fPJwvS8tRq+jx8qNlIwrjRk1hb3N5o0rJR+rqt+ceAyNPbYwpNBmUHW7xtmDQvJUeinvr7hIBP+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-gnu/-/es-module-parser-linux-arm64-gnu-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-arm64-gnu' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-musl@0.0.7: + resolution: {integrity: sha512-cqQffARWkmQ3n1RYNKZR3aD6X8YaP6u1maASjDgPQOpZMAlv/OSDrM/7iGujWTs0PD0haockNG9/DcP6lgPHMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-musl/-/es-module-parser-linux-arm64-musl-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-arm64-musl' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-x64-gnu@0.0.7: + resolution: {integrity: sha512-PHrKHtT665Za0Ydjch4ACrNpRU+WIIden12YyF1CtMdhuLDSoU6UfdhF3NoDbgEUcXVDX/ftOqmj0SbH3R1uew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-x64-gnu/-/es-module-parser-linux-x64-gnu-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-x64-gnu' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-linux-x64-musl@0.0.7: + resolution: {integrity: sha512-cyZvUK5lcECLWzLp/eU1lFlCETcz+LEb+wrdARQSST1dgoIGZsT4cqM1WzYmdZNk3o883tiZizLt58SieEiHBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-x64-musl/-/es-module-parser-linux-x64-musl-0.0.7.tgz} + name: '@umijs/es-module-parser-linux-x64-musl' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-win32-arm64-msvc@0.0.7: + resolution: {integrity: sha512-V7WxnUI88RboSl0RWLNQeKBT7EDW35fW6Tn92zqtoHHxrhAIL9DtDyvC8REP4qTxeZ6Oej/Ax5I6IjsLx3yTOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-win32-arm64-msvc/-/es-module-parser-win32-arm64-msvc-0.0.7.tgz} + name: '@umijs/es-module-parser-win32-arm64-msvc' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser-win32-x64-msvc@0.0.7: + resolution: {integrity: sha512-X3Pqy0l38hg6wMPquPeMHuoHU+Cx+wzyz32SVYCta+RPJQ7n9PjrEBiIuVAw5+GJZjSABN7LVr8u/n0RZT9EQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-win32-x64-msvc/-/es-module-parser-win32-x64-msvc-0.0.7.tgz} + name: '@umijs/es-module-parser-win32-x64-msvc' + version: 0.0.7 + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/@umijs/es-module-parser@0.0.7: + resolution: {integrity: sha512-x47CMi/Hw7Nkz3RXTUqlldH/UM+Tcmw2PziV3k+itJqTFJc8oVx3lzdUgCnG+eL3ZtmLPbOEBhPb30V0NytNDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser/-/es-module-parser-0.0.7.tgz} + name: '@umijs/es-module-parser' + version: 0.0.7 + engines: {node: '>= 10'} + optionalDependencies: + '@umijs/es-module-parser-darwin-arm64': registry.npmmirror.com/@umijs/es-module-parser-darwin-arm64@0.0.7 + '@umijs/es-module-parser-darwin-x64': registry.npmmirror.com/@umijs/es-module-parser-darwin-x64@0.0.7 + '@umijs/es-module-parser-linux-arm-gnueabihf': registry.npmmirror.com/@umijs/es-module-parser-linux-arm-gnueabihf@0.0.7 + '@umijs/es-module-parser-linux-arm64-gnu': registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-gnu@0.0.7 + '@umijs/es-module-parser-linux-arm64-musl': registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-musl@0.0.7 + '@umijs/es-module-parser-linux-x64-gnu': registry.npmmirror.com/@umijs/es-module-parser-linux-x64-gnu@0.0.7 + '@umijs/es-module-parser-linux-x64-musl': registry.npmmirror.com/@umijs/es-module-parser-linux-x64-musl@0.0.7 + '@umijs/es-module-parser-win32-arm64-msvc': registry.npmmirror.com/@umijs/es-module-parser-win32-arm64-msvc@0.0.7 + '@umijs/es-module-parser-win32-x64-msvc': registry.npmmirror.com/@umijs/es-module-parser-win32-x64-msvc@0.0.7 + dev: false + + registry.npmmirror.com/@umijs/history@5.3.1: + resolution: {integrity: sha512-/e0cEGrR2bIWQD7pRl3dl9dcyRGeC9hoW0OCvUTT/hjY0EfUrkd6G8ZanVghPMpDuY5usxq9GVcvrT8KNXLWvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/history/-/history-5.3.1.tgz} + name: '@umijs/history' + version: 5.3.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + query-string: registry.npmmirror.com/query-string@6.14.1 + dev: false + + registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.54.0)(stylelint@14.16.1)(typescript@5.3.2): + resolution: {integrity: sha512-z7pSpZoAecTltLwBEiyyzZYY3wPlg7DA5U4llWJbkfz/U0TdKgeDAzH6cq1SpvuRBsLTO3aiD6+6DP0NDuU82g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/lint/-/lint-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/lint/4.0.89 + name: '@umijs/lint' + version: 4.0.89 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 + '@babel/eslint-parser': registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.54.0) + '@stylelint/postcss-css-in-js': registry.npmmirror.com/@stylelint/postcss-css-in-js@0.38.0(postcss-syntax@0.36.2)(postcss@8.4.31) + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2) + '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 + eslint-plugin-jest: registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.54.0)(typescript@5.3.2) + eslint-plugin-react: registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.54.0) + eslint-plugin-react-hooks: registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.54.0) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-syntax: registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.31) + stylelint-config-standard: registry.npmmirror.com/stylelint-config-standard@25.0.0(stylelint@14.16.1) + transitivePeerDependencies: + - eslint + - jest + - postcss-html + - postcss-jsx + - postcss-less + - postcss-markdown + - postcss-scss + - stylelint + - supports-color + - typescript + dev: false + + registry.npmmirror.com/@umijs/mfsu@4.0.89: + resolution: {integrity: sha512-CcpIh88r5JaiYtPkr/Dnch6Pm8e02wHPy7BWW3A6ina0SZS4o5K2BPr/fbWoFRrfWLHQT4BGvwIkz1LavDieZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/mfsu/-/mfsu-4.0.89.tgz} + name: '@umijs/mfsu' + version: 4.0.89 + dependencies: + '@umijs/bundler-esbuild': registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.9.3 + is-equal: registry.npmmirror.com/is-equal@1.7.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/plugin-run@4.0.89: + resolution: {integrity: sha512-YsqaZz8ee3jHIsiLj43I/rtz7cy6tVhB3dUJ6zQH6a4b8u2fl7MYQcccj5gqjuRGQK5HcUScyYIJftR3cSUGKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/plugin-run/-/plugin-run-4.0.89.tgz} + name: '@umijs/plugin-run' + version: 4.0.89 + dependencies: + tsx: registry.npmmirror.com/tsx@3.14.0 + dev: false + + registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.10.0)(@types/react@18.2.38)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-S0dn0e9C5eD2IX8bGGrNEDd0EaQVGuAwyJw2ruIU/FCO9B1HwdjCdRMuEADCBOuXMzBRt4+wKToFgId5tz3gAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/preset-umi/-/preset-umi-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/preset-umi/4.0.89 + name: '@umijs/preset-umi' + version: 4.0.89 + dependencies: + '@iconify/utils': registry.npmmirror.com/@iconify/utils@2.1.1 + '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 + '@umijs/ast': registry.npmmirror.com/@umijs/ast@4.0.89 + '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 + '@umijs/bundler-esbuild': registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/bundler-vite': registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.10.0)(postcss@8.4.31)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0) + '@umijs/bundler-webpack': registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.2)(webpack@5.89.0) + '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 + '@umijs/did-you-know': registry.npmmirror.com/@umijs/did-you-know@1.0.3 + '@umijs/es-module-parser': registry.npmmirror.com/@umijs/es-module-parser@0.0.7 + '@umijs/history': registry.npmmirror.com/@umijs/history@5.3.1 + '@umijs/mfsu': registry.npmmirror.com/@umijs/mfsu@4.0.89 + '@umijs/plugin-run': registry.npmmirror.com/@umijs/plugin-run@4.0.89 + '@umijs/renderer-react': registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.1.0)(react@18.1.0) + '@umijs/server': registry.npmmirror.com/@umijs/server@4.0.89 + '@umijs/ui': registry.npmmirror.com/@umijs/ui@3.0.1 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + '@umijs/zod2ts': registry.npmmirror.com/@umijs/zod2ts@4.0.89 + babel-plugin-dynamic-import-node: registry.npmmirror.com/babel-plugin-dynamic-import-node@2.3.3 + click-to-react-component: registry.npmmirror.com/click-to-react-component@1.1.0(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0) + core-js: registry.npmmirror.com/core-js@3.28.0 + current-script-polyfill: registry.npmmirror.com/current-script-polyfill@1.0.0 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.9.3 + fast-glob: registry.npmmirror.com/fast-glob@3.2.12 + html-webpack-plugin: registry.npmmirror.com/html-webpack-plugin@5.5.0(webpack@5.89.0) + less-plugin-resolve: registry.npmmirror.com/less-plugin-resolve@1.0.2 + path-to-regexp: registry.npmmirror.com/path-to-regexp@1.7.0 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-prefix-selector: registry.npmmirror.com/postcss-prefix-selector@1.16.0(postcss@8.4.31) + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-router: registry.npmmirror.com/react-router@6.3.0(react@18.1.0) + react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0) + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.13.11 + transitivePeerDependencies: + - '@types/node' + - '@types/react' + - '@types/webpack' + - rollup + - sass + - sockjs-client + - stylus + - sugarss + - supports-color + - terser + - type-fest + - typescript + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + registry.npmmirror.com/@umijs/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack@5.89.0): + resolution: {integrity: sha512-RtFvB+/GmjRhpHcqNgnw8iWZpTlxOnmNxi8eDcecxMmxmSgeDj25LV0jr4Q6rOhv3GTIfVGBhkwz+khGT5tfmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz} + id: registry.npmmirror.com/@umijs/react-refresh-webpack-plugin/0.5.11 + name: '@umijs/react-refresh-webpack-plugin' + version: 0.5.11 + engines: {node: '>= 10.13'} + peerDependencies: + '@types/webpack': 4.x || 5.x + react-refresh: '>=0.10.0 <1.0.0' + sockjs-client: ^1.4.0 + type-fest: '>=0.17.0 <5.0.0' + webpack: '>=4.43.0 <6.0.0' + webpack-dev-server: 3.x || 4.x + webpack-hot-middleware: 2.x + webpack-plugin-serve: 0.x || 1.x + peerDependenciesMeta: + '@types/webpack': + optional: true + sockjs-client: + optional: true + type-fest: + optional: true + webpack-dev-server: + optional: true + webpack-hot-middleware: + optional: true + webpack-plugin-serve: + optional: true + dependencies: + ansi-html-community: registry.npmmirror.com/ansi-html-community@0.0.8 + common-path-prefix: registry.npmmirror.com/common-path-prefix@3.0.0 + core-js-pure: registry.npmmirror.com/core-js-pure@3.34.0 + error-stack-parser: registry.npmmirror.com/error-stack-parser@2.1.4 + find-up: registry.npmmirror.com/find-up@5.0.0 + html-entities: registry.npmmirror.com/html-entities@2.4.0 + loader-utils: registry.npmmirror.com/loader-utils@2.0.4 + react-refresh: registry.npmmirror.com/react-refresh@0.14.0 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + source-map: registry.npmmirror.com/source-map@0.7.4 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-GDnUHzWzndT52gA8FnsHUOvO6wl6rQfrc9Q5O/cmWXtt1xMMk8H9bwR0rMYWE66ToKPTusP87YwSOtlGRtIPWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/renderer-react/-/renderer-react-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/renderer-react/4.0.89 + name: '@umijs/renderer-react' + version: 4.0.89 + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@loadable/component': registry.npmmirror.com/@loadable/component@5.15.2(react@18.1.0) + history: registry.npmmirror.com/history@5.3.0 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-helmet-async: registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.1.0)(react@18.1.0) + react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0) + dev: false + + registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GDnUHzWzndT52gA8FnsHUOvO6wl6rQfrc9Q5O/cmWXtt1xMMk8H9bwR0rMYWE66ToKPTusP87YwSOtlGRtIPWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/renderer-react/-/renderer-react-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/renderer-react/4.0.89 + name: '@umijs/renderer-react' + version: 4.0.89 + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@loadable/component': registry.npmmirror.com/@loadable/component@5.15.2(react@18.2.0) + history: registry.npmmirror.com/history@5.3.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-helmet-async: registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0) + react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.2.0)(react@18.2.0) + dev: false + + registry.npmmirror.com/@umijs/server@4.0.89: + resolution: {integrity: sha512-k+3KXt6vyYpnFQXrzm6JTyIaepW4uKkMNu4AQJBSpbC0FZVJw43mYIjVEoTlFUcXzR3IeP3ghny6J2Q2KLkF0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/server/-/server-4.0.89.tgz} + name: '@umijs/server' + version: 4.0.89 + dependencies: + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + history: registry.npmmirror.com/history@5.3.0 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0) + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@umijs/test@4.0.89(@babel/core@7.23.3): + resolution: {integrity: sha512-eOVyk1zkCypEC0AtrnM1Kfp0+6DQK8FImXMTd3t3w8eSXTkh2v4Njy27qRC7soQeQhC/RieP3qpcs+k15rZYvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/test/-/test-4.0.89.tgz} + id: registry.npmmirror.com/@umijs/test/4.0.89 + name: '@umijs/test' + version: 4.0.89 + dependencies: + '@babel/plugin-transform-modules-commonjs': registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.3) + '@jest/types': registry.npmmirror.com/@jest/types@27.5.1 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + babel-jest: registry.npmmirror.com/babel-jest@29.7.0(@babel/core@7.23.3) + esbuild: registry.npmmirror.com/esbuild@0.17.19 + identity-obj-proxy: registry.npmmirror.com/identity-obj-proxy@3.0.0 + isomorphic-unfetch: registry.npmmirror.com/isomorphic-unfetch@4.0.2 + transitivePeerDependencies: + - '@babel/core' + - supports-color + dev: false + + registry.npmmirror.com/@umijs/ui@3.0.1: + resolution: {integrity: sha512-zcz37AJH0xt/6XVVbyO/hmsK9Hq4vH23HZ4KYVi5A8rbM9KeJkJigTS7ELOdArawZhVNGe+h3a5Oixs4a2QsWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/ui/-/ui-3.0.1.tgz} + name: '@umijs/ui' + version: 3.0.1 + dev: false + + registry.npmmirror.com/@umijs/utils@4.0.89: + resolution: {integrity: sha512-Gq2yyuhp4m17DfU9VE59MkJGQrnbSsFp9/pfOFhbArV6AWzSo+EUY6UwLPmuQdJbJzVacZlN6N8t6cb794sVNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/utils/-/utils-4.0.89.tgz} + name: '@umijs/utils' + version: 4.0.89 + dependencies: + chokidar: registry.npmmirror.com/chokidar@3.5.3 + pino: registry.npmmirror.com/pino@7.11.0 + dev: false + + registry.npmmirror.com/@umijs/zod2ts@4.0.89: + resolution: {integrity: sha512-LjPmRHutjqtFATIYbcF+yR/I6pxDaES1J0CCHRnap5oV9VTUu/acgVpFEX/Op8G0oT4ioHA2FaFxgAGF9OwMPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/zod2ts/-/zod2ts-4.0.89.tgz} + name: '@umijs/zod2ts' + version: 4.0.89 + dev: false + + registry.npmmirror.com/@vitejs/plugin-react@4.0.0(vite@4.3.1): + resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.0.0.tgz} + id: registry.npmmirror.com/@vitejs/plugin-react/4.0.0 + name: '@vitejs/plugin-react' + version: 4.0.0 + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@babel/plugin-transform-react-jsx-self': registry.npmmirror.com/@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3) + '@babel/plugin-transform-react-jsx-source': registry.npmmirror.com/@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3) + react-refresh: registry.npmmirror.com/react-refresh@0.14.0 + vite: registry.npmmirror.com/vite@4.3.1(@types/node@20.10.0)(less@4.1.3)(sass@1.69.5)(terser@5.24.0) + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/@webassemblyjs/ast@1.11.6: + resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz} + name: '@webassemblyjs/ast' + version: 1.11.6 + dependencies: + '@webassemblyjs/helper-numbers': registry.npmmirror.com/@webassemblyjs/helper-numbers@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser@1.11.6: + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz} + name: '@webassemblyjs/floating-point-hex-parser' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6: + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz} + name: '@webassemblyjs/helper-api-error' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6: + resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz} + name: '@webassemblyjs/helper-buffer' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-numbers@1.11.6: + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz} + name: '@webassemblyjs/helper-numbers' + version: 1.11.6 + dependencies: + '@webassemblyjs/floating-point-hex-parser': registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser@1.11.6 + '@webassemblyjs/helper-api-error': registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6 + '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6: + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz} + name: '@webassemblyjs/helper-wasm-bytecode' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/helper-wasm-section@1.11.6: + resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz} + name: '@webassemblyjs/helper-wasm-section' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6: + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz} + name: '@webassemblyjs/ieee754' + version: 1.11.6 + dependencies: + '@xtuc/ieee754': registry.npmmirror.com/@xtuc/ieee754@1.2.0 + dev: false + + registry.npmmirror.com/@webassemblyjs/leb128@1.11.6: + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz} + name: '@webassemblyjs/leb128' + version: 1.11.6 + dependencies: + '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 + dev: false + + registry.npmmirror.com/@webassemblyjs/utf8@1.11.6: + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz} + name: '@webassemblyjs/utf8' + version: 1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wasm-edit@1.11.6: + resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz} + name: '@webassemblyjs/wasm-edit' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/helper-wasm-section': registry.npmmirror.com/@webassemblyjs/helper-wasm-section@1.11.6 + '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 + '@webassemblyjs/wasm-opt': registry.npmmirror.com/@webassemblyjs/wasm-opt@1.11.6 + '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 + '@webassemblyjs/wast-printer': registry.npmmirror.com/@webassemblyjs/wast-printer@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6: + resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz} + name: '@webassemblyjs/wasm-gen' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/ieee754': registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6 + '@webassemblyjs/leb128': registry.npmmirror.com/@webassemblyjs/leb128@1.11.6 + '@webassemblyjs/utf8': registry.npmmirror.com/@webassemblyjs/utf8@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wasm-opt@1.11.6: + resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz} + name: '@webassemblyjs/wasm-opt' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 + '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 + '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6: + resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz} + name: '@webassemblyjs/wasm-parser' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/helper-api-error': registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6 + '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 + '@webassemblyjs/ieee754': registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6 + '@webassemblyjs/leb128': registry.npmmirror.com/@webassemblyjs/leb128@1.11.6 + '@webassemblyjs/utf8': registry.npmmirror.com/@webassemblyjs/utf8@1.11.6 + dev: false + + registry.npmmirror.com/@webassemblyjs/wast-printer@1.11.6: + resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz} + name: '@webassemblyjs/wast-printer' + version: 1.11.6 + dependencies: + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 + dev: false + + registry.npmmirror.com/@xtuc/ieee754@1.2.0: + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz} + name: '@xtuc/ieee754' + version: 1.2.0 + dev: false + + registry.npmmirror.com/@xtuc/long@4.2.2: + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz} + name: '@xtuc/long' + version: 4.2.2 + dev: false + + registry.npmmirror.com/acorn-import-assertions@1.9.0(acorn@8.11.2): + resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz} + id: registry.npmmirror.com/acorn-import-assertions/1.9.0 + name: acorn-import-assertions + version: 1.9.0 + peerDependencies: + acorn: ^8 + dependencies: + acorn: registry.npmmirror.com/acorn@8.11.2 + dev: false + + registry.npmmirror.com/acorn@8.11.2: + resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.11.2.tgz} + name: acorn + version: 8.11.2 + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + + registry.npmmirror.com/agent-base@4.3.0: + resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/agent-base/-/agent-base-4.3.0.tgz} + name: agent-base + version: 4.3.0 + engines: {node: '>= 4.0.0'} + dependencies: + es6-promisify: registry.npmmirror.com/es6-promisify@5.0.0 + dev: false + + registry.npmmirror.com/agentkeepalive@3.5.2: + resolution: {integrity: sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz} + name: agentkeepalive + version: 3.5.2 + engines: {node: '>= 4.0.0'} + dependencies: + humanize-ms: registry.npmmirror.com/humanize-ms@1.2.1 + dev: false + + registry.npmmirror.com/ahooks-v3-count@1.0.0: + resolution: {integrity: sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ahooks-v3-count/-/ahooks-v3-count-1.0.0.tgz} + name: ahooks-v3-count + version: 1.0.0 + dev: false + + registry.npmmirror.com/ahooks@3.7.8(react@18.2.0): + resolution: {integrity: sha512-e/NMlQWoCjaUtncNFIZk3FG1ImSkV/JhScQSkTqnftakRwdfZWSw6zzoWSG9OMYqPNs2MguDYBUFFC6THelWXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ahooks/-/ahooks-3.7.8.tgz} + id: registry.npmmirror.com/ahooks/3.7.8 + name: ahooks + version: 3.7.8 + engines: {node: '>=8.0.0'} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@types/js-cookie': registry.npmmirror.com/@types/js-cookie@2.2.7 + ahooks-v3-count: registry.npmmirror.com/ahooks-v3-count@1.0.0 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + intersection-observer: registry.npmmirror.com/intersection-observer@0.12.2 + js-cookie: registry.npmmirror.com/js-cookie@2.2.1 + lodash: registry.npmmirror.com/lodash@4.17.21 + react: 18.2.0 + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + screenfull: registry.npmmirror.com/screenfull@5.2.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6): + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz} + id: registry.npmmirror.com/ajv-keywords/3.5.2 + name: ajv-keywords + version: 3.5.2 + peerDependencies: + ajv: ^6.9.1 + dependencies: + ajv: registry.npmmirror.com/ajv@6.12.6 + dev: false + + registry.npmmirror.com/ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} + name: ajv + version: 6.12.6 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@0.4.1 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + dev: false + + registry.npmmirror.com/ajv@8.12.0: + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz} + name: ajv + version: 8.12.0 + dependencies: + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + json-schema-traverse: registry.npmmirror.com/json-schema-traverse@1.0.0 + require-from-string: registry.npmmirror.com/require-from-string@2.0.2 + uri-js: registry.npmmirror.com/uri-js@4.4.1 + dev: false + + registry.npmmirror.com/animated-scroll-to@2.3.0: + resolution: {integrity: sha512-PT/5MSKCWQaK2kuOl2HT2KJMuJEvUS4/TgMhWy82c2EmF74/CIkvPBPKOvd8nMYP6Higo7xCn49/iSW9BccMoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/animated-scroll-to/-/animated-scroll-to-2.3.0.tgz} + name: animated-scroll-to + version: 2.3.0 + dev: false + + registry.npmmirror.com/ansi-align@2.0.0: + resolution: {integrity: sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-align/-/ansi-align-2.0.0.tgz} + name: ansi-align + version: 2.0.0 + dependencies: + string-width: registry.npmmirror.com/string-width@2.1.1 + dev: false + + registry.npmmirror.com/ansi-escapes@3.2.0: + resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz} + name: ansi-escapes + version: 3.2.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz} + name: ansi-html-community + version: 0.0.8 + engines: {'0': node >= 0.8.0} + hasBin: true + dev: false + + registry.npmmirror.com/ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz} + name: ansi-regex + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/ansi-regex@3.0.1: + resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz} + name: ansi-regex + version: 3.0.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/ansi-regex@4.1.1: + resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.1.tgz} + name: ansi-regex + version: 4.1.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} + name: ansi-regex + version: 5.0.1 + engines: {node: '>=8'} + + registry.npmmirror.com/ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} + name: ansi-styles + version: 3.2.1 + engines: {node: '>=4'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@1.9.3 + dev: false + + registry.npmmirror.com/ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert@2.0.1 + + registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.38)(antd@5.11.4)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-KpKXiAIV3CAe6TfSh/m6ET2vGuhAof7qfqeaouh5WZ0JDl5jDXXSFPeEfqvZuHAckTl+A0NzArvIHKgKt/NZ9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd-style/-/antd-style-3.6.1.tgz} + id: registry.npmmirror.com/antd-style/3.6.1 + name: antd-style + version: 3.6.1 + peerDependencies: + antd: '>=5.8.1' + react: '>=18' + dependencies: + '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 + '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 + '@emotion/react': registry.npmmirror.com/@emotion/react@11.11.1(@types/react@18.2.38)(react@18.2.0) + '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 + '@emotion/server': registry.npmmirror.com/@emotion/server@11.11.0(@emotion/css@11.11.2) + '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 + antd: 5.11.4(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + use-merge-value: registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - react-dom + dev: false + + registry.npmmirror.com/antd@5.11.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-FuaV/viyZiMlCL1JzdQpSlzPcWcBlGYDAbtj3FM4BgwAso+ge3d4tXkZZG4yZkktUoLvWrcaJObs3Nk32Oiwuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd/-/antd-5.11.4.tgz} + id: registry.npmmirror.com/antd/5.11.4 + name: antd + version: 5.11.4 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 + '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0) + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@ant-design/react-slick': registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + '@rc-component/color-picker': registry.npmmirror.com/@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0) + '@rc-component/mutate-observer': registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/tour': registry.npmmirror.com/@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + qrcode.react: registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0) + rc-cascader: registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0) + rc-checkbox: registry.npmmirror.com/rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0) + rc-collapse: registry.npmmirror.com/rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0) + rc-dialog: registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-drawer: registry.npmmirror.com/rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0) + rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-field-form: registry.npmmirror.com/rc-field-form@1.40.0(react-dom@18.2.0)(react@18.2.0) + rc-image: registry.npmmirror.com/rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0) + rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-input-number: registry.npmmirror.com/rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0) + rc-mentions: registry.npmmirror.com/rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0) + rc-menu: registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-notification: registry.npmmirror.com/rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0) + rc-pagination: registry.npmmirror.com/rc-pagination@3.7.0(react-dom@18.2.0)(react@18.2.0) + rc-picker: registry.npmmirror.com/rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + rc-progress: registry.npmmirror.com/rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0) + rc-rate: registry.npmmirror.com/rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-segmented: registry.npmmirror.com/rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0) + rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-slider: registry.npmmirror.com/rc-slider@10.4.0(react-dom@18.2.0)(react@18.2.0) + rc-steps: registry.npmmirror.com/rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0) + rc-switch: registry.npmmirror.com/rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-table: registry.npmmirror.com/rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: registry.npmmirror.com/rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0) + rc-textarea: registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-tooltip: registry.npmmirror.com/rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-tree-select: registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0) + rc-upload: registry.npmmirror.com/rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + scroll-into-view-if-needed: registry.npmmirror.com/scroll-into-view-if-needed@3.1.0 + throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 + transitivePeerDependencies: + - date-fns + - luxon + - moment + dev: false + + registry.npmmirror.com/anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} + name: anymatch + version: 3.1.3 + engines: {node: '>= 8'} + dependencies: + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + + registry.npmmirror.com/aproba@1.2.0: + resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aproba/-/aproba-1.2.0.tgz} + name: aproba + version: 1.2.0 + dev: false + + registry.npmmirror.com/arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz} + name: arg + version: 5.0.2 + dev: false + + registry.npmmirror.com/argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz} + name: argparse + version: 1.0.10 + dependencies: + sprintf-js: registry.npmmirror.com/sprintf-js@1.0.3 + dev: false + + registry.npmmirror.com/argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} + name: argparse + version: 2.0.1 + dev: false + + registry.npmmirror.com/aria-hidden@1.2.3: + resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.2.3.tgz} + name: aria-hidden + version: 1.2.3 + engines: {node: '>=10'} + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz} + name: array-buffer-byte-length + version: 1.0.0 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + dev: false + + registry.npmmirror.com/array-includes@3.1.7: + resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-includes/-/array-includes-3.1.7.tgz} + name: array-includes + version: 3.1.7 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + dev: false + + registry.npmmirror.com/array-tree-filter@2.1.0: + resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz} + name: array-tree-filter + version: 2.1.0 + dev: false + + registry.npmmirror.com/array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} + name: array-union + version: 2.1.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/array.prototype.flat@1.3.2: + resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz} + name: array.prototype.flat + version: 1.3.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 + dev: false + + registry.npmmirror.com/array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz} + name: array.prototype.flatmap + version: 1.3.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 + dev: false + + registry.npmmirror.com/array.prototype.reduce@1.0.6: + resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz} + name: array.prototype.reduce + version: 1.0.6 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-array-method-boxes-properly: registry.npmmirror.com/es-array-method-boxes-properly@1.0.0 + is-string: registry.npmmirror.com/is-string@1.0.7 + dev: false + + registry.npmmirror.com/array.prototype.tosorted@1.1.2: + resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz} + name: array.prototype.tosorted + version: 1.1.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2: + resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz} + name: arraybuffer.prototype.slice + version: 1.0.2 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + dev: false + + registry.npmmirror.com/arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arrify/-/arrify-1.0.1.tgz} + name: arrify + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/asn1.js@5.4.1: + resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asn1.js/-/asn1.js-5.4.1.tgz} + name: asn1.js + version: 5.4.1 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 + dev: false + + registry.npmmirror.com/assert@1.5.1: + resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/assert/-/assert-1.5.1.tgz} + name: assert + version: 1.5.1 + dependencies: + object.assign: registry.npmmirror.com/object.assign@4.1.4 + util: registry.npmmirror.com/util@0.10.4 + dev: false + + registry.npmmirror.com/astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz} + name: astral-regex + version: 2.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/astring@1.8.6: + resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/astring/-/astring-1.8.6.tgz} + name: astring + version: 1.8.6 + hasBin: true + dev: false + + registry.npmmirror.com/async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz} + name: async-validator + version: 4.2.5 + dev: false + + registry.npmmirror.com/asynciterator.prototype@1.0.0: + resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz} + name: asynciterator.prototype + version: 1.0.0 + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: false + + registry.npmmirror.com/atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz} + name: atob + version: 2.1.2 + engines: {node: '>= 4.5.0'} + hasBin: true + dev: false + + registry.npmmirror.com/atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz} + name: atomic-sleep + version: 1.0.0 + engines: {node: '>=8.0.0'} + dev: false + + registry.npmmirror.com/autoprefixer@10.4.16(postcss@8.4.31): + resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.16.tgz} + id: registry.npmmirror.com/autoprefixer/10.4.16 + name: autoprefixer + version: 10.4.16 + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.1 + caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001564 + fraction.js: registry.npmmirror.com/fraction.js@4.3.7 + normalize-range: registry.npmmirror.com/normalize-range@0.1.2 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} + name: available-typed-arrays + version: 1.0.5 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/axios@0.18.1: + resolution: {integrity: sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/-/axios-0.18.1.tgz} + name: axios + version: 0.18.1 + deprecated: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 + dependencies: + follow-redirects: registry.npmmirror.com/follow-redirects@1.5.10 + is-buffer: registry.npmmirror.com/is-buffer@2.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/babel-jest@29.7.0(@babel/core@7.23.3): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-jest/-/babel-jest-29.7.0.tgz} + id: registry.npmmirror.com/babel-jest/29.7.0 + name: babel-jest + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.23.3 + '@jest/transform': registry.npmmirror.com/@jest/transform@29.7.0 + '@types/babel__core': registry.npmmirror.com/@types/babel__core@7.20.5 + babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul@6.1.1 + babel-preset-jest: registry.npmmirror.com/babel-preset-jest@29.6.3(@babel/core@7.23.3) + chalk: registry.npmmirror.com/chalk@4.1.2 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + slash: registry.npmmirror.com/slash@3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/babel-plugin-dynamic-import-node@2.3.3: + resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz} + name: babel-plugin-dynamic-import-node + version: 2.3.3 + dependencies: + object.assign: registry.npmmirror.com/object.assign@4.1.4 + dev: false + + registry.npmmirror.com/babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz} + name: babel-plugin-istanbul + version: 6.1.1 + engines: {node: '>=8'} + dependencies: + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 + '@istanbuljs/load-nyc-config': registry.npmmirror.com/@istanbuljs/load-nyc-config@1.1.0 + '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema@0.1.3 + istanbul-lib-instrument: registry.npmmirror.com/istanbul-lib-instrument@5.2.1 + test-exclude: registry.npmmirror.com/test-exclude@6.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz} + name: babel-plugin-jest-hoist + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 + '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 + '@types/babel__core': registry.npmmirror.com/@types/babel__core@7.20.5 + '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse@7.20.4 + dev: false + + registry.npmmirror.com/babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz} + name: babel-plugin-macros + version: 3.1.0 + engines: {node: '>=10', npm: '>=6'} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + resolve: registry.npmmirror.com/resolve@1.22.8 + dev: false + + registry.npmmirror.com/babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): + resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz} + id: registry.npmmirror.com/babel-preset-current-node-syntax/1.0.1 + name: babel-preset-current-node-syntax + version: 1.0.1 + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + '@babel/plugin-syntax-async-generators': registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3) + '@babel/plugin-syntax-bigint': registry.npmmirror.com/@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-class-properties': registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3) + '@babel/plugin-syntax-import-meta': registry.npmmirror.com/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-json-strings': registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-numeric-separator': registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3) + '@babel/plugin-syntax-object-rest-spread': registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-catch-binding': registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-optional-chaining': registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3) + '@babel/plugin-syntax-top-level-await': registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3) + dev: false + + registry.npmmirror.com/babel-preset-jest@29.6.3(@babel/core@7.23.3): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz} + id: registry.npmmirror.com/babel-preset-jest/29.6.3 + name: babel-preset-jest + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.23.3 + babel-plugin-jest-hoist: registry.npmmirror.com/babel-plugin-jest-hoist@29.6.3 + babel-preset-current-node-syntax: registry.npmmirror.com/babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3) + dev: false + + registry.npmmirror.com/bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz} + name: bail + version: 2.0.2 + dev: false + + registry.npmmirror.com/balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} + name: balanced-match + version: 1.0.2 + dev: false + + registry.npmmirror.com/balanced-match@2.0.0: + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-2.0.0.tgz} + name: balanced-match + version: 2.0.0 + dev: false + + registry.npmmirror.com/base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz} + name: base64-js + version: 1.5.1 + dev: false + + registry.npmmirror.com/big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz} + name: big-integer + version: 1.6.52 + engines: {node: '>=0.6'} + dev: false + + registry.npmmirror.com/big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz} + name: big.js + version: 5.2.2 + dev: false + + registry.npmmirror.com/binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} + name: binary-extensions + version: 2.2.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/binaryextensions@2.3.0: + resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/binaryextensions/-/binaryextensions-2.3.0.tgz} + name: binaryextensions + version: 2.3.0 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/bl@1.2.3: + resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz} + name: bl + version: 1.2.3 + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz} + name: bluebird + version: 3.7.2 + dev: false + + registry.npmmirror.com/bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz} + name: bn.js + version: 4.12.0 + dev: false + + registry.npmmirror.com/bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bn.js/-/bn.js-5.2.1.tgz} + name: bn.js + version: 5.2.1 + dev: false + + registry.npmmirror.com/boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz} + name: boolbase + version: 1.0.0 + dev: false + + registry.npmmirror.com/boxen@1.3.0: + resolution: {integrity: sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/boxen/-/boxen-1.3.0.tgz} + name: boxen + version: 1.3.0 + engines: {node: '>=4'} + dependencies: + ansi-align: registry.npmmirror.com/ansi-align@2.0.0 + camelcase: registry.npmmirror.com/camelcase@4.1.0 + chalk: registry.npmmirror.com/chalk@2.4.2 + cli-boxes: registry.npmmirror.com/cli-boxes@1.0.0 + string-width: registry.npmmirror.com/string-width@2.1.1 + term-size: registry.npmmirror.com/term-size@1.2.0 + widest-line: registry.npmmirror.com/widest-line@2.0.1 + dev: false + + registry.npmmirror.com/bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.2.0.tgz} + name: bplist-parser + version: 0.2.0 + engines: {node: '>= 5.10.0'} + dependencies: + big-integer: registry.npmmirror.com/big-integer@1.6.52 + dev: false + + registry.npmmirror.com/brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} + name: brace-expansion + version: 1.1.11 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + concat-map: registry.npmmirror.com/concat-map@0.0.1 + dev: false + + registry.npmmirror.com/braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} + name: braces + version: 3.0.2 + engines: {node: '>=8'} + dependencies: + fill-range: registry.npmmirror.com/fill-range@7.0.1 + dev: false + + registry.npmmirror.com/brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz} + name: brorand + version: 1.1.0 + dev: false + + registry.npmmirror.com/browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-aes/-/browserify-aes-1.2.0.tgz} + name: browserify-aes + version: 1.2.0 + dependencies: + buffer-xor: registry.npmmirror.com/buffer-xor@1.0.3 + cipher-base: registry.npmmirror.com/cipher-base@1.0.4 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + evp_bytestokey: registry.npmmirror.com/evp_bytestokey@1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz} + name: browserify-cipher + version: 1.0.1 + dependencies: + browserify-aes: registry.npmmirror.com/browserify-aes@1.2.0 + browserify-des: registry.npmmirror.com/browserify-des@1.0.2 + evp_bytestokey: registry.npmmirror.com/evp_bytestokey@1.0.3 + dev: false + + registry.npmmirror.com/browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-des/-/browserify-des-1.0.2.tgz} + name: browserify-des + version: 1.0.2 + dependencies: + cipher-base: registry.npmmirror.com/cipher-base@1.0.4 + des.js: registry.npmmirror.com/des.js@1.1.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/browserify-rsa@4.1.0: + resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz} + name: browserify-rsa + version: 4.1.0 + dependencies: + bn.js: registry.npmmirror.com/bn.js@5.2.1 + randombytes: registry.npmmirror.com/randombytes@2.1.0 + dev: false + + registry.npmmirror.com/browserify-sign@4.2.2: + resolution: {integrity: sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-sign/-/browserify-sign-4.2.2.tgz} + name: browserify-sign + version: 4.2.2 + engines: {node: '>= 4'} + dependencies: + bn.js: registry.npmmirror.com/bn.js@5.2.1 + browserify-rsa: registry.npmmirror.com/browserify-rsa@4.1.0 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + create-hmac: registry.npmmirror.com/create-hmac@1.1.7 + elliptic: registry.npmmirror.com/elliptic@6.5.4 + inherits: registry.npmmirror.com/inherits@2.0.4 + parse-asn1: registry.npmmirror.com/parse-asn1@5.1.6 + readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/browserify-zlib@0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz} + name: browserify-zlib + version: 0.2.0 + dependencies: + pako: registry.npmmirror.com/pako@1.0.11 + dev: false + + registry.npmmirror.com/browserslist@4.22.1: + resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserslist/-/browserslist-4.22.1.tgz} + name: browserslist + version: 4.22.1 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001564 + electron-to-chromium: registry.npmmirror.com/electron-to-chromium@1.4.594 + node-releases: registry.npmmirror.com/node-releases@2.0.13 + update-browserslist-db: registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.1) + dev: false + + registry.npmmirror.com/bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz} + name: bser + version: 2.1.1 + dependencies: + node-int64: registry.npmmirror.com/node-int64@0.4.0 + dev: false + + registry.npmmirror.com/buffer-alloc-unsafe@1.1.0: + resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz} + name: buffer-alloc-unsafe + version: 1.1.0 + dev: false + + registry.npmmirror.com/buffer-alloc@1.2.0: + resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz} + name: buffer-alloc + version: 1.2.0 + dependencies: + buffer-alloc-unsafe: registry.npmmirror.com/buffer-alloc-unsafe@1.1.0 + buffer-fill: registry.npmmirror.com/buffer-fill@1.0.0 + dev: false + + registry.npmmirror.com/buffer-fill@1.0.0: + resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-fill/-/buffer-fill-1.0.0.tgz} + name: buffer-fill + version: 1.0.0 + dev: false + + registry.npmmirror.com/buffer-from@0.1.2: + resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-from/-/buffer-from-0.1.2.tgz} + name: buffer-from + version: 0.1.2 + dev: false + + registry.npmmirror.com/buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz} + name: buffer-from + version: 1.1.2 + dev: false + + registry.npmmirror.com/buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-xor/-/buffer-xor-1.0.3.tgz} + name: buffer-xor + version: 1.0.3 + dev: false + + registry.npmmirror.com/buffer@4.9.2: + resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer/-/buffer-4.9.2.tgz} + name: buffer + version: 4.9.2 + dependencies: + base64-js: registry.npmmirror.com/base64-js@1.5.1 + ieee754: registry.npmmirror.com/ieee754@1.2.1 + isarray: registry.npmmirror.com/isarray@1.0.0 + dev: false + + registry.npmmirror.com/builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz} + name: builtin-status-codes + version: 3.0.0 + dev: false + + registry.npmmirror.com/builtins@1.0.3: + resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtins/-/builtins-1.0.3.tgz} + name: builtins + version: 1.0.3 + dev: false + + registry.npmmirror.com/bundle-name@3.0.0: + resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bundle-name/-/bundle-name-3.0.0.tgz} + name: bundle-name + version: 3.0.0 + engines: {node: '>=12'} + dependencies: + run-applescript: registry.npmmirror.com/run-applescript@5.0.0 + dev: false + + registry.npmmirror.com/cacache@10.0.4: + resolution: {integrity: sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cacache/-/cacache-10.0.4.tgz} + name: cacache + version: 10.0.4 + dependencies: + bluebird: registry.npmmirror.com/bluebird@3.7.2 + chownr: registry.npmmirror.com/chownr@1.1.4 + glob: registry.npmmirror.com/glob@7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + mississippi: registry.npmmirror.com/mississippi@2.0.0 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + move-concurrently: registry.npmmirror.com/move-concurrently@1.0.1 + promise-inflight: registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2) + rimraf: registry.npmmirror.com/rimraf@2.7.1 + ssri: registry.npmmirror.com/ssri@5.3.0 + unique-filename: registry.npmmirror.com/unique-filename@1.1.1 + y18n: registry.npmmirror.com/y18n@4.0.3 + dev: false + + registry.npmmirror.com/cacache@9.3.0: + resolution: {integrity: sha512-Vbi8J1XfC8v+FbQ6QkOtKXsHpPnB0i9uMeYFJoj40EbdOsEqWB3DPpNjfsnYBkqOPYA8UvrqH6FZPpBP0zdN7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cacache/-/cacache-9.3.0.tgz} + name: cacache + version: 9.3.0 + dependencies: + bluebird: registry.npmmirror.com/bluebird@3.7.2 + chownr: registry.npmmirror.com/chownr@1.1.4 + glob: registry.npmmirror.com/glob@7.2.3 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + mississippi: registry.npmmirror.com/mississippi@1.3.1 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + move-concurrently: registry.npmmirror.com/move-concurrently@1.0.1 + promise-inflight: registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2) + rimraf: registry.npmmirror.com/rimraf@2.7.1 + ssri: registry.npmmirror.com/ssri@4.1.6 + unique-filename: registry.npmmirror.com/unique-filename@1.1.1 + y18n: registry.npmmirror.com/y18n@3.2.2 + dev: false + + registry.npmmirror.com/call-bind@1.0.5: + resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz} + name: call-bind + version: 1.0.5 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + set-function-length: registry.npmmirror.com/set-function-length@1.1.1 + dev: false + + registry.npmmirror.com/callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} + name: callsites + version: 3.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz} + name: camel-case + version: 4.1.2 + dependencies: + pascal-case: registry.npmmirror.com/pascal-case@3.1.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz} + name: camelcase-keys + version: 6.2.2 + engines: {node: '>=8'} + dependencies: + camelcase: registry.npmmirror.com/camelcase@5.3.1 + map-obj: registry.npmmirror.com/map-obj@4.3.0 + quick-lru: registry.npmmirror.com/quick-lru@4.0.1 + dev: false + + registry.npmmirror.com/camelcase@4.1.0: + resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz} + name: camelcase + version: 4.1.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz} + name: camelcase + version: 5.3.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz} + name: camelcase + version: 6.3.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/caniuse-lite@1.0.30001564: + resolution: {integrity: sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz} + name: caniuse-lite + version: 1.0.30001564 + dev: false + + registry.npmmirror.com/capture-stack-trace@1.0.2: + resolution: {integrity: sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz} + name: capture-stack-trace + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz} + name: ccount + version: 2.0.1 + dev: false + + registry.npmmirror.com/chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} + name: chalk + version: 2.4.2 + engines: {node: '>=4'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@3.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + supports-color: registry.npmmirror.com/supports-color@5.5.0 + dev: false + + registry.npmmirror.com/chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} + name: chalk + version: 4.1.2 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + supports-color: registry.npmmirror.com/supports-color@7.2.0 + dev: false + + registry.npmmirror.com/character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz} + name: character-entities-html4 + version: 2.1.0 + dev: false + + registry.npmmirror.com/character-entities-legacy@1.1.4: + resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz} + name: character-entities-legacy + version: 1.1.4 + dev: false + + registry.npmmirror.com/character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz} + name: character-entities-legacy + version: 3.0.0 + dev: false + + registry.npmmirror.com/character-entities@1.2.4: + resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities/-/character-entities-1.2.4.tgz} + name: character-entities + version: 1.2.4 + dev: false + + registry.npmmirror.com/character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz} + name: character-entities + version: 2.0.2 + dev: false + + registry.npmmirror.com/character-reference-invalid@1.1.4: + resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz} + name: character-reference-invalid + version: 1.1.4 + dev: false + + registry.npmmirror.com/character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz} + name: character-reference-invalid + version: 2.0.1 + dev: false + + registry.npmmirror.com/chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz} + name: chardet + version: 0.7.0 + dev: false + + registry.npmmirror.com/chokidar@3.5.3: + resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} + name: chokidar + version: 3.5.3 + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: registry.npmmirror.com/anymatch@3.1.3 + braces: registry.npmmirror.com/braces@3.0.2 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + is-binary-path: registry.npmmirror.com/is-binary-path@2.1.0 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + readdirp: registry.npmmirror.com/readdirp@3.6.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz} + name: chownr + version: 1.1.4 + dev: false + + registry.npmmirror.com/chroma-js@2.4.2: + resolution: {integrity: sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chroma-js/-/chroma-js-2.4.2.tgz} + name: chroma-js + version: 2.4.2 + dev: false + + registry.npmmirror.com/chrome-trace-event@1.0.3: + resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz} + name: chrome-trace-event + version: 1.0.3 + engines: {node: '>=6.0'} + dev: false + + registry.npmmirror.com/ci-info@1.6.0: + resolution: {integrity: sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz} + name: ci-info + version: 1.6.0 + dev: false + + registry.npmmirror.com/ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz} + name: ci-info + version: 3.9.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz} + name: cipher-base + version: 1.0.4 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/classnames@2.3.2: + resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz} + name: classnames + version: 2.3.2 + dev: false + + registry.npmmirror.com/clean-css@5.3.3: + resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clean-css/-/clean-css-5.3.3.tgz} + name: clean-css + version: 5.3.3 + engines: {node: '>= 10.0'} + dependencies: + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + registry.npmmirror.com/cli-boxes@1.0.0: + resolution: {integrity: sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-boxes/-/cli-boxes-1.0.0.tgz} + name: cli-boxes + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/cli-cursor@2.1.0: + resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz} + name: cli-cursor + version: 2.1.0 + engines: {node: '>=4'} + dependencies: + restore-cursor: registry.npmmirror.com/restore-cursor@2.0.0 + dev: false + + registry.npmmirror.com/cli-spinners@1.3.1: + resolution: {integrity: sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-spinners/-/cli-spinners-1.3.1.tgz} + name: cli-spinners + version: 1.3.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/cli-width@2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-width/-/cli-width-2.2.1.tgz} + name: cli-width + version: 2.2.1 + dev: false + + registry.npmmirror.com/click-to-react-component@1.1.0(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-/DjZemufS1BkxyRgZL3r7HXVVOFRWVQi5Xd4EBnjxZMwrHEh0OlUVA2N9CjXkZ0x8zMf8dL1cKnnx+xUWUg4VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/click-to-react-component/-/click-to-react-component-1.1.0.tgz} + id: registry.npmmirror.com/click-to-react-component/1.1.0 + name: click-to-react-component + version: 1.1.0 + peerDependencies: + react: '>=16.8.0' + dependencies: + '@floating-ui/react-dom-interactions': registry.npmmirror.com/@floating-ui/react-dom-interactions@0.3.1(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0) + htm: registry.npmmirror.com/htm@3.1.1 + react: registry.npmmirror.com/react@18.1.0 + react-merge-refs: registry.npmmirror.com/react-merge-refs@1.1.0 + transitivePeerDependencies: + - '@types/react' + - react-dom + dev: false + + registry.npmmirror.com/cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz} + name: cliui + version: 8.0.1 + engines: {node: '>=12'} + dependencies: + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + wrap-ansi: registry.npmmirror.com/wrap-ansi@7.0.0 + dev: false + + registry.npmmirror.com/clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz} + name: clsx + version: 1.2.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/coa@2.0.2: + resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz} + name: coa + version: 2.0.2 + engines: {node: '>= 4.0'} + dependencies: + '@types/q': registry.npmmirror.com/@types/q@1.5.8 + chalk: registry.npmmirror.com/chalk@2.4.2 + q: registry.npmmirror.com/q@1.5.1 + dev: false + + registry.npmmirror.com/codemirror@6.0.1(@lezer/common@1.1.1): + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz} + id: registry.npmmirror.com/codemirror/6.0.1 + name: codemirror + version: 6.0.1 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.11.0(@codemirror/language@6.9.2)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0)(@lezer/common@1.1.1) + '@codemirror/commands': registry.npmmirror.com/@codemirror/commands@6.3.0 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 + '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.4.2 + '@codemirror/search': registry.npmmirror.com/@codemirror/search@6.5.4 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 + transitivePeerDependencies: + - '@lezer/common' + dev: false + + registry.npmmirror.com/codesandbox-import-util-types@2.2.3: + resolution: {integrity: sha512-Qj00p60oNExthP2oR3vvXmUGjukij+rxJGuiaKM6tyUmSyimdZsqHI/TUvFFClAffk9s7hxGnQgWQ8KCce27qQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox-import-util-types/-/codesandbox-import-util-types-2.2.3.tgz} + name: codesandbox-import-util-types + version: 2.2.3 + dev: false + + registry.npmmirror.com/codesandbox-import-utils@2.2.3: + resolution: {integrity: sha512-ymtmcgZKU27U+nM2qUb21aO8Ut/u2S9s6KorOgG81weP+NA0UZkaHKlaRqbLJ9h4i/4FLvwmEXYAnTjNmp6ogg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox-import-utils/-/codesandbox-import-utils-2.2.3.tgz} + name: codesandbox-import-utils + version: 2.2.3 + dependencies: + codesandbox-import-util-types: registry.npmmirror.com/codesandbox-import-util-types@2.2.3 + istextorbinary: registry.npmmirror.com/istextorbinary@2.6.0 + lz-string: registry.npmmirror.com/lz-string@1.5.0 + dev: false + + registry.npmmirror.com/codesandbox@2.2.3: + resolution: {integrity: sha512-IAkWFk6UUglOhSemI7UFgNNL/jgg+1YjVEIllFULLgsaHhFnY51pCqAifMNuAd5d9Zp4Nk/xMgrEaGNV0L4Xlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox/-/codesandbox-2.2.3.tgz} + name: codesandbox + version: 2.2.3 + hasBin: true + dependencies: + axios: registry.npmmirror.com/axios@0.18.1 + chalk: registry.npmmirror.com/chalk@2.4.2 + codesandbox-import-util-types: registry.npmmirror.com/codesandbox-import-util-types@2.2.3 + codesandbox-import-utils: registry.npmmirror.com/codesandbox-import-utils@2.2.3 + commander: registry.npmmirror.com/commander@2.20.3 + datauri: registry.npmmirror.com/datauri@3.0.0 + filesize: registry.npmmirror.com/filesize@3.6.1 + fs-extra: registry.npmmirror.com/fs-extra@3.0.1 + git-branch: registry.npmmirror.com/git-branch@1.0.0 + git-repo-name: registry.npmmirror.com/git-repo-name@0.6.0 + git-username: registry.npmmirror.com/git-username@0.5.1 + humps: registry.npmmirror.com/humps@2.0.1 + inquirer: registry.npmmirror.com/inquirer@6.5.2 + lodash: registry.npmmirror.com/lodash@4.17.21 + lz-string: registry.npmmirror.com/lz-string@1.5.0 + ms: registry.npmmirror.com/ms@2.1.3 + open: registry.npmmirror.com/open@6.4.0 + ora: registry.npmmirror.com/ora@1.4.0 + pacote: registry.npmmirror.com/pacote@2.7.38 + shortid: registry.npmmirror.com/shortid@2.2.16 + update-notifier: registry.npmmirror.com/update-notifier@2.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} + name: color-convert + version: 1.9.3 + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.3 + dev: false + + registry.npmmirror.com/color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.4 + + registry.npmmirror.com/color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + dev: false + + registry.npmmirror.com/color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + + registry.npmmirror.com/color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz} + name: color-string + version: 1.9.1 + dependencies: + color-name: registry.npmmirror.com/color-name@1.1.4 + simple-swizzle: registry.npmmirror.com/simple-swizzle@0.2.2 + dev: false + + registry.npmmirror.com/color@3.2.1: + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color/-/color-3.2.1.tgz} + name: color + version: 3.2.1 + dependencies: + color-convert: registry.npmmirror.com/color-convert@1.9.3 + color-string: registry.npmmirror.com/color-string@1.9.1 + dev: false + + registry.npmmirror.com/colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz} + name: colord + version: 2.9.3 + dev: false + + registry.npmmirror.com/comma-separated-tokens@1.0.8: + resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz} + name: comma-separated-tokens + version: 1.0.8 + dev: false + + registry.npmmirror.com/comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz} + name: comma-separated-tokens + version: 2.0.3 + dev: false + + registry.npmmirror.com/commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} + name: commander + version: 2.20.3 + dev: false + + registry.npmmirror.com/commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz} + name: commander + version: 7.2.0 + engines: {node: '>= 10'} + dev: false + + registry.npmmirror.com/commander@8.3.0: + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz} + name: commander + version: 8.3.0 + engines: {node: '>= 12'} + dev: false + + registry.npmmirror.com/common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz} + name: common-path-prefix + version: 3.0.0 + dev: false + + registry.npmmirror.com/compute-scroll-into-view@3.1.0: + resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz} + name: compute-scroll-into-view + version: 3.1.0 + dev: false + + registry.npmmirror.com/concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} + name: concat-map + version: 0.0.1 + dev: false + + registry.npmmirror.com/concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz} + name: concat-stream + version: 1.6.2 + engines: {'0': node >= 0.8} + dependencies: + buffer-from: registry.npmmirror.com/buffer-from@1.1.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + typedarray: registry.npmmirror.com/typedarray@0.0.6 + dev: false + + registry.npmmirror.com/configstore@3.1.5: + resolution: {integrity: sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/configstore/-/configstore-3.1.5.tgz} + name: configstore + version: 3.1.5 + engines: {node: '>=4'} + dependencies: + dot-prop: registry.npmmirror.com/dot-prop@4.2.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + make-dir: registry.npmmirror.com/make-dir@1.3.0 + unique-string: registry.npmmirror.com/unique-string@1.0.0 + write-file-atomic: registry.npmmirror.com/write-file-atomic@2.4.3 + xdg-basedir: registry.npmmirror.com/xdg-basedir@3.0.0 + dev: false + + registry.npmmirror.com/console-browserify@1.2.0: + resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz} + name: console-browserify + version: 1.2.0 + dev: false + + registry.npmmirror.com/constants-browserify@1.0.0: + resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/constants-browserify/-/constants-browserify-1.0.0.tgz} + name: constants-browserify + version: 1.0.0 + dev: false + + registry.npmmirror.com/convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz} + name: convert-source-map + version: 1.9.0 + dev: false + + registry.npmmirror.com/convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz} + name: convert-source-map + version: 2.0.0 + dev: false + + registry.npmmirror.com/copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz} + name: copy-anything + version: 2.0.6 + dependencies: + is-what: registry.npmmirror.com/is-what@3.14.1 + dev: false + + registry.npmmirror.com/copy-concurrently@1.0.5: + resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz} + name: copy-concurrently + version: 1.0.5 + dependencies: + aproba: registry.npmmirror.com/aproba@1.2.0 + fs-write-stream-atomic: registry.npmmirror.com/fs-write-stream-atomic@1.0.10 + iferr: registry.npmmirror.com/iferr@0.1.5 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + rimraf: registry.npmmirror.com/rimraf@2.7.1 + run-queue: registry.npmmirror.com/run-queue@1.0.3 + dev: false + + registry.npmmirror.com/copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz} + name: copy-to-clipboard + version: 3.3.3 + dependencies: + toggle-selection: registry.npmmirror.com/toggle-selection@1.0.6 + dev: false + + registry.npmmirror.com/core-js-pure@3.34.0: + resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.34.0.tgz} + name: core-js-pure + version: 3.34.0 + requiresBuild: true + dev: false + + registry.npmmirror.com/core-js@3.28.0: + resolution: {integrity: sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js/-/core-js-3.28.0.tgz} + name: core-js + version: 3.28.0 + requiresBuild: true + dev: false + + registry.npmmirror.com/core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz} + name: core-util-is + version: 1.0.3 + dev: false + + registry.npmmirror.com/cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz} + name: cors + version: 2.8.5 + engines: {node: '>= 0.10'} + dependencies: + object-assign: registry.npmmirror.com/object-assign@4.1.1 + vary: registry.npmmirror.com/vary@1.1.2 + dev: false + + registry.npmmirror.com/cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz} + name: cosmiconfig + version: 7.1.0 + engines: {node: '>=10'} + dependencies: + '@types/parse-json': registry.npmmirror.com/@types/parse-json@4.0.2 + import-fresh: registry.npmmirror.com/import-fresh@3.3.0 + parse-json: registry.npmmirror.com/parse-json@5.2.0 + path-type: registry.npmmirror.com/path-type@4.0.0 + yaml: registry.npmmirror.com/yaml@1.10.2 + dev: false + + registry.npmmirror.com/create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz} + name: create-ecdh + version: 4.0.4 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + elliptic: registry.npmmirror.com/elliptic@6.5.4 + dev: false + + registry.npmmirror.com/create-error-class@3.0.2: + resolution: {integrity: sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-error-class/-/create-error-class-3.0.2.tgz} + name: create-error-class + version: 3.0.2 + engines: {node: '>=0.10.0'} + dependencies: + capture-stack-trace: registry.npmmirror.com/capture-stack-trace@1.0.2 + dev: false + + registry.npmmirror.com/create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz} + name: create-hash + version: 1.2.0 + dependencies: + cipher-base: registry.npmmirror.com/cipher-base@1.0.4 + inherits: registry.npmmirror.com/inherits@2.0.4 + md5.js: registry.npmmirror.com/md5.js@1.3.5 + ripemd160: registry.npmmirror.com/ripemd160@2.0.2 + sha.js: registry.npmmirror.com/sha.js@2.4.11 + dev: false + + registry.npmmirror.com/create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz} + name: create-hmac + version: 1.1.7 + dependencies: + cipher-base: registry.npmmirror.com/cipher-base@1.0.4 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + ripemd160: registry.npmmirror.com/ripemd160@2.0.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + sha.js: registry.npmmirror.com/sha.js@2.4.11 + dev: false + + registry.npmmirror.com/crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz} + name: crelt + version: 1.0.6 + dev: false + + registry.npmmirror.com/cross-spawn@5.1.0: + resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz} + name: cross-spawn + version: 5.1.0 + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + shebang-command: registry.npmmirror.com/shebang-command@1.2.0 + which: registry.npmmirror.com/which@1.3.1 + dev: false + + registry.npmmirror.com/cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz} + name: cross-spawn + version: 7.0.3 + engines: {node: '>= 8'} + dependencies: + path-key: registry.npmmirror.com/path-key@3.1.1 + shebang-command: registry.npmmirror.com/shebang-command@2.0.0 + which: registry.npmmirror.com/which@2.0.2 + dev: false + + registry.npmmirror.com/crypto-browserify@3.12.0: + resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz} + name: crypto-browserify + version: 3.12.0 + dependencies: + browserify-cipher: registry.npmmirror.com/browserify-cipher@1.0.1 + browserify-sign: registry.npmmirror.com/browserify-sign@4.2.2 + create-ecdh: registry.npmmirror.com/create-ecdh@4.0.4 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + create-hmac: registry.npmmirror.com/create-hmac@1.1.7 + diffie-hellman: registry.npmmirror.com/diffie-hellman@5.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + pbkdf2: registry.npmmirror.com/pbkdf2@3.1.2 + public-encrypt: registry.npmmirror.com/public-encrypt@4.0.3 + randombytes: registry.npmmirror.com/randombytes@2.1.0 + randomfill: registry.npmmirror.com/randomfill@1.0.4 + dev: false + + registry.npmmirror.com/crypto-random-string@1.0.0: + resolution: {integrity: sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz} + name: crypto-random-string + version: 1.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/css-blank-pseudo@3.0.3(postcss@8.4.31): + resolution: {integrity: sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz} + id: registry.npmmirror.com/css-blank-pseudo/3.0.3 + name: css-blank-pseudo + version: 3.0.3 + engines: {node: ^12 || ^14 || >=16} + hasBin: true + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/css-functions-list@3.2.1: + resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-functions-list/-/css-functions-list-3.2.1.tgz} + name: css-functions-list + version: 3.2.1 + engines: {node: '>=12 || >=16'} + dev: false + + registry.npmmirror.com/css-has-pseudo@3.0.4(postcss@8.4.31): + resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz} + id: registry.npmmirror.com/css-has-pseudo/3.0.4 + name: css-has-pseudo + version: 3.0.4 + engines: {node: ^12 || ^14 || >=16} + hasBin: true + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/css-loader@6.7.1(webpack@5.89.0): + resolution: {integrity: sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz} + id: registry.npmmirror.com/css-loader/6.7.1 + name: css-loader + version: 6.7.1 + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + dependencies: + icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-modules-extract-imports: registry.npmmirror.com/postcss-modules-extract-imports@3.0.0(postcss@8.4.31) + postcss-modules-local-by-default: registry.npmmirror.com/postcss-modules-local-by-default@4.0.3(postcss@8.4.31) + postcss-modules-scope: registry.npmmirror.com/postcss-modules-scope@3.0.0(postcss@8.4.31) + postcss-modules-values: registry.npmmirror.com/postcss-modules-values@4.0.0(postcss@8.4.31) + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + semver: registry.npmmirror.com/semver@7.5.4 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/css-prefers-color-scheme@6.0.3(postcss@8.4.31): + resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz} + id: registry.npmmirror.com/css-prefers-color-scheme/6.0.3 + name: css-prefers-color-scheme + version: 6.0.3 + engines: {node: ^12 || ^14 || >=16} + hasBin: true + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/css-select-base-adapter@0.1.1: + resolution: {integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz} + name: css-select-base-adapter + version: 0.1.1 + dev: false + + registry.npmmirror.com/css-select@2.1.0: + resolution: {integrity: sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select/-/css-select-2.1.0.tgz} + name: css-select + version: 2.1.0 + dependencies: + boolbase: registry.npmmirror.com/boolbase@1.0.0 + css-what: registry.npmmirror.com/css-what@3.4.2 + domutils: registry.npmmirror.com/domutils@1.7.0 + nth-check: registry.npmmirror.com/nth-check@1.0.2 + dev: false + + registry.npmmirror.com/css-select@4.3.0: + resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz} + name: css-select + version: 4.3.0 + dependencies: + boolbase: registry.npmmirror.com/boolbase@1.0.0 + css-what: registry.npmmirror.com/css-what@6.1.0 + domhandler: registry.npmmirror.com/domhandler@4.3.1 + domutils: registry.npmmirror.com/domutils@2.8.0 + nth-check: registry.npmmirror.com/nth-check@2.1.1 + dev: false + + registry.npmmirror.com/css-tree@1.0.0-alpha.37: + resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz} + name: css-tree + version: 1.0.0-alpha.37 + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: registry.npmmirror.com/mdn-data@2.0.4 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + registry.npmmirror.com/css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz} + name: css-tree + version: 1.1.3 + engines: {node: '>=8.0.0'} + dependencies: + mdn-data: registry.npmmirror.com/mdn-data@2.0.14 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + registry.npmmirror.com/css-what@3.4.2: + resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-what/-/css-what-3.4.2.tgz} + name: css-what + version: 3.4.2 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz} + name: css-what + version: 6.1.0 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/css@3.0.0: + resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css/-/css-3.0.0.tgz} + name: css + version: 3.0.0 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + source-map: registry.npmmirror.com/source-map@0.6.1 + source-map-resolve: registry.npmmirror.com/source-map-resolve@0.6.0 + dev: false + + registry.npmmirror.com/cssdb@6.6.3: + resolution: {integrity: sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssdb/-/cssdb-6.6.3.tgz} + name: cssdb + version: 6.6.3 + dev: false + + registry.npmmirror.com/cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz} + name: cssesc + version: 3.0.0 + engines: {node: '>=4'} + hasBin: true + dev: false + + registry.npmmirror.com/csso@4.2.0: + resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz} + name: csso + version: 4.2.0 + engines: {node: '>=8.0.0'} + dependencies: + css-tree: registry.npmmirror.com/css-tree@1.1.3 + dev: false + + registry.npmmirror.com/csstype@3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz} + name: csstype + version: 3.1.2 + dev: false + + registry.npmmirror.com/current-script-polyfill@1.0.0: + resolution: {integrity: sha512-qv8s+G47V6Hq+g2kRE5th+ASzzrL7b6l+tap1DHKK25ZQJv3yIFhH96XaQ7NGL+zRW3t/RDbweJf/dJDe5Z5KA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz} + name: current-script-polyfill + version: 1.0.0 + dev: false + + registry.npmmirror.com/cwd@0.9.1: + resolution: {integrity: sha512-4+0D+ojEasdLndYX4Cqff057I/Jp6ysXpwKkdLQLnZxV8f6IYZmZtTP5uqD91a/kWqejoc0sSqK4u8wpTKCh8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cwd/-/cwd-0.9.1.tgz} + name: cwd + version: 0.9.1 + engines: {node: '>=0.8'} + dependencies: + find-pkg: registry.npmmirror.com/find-pkg@0.1.2 + dev: false + + registry.npmmirror.com/cyclist@1.0.2: + resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cyclist/-/cyclist-1.0.2.tgz} + name: cyclist + version: 1.0.2 + dev: false + + registry.npmmirror.com/data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz} + name: data-uri-to-buffer + version: 4.0.1 + engines: {node: '>= 12'} + dev: false + + registry.npmmirror.com/datauri@3.0.0: + resolution: {integrity: sha512-NeDFuUPV1YCpCn8MUIcDk1QnuyenUHs7f4Q5P0n9FFA0neKFrfEH9esR+YMW95BplbYfdmjbs0Pl/ZGAaM2QHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/datauri/-/datauri-3.0.0.tgz} + name: datauri + version: 3.0.0 + engines: {node: '>= 8'} + dependencies: + image-size: registry.npmmirror.com/image-size@0.8.3 + mimer: registry.npmmirror.com/mimer@1.1.0 + dev: false + + registry.npmmirror.com/dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz} + name: dayjs + version: 1.11.10 + dev: false + + registry.npmmirror.com/debug@3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz} + name: debug + version: 3.1.0 + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.0.0 + dev: false + + registry.npmmirror.com/debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz} + name: debug + version: 3.2.7 + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.1.3 + dev: false + + registry.npmmirror.com/debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.1.2 + dev: false + + registry.npmmirror.com/decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz} + name: decamelize-keys + version: 1.1.1 + engines: {node: '>=0.10.0'} + dependencies: + decamelize: registry.npmmirror.com/decamelize@1.2.0 + map-obj: registry.npmmirror.com/map-obj@1.0.1 + dev: false + + registry.npmmirror.com/decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz} + name: decamelize + version: 1.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz} + name: decode-named-character-reference + version: 1.0.2 + dependencies: + character-entities: registry.npmmirror.com/character-entities@2.0.2 + dev: false + + registry.npmmirror.com/decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz} + name: decode-uri-component + version: 0.2.2 + engines: {node: '>=0.10'} + dev: false + + registry.npmmirror.com/deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz} + name: deep-extend + version: 0.6.0 + engines: {node: '>=4.0.0'} + dev: false + + registry.npmmirror.com/deep-rename-keys@0.2.1: + resolution: {integrity: sha512-RHd9ABw4Fvk+gYDWqwOftG849x0bYOySl/RgX0tLI9i27ZIeSO91mLZJEp7oPHOMFqHvpgu21YptmDt0FYD/0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz} + name: deep-rename-keys + version: 0.2.1 + engines: {node: '>=0.10.0'} + dependencies: + kind-of: registry.npmmirror.com/kind-of@3.2.2 + rename-keys: registry.npmmirror.com/rename-keys@1.2.0 + dev: false + + registry.npmmirror.com/deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz} + name: deepmerge + version: 4.3.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/default-browser-id/-/default-browser-id-3.0.0.tgz} + name: default-browser-id + version: 3.0.0 + engines: {node: '>=12'} + dependencies: + bplist-parser: registry.npmmirror.com/bplist-parser@0.2.0 + untildify: registry.npmmirror.com/untildify@4.0.0 + dev: false + + registry.npmmirror.com/default-browser@4.0.0: + resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/default-browser/-/default-browser-4.0.0.tgz} + name: default-browser + version: 4.0.0 + engines: {node: '>=14.16'} + dependencies: + bundle-name: registry.npmmirror.com/bundle-name@3.0.0 + default-browser-id: registry.npmmirror.com/default-browser-id@3.0.0 + execa: registry.npmmirror.com/execa@7.2.0 + titleize: registry.npmmirror.com/titleize@3.0.0 + dev: false + + registry.npmmirror.com/define-data-property@1.1.1: + resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz} + name: define-data-property + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + dev: false + + registry.npmmirror.com/define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz} + name: define-lazy-prop + version: 2.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz} + name: define-lazy-prop + version: 3.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz} + name: define-properties + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: false + + registry.npmmirror.com/dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz} + name: dequal + version: 2.0.3 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/des.js/-/des.js-1.1.0.tgz} + name: des.js + version: 1.1.0 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + dev: false + + registry.npmmirror.com/detect-indent@7.0.1: + resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-indent/-/detect-indent-7.0.1.tgz} + name: detect-indent + version: 7.0.1 + engines: {node: '>=12.20'} + dev: false + + registry.npmmirror.com/detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz} + name: detect-libc + version: 1.0.3 + engines: {node: '>=0.10'} + hasBin: true + dev: false + + registry.npmmirror.com/detect-newline@4.0.1: + resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-newline/-/detect-newline-4.0.1.tgz} + name: detect-newline + version: 4.0.1 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + registry.npmmirror.com/detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz} + name: detect-node + version: 2.1.0 + dev: false + + registry.npmmirror.com/diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/diff/-/diff-5.1.0.tgz} + name: diff + version: 5.1.0 + engines: {node: '>=0.3.1'} + dev: false + + registry.npmmirror.com/diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz} + name: diffie-hellman + version: 5.0.3 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + miller-rabin: registry.npmmirror.com/miller-rabin@4.0.1 + randombytes: registry.npmmirror.com/randombytes@2.1.0 + dev: false + + registry.npmmirror.com/dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} + name: dir-glob + version: 3.0.1 + engines: {node: '>=8'} + dependencies: + path-type: registry.npmmirror.com/path-type@4.0.0 + dev: false + + registry.npmmirror.com/doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz} + name: doctrine + version: 2.1.0 + engines: {node: '>=0.10.0'} + dependencies: + esutils: registry.npmmirror.com/esutils@2.0.3 + dev: false + + registry.npmmirror.com/dom-converter@0.2.0: + resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz} + name: dom-converter + version: 0.2.0 + dependencies: + utila: registry.npmmirror.com/utila@0.4.0 + dev: false + + registry.npmmirror.com/dom-serializer@0.2.2: + resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz} + name: dom-serializer + version: 0.2.2 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + entities: registry.npmmirror.com/entities@2.2.0 + dev: false + + registry.npmmirror.com/dom-serializer@1.4.1: + resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz} + name: dom-serializer + version: 1.4.1 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@4.3.1 + entities: registry.npmmirror.com/entities@2.2.0 + dev: false + + registry.npmmirror.com/dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz} + name: dom-serializer + version: 2.0.0 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@5.0.3 + entities: registry.npmmirror.com/entities@4.5.0 + dev: false + + registry.npmmirror.com/domain-browser@1.2.0: + resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz} + name: domain-browser + version: 1.2.0 + engines: {node: '>=0.4', npm: '>=1.2'} + dev: false + + registry.npmmirror.com/domelementtype@1.3.1: + resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz} + name: domelementtype + version: 1.3.1 + dev: false + + registry.npmmirror.com/domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz} + name: domelementtype + version: 2.3.0 + dev: false + + registry.npmmirror.com/domhandler@4.3.1: + resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz} + name: domhandler + version: 4.3.1 + engines: {node: '>= 4'} + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + dev: false + + registry.npmmirror.com/domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz} + name: domhandler + version: 5.0.3 + engines: {node: '>= 4'} + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + dev: false + + registry.npmmirror.com/domutils@1.7.0: + resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz} + name: domutils + version: 1.7.0 + dependencies: + dom-serializer: registry.npmmirror.com/dom-serializer@0.2.2 + domelementtype: registry.npmmirror.com/domelementtype@1.3.1 + dev: false + + registry.npmmirror.com/domutils@2.8.0: + resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz} + name: domutils + version: 2.8.0 + dependencies: + dom-serializer: registry.npmmirror.com/dom-serializer@1.4.1 + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@4.3.1 + dev: false + + registry.npmmirror.com/domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-3.1.0.tgz} + name: domutils + version: 3.1.0 + dependencies: + dom-serializer: registry.npmmirror.com/dom-serializer@2.0.0 + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@5.0.3 + dev: false + + registry.npmmirror.com/dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz} + name: dot-case + version: 3.0.4 + dependencies: + no-case: registry.npmmirror.com/no-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/dot-prop@4.2.1: + resolution: {integrity: sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dot-prop/-/dot-prop-4.2.1.tgz} + name: dot-prop + version: 4.2.1 + engines: {node: '>=4'} + dependencies: + is-obj: registry.npmmirror.com/is-obj@1.0.1 + dev: false + + registry.npmmirror.com/dumi-afx-deps@1.0.0-alpha.20: + resolution: {integrity: sha512-PRSJlHuJkyHDET7Hukykx/hLULkgUBX5q2CutMG5EDI3eJLzJlX634wNll10m3at1uomcDAVudL7Dgh5UOJ7IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-afx-deps/-/dumi-afx-deps-1.0.0-alpha.20.tgz} + name: dumi-afx-deps + version: 1.0.0-alpha.20 + dev: false + + registry.npmmirror.com/dumi-assets-types@2.0.0-alpha.0: + resolution: {integrity: sha512-a/Y5lf0G6gwsEQ9hop/n03CcjmHsGBk384Cz/AEX6mRYrfSpUx/lQvP9HLoXkCzScl9PL1sSmLPnMkgaXDCZLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-assets-types/-/dumi-assets-types-2.0.0-alpha.0.tgz} + name: dumi-assets-types + version: 2.0.0-alpha.0 + dev: false + + registry.npmmirror.com/dumi-theme-antd-style@0.29.7(@types/react@18.2.38)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-SQODA/EeveBKcDP6I0fUqUsNg2qRIpOR8t+Jt3GIAhycj6Ddu5WKaUuv5hKnSj75i5j9JdyBT+OneCZcQUxR6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-theme-antd-style/-/dumi-theme-antd-style-0.29.7.tgz} + id: registry.npmmirror.com/dumi-theme-antd-style/0.29.7 + name: dumi-theme-antd-style + version: 0.29.7 + peerDependencies: + dumi: ^2.0.0 + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@floating-ui/react': registry.npmmirror.com/@floating-ui/react@0.24.8(react-dom@18.2.0)(react@18.2.0) + ahooks: registry.npmmirror.com/ahooks@3.7.8(react@18.2.0) + antd: registry.npmmirror.com/antd@5.11.4(react-dom@18.2.0)(react@18.2.0) + antd-style: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.38)(antd@5.11.4)(react-dom@18.2.0)(react@18.2.0) + chalk: registry.npmmirror.com/chalk@4.1.2 + chroma-js: registry.npmmirror.com/chroma-js@2.4.2 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + dumi: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0) + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + lodash: registry.npmmirror.com/lodash@4.17.21 + polished: registry.npmmirror.com/polished@4.2.2 + rc-footer: registry.npmmirror.com/rc-footer@0.6.8(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-layout-kit: registry.npmmirror.com/react-layout-kit@1.7.4(react@18.2.0) + react-syntax-highlighter: registry.npmmirror.com/react-syntax-highlighter@15.5.0(react@18.2.0) + shiki-es: registry.npmmirror.com/shiki-es@0.2.0 + use-merge-value: registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0) + zustand: registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.38)(immer@10.0.3)(react@18.2.0) + zustand-utils: registry.npmmirror.com/zustand-utils@1.3.1(react@18.2.0)(zustand@4.4.7) + transitivePeerDependencies: + - '@types/react' + - date-fns + - immer + - luxon + - moment + dev: false + + registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-r2x/CY0fR8/YZOwEnG4JsLEpn8jOg94Qyd1u+7pRD9SCx7dF9It+GwkGbdNEsyenGsO/ZU9wD+Kz7KO+HU7/EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi/-/dumi-2.2.16.tgz} + id: registry.npmmirror.com/dumi/2.2.16 + name: dumi + version: 2.2.16 + hasBin: true + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@ant-design/icons-svg': registry.npmmirror.com/@ant-design/icons-svg@4.3.1 + '@makotot/ghostui': registry.npmmirror.com/@makotot/ghostui@2.0.0(react@18.2.0) + '@stackblitz/sdk': registry.npmmirror.com/@stackblitz/sdk@1.9.0 + '@swc/core': registry.npmmirror.com/@swc/core@1.3.72 + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + animated-scroll-to: registry.npmmirror.com/animated-scroll-to@2.3.0 + classnames: registry.npmmirror.com/classnames@2.3.2 + codesandbox: registry.npmmirror.com/codesandbox@2.2.3 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + dumi-afx-deps: registry.npmmirror.com/dumi-afx-deps@1.0.0-alpha.20 + dumi-assets-types: registry.npmmirror.com/dumi-assets-types@2.0.0-alpha.0 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 + estree-util-to-js: registry.npmmirror.com/estree-util-to-js@1.2.0 + estree-util-visit: registry.npmmirror.com/estree-util-visit@1.2.1 + file-system-cache: registry.npmmirror.com/file-system-cache@2.4.4 + github-slugger: registry.npmmirror.com/github-slugger@1.5.0 + hast-util-is-element: registry.npmmirror.com/hast-util-is-element@2.1.3 + hast-util-raw: registry.npmmirror.com/hast-util-raw@8.0.0 + hast-util-to-estree: registry.npmmirror.com/hast-util-to-estree@2.3.3 + hast-util-to-string: registry.npmmirror.com/hast-util-to-string@2.0.0 + heti: registry.npmmirror.com/heti@0.9.4 + hosted-git-info: registry.npmmirror.com/hosted-git-info@6.1.1 + html-to-text: registry.npmmirror.com/html-to-text@9.0.5 + html2sketch: registry.npmmirror.com/html2sketch@1.0.2 + js-yaml: registry.npmmirror.com/js-yaml@4.1.0 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + mdast-util-find-and-replace: registry.npmmirror.com/mdast-util-find-and-replace@2.2.2 + mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string@3.2.0 + nprogress: registry.npmmirror.com/nprogress@0.2.0 + pluralize: registry.npmmirror.com/pluralize@8.0.0 + prism-react-renderer: registry.npmmirror.com/prism-react-renderer@1.3.5(react@18.2.0) + prism-themes: registry.npmmirror.com/prism-themes@1.9.0 + prismjs: registry.npmmirror.com/prismjs@1.29.0 + raw-loader: registry.npmmirror.com/raw-loader@4.0.2(webpack@5.89.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: registry.npmmirror.com/rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-copy-to-clipboard: registry.npmmirror.com/react-copy-to-clipboard@5.1.0(react@18.2.0) + react-dom: 18.2.0(react@18.2.0) + react-error-boundary: registry.npmmirror.com/react-error-boundary@4.0.11(react@18.2.0) + react-intl: registry.npmmirror.com/react-intl@6.5.5(react@18.2.0)(typescript@5.3.2) + rehype-autolink-headings: registry.npmmirror.com/rehype-autolink-headings@6.1.1 + rehype-remove-comments: registry.npmmirror.com/rehype-remove-comments@5.0.0 + rehype-stringify: registry.npmmirror.com/rehype-stringify@9.0.4 + remark-directive: registry.npmmirror.com/remark-directive@2.0.1 + remark-frontmatter: registry.npmmirror.com/remark-frontmatter@4.0.1 + remark-gfm: registry.npmmirror.com/remark-gfm@3.0.1 + remark-parse: registry.npmmirror.com/remark-parse@10.0.2 + remark-rehype: registry.npmmirror.com/remark-rehype@10.1.0 + sass: registry.npmmirror.com/sass@1.69.5 + sitemap: registry.npmmirror.com/sitemap@7.1.1 + umi: registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(sass@1.69.5)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0) + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + url: registry.npmmirror.com/url@0.11.3 + v8-compile-cache: registry.npmmirror.com/v8-compile-cache@2.3.0 + vfile: registry.npmmirror.com/vfile@5.3.7 + transitivePeerDependencies: + - '@babel/core' + - '@swc/helpers' + - '@types/node' + - '@types/react' + - '@types/webpack' + - '@volar/vue-language-plugin-pug' + - '@volar/vue-typescript' + - eslint + - jest + - postcss-html + - postcss-jsx + - postcss-less + - postcss-markdown + - postcss-scss + - prettier + - rollup + - sockjs-client + - stylelint + - stylus + - sugarss + - supports-color + - terser + - type-fest + - typescript + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + registry.npmmirror.com/duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz} + name: duplexer2 + version: 0.1.4 + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/duplexer3@0.1.5: + resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz} + name: duplexer3 + version: 0.1.5 + dev: false + + registry.npmmirror.com/duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz} + name: duplexify + version: 3.7.1 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + stream-shift: registry.npmmirror.com/stream-shift@1.0.1 + dev: false + + registry.npmmirror.com/duplexify@4.1.2: + resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexify/-/duplexify-4.1.2.tgz} + name: duplexify + version: 4.1.2 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + stream-shift: registry.npmmirror.com/stream-shift@1.0.1 + dev: false + + registry.npmmirror.com/editions@2.3.1: + resolution: {integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/editions/-/editions-2.3.1.tgz} + name: editions + version: 2.3.1 + engines: {node: '>=0.8'} + dependencies: + errlop: registry.npmmirror.com/errlop@2.2.0 + semver: registry.npmmirror.com/semver@6.3.1 + dev: false + + registry.npmmirror.com/electron-to-chromium@1.4.594: + resolution: {integrity: sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz} + name: electron-to-chromium + version: 1.4.594 + dev: false + + registry.npmmirror.com/elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz} + name: elliptic + version: 6.5.4 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + brorand: registry.npmmirror.com/brorand@1.1.0 + hash.js: registry.npmmirror.com/hash.js@1.1.7 + hmac-drbg: registry.npmmirror.com/hmac-drbg@1.0.1 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + minimalistic-crypto-utils: registry.npmmirror.com/minimalistic-crypto-utils@1.0.1 + dev: false + + registry.npmmirror.com/emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} + name: emoji-regex + version: 8.0.0 + + registry.npmmirror.com/emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz} + name: emojis-list + version: 3.0.0 + engines: {node: '>= 4'} + dev: false + + registry.npmmirror.com/encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz} + name: encoding + version: 0.1.13 + dependencies: + iconv-lite: registry.npmmirror.com/iconv-lite@0.6.3 + dev: false + + registry.npmmirror.com/end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz} + name: end-of-stream + version: 1.4.4 + dependencies: + once: registry.npmmirror.com/once@1.4.0 + dev: false + + registry.npmmirror.com/enhanced-resolve@5.15.0: + resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz} + name: enhanced-resolve + version: 5.15.0 + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + tapable: registry.npmmirror.com/tapable@2.2.1 + dev: false + + registry.npmmirror.com/enhanced-resolve@5.9.3: + resolution: {integrity: sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz} + name: enhanced-resolve + version: 5.9.3 + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + tapable: registry.npmmirror.com/tapable@2.2.1 + dev: false + + registry.npmmirror.com/entities@2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} + name: entities + version: 2.2.0 + dev: false + + registry.npmmirror.com/entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz} + name: entities + version: 4.5.0 + engines: {node: '>=0.12'} + dev: false + + registry.npmmirror.com/err-code@1.1.2: + resolution: {integrity: sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/err-code/-/err-code-1.1.2.tgz} + name: err-code + version: 1.1.2 + dev: false + + registry.npmmirror.com/errlop@2.2.0: + resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/errlop/-/errlop-2.2.0.tgz} + name: errlop + version: 2.2.0 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz} + name: errno + version: 0.1.8 + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + optional: true + + registry.npmmirror.com/error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} + name: error-ex + version: 1.3.2 + dependencies: + is-arrayish: registry.npmmirror.com/is-arrayish@0.2.1 + dev: false + + registry.npmmirror.com/error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz} + name: error-stack-parser + version: 2.1.4 + dependencies: + stackframe: registry.npmmirror.com/stackframe@1.3.4 + dev: false + + registry.npmmirror.com/es-abstract@1.22.3: + resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.3.tgz} + name: es-abstract + version: 1.22.3 + engines: {node: '>= 0.4'} + dependencies: + array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 + arraybuffer.prototype.slice: registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2 + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.2 + es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 + function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.6 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + get-symbol-description: registry.npmmirror.com/get-symbol-description@1.0.0 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-negative-zero: registry.npmmirror.com/is-negative-zero@2.0.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + is-weakref: registry.npmmirror.com/is-weakref@1.0.2 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + object.assign: registry.npmmirror.com/object.assign@4.1.4 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 + safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 + safe-regex-test: registry.npmmirror.com/safe-regex-test@1.0.0 + string.prototype.trim: registry.npmmirror.com/string.prototype.trim@1.2.8 + string.prototype.trimend: registry.npmmirror.com/string.prototype.trimend@1.0.7 + string.prototype.trimstart: registry.npmmirror.com/string.prototype.trimstart@1.0.7 + typed-array-buffer: registry.npmmirror.com/typed-array-buffer@1.0.0 + typed-array-byte-length: registry.npmmirror.com/typed-array-byte-length@1.0.0 + typed-array-byte-offset: registry.npmmirror.com/typed-array-byte-offset@1.0.0 + typed-array-length: registry.npmmirror.com/typed-array-length@1.0.4 + unbox-primitive: registry.npmmirror.com/unbox-primitive@1.0.2 + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 + dev: false + + registry.npmmirror.com/es-array-method-boxes-properly@1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz} + name: es-array-method-boxes-properly + version: 1.0.0 + dev: false + + registry.npmmirror.com/es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz} + name: es-get-iterator + version: 1.1.3 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + is-arguments: registry.npmmirror.com/is-arguments@1.1.1 + is-map: registry.npmmirror.com/is-map@2.0.2 + is-set: registry.npmmirror.com/is-set@2.0.2 + is-string: registry.npmmirror.com/is-string@1.0.7 + isarray: registry.npmmirror.com/isarray@2.0.5 + stop-iteration-iterator: registry.npmmirror.com/stop-iteration-iterator@1.0.0 + dev: false + + registry.npmmirror.com/es-iterator-helpers@1.0.15: + resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz} + name: es-iterator-helpers + version: 1.0.15 + dependencies: + asynciterator.prototype: registry.npmmirror.com/asynciterator.prototype@1.0.0 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.2 + function-bind: registry.npmmirror.com/function-bind@1.1.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + iterator.prototype: registry.npmmirror.com/iterator.prototype@1.1.2 + safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 + dev: false + + registry.npmmirror.com/es-module-lexer@1.4.1: + resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz} + name: es-module-lexer + version: 1.4.1 + dev: false + + registry.npmmirror.com/es-set-tostringtag@2.0.2: + resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz} + name: es-set-tostringtag + version: 2.0.2 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz} + name: es-shim-unscopables + version: 1.0.2 + dependencies: + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} + name: es-to-primitive + version: 1.2.1 + engines: {node: '>= 0.4'} + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: false + + registry.npmmirror.com/es5-imcompatible-versions@0.1.88: + resolution: {integrity: sha512-GDJTmDGd65qyDk9fGClO+MOUgHuBuGMCL6EawvLH8Ob+HN8ui1OJwa4fEK0qh3fg2ieT2/pdZj41yrxnmOrK8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es5-imcompatible-versions/-/es5-imcompatible-versions-0.1.88.tgz} + name: es5-imcompatible-versions + version: 0.1.88 + dev: false + + registry.npmmirror.com/es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz} + name: es6-promise + version: 4.2.8 + dev: false + + registry.npmmirror.com/es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es6-promisify/-/es6-promisify-5.0.0.tgz} + name: es6-promisify + version: 5.0.0 + dependencies: + es6-promise: registry.npmmirror.com/es6-promise@4.2.8 + dev: false + + registry.npmmirror.com/esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz} + name: esbuild-android-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz} + name: esbuild-android-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz} + name: esbuild-darwin-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz} + name: esbuild-darwin-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz} + name: esbuild-freebsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz} + name: esbuild-freebsd-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz} + name: esbuild-linux-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz} + name: esbuild-linux-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz} + name: esbuild-linux-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz} + name: esbuild-linux-arm + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz} + name: esbuild-linux-mips64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz} + name: esbuild-linux-ppc64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz} + name: esbuild-linux-riscv64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz} + name: esbuild-linux-s390x + version: 0.14.54 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz} + name: esbuild-netbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz} + name: esbuild-openbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz} + name: esbuild-sunos-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz} + name: esbuild-windows-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz} + name: esbuild-windows-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz} + name: esbuild-windows-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz} + name: esbuild + version: 0.17.19 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.17.19 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.17.19 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.17.19 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.17.19 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.17.19 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.17.19 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.17.19 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.17.19 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.17.19 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.17.19 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.17.19 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.17.19 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.17.19 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.17.19 + dev: false + + registry.npmmirror.com/esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz} + name: esbuild + version: 0.18.20 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.18.20 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.18.20 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.18.20 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.18.20 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.18.20 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.18.20 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.18.20 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.18.20 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.18.20 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.18.20 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.18.20 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.18.20 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.18.20 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.18.20 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.18.20 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.18.20 + dev: false + + registry.npmmirror.com/escalade@3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} + name: escalade + version: 3.1.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + dev: false + + registry.npmmirror.com/escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} + name: escape-string-regexp + version: 4.0.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz} + name: escape-string-regexp + version: 5.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz} + id: registry.npmmirror.com/eslint-plugin-jest/27.2.3 + name: eslint-plugin-jest + version: 27.2.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: '*' + peerDependenciesMeta: + '@typescript-eslint/eslint-plugin': + optional: true + jest: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) + eslint: 8.54.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + + registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz} + id: registry.npmmirror.com/eslint-plugin-react-hooks/4.6.0 + name: eslint-plugin-react-hooks + version: 4.6.0 + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.54.0 + dev: false + + registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.54.0): + resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz} + id: registry.npmmirror.com/eslint-plugin-react/7.33.2 + name: eslint-plugin-react + version: 7.33.2 + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: registry.npmmirror.com/array-includes@3.1.7 + array.prototype.flatmap: registry.npmmirror.com/array.prototype.flatmap@1.3.2 + array.prototype.tosorted: registry.npmmirror.com/array.prototype.tosorted@1.1.2 + doctrine: registry.npmmirror.com/doctrine@2.1.0 + es-iterator-helpers: registry.npmmirror.com/es-iterator-helpers@1.0.15 + eslint: 8.54.0 + estraverse: registry.npmmirror.com/estraverse@5.3.0 + jsx-ast-utils: registry.npmmirror.com/jsx-ast-utils@3.3.5 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + object.entries: registry.npmmirror.com/object.entries@1.1.7 + object.fromentries: registry.npmmirror.com/object.fromentries@2.0.7 + object.hasown: registry.npmmirror.com/object.hasown@1.1.3 + object.values: registry.npmmirror.com/object.values@1.1.7 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + resolve: registry.npmmirror.com/resolve@2.0.0-next.5 + semver: registry.npmmirror.com/semver@6.3.1 + string.prototype.matchall: registry.npmmirror.com/string.prototype.matchall@4.0.10 + dev: false + + registry.npmmirror.com/eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} + name: eslint-scope + version: 5.1.1 + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: registry.npmmirror.com/esrecurse@4.3.0 + estraverse: registry.npmmirror.com/estraverse@4.3.0 + dev: false + + registry.npmmirror.com/eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz} + name: eslint-visitor-keys + version: 2.1.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz} + name: eslint-visitor-keys + version: 3.4.3 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + registry.npmmirror.com/esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz} + name: esprima + version: 4.0.1 + engines: {node: '>=4'} + hasBin: true + dev: false + + registry.npmmirror.com/esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} + name: esrecurse + version: 4.3.0 + engines: {node: '>=4.0'} + dependencies: + estraverse: registry.npmmirror.com/estraverse@5.3.0 + dev: false + + registry.npmmirror.com/estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz} + name: estraverse + version: 4.3.0 + engines: {node: '>=4.0'} + dev: false + + registry.npmmirror.com/estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} + name: estraverse + version: 5.3.0 + engines: {node: '>=4.0'} + dev: false + + registry.npmmirror.com/estree-util-attach-comments@2.1.1: + resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz} + name: estree-util-attach-comments + version: 2.1.1 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + dev: false + + registry.npmmirror.com/estree-util-is-identifier-name@2.1.0: + resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz} + name: estree-util-is-identifier-name + version: 2.1.0 + dev: false + + registry.npmmirror.com/estree-util-to-js@1.2.0: + resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz} + name: estree-util-to-js + version: 1.2.0 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + astring: registry.npmmirror.com/astring@1.8.6 + source-map: registry.npmmirror.com/source-map@0.7.4 + dev: false + + registry.npmmirror.com/estree-util-visit@1.2.1: + resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-visit/-/estree-util-visit-1.2.1.tgz} + name: estree-util-visit + version: 1.2.1 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} + name: esutils + version: 2.0.3 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/eventemitter3@2.0.3: + resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-2.0.3.tgz} + name: eventemitter3 + version: 2.0.3 + dev: false + + registry.npmmirror.com/events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/events/-/events-3.3.0.tgz} + name: events + version: 3.3.0 + engines: {node: '>=0.8.x'} + dev: false + + registry.npmmirror.com/evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz} + name: evp_bytestokey + version: 1.0.3 + dependencies: + md5.js: registry.npmmirror.com/md5.js@1.3.5 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/execa@0.7.0: + resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-0.7.0.tgz} + name: execa + version: 0.7.0 + engines: {node: '>=4'} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@5.1.0 + get-stream: registry.npmmirror.com/get-stream@3.0.0 + is-stream: registry.npmmirror.com/is-stream@1.1.0 + npm-run-path: registry.npmmirror.com/npm-run-path@2.0.2 + p-finally: registry.npmmirror.com/p-finally@1.0.0 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + strip-eof: registry.npmmirror.com/strip-eof@1.0.0 + dev: false + + registry.npmmirror.com/execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz} + name: execa + version: 5.1.1 + engines: {node: '>=10'} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 + get-stream: registry.npmmirror.com/get-stream@6.0.1 + human-signals: registry.npmmirror.com/human-signals@2.1.0 + is-stream: registry.npmmirror.com/is-stream@2.0.1 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + npm-run-path: registry.npmmirror.com/npm-run-path@4.0.1 + onetime: registry.npmmirror.com/onetime@5.1.2 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + strip-final-newline: registry.npmmirror.com/strip-final-newline@2.0.0 + dev: false + + registry.npmmirror.com/execa@7.2.0: + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-7.2.0.tgz} + name: execa + version: 7.2.0 + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 + get-stream: registry.npmmirror.com/get-stream@6.0.1 + human-signals: registry.npmmirror.com/human-signals@4.3.1 + is-stream: registry.npmmirror.com/is-stream@3.0.0 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + npm-run-path: registry.npmmirror.com/npm-run-path@5.1.0 + onetime: registry.npmmirror.com/onetime@6.0.0 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + strip-final-newline: registry.npmmirror.com/strip-final-newline@3.0.0 + dev: false + + registry.npmmirror.com/expand-tilde@1.2.2: + resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/expand-tilde/-/expand-tilde-1.2.2.tgz} + name: expand-tilde + version: 1.2.2 + engines: {node: '>=0.10.0'} + dependencies: + os-homedir: registry.npmmirror.com/os-homedir@1.0.2 + dev: false + + registry.npmmirror.com/extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz} + name: extend-shallow + version: 2.0.1 + engines: {node: '>=0.10.0'} + dependencies: + is-extendable: registry.npmmirror.com/is-extendable@0.1.1 + dev: false + + registry.npmmirror.com/extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz} + name: extend + version: 3.0.2 + dev: false + + registry.npmmirror.com/external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz} + name: external-editor + version: 3.1.0 + engines: {node: '>=4'} + dependencies: + chardet: registry.npmmirror.com/chardet@0.7.0 + iconv-lite: registry.npmmirror.com/iconv-lite@0.4.24 + tmp: registry.npmmirror.com/tmp@0.0.33 + dev: false + + registry.npmmirror.com/fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + name: fast-deep-equal + version: 3.1.3 + dev: false + + registry.npmmirror.com/fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} + name: fast-glob + version: 3.2.12 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + merge2: registry.npmmirror.com/merge2@1.4.1 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + dev: false + + registry.npmmirror.com/fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz} + name: fast-glob + version: 3.3.2 + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 + '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 + glob-parent: registry.npmmirror.com/glob-parent@5.1.2 + merge2: registry.npmmirror.com/merge2@1.4.1 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + dev: false + + registry.npmmirror.com/fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + name: fast-json-stable-stringify + version: 2.1.0 + dev: false + + registry.npmmirror.com/fast-redact@3.3.0: + resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-redact/-/fast-redact-3.3.0.tgz} + name: fast-redact + version: 3.3.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz} + name: fastest-levenshtein + version: 1.0.16 + engines: {node: '>= 4.9.1'} + dev: false + + registry.npmmirror.com/fastq@1.15.0: + resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz} + name: fastq + version: 1.15.0 + dependencies: + reusify: registry.npmmirror.com/reusify@1.0.4 + dev: false + + registry.npmmirror.com/fault@1.0.4: + resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fault/-/fault-1.0.4.tgz} + name: fault + version: 1.0.4 + dependencies: + format: registry.npmmirror.com/format@0.2.2 + dev: false + + registry.npmmirror.com/fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fault/-/fault-2.0.1.tgz} + name: fault + version: 2.0.1 + dependencies: + format: registry.npmmirror.com/format@0.2.2 + dev: false + + registry.npmmirror.com/fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz} + name: fb-watchman + version: 2.0.2 + dependencies: + bser: registry.npmmirror.com/bser@2.1.1 + dev: false + + registry.npmmirror.com/fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz} + name: fetch-blob + version: 3.2.0 + engines: {node: ^12.20 || >= 14.13} + dependencies: + node-domexception: registry.npmmirror.com/node-domexception@1.0.0 + web-streams-polyfill: registry.npmmirror.com/web-streams-polyfill@3.2.1 + dev: false + + registry.npmmirror.com/figures@2.0.0: + resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz} + name: figures + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + dev: false + + registry.npmmirror.com/file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz} + name: file-entry-cache + version: 6.0.1 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: registry.npmmirror.com/flat-cache@3.2.0 + dev: false + + registry.npmmirror.com/file-name@0.1.0: + resolution: {integrity: sha512-Q8SskhjF4eUk/xoQkmubwLkoHwOTv6Jj/WGtOVLKkZ0vvM+LipkSXugkn1F/+mjWXU32AXLZB3qaz0arUzgtRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-name/-/file-name-0.1.0.tgz} + name: file-name + version: 0.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/file-system-cache@2.4.4: + resolution: {integrity: sha512-vCYhn8pb5nlC3Gs2FFCOkmf4NEg2Ym3ulJwkmS9o6p9oRShGj6CwTMFvpgZihBlsh373NaM0XgAgDHXQIlS4LQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-system-cache/-/file-system-cache-2.4.4.tgz} + name: file-system-cache + version: 2.4.4 + dependencies: + '@types/fs-extra': registry.npmmirror.com/@types/fs-extra@11.0.1 + '@types/ramda': registry.npmmirror.com/@types/ramda@0.29.3 + fs-extra: registry.npmmirror.com/fs-extra@11.1.1 + ramda: registry.npmmirror.com/ramda@0.29.0 + dev: false + + registry.npmmirror.com/filesize@3.6.1: + resolution: {integrity: sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/filesize/-/filesize-3.6.1.tgz} + name: filesize + version: 3.6.1 + engines: {node: '>= 0.4.0'} + dev: false + + registry.npmmirror.com/fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} + name: fill-range + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + to-regex-range: registry.npmmirror.com/to-regex-range@5.0.1 + dev: false + + registry.npmmirror.com/filter-obj@1.1.0: + resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/filter-obj/-/filter-obj-1.1.0.tgz} + name: filter-obj + version: 1.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/find-file-up@0.1.3: + resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-file-up/-/find-file-up-0.1.3.tgz} + name: find-file-up + version: 0.1.3 + engines: {node: '>=0.10.0'} + dependencies: + fs-exists-sync: registry.npmmirror.com/fs-exists-sync@0.1.0 + resolve-dir: registry.npmmirror.com/resolve-dir@0.1.1 + dev: false + + registry.npmmirror.com/find-pkg@0.1.2: + resolution: {integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-pkg/-/find-pkg-0.1.2.tgz} + name: find-pkg + version: 0.1.2 + engines: {node: '>=0.10.0'} + dependencies: + find-file-up: registry.npmmirror.com/find-file-up@0.1.3 + dev: false + + registry.npmmirror.com/find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-root/-/find-root-1.1.0.tgz} + name: find-root + version: 1.1.0 + dev: false + + registry.npmmirror.com/find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz} + name: find-up + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + locate-path: registry.npmmirror.com/locate-path@5.0.0 + path-exists: registry.npmmirror.com/path-exists@4.0.0 + dev: false + + registry.npmmirror.com/find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz} + name: find-up + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + locate-path: registry.npmmirror.com/locate-path@6.0.0 + path-exists: registry.npmmirror.com/path-exists@4.0.0 + dev: false + + registry.npmmirror.com/flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz} + name: flat-cache + version: 3.2.0 + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: registry.npmmirror.com/flatted@3.2.9 + keyv: registry.npmmirror.com/keyv@4.5.4 + rimraf: registry.npmmirror.com/rimraf@3.0.2 + dev: false + + registry.npmmirror.com/flatted@3.2.9: + resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz} + name: flatted + version: 3.2.9 + dev: false + + registry.npmmirror.com/flush-write-stream@1.1.1: + resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz} + name: flush-write-stream + version: 1.1.1 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/follow-redirects@1.5.10: + resolution: {integrity: sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz} + name: follow-redirects + version: 1.5.10 + engines: {node: '>=4.0'} + dependencies: + debug: registry.npmmirror.com/debug@3.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz} + name: for-each + version: 0.3.3 + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + dev: false + + registry.npmmirror.com/fork-ts-checker-webpack-plugin@8.0.0(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz} + id: registry.npmmirror.com/fork-ts-checker-webpack-plugin/8.0.0 + name: fork-ts-checker-webpack-plugin + version: 8.0.0 + engines: {node: '>=12.13.0', yarn: '>=1.0.0'} + peerDependencies: + typescript: '>3.6.0' + webpack: ^5.11.0 + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + chalk: registry.npmmirror.com/chalk@4.1.2 + chokidar: registry.npmmirror.com/chokidar@3.5.3 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + fs-extra: registry.npmmirror.com/fs-extra@10.1.0 + memfs: registry.npmmirror.com/memfs@3.5.3 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + node-abort-controller: registry.npmmirror.com/node-abort-controller@3.1.1 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + semver: registry.npmmirror.com/semver@7.5.4 + tapable: registry.npmmirror.com/tapable@2.2.1 + typescript: 5.3.2 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/format/-/format-0.2.2.tgz} + name: format + version: 0.2.2 + engines: {node: '>=0.4.x'} + dev: false + + registry.npmmirror.com/formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz} + name: formdata-polyfill + version: 4.0.10 + engines: {node: '>=12.20.0'} + dependencies: + fetch-blob: registry.npmmirror.com/fetch-blob@3.2.0 + dev: false + + registry.npmmirror.com/fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz} + name: fraction.js + version: 4.3.7 + dev: false + + registry.npmmirror.com/from2@2.3.0: + resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz} + name: from2 + version: 2.3.0 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz} + name: fs-constants + version: 1.0.0 + dev: false + + registry.npmmirror.com/fs-exists-sync@0.1.0: + resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz} + name: fs-exists-sync + version: 0.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz} + name: fs-extra + version: 10.1.0 + engines: {node: '>=12'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: registry.npmmirror.com/jsonfile@6.1.0 + universalify: registry.npmmirror.com/universalify@2.0.1 + dev: false + + registry.npmmirror.com/fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-11.1.1.tgz} + name: fs-extra + version: 11.1.1 + engines: {node: '>=14.14'} + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: registry.npmmirror.com/jsonfile@6.1.0 + universalify: registry.npmmirror.com/universalify@2.0.1 + dev: false + + registry.npmmirror.com/fs-extra@3.0.1: + resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-3.0.1.tgz} + name: fs-extra + version: 3.0.1 + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jsonfile: registry.npmmirror.com/jsonfile@3.0.1 + universalify: registry.npmmirror.com/universalify@0.1.2 + dev: false + + registry.npmmirror.com/fs-monkey@1.0.5: + resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.5.tgz} + name: fs-monkey + version: 1.0.5 + dev: false + + registry.npmmirror.com/fs-write-stream-atomic@1.0.10: + resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz} + name: fs-write-stream-atomic + version: 1.0.10 + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + iferr: registry.npmmirror.com/iferr@0.1.5 + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} + name: fs.realpath + version: 1.0.0 + dev: false + + registry.npmmirror.com/fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz} + name: fsevents + version: 2.3.3 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz} + name: function-bind + version: 1.1.2 + dev: false + + registry.npmmirror.com/function.prototype.name@1.1.6: + resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz} + name: function.prototype.name + version: 1.1.6 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + dev: false + + registry.npmmirror.com/functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} + name: functions-have-names + version: 1.2.3 + dev: false + + registry.npmmirror.com/gbeata@1.2.5(@types/react@18.2.38)(antd-style@3.6.1)(antd@5.11.4)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-mnRtFtUJbWrlSYD1wEbnaBgTTi/gmooJiLIvYWxFcKl0sPPAjOcSADWNa0LJm497Ob0aqhyYHYEKwgpFGdeZ3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gbeata/-/gbeata-1.2.5.tgz} + id: registry.npmmirror.com/gbeata/1.2.5 + name: gbeata + version: 1.2.5 + peerDependencies: + antd: ^5.12.1 + antd-style: ^3.6.1 + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@minko-fe/use-antd-resizable-header': registry.npmmirror.com/@minko-fe/use-antd-resizable-header@2.9.0(react-dom@18.2.0)(react@18.2.0) + antd: 5.11.4(react-dom@18.2.0)(react@18.2.0) + antd-style: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.38)(antd@5.11.4)(react-dom@18.2.0)(react@18.2.0) + dayjs: registry.npmmirror.com/dayjs@1.11.10 + dumi-theme-antd-style: registry.npmmirror.com/dumi-theme-antd-style@0.29.7(@types/react@18.2.38)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@types/react' + - date-fns + - dumi + - immer + - luxon + - moment + dev: false + + registry.npmmirror.com/genfun@4.0.1: + resolution: {integrity: sha512-48yv1eDS5Qrz6cbSDBBik0u7jCgC/eA9eZrl9MIN1LfKzFTuGt6EHgr31YM8yT9cjb5BplXb4Iz3VtOYmgt8Jg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/genfun/-/genfun-4.0.1.tgz} + name: genfun + version: 4.0.1 + dev: false + + registry.npmmirror.com/gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} + name: gensync + version: 1.0.0-beta.2 + engines: {node: '>=6.9.0'} + dev: false + + registry.npmmirror.com/get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz} + name: get-caller-file + version: 2.0.5 + engines: {node: 6.* || 8.* || >= 10.*} + dev: false + + registry.npmmirror.com/get-intrinsic@1.2.2: + resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz} + name: get-intrinsic + version: 1.2.2 + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz} + name: get-package-type + version: 0.1.0 + engines: {node: '>=8.0.0'} + dev: false + + registry.npmmirror.com/get-stream@3.0.0: + resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz} + name: get-stream + version: 3.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz} + name: get-stream + version: 6.0.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz} + name: get-symbol-description + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/get-tsconfig@4.7.2: + resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz} + name: get-tsconfig + version: 4.7.2 + dependencies: + resolve-pkg-maps: registry.npmmirror.com/resolve-pkg-maps@1.0.0 + dev: false + + registry.npmmirror.com/get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz} + name: get-value + version: 2.0.6 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/git-branch@1.0.0: + resolution: {integrity: sha512-ZTzuqw5Df8fyLXQWrX6hK+4FpNCdKzMcERlxENEGO5aKcLmG7MAszhrMhluUKNKmOS/JAGijDMQDXDCDw1mE/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-branch/-/git-branch-1.0.0.tgz} + name: git-branch + version: 1.0.0 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/git-config-path@1.0.1: + resolution: {integrity: sha512-KcJ2dlrrP5DbBnYIZ2nlikALfRhKzNSX0stvv3ImJ+fvC4hXKoV+U+74SV0upg+jlQZbrtQzc0bu6/Zh+7aQbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-config-path/-/git-config-path-1.0.1.tgz} + name: git-config-path + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + fs-exists-sync: registry.npmmirror.com/fs-exists-sync@0.1.0 + homedir-polyfill: registry.npmmirror.com/homedir-polyfill@1.0.3 + dev: false + + registry.npmmirror.com/git-hooks-list@3.1.0: + resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-hooks-list/-/git-hooks-list-3.1.0.tgz} + name: git-hooks-list + version: 3.1.0 + dev: false + + registry.npmmirror.com/git-repo-name@0.6.0: + resolution: {integrity: sha512-DF4XxB6H+Te79JA08/QF/IjIv+j+0gF990WlgAX3SXXU2irfqvBc/xxlAIh6eJWYaKz45MrrGVBFS0Qc4bBz5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-repo-name/-/git-repo-name-0.6.0.tgz} + name: git-repo-name + version: 0.6.0 + engines: {node: '>=0.8'} + dependencies: + cwd: registry.npmmirror.com/cwd@0.9.1 + file-name: registry.npmmirror.com/file-name@0.1.0 + lazy-cache: registry.npmmirror.com/lazy-cache@1.0.4 + remote-origin-url: registry.npmmirror.com/remote-origin-url@0.5.3 + dev: false + + registry.npmmirror.com/git-username@0.5.1: + resolution: {integrity: sha512-xjUjrj3i4kup2A3a/ZVZB1Nt0PUX7SU7KeVqIbXPdslT7NbNfyO04JMxBv4gar77JePdS+A6f05jG1Viy6+U1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-username/-/git-username-0.5.1.tgz} + name: git-username + version: 0.5.1 + engines: {node: '>=0.8'} + dependencies: + remote-origin-url: registry.npmmirror.com/remote-origin-url@0.4.0 + dev: false + + registry.npmmirror.com/github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/github-slugger/-/github-slugger-1.5.0.tgz} + name: github-slugger + version: 1.5.0 + dev: false + + registry.npmmirror.com/glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} + name: glob-parent + version: 5.1.2 + engines: {node: '>= 6'} + dependencies: + is-glob: registry.npmmirror.com/is-glob@4.0.3 + dev: false + + registry.npmmirror.com/glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} + name: glob-to-regexp + version: 0.4.1 + dev: false + + registry.npmmirror.com/glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} + name: glob + version: 7.2.3 + dependencies: + fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 + inflight: registry.npmmirror.com/inflight@1.0.6 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + once: registry.npmmirror.com/once@1.4.0 + path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 + dev: false + + registry.npmmirror.com/global-dirs@0.1.1: + resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz} + name: global-dirs + version: 0.1.1 + engines: {node: '>=4'} + dependencies: + ini: registry.npmmirror.com/ini@1.3.8 + dev: false + + registry.npmmirror.com/global-modules@0.2.3: + resolution: {integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-modules/-/global-modules-0.2.3.tgz} + name: global-modules + version: 0.2.3 + engines: {node: '>=0.10.0'} + dependencies: + global-prefix: registry.npmmirror.com/global-prefix@0.1.5 + is-windows: registry.npmmirror.com/is-windows@0.2.0 + dev: false + + registry.npmmirror.com/global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-modules/-/global-modules-2.0.0.tgz} + name: global-modules + version: 2.0.0 + engines: {node: '>=6'} + dependencies: + global-prefix: registry.npmmirror.com/global-prefix@3.0.0 + dev: false + + registry.npmmirror.com/global-prefix@0.1.5: + resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-0.1.5.tgz} + name: global-prefix + version: 0.1.5 + engines: {node: '>=0.10.0'} + dependencies: + homedir-polyfill: registry.npmmirror.com/homedir-polyfill@1.0.3 + ini: registry.npmmirror.com/ini@1.3.8 + is-windows: registry.npmmirror.com/is-windows@0.2.0 + which: registry.npmmirror.com/which@1.3.1 + dev: false + + registry.npmmirror.com/global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz} + name: global-prefix + version: 3.0.0 + engines: {node: '>=6'} + dependencies: + ini: registry.npmmirror.com/ini@1.3.8 + kind-of: registry.npmmirror.com/kind-of@6.0.3 + which: registry.npmmirror.com/which@1.3.1 + dev: false + + registry.npmmirror.com/globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} + name: globals + version: 11.12.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz} + name: globalthis + version: 1.0.3 + engines: {node: '>= 0.4'} + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + dev: false + + registry.npmmirror.com/globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} + name: globby + version: 11.1.0 + engines: {node: '>=10'} + dependencies: + array-union: registry.npmmirror.com/array-union@2.1.0 + dir-glob: registry.npmmirror.com/dir-glob@3.0.1 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + ignore: registry.npmmirror.com/ignore@5.3.0 + merge2: registry.npmmirror.com/merge2@1.4.1 + slash: registry.npmmirror.com/slash@3.0.0 + dev: false + + registry.npmmirror.com/globby@13.2.2: + resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globby/-/globby-13.2.2.tgz} + name: globby + version: 13.2.2 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: registry.npmmirror.com/dir-glob@3.0.1 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + ignore: registry.npmmirror.com/ignore@5.3.0 + merge2: registry.npmmirror.com/merge2@1.4.1 + slash: registry.npmmirror.com/slash@4.0.0 + dev: false + + registry.npmmirror.com/globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globjoin/-/globjoin-0.1.4.tgz} + name: globjoin + version: 0.1.4 + dev: false + + registry.npmmirror.com/gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} + name: gopd + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/got@6.7.1: + resolution: {integrity: sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/got/-/got-6.7.1.tgz} + name: got + version: 6.7.1 + engines: {node: '>=4'} + dependencies: + '@types/keyv': registry.npmmirror.com/@types/keyv@3.1.4 + '@types/responselike': registry.npmmirror.com/@types/responselike@1.0.3 + create-error-class: registry.npmmirror.com/create-error-class@3.0.2 + duplexer3: registry.npmmirror.com/duplexer3@0.1.5 + get-stream: registry.npmmirror.com/get-stream@3.0.0 + is-redirect: registry.npmmirror.com/is-redirect@1.0.0 + is-retry-allowed: registry.npmmirror.com/is-retry-allowed@1.2.0 + is-stream: registry.npmmirror.com/is-stream@1.1.0 + lowercase-keys: registry.npmmirror.com/lowercase-keys@1.0.1 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + timed-out: registry.npmmirror.com/timed-out@4.0.1 + unzip-response: registry.npmmirror.com/unzip-response@2.0.1 + url-parse-lax: registry.npmmirror.com/url-parse-lax@1.0.0 + dev: false + + registry.npmmirror.com/graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} + name: graceful-fs + version: 4.2.11 + + registry.npmmirror.com/graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz} + name: graphemer + version: 1.4.0 + dev: false + + registry.npmmirror.com/handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz} + name: handle-thing + version: 2.0.1 + dev: false + + registry.npmmirror.com/hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hard-rejection/-/hard-rejection-2.1.0.tgz} + name: hard-rejection + version: 2.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/harmony-reflect@1.6.2: + resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz} + name: harmony-reflect + version: 1.6.2 + dev: false + + registry.npmmirror.com/has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} + name: has-bigints + version: 1.0.2 + dev: false + + registry.npmmirror.com/has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} + name: has-flag + version: 3.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/has-property-descriptors@1.0.1: + resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz} + name: has-property-descriptors + version: 1.0.1 + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz} + name: has-proto + version: 1.0.1 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} + name: has-symbols + version: 1.0.3 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} + name: has-tostringtag + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: false + + registry.npmmirror.com/has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz} + name: has-value + version: 0.3.1 + engines: {node: '>=0.10.0'} + dependencies: + get-value: registry.npmmirror.com/get-value@2.0.6 + has-values: registry.npmmirror.com/has-values@0.1.4 + isobject: registry.npmmirror.com/isobject@2.1.0 + dev: false + + registry.npmmirror.com/has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz} + name: has-values + version: 0.1.4 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hash-base/-/hash-base-3.1.0.tgz} + name: hash-base + version: 3.1.0 + engines: {node: '>=4'} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz} + name: hash.js + version: 1.1.7 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + dev: false + + registry.npmmirror.com/hasown@2.0.0: + resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz} + name: hasown + version: 2.0.0 + engines: {node: '>= 0.4'} + dependencies: + function-bind: registry.npmmirror.com/function-bind@1.1.2 + dev: false + + registry.npmmirror.com/hast-util-from-parse5@7.1.2: + resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz} + name: hast-util-from-parse5 + version: 7.1.2 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + hastscript: registry.npmmirror.com/hastscript@7.2.0 + property-information: registry.npmmirror.com/property-information@6.4.0 + vfile: registry.npmmirror.com/vfile@5.3.7 + vfile-location: registry.npmmirror.com/vfile-location@4.1.0 + web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 + dev: false + + registry.npmmirror.com/hast-util-has-property@2.0.1: + resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-has-property/-/hast-util-has-property-2.0.1.tgz} + name: hast-util-has-property + version: 2.0.1 + dev: false + + registry.npmmirror.com/hast-util-heading-rank@2.1.1: + resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-heading-rank/-/hast-util-heading-rank-2.1.1.tgz} + name: hast-util-heading-rank + version: 2.1.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + dev: false + + registry.npmmirror.com/hast-util-is-conditional-comment@2.0.0: + resolution: {integrity: sha512-U66gW8ZWQdxP4ZjTEZ3xZT72y6rIKJqV4At5QmC1ItBbQyZyVkuTp8QkQwhxsbkHdzpifiZdQWrDipc9ByqhRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-is-conditional-comment/-/hast-util-is-conditional-comment-2.0.0.tgz} + name: hast-util-is-conditional-comment + version: 2.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + dev: false + + registry.npmmirror.com/hast-util-is-element@2.1.3: + resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz} + name: hast-util-is-element + version: 2.1.3 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/hast-util-parse-selector@2.2.5: + resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz} + name: hast-util-parse-selector + version: 2.2.5 + dev: false + + registry.npmmirror.com/hast-util-parse-selector@3.1.1: + resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz} + name: hast-util-parse-selector + version: 3.1.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + dev: false + + registry.npmmirror.com/hast-util-raw@7.2.3: + resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-7.2.3.tgz} + name: hast-util-raw + version: 7.2.3 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/parse5': registry.npmmirror.com/@types/parse5@6.0.3 + hast-util-from-parse5: registry.npmmirror.com/hast-util-from-parse5@7.1.2 + hast-util-to-parse5: registry.npmmirror.com/hast-util-to-parse5@7.1.0 + html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 + parse5: registry.npmmirror.com/parse5@6.0.1 + unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + vfile: registry.npmmirror.com/vfile@5.3.7 + web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/hast-util-raw@8.0.0: + resolution: {integrity: sha512-bKbaUxMNLjZMMowgcrc4l3aQSPiMLiceZD+mp+AKF8Si0mtyR2DYVdxzS2XBxXYDeW/VvfZy40lNxHRiY6MMTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-8.0.0.tgz} + name: hast-util-raw + version: 8.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + extend: registry.npmmirror.com/extend@3.0.2 + hast-util-from-parse5: registry.npmmirror.com/hast-util-from-parse5@7.1.2 + hast-util-to-parse5: registry.npmmirror.com/hast-util-to-parse5@7.1.0 + html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 + mdast-util-to-hast: registry.npmmirror.com/mdast-util-to-hast@12.3.0 + parse5: registry.npmmirror.com/parse5@7.1.2 + unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + vfile: registry.npmmirror.com/vfile@5.3.7 + web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/hast-util-to-estree@2.3.3: + resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz} + name: hast-util-to-estree + version: 2.3.3 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + estree-util-attach-comments: registry.npmmirror.com/estree-util-attach-comments@2.1.1 + estree-util-is-identifier-name: registry.npmmirror.com/estree-util-is-identifier-name@2.1.0 + hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace@2.0.1 + mdast-util-mdx-expression: registry.npmmirror.com/mdast-util-mdx-expression@1.3.2 + mdast-util-mdxjs-esm: registry.npmmirror.com/mdast-util-mdxjs-esm@1.3.1 + property-information: registry.npmmirror.com/property-information@6.4.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + style-to-object: registry.npmmirror.com/style-to-object@0.4.4 + unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/hast-util-to-html@8.0.4: + resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz} + name: hast-util-to-html + version: 8.0.4 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + ccount: registry.npmmirror.com/ccount@2.0.1 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + hast-util-raw: registry.npmmirror.com/hast-util-raw@7.2.3 + hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace@2.0.1 + html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 + property-information: registry.npmmirror.com/property-information@6.4.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + stringify-entities: registry.npmmirror.com/stringify-entities@4.0.3 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/hast-util-to-parse5@7.1.0: + resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz} + name: hast-util-to-parse5 + version: 7.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + property-information: registry.npmmirror.com/property-information@6.4.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/hast-util-to-string@2.0.0: + resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-string/-/hast-util-to-string-2.0.0.tgz} + name: hast-util-to-string + version: 2.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + dev: false + + registry.npmmirror.com/hast-util-whitespace@2.0.1: + resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz} + name: hast-util-whitespace + version: 2.0.1 + dev: false + + registry.npmmirror.com/hastscript@6.0.0: + resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hastscript/-/hastscript-6.0.0.tgz} + name: hastscript + version: 6.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@1.0.8 + hast-util-parse-selector: registry.npmmirror.com/hast-util-parse-selector@2.2.5 + property-information: registry.npmmirror.com/property-information@5.6.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@1.1.5 + dev: false + + registry.npmmirror.com/hastscript@7.2.0: + resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hastscript/-/hastscript-7.2.0.tgz} + name: hastscript + version: 7.2.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + hast-util-parse-selector: registry.npmmirror.com/hast-util-parse-selector@3.1.1 + property-information: registry.npmmirror.com/property-information@6.4.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + dev: false + + registry.npmmirror.com/he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/he/-/he-1.2.0.tgz} + name: he + version: 1.2.0 + hasBin: true + dev: false + + registry.npmmirror.com/heti-findandreplacedomtext@0.5.0: + resolution: {integrity: sha512-GFZjqU8LAdu1uR72GqrReI+lzNLMlcWtvdz1TKNJiofyo1mfTecFYSZEoEbcLcRMl+KwEldnNQoS4BwO8wtg0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/heti-findandreplacedomtext/-/heti-findandreplacedomtext-0.5.0.tgz} + name: heti-findandreplacedomtext + version: 0.5.0 + dev: false + + registry.npmmirror.com/heti@0.9.4: + resolution: {integrity: sha512-DI1A/R6VabM8wulXrGVbeHZNZ8jJUm+Pwn+PEYZcNBxAO+4mXWPEX+Xu9R/YrHETGcevNrLO34m/99ZCnFnlhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/heti/-/heti-0.9.4.tgz} + name: heti + version: 0.9.4 + dependencies: + heti-findandreplacedomtext: registry.npmmirror.com/heti-findandreplacedomtext@0.5.0 + dev: false + + registry.npmmirror.com/highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz} + name: highlight.js + version: 10.7.3 + dev: false + + registry.npmmirror.com/history@5.3.0: + resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/history/-/history-5.3.0.tgz} + name: history + version: 5.3.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + registry.npmmirror.com/hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz} + name: hmac-drbg + version: 1.0.1 + dependencies: + hash.js: registry.npmmirror.com/hash.js@1.1.7 + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + minimalistic-crypto-utils: registry.npmmirror.com/minimalistic-crypto-utils@1.0.1 + dev: false + + registry.npmmirror.com/hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz} + name: hoist-non-react-statics + version: 3.3.2 + dependencies: + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + + registry.npmmirror.com/homedir-polyfill@1.0.3: + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz} + name: homedir-polyfill + version: 1.0.3 + engines: {node: '>=0.10.0'} + dependencies: + parse-passwd: registry.npmmirror.com/parse-passwd@1.0.0 + dev: false + + registry.npmmirror.com/hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz} + name: hosted-git-info + version: 2.8.9 + dev: false + + registry.npmmirror.com/hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz} + name: hosted-git-info + version: 4.1.0 + engines: {node: '>=10'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: false + + registry.npmmirror.com/hosted-git-info@6.1.1: + resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz} + name: hosted-git-info + version: 6.1.1 + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@7.18.3 + dev: false + + registry.npmmirror.com/hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz} + name: hpack.js + version: 2.1.6 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + obuf: registry.npmmirror.com/obuf@1.1.2 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + wbuf: registry.npmmirror.com/wbuf@1.7.3 + dev: false + + registry.npmmirror.com/htm@3.1.1: + resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htm/-/htm-3.1.1.tgz} + name: htm + version: 3.1.1 + dev: false + + registry.npmmirror.com/html-entities@2.4.0: + resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-entities/-/html-entities-2.4.0.tgz} + name: html-entities + version: 2.4.0 + dev: false + + registry.npmmirror.com/html-minifier-terser@6.1.0: + resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz} + name: html-minifier-terser + version: 6.1.0 + engines: {node: '>=12'} + hasBin: true + dependencies: + camel-case: registry.npmmirror.com/camel-case@4.1.2 + clean-css: registry.npmmirror.com/clean-css@5.3.3 + commander: registry.npmmirror.com/commander@8.3.0 + he: registry.npmmirror.com/he@1.2.0 + param-case: registry.npmmirror.com/param-case@3.0.4 + relateurl: registry.npmmirror.com/relateurl@0.2.7 + terser: registry.npmmirror.com/terser@5.24.0 + dev: false + + registry.npmmirror.com/html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz} + name: html-tags + version: 3.3.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-to-text/-/html-to-text-9.0.5.tgz} + name: html-to-text + version: 9.0.5 + engines: {node: '>=14'} + dependencies: + '@selderee/plugin-htmlparser2': registry.npmmirror.com/@selderee/plugin-htmlparser2@0.11.0 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + dom-serializer: registry.npmmirror.com/dom-serializer@2.0.0 + htmlparser2: registry.npmmirror.com/htmlparser2@8.0.2 + selderee: registry.npmmirror.com/selderee@0.11.0 + dev: false + + registry.npmmirror.com/html-tokenize@2.0.1: + resolution: {integrity: sha512-QY6S+hZ0f5m1WT8WffYN+Hg+xm/w5I8XeUcAq/ZYP5wVC8xbKi4Whhru3FtrAebD5EhBW8rmFzkDI6eCAuFe2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-tokenize/-/html-tokenize-2.0.1.tgz} + name: html-tokenize + version: 2.0.1 + hasBin: true + dependencies: + buffer-from: registry.npmmirror.com/buffer-from@0.1.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + minimist: registry.npmmirror.com/minimist@1.2.8 + readable-stream: registry.npmmirror.com/readable-stream@1.0.34 + through2: registry.npmmirror.com/through2@0.4.2 + dev: false + + registry.npmmirror.com/html-void-elements@2.0.1: + resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz} + name: html-void-elements + version: 2.0.1 + dev: false + + registry.npmmirror.com/html-webpack-plugin@5.5.0(webpack@5.89.0): + resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz} + id: registry.npmmirror.com/html-webpack-plugin/5.5.0 + name: html-webpack-plugin + version: 5.5.0 + engines: {node: '>=10.13.0'} + peerDependencies: + webpack: ^5.20.0 + dependencies: + '@types/html-minifier-terser': registry.npmmirror.com/@types/html-minifier-terser@6.1.0 + html-minifier-terser: registry.npmmirror.com/html-minifier-terser@6.1.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + pretty-error: registry.npmmirror.com/pretty-error@4.0.0 + tapable: registry.npmmirror.com/tapable@2.2.1 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/html2sketch@1.0.2: + resolution: {integrity: sha512-/P9NcVH9yBhrOkcnaFkAbWJifDO8Ii+CTIxy9gE6trSQvo2OH++TKQIP5MICEoWvgXpVhZ6botj7P63Krl1/gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html2sketch/-/html2sketch-1.0.2.tgz} + name: html2sketch + version: 1.0.2 + engines: {node: '>=14.0.0'} + dependencies: + '@sketch-hq/sketch-file-format-ts': registry.npmmirror.com/@sketch-hq/sketch-file-format-ts@6.5.0 + color: registry.npmmirror.com/color@3.2.1 + css: registry.npmmirror.com/css@3.0.0 + svg-pathdata: registry.npmmirror.com/svg-pathdata@5.0.5 + svgo-browser: registry.npmmirror.com/svgo-browser@1.3.8 + svgson: registry.npmmirror.com/svgson@4.1.0 + transformation-matrix: registry.npmmirror.com/transformation-matrix@2.15.0 + uuid: registry.npmmirror.com/uuid@8.3.2 + dev: false + + registry.npmmirror.com/htmlparser2@6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz} + name: htmlparser2 + version: 6.1.0 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@4.3.1 + domutils: registry.npmmirror.com/domutils@2.8.0 + entities: registry.npmmirror.com/entities@2.2.0 + dev: false + + registry.npmmirror.com/htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz} + name: htmlparser2 + version: 8.0.2 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@2.3.0 + domhandler: registry.npmmirror.com/domhandler@5.0.3 + domutils: registry.npmmirror.com/domutils@3.1.0 + entities: registry.npmmirror.com/entities@4.5.0 + dev: false + + registry.npmmirror.com/http-cache-semantics@3.8.1: + resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz} + name: http-cache-semantics + version: 3.8.1 + dev: false + + registry.npmmirror.com/http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz} + name: http-deceiver + version: 1.2.7 + dev: false + + registry.npmmirror.com/http-proxy-agent@2.1.0: + resolution: {integrity: sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz} + name: http-proxy-agent + version: 2.1.0 + engines: {node: '>= 4.5.0'} + dependencies: + agent-base: registry.npmmirror.com/agent-base@4.3.0 + debug: registry.npmmirror.com/debug@3.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/https-browserify@1.0.0: + resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/https-browserify/-/https-browserify-1.0.0.tgz} + name: https-browserify + version: 1.0.0 + dev: false + + registry.npmmirror.com/https-proxy-agent@2.2.4: + resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz} + name: https-proxy-agent + version: 2.2.4 + engines: {node: '>= 4.5.0'} + dependencies: + agent-base: registry.npmmirror.com/agent-base@4.3.0 + debug: registry.npmmirror.com/debug@3.2.7 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz} + name: human-signals + version: 2.1.0 + engines: {node: '>=10.17.0'} + dev: false + + registry.npmmirror.com/human-signals@4.3.1: + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz} + name: human-signals + version: 4.3.1 + engines: {node: '>=14.18.0'} + dev: false + + registry.npmmirror.com/humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz} + name: humanize-ms + version: 1.2.1 + dependencies: + ms: registry.npmmirror.com/ms@2.1.3 + dev: false + + registry.npmmirror.com/humps@2.0.1: + resolution: {integrity: sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/humps/-/humps-2.0.1.tgz} + name: humps + version: 2.0.1 + dev: false + + registry.npmmirror.com/iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz} + name: iconv-lite + version: 0.4.24 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 + dev: false + + registry.npmmirror.com/iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz} + name: iconv-lite + version: 0.6.3 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 + dev: false + + registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31): + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz} + id: registry.npmmirror.com/icss-utils/5.1.0 + name: icss-utils + version: 5.1.0 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/identity-obj-proxy@3.0.0: + resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz} + name: identity-obj-proxy + version: 3.0.0 + engines: {node: '>=4'} + dependencies: + harmony-reflect: registry.npmmirror.com/harmony-reflect@1.6.2 + dev: false + + registry.npmmirror.com/ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz} + name: ieee754 + version: 1.2.1 + dev: false + + registry.npmmirror.com/iferr@0.1.5: + resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iferr/-/iferr-0.1.5.tgz} + name: iferr + version: 0.1.5 + dev: false + + registry.npmmirror.com/ignore@5.3.0: + resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ignore/-/ignore-5.3.0.tgz} + name: ignore + version: 5.3.0 + engines: {node: '>= 4'} + dev: false + + registry.npmmirror.com/image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz} + name: image-size + version: 0.5.5 + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + optional: true + + registry.npmmirror.com/image-size@0.8.3: + resolution: {integrity: sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.8.3.tgz} + name: image-size + version: 0.8.3 + engines: {node: '>=6.9.0'} + hasBin: true + dependencies: + queue: registry.npmmirror.com/queue@6.0.1 + dev: false + + registry.npmmirror.com/immutable@4.3.4: + resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz} + name: immutable + version: 4.3.4 + dev: false + + registry.npmmirror.com/import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz} + name: import-fresh + version: 3.3.0 + engines: {node: '>=6'} + dependencies: + parent-module: registry.npmmirror.com/parent-module@1.0.1 + resolve-from: registry.npmmirror.com/resolve-from@4.0.0 + dev: false + + registry.npmmirror.com/import-lazy@2.1.0: + resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-lazy/-/import-lazy-2.1.0.tgz} + name: import-lazy + version: 2.1.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-lazy/-/import-lazy-4.0.0.tgz} + name: import-lazy + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz} + name: imurmurhash + version: 0.1.4 + engines: {node: '>=0.8.19'} + dev: false + + registry.npmmirror.com/indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz} + name: indent-string + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} + name: inflight + version: 1.0.6 + dependencies: + once: registry.npmmirror.com/once@1.4.0 + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: false + + registry.npmmirror.com/inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz} + name: inherits + version: 2.0.3 + dev: false + + registry.npmmirror.com/inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} + name: inherits + version: 2.0.4 + dev: false + + registry.npmmirror.com/ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz} + name: ini + version: 1.3.8 + dev: false + + registry.npmmirror.com/inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz} + name: inline-style-parser + version: 0.1.1 + dev: false + + registry.npmmirror.com/inquirer@6.5.2: + resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inquirer/-/inquirer-6.5.2.tgz} + name: inquirer + version: 6.5.2 + engines: {node: '>=6.0.0'} + dependencies: + ansi-escapes: registry.npmmirror.com/ansi-escapes@3.2.0 + chalk: registry.npmmirror.com/chalk@2.4.2 + cli-cursor: registry.npmmirror.com/cli-cursor@2.1.0 + cli-width: registry.npmmirror.com/cli-width@2.2.1 + external-editor: registry.npmmirror.com/external-editor@3.1.0 + figures: registry.npmmirror.com/figures@2.0.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + mute-stream: registry.npmmirror.com/mute-stream@0.0.7 + run-async: registry.npmmirror.com/run-async@2.4.1 + rxjs: registry.npmmirror.com/rxjs@6.6.7 + string-width: registry.npmmirror.com/string-width@2.1.1 + strip-ansi: registry.npmmirror.com/strip-ansi@5.2.0 + through: registry.npmmirror.com/through@2.3.8 + dev: false + + registry.npmmirror.com/internal-slot@1.0.6: + resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.6.tgz} + name: internal-slot + version: 1.0.6 + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + hasown: registry.npmmirror.com/hasown@2.0.0 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: false + + registry.npmmirror.com/intersection-observer@0.12.2: + resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/intersection-observer/-/intersection-observer-0.12.2.tgz} + name: intersection-observer + version: 0.12.2 + dev: false + + registry.npmmirror.com/intl-messageformat@10.5.8: + resolution: {integrity: sha512-NRf0jpBWV0vd671G5b06wNofAN8tp7WWDogMZyaU8GUAsmbouyvgwmFJI7zLjfAMpm3zK+vSwRP3jzaoIcMbaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/intl-messageformat/-/intl-messageformat-10.5.8.tgz} + name: intl-messageformat + version: 10.5.8 + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/fast-memoize': registry.npmmirror.com/@formatjs/fast-memoize@2.2.0 + '@formatjs/icu-messageformat-parser': registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/invariant@2.2.4: + resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz} + name: invariant + version: 2.2.4 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + dev: false + + registry.npmmirror.com/ip@1.1.8: + resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ip/-/ip-1.1.8.tgz} + name: ip + version: 1.1.8 + dev: false + + registry.npmmirror.com/is-alphabetical@1.0.4: + resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz} + name: is-alphabetical + version: 1.0.4 + dev: false + + registry.npmmirror.com/is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz} + name: is-alphabetical + version: 2.0.1 + dev: false + + registry.npmmirror.com/is-alphanumerical@1.0.4: + resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz} + name: is-alphanumerical + version: 1.0.4 + dependencies: + is-alphabetical: registry.npmmirror.com/is-alphabetical@1.0.4 + is-decimal: registry.npmmirror.com/is-decimal@1.0.4 + dev: false + + registry.npmmirror.com/is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz} + name: is-alphanumerical + version: 2.0.1 + dependencies: + is-alphabetical: registry.npmmirror.com/is-alphabetical@2.0.1 + is-decimal: registry.npmmirror.com/is-decimal@2.0.1 + dev: false + + registry.npmmirror.com/is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz} + name: is-arguments + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz} + name: is-array-buffer + version: 3.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} + name: is-arrayish + version: 0.2.1 + dev: false + + registry.npmmirror.com/is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz} + name: is-arrayish + version: 0.3.2 + dev: false + + registry.npmmirror.com/is-arrow-function@2.0.3: + resolution: {integrity: sha512-iDStzcT1FJMzx+TjCOK//uDugSe/Mif/8a+T0htydQ3qkJGvSweTZpVYz4hpJH0baloSPiAFQdA8WslAgJphvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrow-function/-/is-arrow-function-2.0.3.tgz} + name: is-arrow-function + version: 2.0.3 + engines: {node: '>= 0.4'} + dependencies: + is-callable: registry.npmmirror.com/is-callable@1.2.7 + dev: false + + registry.npmmirror.com/is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-async-function/-/is-async-function-2.0.0.tgz} + name: is-async-function + version: 2.0.0 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz} + name: is-bigint + version: 1.0.4 + dependencies: + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + dev: false + + registry.npmmirror.com/is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} + name: is-binary-path + version: 2.1.0 + engines: {node: '>=8'} + dependencies: + binary-extensions: registry.npmmirror.com/binary-extensions@2.2.0 + dev: false + + registry.npmmirror.com/is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz} + name: is-boolean-object + version: 1.1.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz} + name: is-buffer + version: 1.1.6 + dev: false + + registry.npmmirror.com/is-buffer@2.0.5: + resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz} + name: is-buffer + version: 2.0.5 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} + name: is-callable + version: 1.2.7 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/is-ci@1.2.1: + resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz} + name: is-ci + version: 1.2.1 + hasBin: true + dependencies: + ci-info: registry.npmmirror.com/ci-info@1.6.0 + dev: false + + registry.npmmirror.com/is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz} + name: is-core-module + version: 2.13.1 + dependencies: + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: false + + registry.npmmirror.com/is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} + name: is-date-object + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-decimal@1.0.4: + resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz} + name: is-decimal + version: 1.0.4 + dev: false + + registry.npmmirror.com/is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-decimal/-/is-decimal-2.0.1.tgz} + name: is-decimal + version: 2.0.1 + dev: false + + registry.npmmirror.com/is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz} + name: is-docker + version: 2.2.1 + engines: {node: '>=8'} + hasBin: true + dev: false + + registry.npmmirror.com/is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz} + name: is-docker + version: 3.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: false + + registry.npmmirror.com/is-equal@1.7.0: + resolution: {integrity: sha512-hErktGR9jmoYXNWlbrwGjc8eHh09mbY6TWSTTFtnMcKaCuSMN8z+Ni5ma/8mkbVpe4CbB7V6kN1MkCg9bCx5bA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-equal/-/is-equal-1.7.0.tgz} + name: is-equal + version: 1.7.0 + engines: {node: '>= 0.4'} + dependencies: + es-get-iterator: registry.npmmirror.com/es-get-iterator@1.1.3 + es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + hasown: registry.npmmirror.com/hasown@2.0.0 + is-arrow-function: registry.npmmirror.com/is-arrow-function@2.0.3 + is-bigint: registry.npmmirror.com/is-bigint@1.0.4 + is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 + is-callable: registry.npmmirror.com/is-callable@1.2.7 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-generator-function: registry.npmmirror.com/is-generator-function@1.0.10 + is-number-object: registry.npmmirror.com/is-number-object@1.0.7 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + isarray: registry.npmmirror.com/isarray@2.0.5 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + object.entries: registry.npmmirror.com/object.entries@1.1.7 + object.getprototypeof: registry.npmmirror.com/object.getprototypeof@1.0.5 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + which-collection: registry.npmmirror.com/which-collection@1.0.1 + dev: false + + registry.npmmirror.com/is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz} + name: is-extendable + version: 0.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} + name: is-extglob + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-finalizationregistry@1.0.2: + resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz} + name: is-finalizationregistry + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: false + + registry.npmmirror.com/is-fullwidth-code-point@2.0.0: + resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz} + name: is-fullwidth-code-point + version: 2.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} + name: is-fullwidth-code-point + version: 3.0.0 + engines: {node: '>=8'} + + registry.npmmirror.com/is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz} + name: is-generator-function + version: 1.0.10 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} + name: is-glob + version: 4.0.3 + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: registry.npmmirror.com/is-extglob@2.1.1 + dev: false + + registry.npmmirror.com/is-hexadecimal@1.0.4: + resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz} + name: is-hexadecimal + version: 1.0.4 + dev: false + + registry.npmmirror.com/is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz} + name: is-hexadecimal + version: 2.0.1 + dev: false + + registry.npmmirror.com/is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz} + name: is-inside-container + version: 1.0.0 + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: registry.npmmirror.com/is-docker@3.0.0 + dev: false + + registry.npmmirror.com/is-installed-globally@0.1.0: + resolution: {integrity: sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz} + name: is-installed-globally + version: 0.1.0 + engines: {node: '>=4'} + dependencies: + global-dirs: registry.npmmirror.com/global-dirs@0.1.1 + is-path-inside: registry.npmmirror.com/is-path-inside@1.0.1 + dev: false + + registry.npmmirror.com/is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-map/-/is-map-2.0.2.tgz} + name: is-map + version: 2.0.2 + dev: false + + registry.npmmirror.com/is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} + name: is-negative-zero + version: 2.0.2 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/is-npm@1.0.0: + resolution: {integrity: sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-npm/-/is-npm-1.0.0.tgz} + name: is-npm + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz} + name: is-number-object + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} + name: is-number + version: 7.0.0 + engines: {node: '>=0.12.0'} + dev: false + + registry.npmmirror.com/is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-obj/-/is-obj-1.0.1.tgz} + name: is-obj + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-path-inside@1.0.1: + resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-path-inside/-/is-path-inside-1.0.1.tgz} + name: is-path-inside + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + path-is-inside: registry.npmmirror.com/path-is-inside@1.0.2 + dev: false + + registry.npmmirror.com/is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz} + name: is-plain-obj + version: 1.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz} + name: is-plain-obj + version: 4.1.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz} + name: is-plain-object + version: 2.0.4 + engines: {node: '>=0.10.0'} + dependencies: + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: false + + registry.npmmirror.com/is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz} + name: is-plain-object + version: 5.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-redirect@1.0.0: + resolution: {integrity: sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-redirect/-/is-redirect-1.0.0.tgz} + name: is-redirect + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} + name: is-regex + version: 1.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-retry-allowed@1.2.0: + resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz} + name: is-retry-allowed + version: 1.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-set/-/is-set-2.0.2.tgz} + name: is-set + version: 2.0.2 + dev: false + + registry.npmmirror.com/is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} + name: is-shared-array-buffer + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: false + + registry.npmmirror.com/is-stream@1.1.0: + resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz} + name: is-stream + version: 1.1.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz} + name: is-stream + version: 2.0.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz} + name: is-stream + version: 3.0.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + + registry.npmmirror.com/is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz} + name: is-string + version: 1.0.7 + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz} + name: is-symbol + version: 1.0.4 + engines: {node: '>= 0.4'} + dependencies: + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + dev: false + + registry.npmmirror.com/is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz} + name: is-typed-array + version: 1.1.12 + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 + dev: false + + registry.npmmirror.com/is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.1.tgz} + name: is-weakmap + version: 2.0.1 + dev: false + + registry.npmmirror.com/is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz} + name: is-weakref + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + dev: false + + registry.npmmirror.com/is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.2.tgz} + name: is-weakset + version: 2.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + + registry.npmmirror.com/is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz} + name: is-what + version: 3.14.1 + dev: false + + registry.npmmirror.com/is-windows@0.2.0: + resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-windows/-/is-windows-0.2.0.tgz} + name: is-windows + version: 0.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/is-wsl@1.1.0: + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz} + name: is-wsl + version: 1.1.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz} + name: is-wsl + version: 2.2.0 + engines: {node: '>=8'} + dependencies: + is-docker: registry.npmmirror.com/is-docker@2.2.1 + dev: false + + registry.npmmirror.com/isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz} + name: isarray + version: 0.0.1 + dev: false + + registry.npmmirror.com/isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz} + name: isarray + version: 1.0.0 + dev: false + + registry.npmmirror.com/isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz} + name: isarray + version: 2.0.5 + dev: false + + registry.npmmirror.com/isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} + name: isexe + version: 2.0.0 + dev: false + + registry.npmmirror.com/isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz} + name: isobject + version: 2.1.0 + engines: {node: '>=0.10.0'} + dependencies: + isarray: registry.npmmirror.com/isarray@1.0.0 + dev: false + + registry.npmmirror.com/isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz} + name: isobject + version: 3.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/isomorphic-unfetch@4.0.2: + resolution: {integrity: sha512-1Yd+CF/7al18/N2BDbsLBcp6RO3tucSW+jcLq24dqdX5MNbCNTw1z4BsGsp4zNmjr/Izm2cs/cEqZPp4kvWSCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isomorphic-unfetch/-/isomorphic-unfetch-4.0.2.tgz} + name: isomorphic-unfetch + version: 4.0.2 + dependencies: + node-fetch: registry.npmmirror.com/node-fetch@3.3.2 + unfetch: registry.npmmirror.com/unfetch@5.0.0 + dev: false + + registry.npmmirror.com/istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz} + name: istanbul-lib-coverage + version: 3.2.2 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz} + name: istanbul-lib-instrument + version: 5.2.1 + engines: {node: '>=8'} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 + '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 + '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema@0.1.3 + istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage@3.2.2 + semver: registry.npmmirror.com/semver@6.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/istextorbinary@2.6.0: + resolution: {integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istextorbinary/-/istextorbinary-2.6.0.tgz} + name: istextorbinary + version: 2.6.0 + engines: {node: '>=0.12'} + dependencies: + binaryextensions: registry.npmmirror.com/binaryextensions@2.3.0 + editions: registry.npmmirror.com/editions@2.3.1 + textextensions: registry.npmmirror.com/textextensions@2.6.0 + dev: false + + registry.npmmirror.com/iterator.prototype@1.1.2: + resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz} + name: iterator.prototype + version: 1.1.2 + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + reflect.getprototypeof: registry.npmmirror.com/reflect.getprototypeof@1.0.4 + set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + dev: false + + registry.npmmirror.com/jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz} + name: jest-haste-map + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 + '@types/graceful-fs': registry.npmmirror.com/@types/graceful-fs@4.1.9 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + anymatch: registry.npmmirror.com/anymatch@3.1.3 + fb-watchman: registry.npmmirror.com/fb-watchman@2.0.2 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + jest-regex-util: registry.npmmirror.com/jest-regex-util@29.6.3 + jest-util: registry.npmmirror.com/jest-util@29.7.0 + jest-worker: registry.npmmirror.com/jest-worker@29.7.0 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + walker: registry.npmmirror.com/walker@1.0.8 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz} + name: jest-regex-util + version: 29.6.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: false + + registry.npmmirror.com/jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-util/-/jest-util-29.7.0.tgz} + name: jest-util + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + chalk: registry.npmmirror.com/chalk@4.1.2 + ci-info: registry.npmmirror.com/ci-info@3.9.0 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + + registry.npmmirror.com/jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz} + name: jest-worker + version: 27.5.1 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + supports-color: registry.npmmirror.com/supports-color@8.1.1 + dev: false + + registry.npmmirror.com/jest-worker@29.4.3: + resolution: {integrity: sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-29.4.3.tgz} + name: jest-worker + version: 29.4.3 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + jest-util: registry.npmmirror.com/jest-util@29.7.0 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + supports-color: registry.npmmirror.com/supports-color@8.1.1 + dev: false + + registry.npmmirror.com/jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-29.7.0.tgz} + name: jest-worker + version: 29.7.0 + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.0 + jest-util: registry.npmmirror.com/jest-util@29.7.0 + merge-stream: registry.npmmirror.com/merge-stream@2.0.0 + supports-color: registry.npmmirror.com/supports-color@8.1.1 + dev: false + + registry.npmmirror.com/js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz} + name: js-cookie + version: 2.2.1 + dev: false + + registry.npmmirror.com/js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + dev: false + + registry.npmmirror.com/js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz} + name: js-yaml + version: 3.14.1 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse@1.0.10 + esprima: registry.npmmirror.com/esprima@4.0.1 + dev: false + + registry.npmmirror.com/js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} + name: js-yaml + version: 4.1.0 + hasBin: true + dependencies: + argparse: registry.npmmirror.com/argparse@2.0.1 + dev: false + + registry.npmmirror.com/jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz} + name: jsesc + version: 2.5.2 + engines: {node: '>=4'} + hasBin: true + dev: false + + registry.npmmirror.com/json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz} + name: json-buffer + version: 3.0.1 + dev: false + + registry.npmmirror.com/json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz} + name: json-parse-better-errors + version: 1.0.2 + dev: false + + registry.npmmirror.com/json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} + name: json-parse-even-better-errors + version: 2.3.1 + dev: false + + registry.npmmirror.com/json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} + name: json-schema-traverse + version: 0.4.1 + dev: false + + registry.npmmirror.com/json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} + name: json-schema-traverse + version: 1.0.0 + dev: false + + registry.npmmirror.com/json2mq@0.2.0: + resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz} + name: json2mq + version: 0.2.0 + dependencies: + string-convert: registry.npmmirror.com/string-convert@0.2.1 + dev: false + + registry.npmmirror.com/json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} + name: json5 + version: 2.2.3 + engines: {node: '>=6'} + hasBin: true + dev: false + + registry.npmmirror.com/jsonfile@3.0.1: + resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-3.0.1.tgz} + name: jsonfile + version: 3.0.1 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: false + + registry.npmmirror.com/jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} + name: jsonfile + version: 6.1.0 + dependencies: + universalify: registry.npmmirror.com/universalify@2.0.1 + optionalDependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: false + + registry.npmmirror.com/jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz} + name: jsx-ast-utils + version: 3.3.5 + engines: {node: '>=4.0'} + dependencies: + array-includes: registry.npmmirror.com/array-includes@3.1.7 + array.prototype.flat: registry.npmmirror.com/array.prototype.flat@1.3.2 + object.assign: registry.npmmirror.com/object.assign@4.1.4 + object.values: registry.npmmirror.com/object.values@1.1.7 + dev: false + + registry.npmmirror.com/keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz} + name: keyv + version: 4.5.4 + dependencies: + json-buffer: registry.npmmirror.com/json-buffer@3.0.1 + dev: false + + registry.npmmirror.com/kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz} + name: kind-of + version: 3.2.2 + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: registry.npmmirror.com/is-buffer@1.1.6 + dev: false + + registry.npmmirror.com/kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz} + name: kind-of + version: 6.0.3 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz} + name: kleur + version: 4.1.5 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/known-css-properties@0.26.0: + resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/known-css-properties/-/known-css-properties-0.26.0.tgz} + name: known-css-properties + version: 0.26.0 + dev: false + + registry.npmmirror.com/kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz} + name: kolorist + version: 1.8.0 + dev: false + + registry.npmmirror.com/latest-version@3.1.0: + resolution: {integrity: sha512-Be1YRHWWlZaSsrz2U+VInk+tO0EwLIyV+23RhWLINJYwg/UIikxjlj3MhH37/6/EDCAusjajvMkMMUXRaMWl/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/latest-version/-/latest-version-3.1.0.tgz} + name: latest-version + version: 3.1.0 + engines: {node: '>=4'} + dependencies: + package-json: registry.npmmirror.com/package-json@4.0.1 + dev: false + + registry.npmmirror.com/lazy-cache@1.0.4: + resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz} + name: lazy-cache + version: 1.0.4 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/leac/-/leac-0.6.0.tgz} + name: leac + version: 0.6.0 + dev: false + + registry.npmmirror.com/less-plugin-resolve@1.0.2: + resolution: {integrity: sha512-e1AHq0XNTU8S3d9JCc8CFYajoUBr0EK3pcuLT5PogyBBeE0knzZJL105kKKSZWfq2lQLq3/uEDrMK3JPq+fHaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/less-plugin-resolve/-/less-plugin-resolve-1.0.2.tgz} + name: less-plugin-resolve + version: 1.0.2 + dependencies: + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 + dev: false + + registry.npmmirror.com/less@4.1.3: + resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/less/-/less-4.1.3.tgz} + name: less + version: 4.1.3 + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: registry.npmmirror.com/copy-anything@2.0.6 + parse-node-version: registry.npmmirror.com/parse-node-version@1.0.1 + tslib: registry.npmmirror.com/tslib@2.6.2 + optionalDependencies: + errno: registry.npmmirror.com/errno@0.1.8 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + image-size: registry.npmmirror.com/image-size@0.5.5 + make-dir: registry.npmmirror.com/make-dir@2.1.0 + mime: registry.npmmirror.com/mime@1.6.0 + needle: registry.npmmirror.com/needle@3.2.0 + source-map: registry.npmmirror.com/source-map@0.6.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/lightningcss-darwin-arm64@1.22.1: + resolution: {integrity: sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz} + name: lightningcss-darwin-arm64 + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-darwin-x64@1.22.1: + resolution: {integrity: sha512-5p2rnlVTv6Gpw4PlTLq925nTVh+HFh4MpegX8dPDYJae+NFVjQ67gY7O6iHIzQjLipDiYejFF0yHrhjU3XgLBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.22.1.tgz} + name: lightningcss-darwin-x64 + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-freebsd-x64@1.22.1: + resolution: {integrity: sha512-1FaBtcFrZqB2hkFbAxY//Pnp8koThvyB6AhjbdVqKD4/pu13Rl91fKt2N9qyeQPUt3xy7ORUvSO+dPk3J6EjXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.22.1.tgz} + name: lightningcss-freebsd-x64 + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-arm-gnueabihf@1.22.1: + resolution: {integrity: sha512-6rub98tYGfE5I5j0BP8t/2d4BZyu1S7Iz9vUkm0H26snAFHYxLfj3RbQn0xHHIePSetjLnhcg3QlfwUAkD/FYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.22.1.tgz} + name: lightningcss-linux-arm-gnueabihf + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-arm64-gnu@1.22.1: + resolution: {integrity: sha512-nYO5qGtb/1kkTZu3FeTiM+2B2TAb7m2DkLCTgQIs2bk2o9aEs7I96fwySKcoHWQAiQDGR9sMux9vkV4KQXqPaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.22.1.tgz} + name: lightningcss-linux-arm64-gnu + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-arm64-musl@1.22.1: + resolution: {integrity: sha512-MCV6RuRpzXbunvzwY644iz8cw4oQxvW7oer9xPkdadYqlEyiJJ6wl7FyJOH7Q6ZYH4yjGAUCvxDBxPbnDu9ZVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.22.1.tgz} + name: lightningcss-linux-arm64-musl + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-x64-gnu@1.22.1: + resolution: {integrity: sha512-RjNgpdM20VUXgV7us/VmlO3Vn2ZRiDnc3/bUxCVvySZWPiVPprpqW/QDWuzkGa+NCUf6saAM5CLsZLSxncXJwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz} + name: lightningcss-linux-x64-gnu + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-linux-x64-musl@1.22.1: + resolution: {integrity: sha512-ZgO4C7Rd6Hv/5MnyY2KxOYmIlzk4rplVolDt3NbkNR8DndnyX0Q5IR4acJWNTBICQ21j3zySzKbcJaiJpk/4YA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.22.1.tgz} + name: lightningcss-linux-x64-musl + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss-win32-x64-msvc@1.22.1: + resolution: {integrity: sha512-4pozV4eyD0MDET41ZLHAeBo+H04Nm2UEYIk5w/ts40231dRFV7E0cjwbnZvSoc1DXFgecAhiC0L16ruv/ZDCpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.22.1.tgz} + name: lightningcss-win32-x64-msvc + version: 1.22.1 + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: false + optional: true + + registry.npmmirror.com/lightningcss@1.22.1: + resolution: {integrity: sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss/-/lightningcss-1.22.1.tgz} + name: lightningcss + version: 1.22.1 + engines: {node: '>= 12.0.0'} + dependencies: + detect-libc: registry.npmmirror.com/detect-libc@1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: registry.npmmirror.com/lightningcss-darwin-arm64@1.22.1 + lightningcss-darwin-x64: registry.npmmirror.com/lightningcss-darwin-x64@1.22.1 + lightningcss-freebsd-x64: registry.npmmirror.com/lightningcss-freebsd-x64@1.22.1 + lightningcss-linux-arm-gnueabihf: registry.npmmirror.com/lightningcss-linux-arm-gnueabihf@1.22.1 + lightningcss-linux-arm64-gnu: registry.npmmirror.com/lightningcss-linux-arm64-gnu@1.22.1 + lightningcss-linux-arm64-musl: registry.npmmirror.com/lightningcss-linux-arm64-musl@1.22.1 + lightningcss-linux-x64-gnu: registry.npmmirror.com/lightningcss-linux-x64-gnu@1.22.1 + lightningcss-linux-x64-musl: registry.npmmirror.com/lightningcss-linux-x64-musl@1.22.1 + lightningcss-win32-x64-msvc: registry.npmmirror.com/lightningcss-win32-x64-msvc@1.22.1 + dev: false + + registry.npmmirror.com/lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} + name: lines-and-columns + version: 1.2.4 + dev: false + + registry.npmmirror.com/loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz} + name: loader-runner + version: 4.3.0 + engines: {node: '>=6.11.5'} + dev: false + + registry.npmmirror.com/loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz} + name: loader-utils + version: 2.0.4 + engines: {node: '>=8.9.0'} + dependencies: + big.js: registry.npmmirror.com/big.js@5.2.2 + emojis-list: registry.npmmirror.com/emojis-list@3.0.0 + json5: registry.npmmirror.com/json5@2.2.3 + dev: false + + registry.npmmirror.com/local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz} + name: local-pkg + version: 0.4.3 + engines: {node: '>=14'} + dev: false + + registry.npmmirror.com/locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz} + name: locate-path + version: 5.0.0 + engines: {node: '>=8'} + dependencies: + p-locate: registry.npmmirror.com/p-locate@4.1.0 + dev: false + + registry.npmmirror.com/locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz} + name: locate-path + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + p-locate: registry.npmmirror.com/p-locate@5.0.0 + dev: false + + registry.npmmirror.com/lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz} + name: lodash.debounce + version: 4.0.8 + dev: false + + registry.npmmirror.com/lodash.throttle@4.1.1: + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz} + name: lodash.throttle + version: 4.1.1 + dev: false + + registry.npmmirror.com/lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz} + name: lodash.truncate + version: 4.4.2 + dev: false + + registry.npmmirror.com/lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} + name: lodash + version: 4.17.21 + dev: false + + registry.npmmirror.com/log-symbols@2.2.0: + resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-symbols/-/log-symbols-2.2.0.tgz} + name: log-symbols + version: 2.2.0 + engines: {node: '>=4'} + dependencies: + chalk: registry.npmmirror.com/chalk@2.4.2 + dev: false + + registry.npmmirror.com/longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz} + name: longest-streak + version: 3.1.0 + dev: false + + registry.npmmirror.com/loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz} + name: loose-envify + version: 1.4.0 + hasBin: true + dependencies: + js-tokens: registry.npmmirror.com/js-tokens@4.0.0 + dev: false + + registry.npmmirror.com/lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz} + name: lower-case + version: 2.0.2 + dependencies: + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/lowercase-keys@1.0.1: + resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz} + name: lowercase-keys + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/lowlight@1.20.0: + resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lowlight/-/lowlight-1.20.0.tgz} + name: lowlight + version: 1.20.0 + dependencies: + fault: registry.npmmirror.com/fault@1.0.4 + highlight.js: registry.npmmirror.com/highlight.js@10.7.3 + dev: false + + registry.npmmirror.com/lru-cache@4.1.5: + resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz} + name: lru-cache + version: 4.1.5 + dependencies: + pseudomap: registry.npmmirror.com/pseudomap@1.0.2 + yallist: registry.npmmirror.com/yallist@2.1.2 + dev: false + + registry.npmmirror.com/lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz} + name: lru-cache + version: 5.1.1 + dependencies: + yallist: registry.npmmirror.com/yallist@3.1.1 + dev: false + + registry.npmmirror.com/lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} + name: lru-cache + version: 6.0.0 + engines: {node: '>=10'} + dependencies: + yallist: registry.npmmirror.com/yallist@4.0.0 + dev: false + + registry.npmmirror.com/lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-7.18.3.tgz} + name: lru-cache + version: 7.18.3 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lz-string/-/lz-string-1.5.0.tgz} + name: lz-string + version: 1.5.0 + hasBin: true + dev: false + + registry.npmmirror.com/make-dir@1.3.0: + resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-1.3.0.tgz} + name: make-dir + version: 1.3.0 + engines: {node: '>=4'} + dependencies: + pify: registry.npmmirror.com/pify@3.0.0 + dev: false + + registry.npmmirror.com/make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz} + name: make-dir + version: 2.1.0 + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.2 + optional: true + + registry.npmmirror.com/make-fetch-happen@2.6.0: + resolution: {integrity: sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz} + name: make-fetch-happen + version: 2.6.0 + dependencies: + agentkeepalive: registry.npmmirror.com/agentkeepalive@3.5.2 + cacache: registry.npmmirror.com/cacache@10.0.4 + http-cache-semantics: registry.npmmirror.com/http-cache-semantics@3.8.1 + http-proxy-agent: registry.npmmirror.com/http-proxy-agent@2.1.0 + https-proxy-agent: registry.npmmirror.com/https-proxy-agent@2.2.4 + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + mississippi: registry.npmmirror.com/mississippi@1.3.1 + node-fetch-npm: registry.npmmirror.com/node-fetch-npm@2.0.4 + promise-retry: registry.npmmirror.com/promise-retry@1.1.1 + socks-proxy-agent: registry.npmmirror.com/socks-proxy-agent@3.0.1 + ssri: registry.npmmirror.com/ssri@5.3.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz} + name: makeerror + version: 1.0.12 + dependencies: + tmpl: registry.npmmirror.com/tmpl@1.0.5 + dev: false + + registry.npmmirror.com/map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz} + name: map-obj + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-4.3.0.tgz} + name: map-obj + version: 4.3.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz} + name: markdown-table + version: 3.0.3 + dev: false + + registry.npmmirror.com/mathml-tag-names@2.1.3: + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz} + name: mathml-tag-names + version: 2.1.3 + dev: false + + registry.npmmirror.com/md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz} + name: md5.js + version: 1.3.5 + dependencies: + hash-base: registry.npmmirror.com/hash-base@3.1.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/mdast-util-definitions@5.1.2: + resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz} + name: mdast-util-definitions + version: 5.1.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + + registry.npmmirror.com/mdast-util-directive@2.2.4: + resolution: {integrity: sha512-sK3ojFP+jpj1n7Zo5ZKvoxP1MvLyzVG63+gm40Z/qI00avzdPCYxt7RBMgofwAva9gBjbDBWVRB/i+UD+fUCzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-directive/-/mdast-util-directive-2.2.4.tgz} + name: mdast-util-directive + version: 2.2.4 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + parse-entities: registry.npmmirror.com/parse-entities@4.0.1 + stringify-entities: registry.npmmirror.com/stringify-entities@4.0.3 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-find-and-replace@2.2.2: + resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz} + name: mdast-util-find-and-replace + version: 2.2.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@5.0.0 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + dev: false + + registry.npmmirror.com/mdast-util-from-markdown@1.3.1: + resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz} + name: mdast-util-from-markdown + version: 1.3.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string@3.2.0 + micromark: registry.npmmirror.com/micromark@3.2.0 + micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0 + micromark-util-decode-string: registry.npmmirror.com/micromark-util-decode-string@1.1.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 + uvu: registry.npmmirror.com/uvu@0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-frontmatter@1.0.1: + resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz} + name: mdast-util-frontmatter + version: 1.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + micromark-extension-frontmatter: registry.npmmirror.com/micromark-extension-frontmatter@1.1.1 + dev: false + + registry.npmmirror.com/mdast-util-gfm-autolink-literal@1.0.3: + resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz} + name: mdast-util-gfm-autolink-literal + version: 1.0.3 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + ccount: registry.npmmirror.com/ccount@2.0.1 + mdast-util-find-and-replace: registry.npmmirror.com/mdast-util-find-and-replace@2.2.2 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-footnote@1.0.2: + resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz} + name: mdast-util-gfm-footnote + version: 1.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-strikethrough@1.0.3: + resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz} + name: mdast-util-gfm-strikethrough + version: 1.0.3 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm-table@1.0.7: + resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz} + name: mdast-util-gfm-table + version: 1.0.7 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + markdown-table: registry.npmmirror.com/markdown-table@3.0.3 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-gfm-task-list-item@1.0.2: + resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz} + name: mdast-util-gfm-task-list-item + version: 1.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + dev: false + + registry.npmmirror.com/mdast-util-gfm@2.0.2: + resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz} + name: mdast-util-gfm + version: 2.0.2 + dependencies: + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-gfm-autolink-literal: registry.npmmirror.com/mdast-util-gfm-autolink-literal@1.0.3 + mdast-util-gfm-footnote: registry.npmmirror.com/mdast-util-gfm-footnote@1.0.2 + mdast-util-gfm-strikethrough: registry.npmmirror.com/mdast-util-gfm-strikethrough@1.0.3 + mdast-util-gfm-table: registry.npmmirror.com/mdast-util-gfm-table@1.0.7 + mdast-util-gfm-task-list-item: registry.npmmirror.com/mdast-util-gfm-task-list-item@1.0.2 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-mdx-expression@1.3.2: + resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz} + name: mdast-util-mdx-expression + version: 1.3.2 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-mdxjs-esm@1.3.1: + resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz} + name: mdast-util-mdxjs-esm + version: 1.3.1 + dependencies: + '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/mdast-util-phrasing@3.0.1: + resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz} + name: mdast-util-phrasing + version: 3.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + dev: false + + registry.npmmirror.com/mdast-util-to-hast@12.3.0: + resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz} + name: mdast-util-to-hast + version: 12.3.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-definitions: registry.npmmirror.com/mdast-util-definitions@5.1.2 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 + trim-lines: registry.npmmirror.com/trim-lines@3.0.1 + unist-util-generated: registry.npmmirror.com/unist-util-generated@2.0.1 + unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + + registry.npmmirror.com/mdast-util-to-markdown@1.5.0: + resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz} + name: mdast-util-to-markdown + version: 1.5.0 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + longest-streak: registry.npmmirror.com/longest-streak@3.1.0 + mdast-util-phrasing: registry.npmmirror.com/mdast-util-phrasing@3.0.1 + mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string@3.2.0 + micromark-util-decode-string: registry.npmmirror.com/micromark-util-decode-string@1.1.0 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + + registry.npmmirror.com/mdast-util-to-string@3.2.0: + resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz} + name: mdast-util-to-string + version: 3.2.0 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + dev: false + + registry.npmmirror.com/mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz} + name: mdn-data + version: 2.0.14 + dev: false + + registry.npmmirror.com/mdn-data@2.0.4: + resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz} + name: mdn-data + version: 2.0.4 + dev: false + + registry.npmmirror.com/memfs@3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz} + name: memfs + version: 3.5.3 + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: registry.npmmirror.com/fs-monkey@1.0.5 + dev: false + + registry.npmmirror.com/meow@9.0.0: + resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/meow/-/meow-9.0.0.tgz} + name: meow + version: 9.0.0 + engines: {node: '>=10'} + dependencies: + '@types/minimist': registry.npmmirror.com/@types/minimist@1.2.5 + camelcase-keys: registry.npmmirror.com/camelcase-keys@6.2.2 + decamelize: registry.npmmirror.com/decamelize@1.2.0 + decamelize-keys: registry.npmmirror.com/decamelize-keys@1.1.1 + hard-rejection: registry.npmmirror.com/hard-rejection@2.1.0 + minimist-options: registry.npmmirror.com/minimist-options@4.1.0 + normalize-package-data: registry.npmmirror.com/normalize-package-data@3.0.3 + read-pkg-up: registry.npmmirror.com/read-pkg-up@7.0.1 + redent: registry.npmmirror.com/redent@3.0.0 + trim-newlines: registry.npmmirror.com/trim-newlines@3.0.1 + type-fest: registry.npmmirror.com/type-fest@0.18.1 + yargs-parser: registry.npmmirror.com/yargs-parser@20.2.9 + dev: false + + registry.npmmirror.com/merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} + name: merge-stream + version: 2.0.0 + dev: false + + registry.npmmirror.com/merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} + name: merge2 + version: 1.4.1 + engines: {node: '>= 8'} + dev: false + + registry.npmmirror.com/micromark-core-commonmark@1.1.0: + resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz} + name: micromark-core-commonmark + version: 1.1.0 + dependencies: + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + micromark-factory-destination: registry.npmmirror.com/micromark-factory-destination@1.1.0 + micromark-factory-label: registry.npmmirror.com/micromark-factory-label@1.1.0 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-factory-title: registry.npmmirror.com/micromark-factory-title@1.1.0 + micromark-factory-whitespace: registry.npmmirror.com/micromark-factory-whitespace@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-classify-character: registry.npmmirror.com/micromark-util-classify-character@1.1.0 + micromark-util-html-tag-name: registry.npmmirror.com/micromark-util-html-tag-name@1.2.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all@1.1.0 + micromark-util-subtokenize: registry.npmmirror.com/micromark-util-subtokenize@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-directive@2.2.1: + resolution: {integrity: sha512-ZFKZkNaEqAP86IghX1X7sE8NNnx6kFNq9mSBRvEHjArutTCJZ3LYg6VH151lXVb1JHpmIcW/7rX25oMoIHuSug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-directive/-/micromark-extension-directive-2.2.1.tgz} + name: micromark-extension-directive + version: 2.2.1 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-factory-whitespace: registry.npmmirror.com/micromark-factory-whitespace@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + parse-entities: registry.npmmirror.com/parse-entities@4.0.1 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-frontmatter@1.1.1: + resolution: {integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.1.1.tgz} + name: micromark-extension-frontmatter + version: 1.1.1 + dependencies: + fault: registry.npmmirror.com/fault@2.0.1 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-autolink-literal@1.0.5: + resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz} + name: micromark-extension-gfm-autolink-literal + version: 1.0.5 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-footnote@1.1.2: + resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz} + name: micromark-extension-gfm-footnote + version: 1.1.2 + dependencies: + micromark-core-commonmark: registry.npmmirror.com/micromark-core-commonmark@1.1.0 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-strikethrough@1.0.7: + resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz} + name: micromark-extension-gfm-strikethrough + version: 1.0.7 + dependencies: + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-classify-character: registry.npmmirror.com/micromark-util-classify-character@1.1.0 + micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-table@1.0.7: + resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz} + name: micromark-extension-gfm-table + version: 1.0.7 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-tagfilter@1.0.2: + resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz} + name: micromark-extension-gfm-tagfilter + version: 1.0.2 + dependencies: + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-extension-gfm-task-list-item@1.0.5: + resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz} + name: micromark-extension-gfm-task-list-item + version: 1.0.5 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-extension-gfm@2.0.3: + resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz} + name: micromark-extension-gfm + version: 2.0.3 + dependencies: + micromark-extension-gfm-autolink-literal: registry.npmmirror.com/micromark-extension-gfm-autolink-literal@1.0.5 + micromark-extension-gfm-footnote: registry.npmmirror.com/micromark-extension-gfm-footnote@1.1.2 + micromark-extension-gfm-strikethrough: registry.npmmirror.com/micromark-extension-gfm-strikethrough@1.0.7 + micromark-extension-gfm-table: registry.npmmirror.com/micromark-extension-gfm-table@1.0.7 + micromark-extension-gfm-tagfilter: registry.npmmirror.com/micromark-extension-gfm-tagfilter@1.0.2 + micromark-extension-gfm-task-list-item: registry.npmmirror.com/micromark-extension-gfm-task-list-item@1.0.5 + micromark-util-combine-extensions: registry.npmmirror.com/micromark-util-combine-extensions@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-factory-destination@1.1.0: + resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz} + name: micromark-factory-destination + version: 1.1.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-factory-label@1.1.0: + resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz} + name: micromark-factory-label + version: 1.1.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-factory-space@1.1.0: + resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz} + name: micromark-factory-space + version: 1.1.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-factory-title@1.1.0: + resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz} + name: micromark-factory-title + version: 1.1.0 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-factory-whitespace@1.1.0: + resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz} + name: micromark-factory-whitespace + version: 1.1.0 + dependencies: + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-character@1.2.0: + resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz} + name: micromark-util-character + version: 1.2.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-chunked@1.1.0: + resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz} + name: micromark-util-chunked + version: 1.1.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-classify-character@1.1.0: + resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz} + name: micromark-util-classify-character + version: 1.1.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-combine-extensions@1.1.0: + resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz} + name: micromark-util-combine-extensions + version: 1.1.0 + dependencies: + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0: + resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz} + name: micromark-util-decode-numeric-character-reference + version: 1.1.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-decode-string@1.1.0: + resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz} + name: micromark-util-decode-string + version: 1.1.0 + dependencies: + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-encode@1.1.0: + resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz} + name: micromark-util-encode + version: 1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-html-tag-name@1.2.0: + resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz} + name: micromark-util-html-tag-name + version: 1.2.0 + dev: false + + registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0: + resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz} + name: micromark-util-normalize-identifier + version: 1.1.0 + dependencies: + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-resolve-all@1.1.0: + resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz} + name: micromark-util-resolve-all + version: 1.1.0 + dependencies: + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0: + resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz} + name: micromark-util-sanitize-uri + version: 1.2.0 + dependencies: + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-encode: registry.npmmirror.com/micromark-util-encode@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-subtokenize@1.1.0: + resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz} + name: micromark-util-subtokenize + version: 1.1.0 + dependencies: + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + dev: false + + registry.npmmirror.com/micromark-util-symbol@1.1.0: + resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz} + name: micromark-util-symbol + version: 1.1.0 + dev: false + + registry.npmmirror.com/micromark-util-types@1.1.0: + resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz} + name: micromark-util-types + version: 1.1.0 + dev: false + + registry.npmmirror.com/micromark@3.2.0: + resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark/-/micromark-3.2.0.tgz} + name: micromark + version: 3.2.0 + dependencies: + '@types/debug': registry.npmmirror.com/@types/debug@4.1.12 + debug: registry.npmmirror.com/debug@4.3.4 + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + micromark-core-commonmark: registry.npmmirror.com/micromark-core-commonmark@1.1.0 + micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 + micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 + micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 + micromark-util-combine-extensions: registry.npmmirror.com/micromark-util-combine-extensions@1.1.0 + micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0 + micromark-util-encode: registry.npmmirror.com/micromark-util-encode@1.1.0 + micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 + micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all@1.1.0 + micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 + micromark-util-subtokenize: registry.npmmirror.com/micromark-util-subtokenize@1.1.0 + micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 + micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 + uvu: registry.npmmirror.com/uvu@0.5.6 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} + name: micromatch + version: 4.0.5 + engines: {node: '>=8.6'} + dependencies: + braces: registry.npmmirror.com/braces@3.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + + registry.npmmirror.com/miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/miller-rabin/-/miller-rabin-4.0.1.tgz} + name: miller-rabin + version: 4.0.1 + hasBin: true + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + brorand: registry.npmmirror.com/brorand@1.1.0 + dev: false + + registry.npmmirror.com/mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} + name: mime-db + version: 1.52.0 + engines: {node: '>= 0.6'} + dev: false + + registry.npmmirror.com/mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz} + name: mime-types + version: 2.1.35 + engines: {node: '>= 0.6'} + dependencies: + mime-db: registry.npmmirror.com/mime-db@1.52.0 + dev: false + + registry.npmmirror.com/mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz} + name: mime + version: 1.6.0 + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + optional: true + + registry.npmmirror.com/mimer@1.1.0: + resolution: {integrity: sha512-y9dVfy2uiycQvDNiAYW6zp49ZhFlXDMr5wfdOiMbdzGM/0N5LNR6HTUn3un+WUQcM0koaw8FMTG1bt5EnHJdvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimer/-/mimer-1.1.0.tgz} + name: mimer + version: 1.1.0 + engines: {node: '>= 6.0'} + hasBin: true + dev: false + + registry.npmmirror.com/mimic-fn@1.2.0: + resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz} + name: mimic-fn + version: 1.2.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz} + name: mimic-fn + version: 2.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz} + name: mimic-fn + version: 4.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz} + name: min-indent + version: 1.0.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz} + name: minimalistic-assert + version: 1.0.1 + dev: false + + registry.npmmirror.com/minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz} + name: minimalistic-crypto-utils + version: 1.0.1 + dev: false + + registry.npmmirror.com/minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} + name: minimatch + version: 3.1.2 + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + dev: false + + registry.npmmirror.com/minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist-options/-/minimist-options-4.1.0.tgz} + name: minimist-options + version: 4.1.0 + engines: {node: '>= 6'} + dependencies: + arrify: registry.npmmirror.com/arrify@1.0.1 + is-plain-obj: registry.npmmirror.com/is-plain-obj@1.1.0 + kind-of: registry.npmmirror.com/kind-of@6.0.3 + dev: false + + registry.npmmirror.com/minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} + name: minimist + version: 1.2.8 + dev: false + + registry.npmmirror.com/mississippi@1.3.1: + resolution: {integrity: sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mississippi/-/mississippi-1.3.1.tgz} + name: mississippi + version: 1.3.1 + dependencies: + concat-stream: registry.npmmirror.com/concat-stream@1.6.2 + duplexify: registry.npmmirror.com/duplexify@3.7.1 + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + flush-write-stream: registry.npmmirror.com/flush-write-stream@1.1.1 + from2: registry.npmmirror.com/from2@2.3.0 + parallel-transform: registry.npmmirror.com/parallel-transform@1.2.0 + pump: registry.npmmirror.com/pump@1.0.3 + pumpify: registry.npmmirror.com/pumpify@1.5.1 + stream-each: registry.npmmirror.com/stream-each@1.2.3 + through2: registry.npmmirror.com/through2@2.0.5 + dev: false + + registry.npmmirror.com/mississippi@2.0.0: + resolution: {integrity: sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mississippi/-/mississippi-2.0.0.tgz} + name: mississippi + version: 2.0.0 + engines: {node: '>=4.0.0'} + dependencies: + concat-stream: registry.npmmirror.com/concat-stream@1.6.2 + duplexify: registry.npmmirror.com/duplexify@3.7.1 + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + flush-write-stream: registry.npmmirror.com/flush-write-stream@1.1.1 + from2: registry.npmmirror.com/from2@2.3.0 + parallel-transform: registry.npmmirror.com/parallel-transform@1.2.0 + pump: registry.npmmirror.com/pump@2.0.1 + pumpify: registry.npmmirror.com/pumpify@1.5.1 + stream-each: registry.npmmirror.com/stream-each@1.2.3 + through2: registry.npmmirror.com/through2@2.0.5 + dev: false + + registry.npmmirror.com/mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz} + name: mkdirp + version: 0.5.6 + hasBin: true + dependencies: + minimist: registry.npmmirror.com/minimist@1.2.8 + dev: false + + registry.npmmirror.com/move-concurrently@1.0.1: + resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz} + name: move-concurrently + version: 1.0.1 + dependencies: + aproba: registry.npmmirror.com/aproba@1.2.0 + copy-concurrently: registry.npmmirror.com/copy-concurrently@1.0.5 + fs-write-stream-atomic: registry.npmmirror.com/fs-write-stream-atomic@1.0.10 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + rimraf: registry.npmmirror.com/rimraf@2.7.1 + run-queue: registry.npmmirror.com/run-queue@1.0.3 + dev: false + + registry.npmmirror.com/mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz} + name: mri + version: 1.2.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz} + name: ms + version: 2.0.0 + dev: false + + registry.npmmirror.com/ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + dev: false + + registry.npmmirror.com/ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} + name: ms + version: 2.1.3 + dev: false + + registry.npmmirror.com/multipipe@1.0.2: + resolution: {integrity: sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/multipipe/-/multipipe-1.0.2.tgz} + name: multipipe + version: 1.0.2 + dependencies: + duplexer2: registry.npmmirror.com/duplexer2@0.1.4 + object-assign: registry.npmmirror.com/object-assign@4.1.1 + dev: false + + registry.npmmirror.com/mute-stream@0.0.7: + resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.7.tgz} + name: mute-stream + version: 0.0.7 + dev: false + + registry.npmmirror.com/nanoid@2.1.11: + resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-2.1.11.tgz} + name: nanoid + version: 2.1.11 + dev: false + + registry.npmmirror.com/nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz} + name: nanoid + version: 3.3.7 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: false + + registry.npmmirror.com/natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} + name: natural-compare-lite + version: 1.4.0 + dev: false + + registry.npmmirror.com/needle@3.2.0: + resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/needle/-/needle-3.2.0.tgz} + name: needle + version: 3.2.0 + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + debug: 3.2.7 + iconv-lite: 0.6.3 + sax: 1.3.0 + transitivePeerDependencies: + - supports-color + optional: true + + registry.npmmirror.com/neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz} + name: neo-async + version: 2.6.2 + dev: false + + registry.npmmirror.com/no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz} + name: no-case + version: 3.0.4 + dependencies: + lower-case: registry.npmmirror.com/lower-case@2.0.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/node-abort-controller@3.1.1: + resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz} + name: node-abort-controller + version: 3.1.1 + dev: false + + registry.npmmirror.com/node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz} + name: node-domexception + version: 1.0.0 + engines: {node: '>=10.5.0'} + dev: false + + registry.npmmirror.com/node-fetch-npm@2.0.4: + resolution: {integrity: sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz} + name: node-fetch-npm + version: 2.0.4 + engines: {node: '>=4'} + deprecated: This module is not used anymore, npm uses minipass-fetch for its fetch implementation now + dependencies: + encoding: registry.npmmirror.com/encoding@0.1.13 + json-parse-better-errors: registry.npmmirror.com/json-parse-better-errors@1.0.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.2.tgz} + name: node-fetch + version: 3.3.2 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + data-uri-to-buffer: registry.npmmirror.com/data-uri-to-buffer@4.0.1 + fetch-blob: registry.npmmirror.com/fetch-blob@3.2.0 + formdata-polyfill: registry.npmmirror.com/formdata-polyfill@4.0.10 + dev: false + + registry.npmmirror.com/node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz} + name: node-int64 + version: 0.4.0 + dev: false + + registry.npmmirror.com/node-libs-browser@2.2.1: + resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz} + name: node-libs-browser + version: 2.2.1 + dependencies: + assert: registry.npmmirror.com/assert@1.5.1 + browserify-zlib: registry.npmmirror.com/browserify-zlib@0.2.0 + buffer: registry.npmmirror.com/buffer@4.9.2 + console-browserify: registry.npmmirror.com/console-browserify@1.2.0 + constants-browserify: registry.npmmirror.com/constants-browserify@1.0.0 + crypto-browserify: registry.npmmirror.com/crypto-browserify@3.12.0 + domain-browser: registry.npmmirror.com/domain-browser@1.2.0 + events: registry.npmmirror.com/events@3.3.0 + https-browserify: registry.npmmirror.com/https-browserify@1.0.0 + os-browserify: registry.npmmirror.com/os-browserify@0.3.0 + path-browserify: registry.npmmirror.com/path-browserify@0.0.1 + process: registry.npmmirror.com/process@0.11.10 + punycode: registry.npmmirror.com/punycode@1.4.1 + querystring-es3: registry.npmmirror.com/querystring-es3@0.2.1 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + stream-browserify: registry.npmmirror.com/stream-browserify@2.0.2 + stream-http: registry.npmmirror.com/stream-http@2.8.3 + string_decoder: registry.npmmirror.com/string_decoder@1.3.0 + timers-browserify: registry.npmmirror.com/timers-browserify@2.0.12 + tty-browserify: registry.npmmirror.com/tty-browserify@0.0.0 + url: registry.npmmirror.com/url@0.11.3 + util: registry.npmmirror.com/util@0.11.1 + vm-browserify: registry.npmmirror.com/vm-browserify@1.1.2 + dev: false + + registry.npmmirror.com/node-releases@2.0.13: + resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz} + name: node-releases + version: 2.0.13 + dev: false + + registry.npmmirror.com/normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz} + name: normalize-package-data + version: 2.5.0 + dependencies: + hosted-git-info: registry.npmmirror.com/hosted-git-info@2.8.9 + resolve: registry.npmmirror.com/resolve@1.22.8 + semver: registry.npmmirror.com/semver@5.7.2 + validate-npm-package-license: registry.npmmirror.com/validate-npm-package-license@3.0.4 + dev: false + + registry.npmmirror.com/normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz} + name: normalize-package-data + version: 3.0.3 + engines: {node: '>=10'} + dependencies: + hosted-git-info: registry.npmmirror.com/hosted-git-info@4.1.0 + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + semver: registry.npmmirror.com/semver@7.5.4 + validate-npm-package-license: registry.npmmirror.com/validate-npm-package-license@3.0.4 + dev: false + + registry.npmmirror.com/normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} + name: normalize-path + version: 3.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz} + name: normalize-range + version: 0.1.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/npm-package-arg@5.1.2: + resolution: {integrity: sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz} + name: npm-package-arg + version: 5.1.2 + dependencies: + hosted-git-info: registry.npmmirror.com/hosted-git-info@2.8.9 + osenv: registry.npmmirror.com/osenv@0.1.5 + semver: registry.npmmirror.com/semver@5.7.2 + validate-npm-package-name: registry.npmmirror.com/validate-npm-package-name@3.0.0 + dev: false + + registry.npmmirror.com/npm-pick-manifest@1.0.4: + resolution: {integrity: sha512-MKxNdeyOZysPRTTbHtW0M5Fw38Jo/3ARsoGw5qjCfS+XGjvNB/Gb4qtAZUFmKPM2mVum+eX559eHvKywU856BQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-pick-manifest/-/npm-pick-manifest-1.0.4.tgz} + name: npm-pick-manifest + version: 1.0.4 + dependencies: + npm-package-arg: registry.npmmirror.com/npm-package-arg@5.1.2 + semver: registry.npmmirror.com/semver@5.7.2 + dev: false + + registry.npmmirror.com/npm-run-path@2.0.2: + resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz} + name: npm-run-path + version: 2.0.2 + engines: {node: '>=4'} + dependencies: + path-key: registry.npmmirror.com/path-key@2.0.1 + dev: false + + registry.npmmirror.com/npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz} + name: npm-run-path + version: 4.0.1 + engines: {node: '>=8'} + dependencies: + path-key: registry.npmmirror.com/path-key@3.1.1 + dev: false + + registry.npmmirror.com/npm-run-path@5.1.0: + resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.1.0.tgz} + name: npm-run-path + version: 5.1.0 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: registry.npmmirror.com/path-key@4.0.0 + dev: false + + registry.npmmirror.com/nprogress@0.2.0: + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz} + name: nprogress + version: 0.2.0 + dev: false + + registry.npmmirror.com/nth-check@1.0.2: + resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz} + name: nth-check + version: 1.0.2 + dependencies: + boolbase: registry.npmmirror.com/boolbase@1.0.0 + dev: false + + registry.npmmirror.com/nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz} + name: nth-check + version: 2.1.1 + dependencies: + boolbase: registry.npmmirror.com/boolbase@1.0.0 + dev: false + + registry.npmmirror.com/object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} + name: object-assign + version: 4.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz} + name: object-inspect + version: 1.13.1 + dev: false + + registry.npmmirror.com/object-keys@0.4.0: + resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-0.4.0.tgz} + name: object-keys + version: 0.4.0 + dev: false + + registry.npmmirror.com/object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} + name: object-keys + version: 1.1.1 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz} + name: object.assign + version: 4.1.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + object-keys: registry.npmmirror.com/object-keys@1.1.1 + dev: false + + registry.npmmirror.com/object.entries@1.1.7: + resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.entries/-/object.entries-1.1.7.tgz} + name: object.entries + version: 1.1.7 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/object.fromentries@2.0.7: + resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.7.tgz} + name: object.fromentries + version: 2.0.7 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/object.getownpropertydescriptors@2.1.7: + resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz} + name: object.getownpropertydescriptors + version: 2.1.7 + engines: {node: '>= 0.8'} + dependencies: + array.prototype.reduce: registry.npmmirror.com/array.prototype.reduce@1.0.6 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 + dev: false + + registry.npmmirror.com/object.getprototypeof@1.0.5: + resolution: {integrity: sha512-4G0QiXpoIppBUz5efmxTm/HTbVN2ioGjk/PbsaNvwISFX+saj8muGp6vNuzIdsosFxM4V/kpUVNvy/+9+DVBZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.getprototypeof/-/object.getprototypeof-1.0.5.tgz} + name: object.getprototypeof + version: 1.0.5 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + reflect.getprototypeof: registry.npmmirror.com/reflect.getprototypeof@1.0.4 + dev: false + + registry.npmmirror.com/object.hasown@1.1.3: + resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.hasown/-/object.hasown-1.1.3.tgz} + name: object.hasown + version: 1.1.3 + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/object.values@1.1.7: + resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz} + name: object.values + version: 1.1.7 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz} + name: obuf + version: 1.1.2 + dev: false + + registry.npmmirror.com/omit-deep@0.3.0: + resolution: {integrity: sha512-Lbl/Ma59sss2b15DpnWnGmECBRL8cRl/PjPbPMVW+Y8zIQzRrwMaI65Oy6HvxyhYeILVKBJb2LWeG81bj5zbMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/omit-deep/-/omit-deep-0.3.0.tgz} + name: omit-deep + version: 0.3.0 + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: registry.npmmirror.com/is-plain-object@2.0.4 + unset-value: registry.npmmirror.com/unset-value@0.1.2 + dev: false + + registry.npmmirror.com/on-exit-leak-free@0.2.0: + resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz} + name: on-exit-leak-free + version: 0.2.0 + dev: false + + registry.npmmirror.com/once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} + name: once + version: 1.4.0 + dependencies: + wrappy: registry.npmmirror.com/wrappy@1.0.2 + dev: false + + registry.npmmirror.com/onetime@2.0.1: + resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz} + name: onetime + version: 2.0.1 + engines: {node: '>=4'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@1.2.0 + dev: false + + registry.npmmirror.com/onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz} + name: onetime + version: 5.1.2 + engines: {node: '>=6'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@2.1.0 + dev: false + + registry.npmmirror.com/onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz} + name: onetime + version: 6.0.0 + engines: {node: '>=12'} + dependencies: + mimic-fn: registry.npmmirror.com/mimic-fn@4.0.0 + dev: false + + registry.npmmirror.com/open@6.4.0: + resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/-/open-6.4.0.tgz} + name: open + version: 6.4.0 + engines: {node: '>=8'} + dependencies: + is-wsl: registry.npmmirror.com/is-wsl@1.1.0 + dev: false + + registry.npmmirror.com/open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/-/open-8.4.2.tgz} + name: open + version: 8.4.2 + engines: {node: '>=12'} + dependencies: + define-lazy-prop: registry.npmmirror.com/define-lazy-prop@2.0.0 + is-docker: registry.npmmirror.com/is-docker@2.2.1 + is-wsl: registry.npmmirror.com/is-wsl@2.2.0 + dev: false + + registry.npmmirror.com/open@9.1.0: + resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/-/open-9.1.0.tgz} + name: open + version: 9.1.0 + engines: {node: '>=14.16'} + dependencies: + default-browser: registry.npmmirror.com/default-browser@4.0.0 + define-lazy-prop: registry.npmmirror.com/define-lazy-prop@3.0.0 + is-inside-container: registry.npmmirror.com/is-inside-container@1.0.0 + is-wsl: registry.npmmirror.com/is-wsl@2.2.0 + dev: false + + registry.npmmirror.com/ora@1.4.0: + resolution: {integrity: sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ora/-/ora-1.4.0.tgz} + name: ora + version: 1.4.0 + engines: {node: '>=4'} + dependencies: + chalk: registry.npmmirror.com/chalk@2.4.2 + cli-cursor: registry.npmmirror.com/cli-cursor@2.1.0 + cli-spinners: registry.npmmirror.com/cli-spinners@1.3.1 + log-symbols: registry.npmmirror.com/log-symbols@2.2.0 + dev: false + + registry.npmmirror.com/os-browserify@0.3.0: + resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-browserify/-/os-browserify-0.3.0.tgz} + name: os-browserify + version: 0.3.0 + dev: false + + registry.npmmirror.com/os-homedir@1.0.2: + resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-homedir/-/os-homedir-1.0.2.tgz} + name: os-homedir + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz} + name: os-tmpdir + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/osenv@0.1.5: + resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/osenv/-/osenv-0.1.5.tgz} + name: osenv + version: 0.1.5 + dependencies: + os-homedir: registry.npmmirror.com/os-homedir@1.0.2 + os-tmpdir: registry.npmmirror.com/os-tmpdir@1.0.2 + dev: false + + registry.npmmirror.com/p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz} + name: p-finally + version: 1.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz} + name: p-limit + version: 2.3.0 + engines: {node: '>=6'} + dependencies: + p-try: registry.npmmirror.com/p-try@2.2.0 + dev: false + + registry.npmmirror.com/p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz} + name: p-limit + version: 3.1.0 + engines: {node: '>=10'} + dependencies: + yocto-queue: registry.npmmirror.com/yocto-queue@0.1.0 + dev: false + + registry.npmmirror.com/p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz} + name: p-locate + version: 4.1.0 + engines: {node: '>=8'} + dependencies: + p-limit: registry.npmmirror.com/p-limit@2.3.0 + dev: false + + registry.npmmirror.com/p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} + name: p-locate + version: 5.0.0 + engines: {node: '>=10'} + dependencies: + p-limit: registry.npmmirror.com/p-limit@3.1.0 + dev: false + + registry.npmmirror.com/p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz} + name: p-try + version: 2.2.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/package-json@4.0.1: + resolution: {integrity: sha512-q/R5GrMek0vzgoomq6rm9OX+3PQve8sLwTirmK30YB3Cu0Bbt9OX9M/SIUnroN5BGJkzwGsFwDaRGD9EwBOlCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/package-json/-/package-json-4.0.1.tgz} + name: package-json + version: 4.0.1 + engines: {node: '>=4'} + dependencies: + got: registry.npmmirror.com/got@6.7.1 + registry-auth-token: registry.npmmirror.com/registry-auth-token@3.4.0 + registry-url: registry.npmmirror.com/registry-url@3.1.0 + semver: registry.npmmirror.com/semver@5.7.2 + dev: false + + registry.npmmirror.com/pacote@2.7.38: + resolution: {integrity: sha512-XxHUyHQB7QCVBxoXeVu0yKxT+2PvJucsc0+1E+6f95lMUxEAYERgSAc71ckYXrYr35Ew3xFU/LrhdIK21GQFFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pacote/-/pacote-2.7.38.tgz} + name: pacote + version: 2.7.38 + dependencies: + bluebird: registry.npmmirror.com/bluebird@3.7.2 + cacache: registry.npmmirror.com/cacache@9.3.0 + glob: registry.npmmirror.com/glob@7.2.3 + lru-cache: registry.npmmirror.com/lru-cache@4.1.5 + make-fetch-happen: registry.npmmirror.com/make-fetch-happen@2.6.0 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + mississippi: registry.npmmirror.com/mississippi@1.3.1 + normalize-package-data: registry.npmmirror.com/normalize-package-data@2.5.0 + npm-package-arg: registry.npmmirror.com/npm-package-arg@5.1.2 + npm-pick-manifest: registry.npmmirror.com/npm-pick-manifest@1.0.4 + osenv: registry.npmmirror.com/osenv@0.1.5 + promise-inflight: registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2) + promise-retry: registry.npmmirror.com/promise-retry@1.1.1 + protoduck: registry.npmmirror.com/protoduck@4.0.0 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + semver: registry.npmmirror.com/semver@5.7.2 + ssri: registry.npmmirror.com/ssri@4.1.6 + tar-fs: registry.npmmirror.com/tar-fs@1.16.3 + tar-stream: registry.npmmirror.com/tar-stream@1.6.2 + unique-filename: registry.npmmirror.com/unique-filename@1.1.1 + which: registry.npmmirror.com/which@1.3.1 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz} + name: pako + version: 1.0.11 + dev: false + + registry.npmmirror.com/parallel-transform@1.2.0: + resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parallel-transform/-/parallel-transform-1.2.0.tgz} + name: parallel-transform + version: 1.2.0 + dependencies: + cyclist: registry.npmmirror.com/cyclist@1.0.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz} + name: param-case + version: 3.0.4 + dependencies: + dot-case: registry.npmmirror.com/dot-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz} + name: parent-module + version: 1.0.1 + engines: {node: '>=6'} + dependencies: + callsites: registry.npmmirror.com/callsites@3.1.0 + dev: false + + registry.npmmirror.com/parse-asn1@5.1.6: + resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-asn1/-/parse-asn1-5.1.6.tgz} + name: parse-asn1 + version: 5.1.6 + dependencies: + asn1.js: registry.npmmirror.com/asn1.js@5.4.1 + browserify-aes: registry.npmmirror.com/browserify-aes@1.2.0 + evp_bytestokey: registry.npmmirror.com/evp_bytestokey@1.0.3 + pbkdf2: registry.npmmirror.com/pbkdf2@3.1.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/parse-entities@2.0.0: + resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz} + name: parse-entities + version: 2.0.0 + dependencies: + character-entities: registry.npmmirror.com/character-entities@1.2.4 + character-entities-legacy: registry.npmmirror.com/character-entities-legacy@1.1.4 + character-reference-invalid: registry.npmmirror.com/character-reference-invalid@1.1.4 + is-alphanumerical: registry.npmmirror.com/is-alphanumerical@1.0.4 + is-decimal: registry.npmmirror.com/is-decimal@1.0.4 + is-hexadecimal: registry.npmmirror.com/is-hexadecimal@1.0.4 + dev: false + + registry.npmmirror.com/parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-entities/-/parse-entities-4.0.1.tgz} + name: parse-entities + version: 4.0.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + character-entities: registry.npmmirror.com/character-entities@2.0.2 + character-entities-legacy: registry.npmmirror.com/character-entities-legacy@3.0.0 + character-reference-invalid: registry.npmmirror.com/character-reference-invalid@2.0.1 + decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 + is-alphanumerical: registry.npmmirror.com/is-alphanumerical@2.0.1 + is-decimal: registry.npmmirror.com/is-decimal@2.0.1 + is-hexadecimal: registry.npmmirror.com/is-hexadecimal@2.0.1 + dev: false + + registry.npmmirror.com/parse-git-config@0.2.0: + resolution: {integrity: sha512-amapZFADOJtHvX2URcRfbzG2OFcW+UAwmdK2kht2N2vsH5Py65VxI5yZTlD2DjmxVhTz6htFoVCxROYUJaYOXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-git-config/-/parse-git-config-0.2.0.tgz} + name: parse-git-config + version: 0.2.0 + engines: {node: '>=0.10.0'} + dependencies: + ini: registry.npmmirror.com/ini@1.3.8 + dev: false + + registry.npmmirror.com/parse-git-config@1.1.1: + resolution: {integrity: sha512-S3LGXJZVSy/hswvbSkfdbKBRVsnqKrVu6j8fcvdtJ4TxosSELyQDsJPuGPXuZ+EyuYuJd3O4uAF8gcISR0OFrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-git-config/-/parse-git-config-1.1.1.tgz} + name: parse-git-config + version: 1.1.1 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + fs-exists-sync: registry.npmmirror.com/fs-exists-sync@0.1.0 + git-config-path: registry.npmmirror.com/git-config-path@1.0.1 + ini: registry.npmmirror.com/ini@1.3.8 + dev: false + + registry.npmmirror.com/parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz} + name: parse-json + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 + error-ex: registry.npmmirror.com/error-ex@1.3.2 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 + lines-and-columns: registry.npmmirror.com/lines-and-columns@1.2.4 + dev: false + + registry.npmmirror.com/parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz} + name: parse-node-version + version: 1.0.1 + engines: {node: '>= 0.10'} + dev: false + + registry.npmmirror.com/parse-passwd@1.0.0: + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-passwd/-/parse-passwd-1.0.0.tgz} + name: parse-passwd + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz} + name: parse5 + version: 6.0.1 + dev: false + + registry.npmmirror.com/parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse5/-/parse5-7.1.2.tgz} + name: parse5 + version: 7.1.2 + dependencies: + entities: registry.npmmirror.com/entities@4.5.0 + dev: false + + registry.npmmirror.com/parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parseley/-/parseley-0.12.1.tgz} + name: parseley + version: 0.12.1 + dependencies: + leac: registry.npmmirror.com/leac@0.6.0 + peberminta: registry.npmmirror.com/peberminta@0.9.0 + dev: false + + registry.npmmirror.com/pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz} + name: pascal-case + version: 3.1.2 + dependencies: + no-case: registry.npmmirror.com/no-case@3.0.4 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/path-browserify@0.0.1: + resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz} + name: path-browserify + version: 0.0.1 + dev: false + + registry.npmmirror.com/path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} + name: path-exists + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} + name: path-is-absolute + version: 1.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/path-is-inside@1.0.2: + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz} + name: path-is-inside + version: 1.0.2 + dev: false + + registry.npmmirror.com/path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz} + name: path-key + version: 2.0.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} + name: path-key + version: 3.1.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz} + name: path-key + version: 4.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: false + + registry.npmmirror.com/path-to-regexp@1.7.0: + resolution: {integrity: sha512-nifX1uj4S9IrK/w3Xe7kKvNEepXivANs9ng60Iq7PU/BlouV3yL/VUhFqTuTq33ykwUqoNcTeGo5vdOBP4jS/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz} + name: path-to-regexp + version: 1.7.0 + dependencies: + isarray: registry.npmmirror.com/isarray@0.0.1 + dev: false + + registry.npmmirror.com/path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} + name: path-type + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz} + name: pbkdf2 + version: 3.1.2 + engines: {node: '>=0.12'} + dependencies: + create-hash: registry.npmmirror.com/create-hash@1.2.0 + create-hmac: registry.npmmirror.com/create-hmac@1.1.7 + ripemd160: registry.npmmirror.com/ripemd160@2.0.2 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + sha.js: registry.npmmirror.com/sha.js@2.4.11 + dev: false + + registry.npmmirror.com/peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/peberminta/-/peberminta-0.9.0.tgz} + name: peberminta + version: 0.9.0 + dev: false + + registry.npmmirror.com/picocolors@1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + dev: false + + registry.npmmirror.com/picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + dev: false + + registry.npmmirror.com/pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz} + name: pify + version: 3.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/pino-abstract-transport@0.5.0: + resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz} + name: pino-abstract-transport + version: 0.5.0 + dependencies: + duplexify: registry.npmmirror.com/duplexify@4.1.2 + split2: registry.npmmirror.com/split2@4.2.0 + dev: false + + registry.npmmirror.com/pino-std-serializers@4.0.0: + resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz} + name: pino-std-serializers + version: 4.0.0 + dev: false + + registry.npmmirror.com/pino@7.11.0: + resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino/-/pino-7.11.0.tgz} + name: pino + version: 7.11.0 + hasBin: true + dependencies: + atomic-sleep: registry.npmmirror.com/atomic-sleep@1.0.0 + fast-redact: registry.npmmirror.com/fast-redact@3.3.0 + on-exit-leak-free: registry.npmmirror.com/on-exit-leak-free@0.2.0 + pino-abstract-transport: registry.npmmirror.com/pino-abstract-transport@0.5.0 + pino-std-serializers: registry.npmmirror.com/pino-std-serializers@4.0.0 + process-warning: registry.npmmirror.com/process-warning@1.0.0 + quick-format-unescaped: registry.npmmirror.com/quick-format-unescaped@4.0.4 + real-require: registry.npmmirror.com/real-require@0.1.0 + safe-stable-stringify: registry.npmmirror.com/safe-stable-stringify@2.4.3 + sonic-boom: registry.npmmirror.com/sonic-boom@2.8.0 + thread-stream: registry.npmmirror.com/thread-stream@0.15.2 + dev: false + + registry.npmmirror.com/pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz} + name: pirates + version: 4.0.6 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pluralize/-/pluralize-8.0.0.tgz} + name: pluralize + version: 8.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/point-in-polygon@1.1.0: + resolution: {integrity: sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/point-in-polygon/-/point-in-polygon-1.1.0.tgz} + name: point-in-polygon + version: 1.1.0 + dev: false + + registry.npmmirror.com/polished@4.2.2: + resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/polished/-/polished-4.2.2.tgz} + name: polished + version: 4.2.2 + engines: {node: '>=10'} + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + dev: false + + registry.npmmirror.com/postcss-attribute-case-insensitive@5.0.2(postcss@8.4.31): + resolution: {integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz} + id: registry.npmmirror.com/postcss-attribute-case-insensitive/5.0.2 + name: postcss-attribute-case-insensitive + version: 5.0.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-clamp@4.1.0(postcss@8.4.31): + resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz} + id: registry.npmmirror.com/postcss-clamp/4.1.0 + name: postcss-clamp + version: 4.1.0 + engines: {node: '>=7.6.0'} + peerDependencies: + postcss: ^8.4.6 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-color-functional-notation@4.2.4(postcss@8.4.31): + resolution: {integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz} + id: registry.npmmirror.com/postcss-color-functional-notation/4.2.4 + name: postcss-color-functional-notation + version: 4.2.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-color-hex-alpha@8.0.4(postcss@8.4.31): + resolution: {integrity: sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz} + id: registry.npmmirror.com/postcss-color-hex-alpha/8.0.4 + name: postcss-color-hex-alpha + version: 8.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-color-rebeccapurple@7.1.1(postcss@8.4.31): + resolution: {integrity: sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz} + id: registry.npmmirror.com/postcss-color-rebeccapurple/7.1.1 + name: postcss-color-rebeccapurple + version: 7.1.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-custom-media@8.0.2(postcss@8.4.31): + resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz} + id: registry.npmmirror.com/postcss-custom-media/8.0.2 + name: postcss-custom-media + version: 8.0.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-custom-properties@12.1.11(postcss@8.4.31): + resolution: {integrity: sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz} + id: registry.npmmirror.com/postcss-custom-properties/12.1.11 + name: postcss-custom-properties + version: 12.1.11 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-custom-selectors@6.0.3(postcss@8.4.31): + resolution: {integrity: sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz} + id: registry.npmmirror.com/postcss-custom-selectors/6.0.3 + name: postcss-custom-selectors + version: 6.0.3 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-dir-pseudo-class@6.0.5(postcss@8.4.31): + resolution: {integrity: sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz} + id: registry.npmmirror.com/postcss-dir-pseudo-class/6.0.5 + name: postcss-dir-pseudo-class + version: 6.0.5 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-double-position-gradients@3.1.2(postcss@8.4.31): + resolution: {integrity: sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz} + id: registry.npmmirror.com/postcss-double-position-gradients/3.1.2 + name: postcss-double-position-gradients + version: 3.1.2 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-env-function@4.0.6(postcss@8.4.31): + resolution: {integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz} + id: registry.npmmirror.com/postcss-env-function/4.0.6 + name: postcss-env-function + version: 4.0.6 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-flexbugs-fixes@5.0.2(postcss@8.4.31): + resolution: {integrity: sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz} + id: registry.npmmirror.com/postcss-flexbugs-fixes/5.0.2 + name: postcss-flexbugs-fixes + version: 5.0.2 + peerDependencies: + postcss: ^8.1.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-focus-visible@6.0.4(postcss@8.4.31): + resolution: {integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz} + id: registry.npmmirror.com/postcss-focus-visible/6.0.4 + name: postcss-focus-visible + version: 6.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-focus-within@5.0.4(postcss@8.4.31): + resolution: {integrity: sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz} + id: registry.npmmirror.com/postcss-focus-within/5.0.4 + name: postcss-focus-within + version: 5.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-font-variant@5.0.0(postcss@8.4.31): + resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz} + id: registry.npmmirror.com/postcss-font-variant/5.0.0 + name: postcss-font-variant + version: 5.0.0 + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-gap-properties@3.0.5(postcss@8.4.31): + resolution: {integrity: sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz} + id: registry.npmmirror.com/postcss-gap-properties/3.0.5 + name: postcss-gap-properties + version: 3.0.5 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-image-set-function@4.0.7(postcss@8.4.31): + resolution: {integrity: sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz} + id: registry.npmmirror.com/postcss-image-set-function/4.0.7 + name: postcss-image-set-function + version: 4.0.7 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-initial@4.0.1(postcss@8.4.31): + resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-initial/-/postcss-initial-4.0.1.tgz} + id: registry.npmmirror.com/postcss-initial/4.0.1 + name: postcss-initial + version: 4.0.1 + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-lab-function@4.2.1(postcss@8.4.31): + resolution: {integrity: sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz} + id: registry.npmmirror.com/postcss-lab-function/4.2.1 + name: postcss-lab-function + version: 4.2.1 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-logical@5.0.4(postcss@8.4.31): + resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-logical/-/postcss-logical-5.0.4.tgz} + id: registry.npmmirror.com/postcss-logical/5.0.4 + name: postcss-logical + version: 5.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-media-minmax@5.0.0(postcss@8.4.31): + resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz} + id: registry.npmmirror.com/postcss-media-minmax/5.0.0 + name: postcss-media-minmax + version: 5.0.0 + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz} + name: postcss-media-query-parser + version: 0.2.3 + dev: false + + registry.npmmirror.com/postcss-modules-extract-imports@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz} + id: registry.npmmirror.com/postcss-modules-extract-imports/3.0.0 + name: postcss-modules-extract-imports + version: 3.0.0 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-modules-local-by-default@4.0.3(postcss@8.4.31): + resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz} + id: registry.npmmirror.com/postcss-modules-local-by-default/4.0.3 + name: postcss-modules-local-by-default + version: 4.0.3 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-modules-scope@3.0.0(postcss@8.4.31): + resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz} + id: registry.npmmirror.com/postcss-modules-scope/3.0.0 + name: postcss-modules-scope + version: 3.0.0 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-modules-values@4.0.0(postcss@8.4.31): + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz} + id: registry.npmmirror.com/postcss-modules-values/4.0.0 + name: postcss-modules-values + version: 4.0.0 + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31) + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-nesting@10.2.0(postcss@8.4.31): + resolution: {integrity: sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz} + id: registry.npmmirror.com/postcss-nesting/10.2.0 + name: postcss-nesting + version: 10.2.0 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + '@csstools/selector-specificity': registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13) + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-opacity-percentage@1.1.3(postcss@8.4.31): + resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz} + id: registry.npmmirror.com/postcss-opacity-percentage/1.1.3 + name: postcss-opacity-percentage + version: 1.1.3 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-overflow-shorthand@3.0.4(postcss@8.4.31): + resolution: {integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz} + id: registry.npmmirror.com/postcss-overflow-shorthand/3.0.4 + name: postcss-overflow-shorthand + version: 3.0.4 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-page-break@3.0.4(postcss@8.4.31): + resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz} + id: registry.npmmirror.com/postcss-page-break/3.0.4 + name: postcss-page-break + version: 3.0.4 + peerDependencies: + postcss: ^8 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-place@7.0.5(postcss@8.4.31): + resolution: {integrity: sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-place/-/postcss-place-7.0.5.tgz} + id: registry.npmmirror.com/postcss-place/7.0.5 + name: postcss-place + version: 7.0.5 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-prefix-selector@1.16.0(postcss@8.4.31): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz} + id: registry.npmmirror.com/postcss-prefix-selector/1.16.0 + name: postcss-prefix-selector + version: 1.16.0 + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31): + resolution: {integrity: sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-preset-env/-/postcss-preset-env-7.5.0.tgz} + id: registry.npmmirror.com/postcss-preset-env/7.5.0 + name: postcss-preset-env + version: 7.5.0 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-color-function': registry.npmmirror.com/@csstools/postcss-color-function@1.1.1(postcss@8.4.31) + '@csstools/postcss-font-format-keywords': registry.npmmirror.com/@csstools/postcss-font-format-keywords@1.0.1(postcss@8.4.31) + '@csstools/postcss-hwb-function': registry.npmmirror.com/@csstools/postcss-hwb-function@1.0.2(postcss@8.4.31) + '@csstools/postcss-ic-unit': registry.npmmirror.com/@csstools/postcss-ic-unit@1.0.1(postcss@8.4.31) + '@csstools/postcss-is-pseudo-class': registry.npmmirror.com/@csstools/postcss-is-pseudo-class@2.0.7(postcss@8.4.31) + '@csstools/postcss-normalize-display-values': registry.npmmirror.com/@csstools/postcss-normalize-display-values@1.0.1(postcss@8.4.31) + '@csstools/postcss-oklab-function': registry.npmmirror.com/@csstools/postcss-oklab-function@1.1.1(postcss@8.4.31) + '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) + '@csstools/postcss-stepped-value-functions': registry.npmmirror.com/@csstools/postcss-stepped-value-functions@1.0.1(postcss@8.4.31) + '@csstools/postcss-unset-value': registry.npmmirror.com/@csstools/postcss-unset-value@1.0.2(postcss@8.4.31) + autoprefixer: registry.npmmirror.com/autoprefixer@10.4.16(postcss@8.4.31) + browserslist: registry.npmmirror.com/browserslist@4.22.1 + css-blank-pseudo: registry.npmmirror.com/css-blank-pseudo@3.0.3(postcss@8.4.31) + css-has-pseudo: registry.npmmirror.com/css-has-pseudo@3.0.4(postcss@8.4.31) + css-prefers-color-scheme: registry.npmmirror.com/css-prefers-color-scheme@6.0.3(postcss@8.4.31) + cssdb: registry.npmmirror.com/cssdb@6.6.3 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-attribute-case-insensitive: registry.npmmirror.com/postcss-attribute-case-insensitive@5.0.2(postcss@8.4.31) + postcss-clamp: registry.npmmirror.com/postcss-clamp@4.1.0(postcss@8.4.31) + postcss-color-functional-notation: registry.npmmirror.com/postcss-color-functional-notation@4.2.4(postcss@8.4.31) + postcss-color-hex-alpha: registry.npmmirror.com/postcss-color-hex-alpha@8.0.4(postcss@8.4.31) + postcss-color-rebeccapurple: registry.npmmirror.com/postcss-color-rebeccapurple@7.1.1(postcss@8.4.31) + postcss-custom-media: registry.npmmirror.com/postcss-custom-media@8.0.2(postcss@8.4.31) + postcss-custom-properties: registry.npmmirror.com/postcss-custom-properties@12.1.11(postcss@8.4.31) + postcss-custom-selectors: registry.npmmirror.com/postcss-custom-selectors@6.0.3(postcss@8.4.31) + postcss-dir-pseudo-class: registry.npmmirror.com/postcss-dir-pseudo-class@6.0.5(postcss@8.4.31) + postcss-double-position-gradients: registry.npmmirror.com/postcss-double-position-gradients@3.1.2(postcss@8.4.31) + postcss-env-function: registry.npmmirror.com/postcss-env-function@4.0.6(postcss@8.4.31) + postcss-focus-visible: registry.npmmirror.com/postcss-focus-visible@6.0.4(postcss@8.4.31) + postcss-focus-within: registry.npmmirror.com/postcss-focus-within@5.0.4(postcss@8.4.31) + postcss-font-variant: registry.npmmirror.com/postcss-font-variant@5.0.0(postcss@8.4.31) + postcss-gap-properties: registry.npmmirror.com/postcss-gap-properties@3.0.5(postcss@8.4.31) + postcss-image-set-function: registry.npmmirror.com/postcss-image-set-function@4.0.7(postcss@8.4.31) + postcss-initial: registry.npmmirror.com/postcss-initial@4.0.1(postcss@8.4.31) + postcss-lab-function: registry.npmmirror.com/postcss-lab-function@4.2.1(postcss@8.4.31) + postcss-logical: registry.npmmirror.com/postcss-logical@5.0.4(postcss@8.4.31) + postcss-media-minmax: registry.npmmirror.com/postcss-media-minmax@5.0.0(postcss@8.4.31) + postcss-nesting: registry.npmmirror.com/postcss-nesting@10.2.0(postcss@8.4.31) + postcss-opacity-percentage: registry.npmmirror.com/postcss-opacity-percentage@1.1.3(postcss@8.4.31) + postcss-overflow-shorthand: registry.npmmirror.com/postcss-overflow-shorthand@3.0.4(postcss@8.4.31) + postcss-page-break: registry.npmmirror.com/postcss-page-break@3.0.4(postcss@8.4.31) + postcss-place: registry.npmmirror.com/postcss-place@7.0.5(postcss@8.4.31) + postcss-pseudo-class-any-link: registry.npmmirror.com/postcss-pseudo-class-any-link@7.1.6(postcss@8.4.31) + postcss-replace-overflow-wrap: registry.npmmirror.com/postcss-replace-overflow-wrap@4.0.0(postcss@8.4.31) + postcss-selector-not: registry.npmmirror.com/postcss-selector-not@5.0.0(postcss@8.4.31) + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: false + + registry.npmmirror.com/postcss-pseudo-class-any-link@7.1.6(postcss@8.4.31): + resolution: {integrity: sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz} + id: registry.npmmirror.com/postcss-pseudo-class-any-link/7.1.6 + name: postcss-pseudo-class-any-link + version: 7.1.6 + engines: {node: ^12 || ^14 || >=16} + peerDependencies: + postcss: ^8.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: false + + registry.npmmirror.com/postcss-replace-overflow-wrap@4.0.0(postcss@8.4.31): + resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz} + id: registry.npmmirror.com/postcss-replace-overflow-wrap/4.0.0 + name: postcss-replace-overflow-wrap + version: 4.0.0 + peerDependencies: + postcss: ^8.0.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-resolve-nested-selector@0.1.1: + resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz} + name: postcss-resolve-nested-selector + version: 0.1.1 + dev: false + + registry.npmmirror.com/postcss-safe-parser@6.0.0(postcss@8.4.31): + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz} + id: registry.npmmirror.com/postcss-safe-parser/6.0.0 + name: postcss-safe-parser + version: 6.0.0 + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.3.3 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-selector-not@5.0.0(postcss@8.4.31): + resolution: {integrity: sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz} + id: registry.npmmirror.com/postcss-selector-not/5.0.0 + name: postcss-selector-not + version: 5.0.0 + peerDependencies: + postcss: ^8.1.0 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-selector-parser@6.0.13: + resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz} + name: postcss-selector-parser + version: 6.0.13 + engines: {node: '>=4'} + dependencies: + cssesc: registry.npmmirror.com/cssesc@3.0.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: false + + registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.31): + resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz} + id: registry.npmmirror.com/postcss-syntax/0.36.2 + name: postcss-syntax + version: 0.36.2 + peerDependencies: + postcss: '>=5.0.0' + postcss-html: '*' + postcss-jsx: '*' + postcss-less: '*' + postcss-markdown: '*' + postcss-scss: '*' + peerDependenciesMeta: + postcss-html: + optional: true + postcss-jsx: + optional: true + postcss-less: + optional: true + postcss-markdown: + optional: true + postcss-scss: + optional: true + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.31 + dev: false + + registry.npmmirror.com/postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} + name: postcss-value-parser + version: 4.2.0 + dev: false + + registry.npmmirror.com/postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz} + name: postcss + version: 8.4.31 + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: registry.npmmirror.com/nanoid@3.3.7 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: false + + registry.npmmirror.com/prepend-http@1.0.4: + resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prepend-http/-/prepend-http-1.0.4.tgz} + name: prepend-http + version: 1.0.4 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/prettier-plugin-organize-imports@3.2.4(prettier@3.1.0)(typescript@5.3.2): + resolution: {integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.4.tgz} + id: registry.npmmirror.com/prettier-plugin-organize-imports/3.2.4 + name: prettier-plugin-organize-imports + version: 3.2.4 + peerDependencies: + '@volar/vue-language-plugin-pug': ^1.0.4 + '@volar/vue-typescript': ^1.0.4 + prettier: '>=2.0' + typescript: '>=2.9' + peerDependenciesMeta: + '@volar/vue-language-plugin-pug': + optional: true + '@volar/vue-typescript': + optional: true + dependencies: + prettier: 3.1.0 + typescript: 5.3.2 + dev: false + + registry.npmmirror.com/prettier-plugin-packagejson@2.4.3(prettier@3.1.0): + resolution: {integrity: sha512-kPeeviJiwy0BgOSk7No8NmzzXfW4R9FYWni6ziA5zc1kGVVrKnBzMZdu2TUhI+I7h8/5Htt3vARYOk7KKJTTNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.4.3.tgz} + id: registry.npmmirror.com/prettier-plugin-packagejson/2.4.3 + name: prettier-plugin-packagejson + version: 2.4.3 + peerDependencies: + prettier: '>= 1.16.0' + peerDependenciesMeta: + prettier: + optional: true + dependencies: + prettier: 3.1.0 + sort-package-json: registry.npmmirror.com/sort-package-json@2.4.1 + synckit: registry.npmmirror.com/synckit@0.8.5 + dev: false + + registry.npmmirror.com/pretty-error@4.0.0: + resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz} + name: pretty-error + version: 4.0.0 + dependencies: + lodash: registry.npmmirror.com/lodash@4.17.21 + renderkid: registry.npmmirror.com/renderkid@3.0.0 + dev: false + + registry.npmmirror.com/prism-react-renderer@1.3.5(react@18.2.0): + resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz} + id: registry.npmmirror.com/prism-react-renderer/1.3.5 + name: prism-react-renderer + version: 1.3.5 + peerDependencies: + react: '>=0.14.9' + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/prism-themes@1.9.0: + resolution: {integrity: sha512-tX2AYsehKDw1EORwBps+WhBFKc2kxfoFpQAjxBndbZKr4fRmMkv47XN0BghC/K1qwodB1otbe4oF23vUTFDokw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prism-themes/-/prism-themes-1.9.0.tgz} + name: prism-themes + version: 1.9.0 + dev: false + + registry.npmmirror.com/prismjs@1.27.0: + resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prismjs/-/prismjs-1.27.0.tgz} + name: prismjs + version: 1.27.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz} + name: prismjs + version: 1.29.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz} + name: process-nextick-args + version: 2.0.1 + dev: false + + registry.npmmirror.com/process-warning@1.0.0: + resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/process-warning/-/process-warning-1.0.0.tgz} + name: process-warning + version: 1.0.0 + dev: false + + registry.npmmirror.com/process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/process/-/process-0.11.10.tgz} + name: process + version: 0.11.10 + engines: {node: '>= 0.6.0'} + dev: false + + registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2): + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz} + id: registry.npmmirror.com/promise-inflight/1.0.1 + name: promise-inflight + version: 1.0.1 + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + dependencies: + bluebird: registry.npmmirror.com/bluebird@3.7.2 + dev: false + + registry.npmmirror.com/promise-retry@1.1.1: + resolution: {integrity: sha512-StEy2osPr28o17bIW776GtwO6+Q+M9zPiZkYfosciUUMYqjhU/ffwRAH0zN2+uvGyUsn8/YICIHRzLbPacpZGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise-retry/-/promise-retry-1.1.1.tgz} + name: promise-retry + version: 1.1.1 + engines: {node: '>=0.12'} + dependencies: + err-code: registry.npmmirror.com/err-code@1.1.2 + retry: registry.npmmirror.com/retry@0.10.1 + dev: false + + registry.npmmirror.com/prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz} + name: prop-types + version: 15.8.1 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + object-assign: registry.npmmirror.com/object-assign@4.1.1 + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + + registry.npmmirror.com/property-information@5.6.0: + resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/property-information/-/property-information-5.6.0.tgz} + name: property-information + version: 5.6.0 + dependencies: + xtend: registry.npmmirror.com/xtend@4.0.2 + dev: false + + registry.npmmirror.com/property-information@6.4.0: + resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/property-information/-/property-information-6.4.0.tgz} + name: property-information + version: 6.4.0 + dev: false + + registry.npmmirror.com/protoduck@4.0.0: + resolution: {integrity: sha512-9sxuz0YTU/68O98xuDn8NBxTVH9EuMhrBTxZdiBL0/qxRmWhB/5a8MagAebDa+98vluAZTs8kMZibCdezbRCeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/protoduck/-/protoduck-4.0.0.tgz} + name: protoduck + version: 4.0.0 + dependencies: + genfun: registry.npmmirror.com/genfun@4.0.1 + dev: false + + registry.npmmirror.com/pseudomap@1.0.2: + resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz} + name: pseudomap + version: 1.0.2 + dev: false + + registry.npmmirror.com/public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/public-encrypt/-/public-encrypt-4.0.3.tgz} + name: public-encrypt + version: 4.0.3 + dependencies: + bn.js: registry.npmmirror.com/bn.js@4.12.0 + browserify-rsa: registry.npmmirror.com/browserify-rsa@4.1.0 + create-hash: registry.npmmirror.com/create-hash@1.2.0 + parse-asn1: registry.npmmirror.com/parse-asn1@5.1.6 + randombytes: registry.npmmirror.com/randombytes@2.1.0 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/pump@1.0.3: + resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pump/-/pump-1.0.3.tgz} + name: pump + version: 1.0.3 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + once: registry.npmmirror.com/once@1.4.0 + dev: false + + registry.npmmirror.com/pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz} + name: pump + version: 2.0.1 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + once: registry.npmmirror.com/once@1.4.0 + dev: false + + registry.npmmirror.com/pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pumpify/-/pumpify-1.5.1.tgz} + name: pumpify + version: 1.5.1 + dependencies: + duplexify: registry.npmmirror.com/duplexify@3.7.1 + inherits: registry.npmmirror.com/inherits@2.0.4 + pump: registry.npmmirror.com/pump@2.0.1 + dev: false + + registry.npmmirror.com/punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz} + name: punycode + version: 1.4.1 + dev: false + + registry.npmmirror.com/punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz} + name: punycode + version: 2.3.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/q@1.5.1: + resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/q/-/q-1.5.1.tgz} + name: q + version: 1.5.1 + engines: {node: '>=0.6.0', teleport: '>=0.2.0'} + dev: false + + registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0): + resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qrcode.react/-/qrcode.react-3.1.0.tgz} + id: registry.npmmirror.com/qrcode.react/3.1.0 + name: qrcode.react + version: 3.1.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/qs@6.11.2: + resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz} + name: qs + version: 6.11.2 + engines: {node: '>=0.6'} + dependencies: + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: false + + registry.npmmirror.com/query-string@6.14.1: + resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/query-string/-/query-string-6.14.1.tgz} + name: query-string + version: 6.14.1 + engines: {node: '>=6'} + dependencies: + decode-uri-component: registry.npmmirror.com/decode-uri-component@0.2.2 + filter-obj: registry.npmmirror.com/filter-obj@1.1.0 + split-on-first: registry.npmmirror.com/split-on-first@1.1.0 + strict-uri-encode: registry.npmmirror.com/strict-uri-encode@2.0.0 + dev: false + + registry.npmmirror.com/querystring-es3@0.2.1: + resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/querystring-es3/-/querystring-es3-0.2.1.tgz} + name: querystring-es3 + version: 0.2.1 + engines: {node: '>=0.4.x'} + dev: false + + registry.npmmirror.com/queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} + name: queue-microtask + version: 1.2.3 + dev: false + + registry.npmmirror.com/queue@6.0.1: + resolution: {integrity: sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue/-/queue-6.0.1.tgz} + name: queue + version: 6.0.1 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + dev: false + + registry.npmmirror.com/quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz} + name: quick-format-unescaped + version: 4.0.4 + dev: false + + registry.npmmirror.com/quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz} + name: quick-lru + version: 4.0.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/ramda@0.29.0: + resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ramda/-/ramda-0.29.0.tgz} + name: ramda + version: 0.29.0 + dev: false + + registry.npmmirror.com/randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz} + name: randombytes + version: 2.1.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/randomfill/-/randomfill-1.0.4.tgz} + name: randomfill + version: 1.0.4 + dependencies: + randombytes: registry.npmmirror.com/randombytes@2.1.0 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/raw-loader@4.0.2(webpack@5.89.0): + resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/raw-loader/-/raw-loader-4.0.2.tgz} + id: registry.npmmirror.com/raw-loader/4.0.2 + name: raw-loader + version: 4.0.2 + engines: {node: '>= 10.13.0'} + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + dependencies: + loader-utils: registry.npmmirror.com/loader-utils@2.0.4 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.20.0.tgz} + id: registry.npmmirror.com/rc-cascader/3.20.0 + name: rc-cascader + version: 3.20.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + array-tree-filter: registry.npmmirror.com/array-tree-filter@2.1.0 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-3.1.0.tgz} + id: registry.npmmirror.com/rc-checkbox/3.1.0 + name: rc-checkbox + version: 3.1.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-collapse/-/rc-collapse-3.7.1.tgz} + id: registry.npmmirror.com/rc-collapse/3.7.1 + name: rc-collapse + version: 3.7.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dialog/-/rc-dialog-9.3.4.tgz} + id: registry.npmmirror.com/rc-dialog/9.3.4 + name: rc-dialog + version: 9.3.4 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-drawer/-/rc-drawer-6.5.2.tgz} + id: registry.npmmirror.com/rc-drawer/6.5.2 + name: rc-drawer + version: 6.5.2 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.1.0.tgz} + id: registry.npmmirror.com/rc-dropdown/4.1.0 + name: rc-dropdown + version: 4.1.0 + peerDependencies: + react: '>=16.11.0' + react-dom: '>=16.11.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-field-form@1.40.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OM3N01X2BYFGJDJcwpk9/BBtlwgveE7eh2SQAKIxVCt9KVWlODYJ9ypTHQdxchfDbeJKJKxMBFXlLAmyvlgPHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.40.0.tgz} + id: registry.npmmirror.com/rc-field-form/1.40.0 + name: rc-field-form + version: 1.40.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + async-validator: registry.npmmirror.com/async-validator@4.2.5 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-footer@0.6.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-JBZ+xcb6kkex8XnBd4VHw1ZxjV6kmcwUumSHaIFdka2qzMCo7Klcy4sI6G0XtUpG/vtpislQCc+S9Bc+NLHYMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-footer/-/rc-footer-0.6.8.tgz} + id: registry.npmmirror.com/rc-footer/0.6.8 + name: rc-footer + version: 0.6.8 + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-image/-/rc-image-7.5.1.tgz} + id: registry.npmmirror.com/rc-image/7.5.1 + name: rc-image + version: 7.5.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-dialog: registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-input-number/-/rc-input-number-8.4.0.tgz} + id: registry.npmmirror.com/rc-input-number/8.4.0 + name: rc-input-number + version: 8.4.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/mini-decimal': registry.npmmirror.com/@rc-component/mini-decimal@1.1.0 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-/HjTaKi8/Ts4zNbYaB5oWCquxFyFQO4Co1MnMgoCeGJlpe7k8Eir2HN0a0F9IHDmmo+GYiGgPpz7w/d/krzsJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-input/-/rc-input-1.3.6.tgz} + id: registry.npmmirror.com/rc-input/1.3.6 + name: rc-input + version: 1.3.6 + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.9.1.tgz} + id: registry.npmmirror.com/rc-mentions/2.9.1 + name: rc-mentions + version: 2.9.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-menu: registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-textarea: registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-menu/-/rc-menu-9.12.2.tgz} + id: registry.npmmirror.com/rc-menu/9.12.2 + name: rc-menu + version: 9.12.2 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-overflow: registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-motion/-/rc-motion-2.9.0.tgz} + id: registry.npmmirror.com/rc-motion/2.9.0 + name: rc-motion + version: 2.9.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-notification/-/rc-notification-5.3.0.tgz} + id: registry.npmmirror.com/rc-notification/5.3.0 + name: rc-notification + version: 5.3.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.3.2.tgz} + id: registry.npmmirror.com/rc-overflow/1.3.2 + name: rc-overflow + version: 1.3.2 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-pagination@3.7.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-IxSzKapd13L91/195o1TPkKnCNw8gIR25UP1GCW/7c7n/slhld4npu2j2PB9IWjXm4SssaAaSAt2lscYog7wzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-pagination/-/rc-pagination-3.7.0.tgz} + id: registry.npmmirror.com/rc-pagination/3.7.0 + name: rc-pagination + version: 3.7.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-picker/-/rc-picker-3.14.6.tgz} + id: registry.npmmirror.com/rc-picker/3.14.6 + name: rc-picker + version: 3.14.6 + engines: {node: '>=8.x'} + peerDependencies: + date-fns: '>= 2.x' + dayjs: '>= 1.x' + luxon: '>= 3.x' + moment: '>= 2.x' + react: '>=16.9.0' + react-dom: '>=16.9.0' + peerDependenciesMeta: + date-fns: + optional: true + dayjs: + optional: true + luxon: + optional: true + moment: + optional: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-progress/-/rc-progress-3.5.1.tgz} + id: registry.npmmirror.com/rc-progress/3.5.1 + name: rc-progress + version: 3.5.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-rate/-/rc-rate-2.12.0.tgz} + id: registry.npmmirror.com/rc-rate/2.12.0 + name: rc-rate + version: 2.12.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz} + id: registry.npmmirror.com/rc-resize-observer/1.4.0 + name: rc-resize-observer + version: 1.4.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + dev: false + + registry.npmmirror.com/rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.2.2.tgz} + id: registry.npmmirror.com/rc-segmented/2.2.2 + name: rc-segmented + version: 2.2.2 + peerDependencies: + react: '>=16.0.0' + react-dom: '>=16.0.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-select/-/rc-select-14.10.0.tgz} + id: registry.npmmirror.com/rc-select/14.10.0 + name: rc-select + version: 14.10.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-overflow: registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-slider@10.4.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ZlpWjFhOlEf0w4Ng31avFBkXNNBj60NAcTPaIoiCxBkJ29wOtHSPMqv9PZeEoqmx64bpJkgK7kPa47HG4LPzww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-slider/-/rc-slider-10.4.0.tgz} + id: registry.npmmirror.com/rc-slider/10.4.0 + name: rc-slider + version: 10.4.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-steps/-/rc-steps-6.0.1.tgz} + id: registry.npmmirror.com/rc-steps/6.0.1 + name: rc-steps + version: 6.0.1 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-switch/-/rc-switch-4.1.0.tgz} + id: registry.npmmirror.com/rc-switch/4.1.0 + name: rc-switch + version: 4.1.0 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-3xVcdCC5OLeOOhaCg+5Lps2oPreM/GWXmUXWTSX4p6vF7F76ABM4dfPpMJ9Dnf5yGRyh+8pe7FRyhRVnWw2H/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-table/-/rc-table-7.36.0.tgz} + id: registry.npmmirror.com/rc-table/7.36.0 + name: rc-table + version: 7.36.0 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/context': registry.npmmirror.com/@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-83u3l2QkO0UznCzdBLEk9WnNcT+imtmDmMT993sUUEOGnNQAmqOdev0XjeqrcvsAMe9CDpAWDFd7L/RZw+LVJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tabs/-/rc-tabs-12.13.1.tgz} + id: registry.npmmirror.com/rc-tabs/12.13.1 + name: rc-tabs + version: 12.13.1 + engines: {node: '>=8.x'} + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-menu: registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-oH682ghHx++stFNYrosPRBfwsypywrTXpaD0/5Z8MPkUOnyOQUaY9ueL9tMu6BP1LfsuYQ1VLpg5OtshViLNgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.5.3.tgz} + id: registry.npmmirror.com/rc-textarea/1.5.3 + name: rc-textarea + version: 1.5.3 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.1.2.tgz} + id: registry.npmmirror.com/rc-tooltip/6.1.2 + name: rc-tooltip + version: 6.1.2 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.15.0.tgz} + id: registry.npmmirror.com/rc-tree-select/5.15.0 + name: rc-tree-select + version: 5.15.0 + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tree/-/rc-tree-5.8.2.tgz} + id: registry.npmmirror.com/rc-tree/5.8.2 + name: rc-tree + version: 5.8.2 + engines: {node: '>=10.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-upload/-/rc-upload-4.3.5.tgz} + id: registry.npmmirror.com/rc-upload/4.3.5 + name: rc-upload + version: 4.3.5 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-util/-/rc-util-5.38.1.tgz} + id: registry.npmmirror.com/rc-util/5.38.1 + name: rc-util + version: 5.38.1 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-is: registry.npmmirror.com/react-is@18.2.0 + dev: false + + registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.11.3.tgz} + id: registry.npmmirror.com/rc-virtual-list/3.11.3 + name: rc-virtual-list + version: 3.11.3 + engines: {node: '>=8.x'} + peerDependencies: + react: '*' + react-dom: '*' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + classnames: registry.npmmirror.com/classnames@2.3.2 + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz} + name: rc + version: 1.2.8 + hasBin: true + dependencies: + deep-extend: registry.npmmirror.com/deep-extend@0.6.0 + ini: registry.npmmirror.com/ini@1.3.8 + minimist: registry.npmmirror.com/minimist@1.2.8 + strip-json-comments: registry.npmmirror.com/strip-json-comments@2.0.1 + dev: false + + registry.npmmirror.com/react-copy-to-clipboard@5.1.0(react@18.2.0): + resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz} + id: registry.npmmirror.com/react-copy-to-clipboard/5.1.0 + name: react-copy-to-clipboard + version: 5.1.0 + peerDependencies: + react: ^15.3.0 || 16 || 17 || 18 + dependencies: + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.2.0 + dev: false + + registry.npmmirror.com/react-detectable-overflow@0.7.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-6ZotWaoCChrd9/ZISopZwpDN4kJkFNSX7zvDWF56HIzHdx8DfMQ78P4JAy0ZoAUi+9gDrhRynXaONCYVEvxDog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-detectable-overflow/-/react-detectable-overflow-0.7.1.tgz} + id: registry.npmmirror.com/react-detectable-overflow/0.7.1 + name: react-detectable-overflow + version: 0.7.1 + engines: {node: '>=18'} + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-resize-detector: registry.npmmirror.com/react-resize-detector@8.1.0(react-dom@18.2.0)(react@18.2.0) + dev: false + + registry.npmmirror.com/react-dom@18.1.0(react@18.1.0): + resolution: {integrity: sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-dom/-/react-dom-18.1.0.tgz} + id: registry.npmmirror.com/react-dom/18.1.0 + name: react-dom + version: 18.1.0 + peerDependencies: + react: ^18.1.0 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + react: registry.npmmirror.com/react@18.1.0 + scheduler: registry.npmmirror.com/scheduler@0.22.0 + dev: false + + registry.npmmirror.com/react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.5.tgz} + id: registry.npmmirror.com/react-draggable/4.4.5 + name: react-draggable + version: 4.4.5 + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + dependencies: + clsx: registry.npmmirror.com/clsx@1.2.1 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/react-error-boundary@4.0.11(react@18.2.0): + resolution: {integrity: sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-error-boundary/-/react-error-boundary-4.0.11.tgz} + id: registry.npmmirror.com/react-error-boundary/4.0.11 + name: react-error-boundary + version: 4.0.11 + peerDependencies: + react: '>=16.13.1' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + react: 18.2.0 + dev: false + + registry.npmmirror.com/react-error-overlay@6.0.9: + resolution: {integrity: sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz} + name: react-error-overlay + version: 6.0.9 + dev: false + + registry.npmmirror.com/react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz} + name: react-fast-compare + version: 3.2.2 + dev: false + + registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz} + id: registry.npmmirror.com/react-helmet-async/1.3.0 + name: react-helmet-async + version: 1.3.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + invariant: registry.npmmirror.com/invariant@2.2.4 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-fast-compare: registry.npmmirror.com/react-fast-compare@3.2.2 + shallowequal: registry.npmmirror.com/shallowequal@1.1.0 + dev: false + + registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz} + id: registry.npmmirror.com/react-helmet-async/1.3.0 + name: react-helmet-async + version: 1.3.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + invariant: registry.npmmirror.com/invariant@2.2.4 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-fast-compare: registry.npmmirror.com/react-fast-compare@3.2.2 + shallowequal: registry.npmmirror.com/shallowequal@1.1.0 + dev: false + + registry.npmmirror.com/react-intl@6.5.5(react@18.2.0)(typescript@5.3.2): + resolution: {integrity: sha512-cI5UKvBh4tc1zxLIziHBYGMX3dhYWDEFlvUDVN6NfT2i96zTXz/zH2AmM8+2waqgOhwkFUzd+7kK1G9q7fiC2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-intl/-/react-intl-6.5.5.tgz} + id: registry.npmmirror.com/react-intl/6.5.5 + name: react-intl + version: 6.5.5 + peerDependencies: + react: ^16.6.0 || 17 || 18 + typescript: '5' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 + '@formatjs/icu-messageformat-parser': registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3 + '@formatjs/intl': registry.npmmirror.com/@formatjs/intl@2.9.9(typescript@5.3.2) + '@formatjs/intl-displaynames': registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4 + '@formatjs/intl-listformat': registry.npmmirror.com/@formatjs/intl-listformat@7.5.3 + '@types/hoist-non-react-statics': registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5 + '@types/react': registry.npmmirror.com/@types/react@18.2.38 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + intl-messageformat: registry.npmmirror.com/intl-messageformat@10.5.8 + react: 18.2.0 + tslib: registry.npmmirror.com/tslib@2.6.2 + typescript: 5.3.2 + dev: false + + registry.npmmirror.com/react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz} + name: react-is + version: 16.13.1 + dev: false + + registry.npmmirror.com/react-is@18.2.0: + resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz} + name: react-is + version: 18.2.0 + dev: false + + registry.npmmirror.com/react-layout-kit@1.7.4(react@18.2.0): + resolution: {integrity: sha512-Ovvyb56kOAZCbytaXTHsWEVPHaBP368Q0jLqq37SythSibk9iB+op9iGjFPrGByWIaeslg5LcnSXjRxd4tT2ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-layout-kit/-/react-layout-kit-1.7.4.tgz} + id: registry.npmmirror.com/react-layout-kit/1.7.4 + name: react-layout-kit + version: 1.7.4 + peerDependencies: + react: '>=18' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 + react: 18.2.0 + dev: false + + registry.npmmirror.com/react-merge-refs@1.1.0: + resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz} + name: react-merge-refs + version: 1.1.0 + dev: false + + registry.npmmirror.com/react-refresh@0.14.0: + resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.0.tgz} + name: react-refresh + version: 0.14.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/react-resizable@3.0.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-resizable/-/react-resizable-3.0.5.tgz} + id: registry.npmmirror.com/react-resizable/3.0.5 + name: react-resizable + version: 3.0.5 + peerDependencies: + react: '>= 16.3' + dependencies: + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: 18.2.0 + react-draggable: registry.npmmirror.com/react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0) + transitivePeerDependencies: + - react-dom + dev: false + + registry.npmmirror.com/react-resize-detector@8.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-S7szxlaIuiy5UqLhLL1KY3aoyGHbZzsTpYal9eYMwCyKqoqoVLCmIgAgNyIM1FhnP2KyBygASJxdhejrzjMb+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-resize-detector/-/react-resize-detector-8.1.0.tgz} + id: registry.npmmirror.com/react-resize-detector/8.1.0 + name: react-resize-detector + version: 8.1.0 + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + lodash: registry.npmmirror.com/lodash@4.17.21 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0): + resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz} + id: registry.npmmirror.com/react-router-dom/6.3.0 + name: react-router-dom + version: 6.3.0 + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + history: registry.npmmirror.com/history@5.3.0 + react: registry.npmmirror.com/react@18.1.0 + react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) + react-router: registry.npmmirror.com/react-router@6.3.0(react@18.1.0) + dev: false + + registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz} + id: registry.npmmirror.com/react-router-dom/6.3.0 + name: react-router-dom + version: 6.3.0 + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + history: registry.npmmirror.com/history@5.3.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: registry.npmmirror.com/react-router@6.3.0(react@18.2.0) + dev: false + + registry.npmmirror.com/react-router@6.3.0(react@18.1.0): + resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz} + id: registry.npmmirror.com/react-router/6.3.0 + name: react-router + version: 6.3.0 + peerDependencies: + react: '>=16.8' + dependencies: + history: registry.npmmirror.com/history@5.3.0 + react: registry.npmmirror.com/react@18.1.0 + dev: false + + registry.npmmirror.com/react-router@6.3.0(react@18.2.0): + resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz} + id: registry.npmmirror.com/react-router/6.3.0 + name: react-router + version: 6.3.0 + peerDependencies: + react: '>=16.8' + dependencies: + history: registry.npmmirror.com/history@5.3.0 + react: 18.2.0 + dev: false + + registry.npmmirror.com/react-syntax-highlighter@15.5.0(react@18.2.0): + resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz} + id: registry.npmmirror.com/react-syntax-highlighter/15.5.0 + name: react-syntax-highlighter + version: 15.5.0 + peerDependencies: + react: '>= 0.14.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + highlight.js: registry.npmmirror.com/highlight.js@10.7.3 + lowlight: registry.npmmirror.com/lowlight@1.20.0 + prismjs: registry.npmmirror.com/prismjs@1.29.0 + react: 18.2.0 + refractor: registry.npmmirror.com/refractor@3.6.0 + dev: false + + registry.npmmirror.com/react@18.1.0: + resolution: {integrity: sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react/-/react-18.1.0.tgz} + name: react + version: 18.1.0 + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + dev: false + + registry.npmmirror.com/read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz} + name: read-pkg-up + version: 7.0.1 + engines: {node: '>=8'} + dependencies: + find-up: registry.npmmirror.com/find-up@4.1.0 + read-pkg: registry.npmmirror.com/read-pkg@5.2.0 + type-fest: registry.npmmirror.com/type-fest@0.8.1 + dev: false + + registry.npmmirror.com/read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz} + name: read-pkg + version: 5.2.0 + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': registry.npmmirror.com/@types/normalize-package-data@2.4.4 + normalize-package-data: registry.npmmirror.com/normalize-package-data@2.5.0 + parse-json: registry.npmmirror.com/parse-json@5.2.0 + type-fest: registry.npmmirror.com/type-fest@0.6.0 + dev: false + + registry.npmmirror.com/readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz} + name: readable-stream + version: 1.0.34 + dependencies: + core-util-is: registry.npmmirror.com/core-util-is@1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: registry.npmmirror.com/isarray@0.0.1 + string_decoder: registry.npmmirror.com/string_decoder@0.10.31 + dev: false + + registry.npmmirror.com/readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz} + name: readable-stream + version: 2.3.8 + dependencies: + core-util-is: registry.npmmirror.com/core-util-is@1.0.3 + inherits: registry.npmmirror.com/inherits@2.0.4 + isarray: registry.npmmirror.com/isarray@1.0.0 + process-nextick-args: registry.npmmirror.com/process-nextick-args@2.0.1 + safe-buffer: registry.npmmirror.com/safe-buffer@5.1.2 + string_decoder: registry.npmmirror.com/string_decoder@1.1.1 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: false + + registry.npmmirror.com/readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz} + name: readable-stream + version: 3.6.2 + engines: {node: '>= 6'} + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + string_decoder: registry.npmmirror.com/string_decoder@1.3.0 + util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + dev: false + + registry.npmmirror.com/readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} + name: readdirp + version: 3.6.0 + engines: {node: '>=8.10.0'} + dependencies: + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: false + + registry.npmmirror.com/real-require@0.1.0: + resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/real-require/-/real-require-0.1.0.tgz} + name: real-require + version: 0.1.0 + engines: {node: '>= 12.13.0'} + dev: false + + registry.npmmirror.com/redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz} + name: redent + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + indent-string: registry.npmmirror.com/indent-string@4.0.0 + strip-indent: registry.npmmirror.com/strip-indent@3.0.0 + dev: false + + registry.npmmirror.com/reflect.getprototypeof@1.0.4: + resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz} + name: reflect.getprototypeof + version: 1.0.4 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + globalthis: registry.npmmirror.com/globalthis@1.0.3 + which-builtin-type: registry.npmmirror.com/which-builtin-type@1.1.3 + dev: false + + registry.npmmirror.com/refractor@3.6.0: + resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/refractor/-/refractor-3.6.0.tgz} + name: refractor + version: 3.6.0 + dependencies: + hastscript: registry.npmmirror.com/hastscript@6.0.0 + parse-entities: registry.npmmirror.com/parse-entities@2.0.0 + prismjs: registry.npmmirror.com/prismjs@1.27.0 + dev: false + + registry.npmmirror.com/regenerate-unicode-properties@10.1.1: + resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz} + name: regenerate-unicode-properties + version: 10.1.1 + engines: {node: '>=4'} + dependencies: + regenerate: registry.npmmirror.com/regenerate@1.4.2 + dev: false + + registry.npmmirror.com/regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz} + name: regenerate + version: 1.4.2 + dev: false + + registry.npmmirror.com/regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} + name: regenerator-runtime + version: 0.13.11 + dev: false + + registry.npmmirror.com/regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz} + name: regenerator-runtime + version: 0.14.0 + dev: false + + registry.npmmirror.com/regexp.prototype.flags@1.5.1: + resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz} + name: regexp.prototype.flags + version: 1.5.1 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + dev: false + + registry.npmmirror.com/registry-auth-token@3.4.0: + resolution: {integrity: sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz} + name: registry-auth-token + version: 3.4.0 + dependencies: + rc: registry.npmmirror.com/rc@1.2.8 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/registry-url@3.1.0: + resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/registry-url/-/registry-url-3.1.0.tgz} + name: registry-url + version: 3.1.0 + engines: {node: '>=0.10.0'} + dependencies: + rc: registry.npmmirror.com/rc@1.2.8 + dev: false + + registry.npmmirror.com/rehype-autolink-headings@6.1.1: + resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-autolink-headings/-/rehype-autolink-headings-6.1.1.tgz} + name: rehype-autolink-headings + version: 6.1.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + extend: registry.npmmirror.com/extend@3.0.2 + hast-util-has-property: registry.npmmirror.com/hast-util-has-property@2.0.1 + hast-util-heading-rank: registry.npmmirror.com/hast-util-heading-rank@2.1.1 + hast-util-is-element: registry.npmmirror.com/hast-util-is-element@2.1.3 + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + + registry.npmmirror.com/rehype-remove-comments@5.0.0: + resolution: {integrity: sha512-sfiVT+u1in19sxo9vv/SDQVbHE2mADScNrpeVsUxBFl14zOMZnfPb6l4hR+lXqe10G13UFVqv5pt8zDbCR4JYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-remove-comments/-/rehype-remove-comments-5.0.0.tgz} + name: rehype-remove-comments + version: 5.0.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + hast-util-is-conditional-comment: registry.npmmirror.com/hast-util-is-conditional-comment@2.0.0 + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-filter: registry.npmmirror.com/unist-util-filter@4.0.1 + dev: false + + registry.npmmirror.com/rehype-stringify@9.0.4: + resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-9.0.4.tgz} + name: rehype-stringify + version: 9.0.4 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + hast-util-to-html: registry.npmmirror.com/hast-util-to-html@8.0.4 + unified: registry.npmmirror.com/unified@10.1.2 + dev: false + + registry.npmmirror.com/relateurl@0.2.7: + resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz} + name: relateurl + version: 0.2.7 + engines: {node: '>= 0.10'} + dev: false + + registry.npmmirror.com/remark-directive@2.0.1: + resolution: {integrity: sha512-oosbsUAkU/qmUE78anLaJePnPis4ihsE7Agp0T/oqTzvTea8pOiaYEtfInU/+xMOVTS9PN5AhGOiaIVe4GD8gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-directive/-/remark-directive-2.0.1.tgz} + name: remark-directive + version: 2.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-directive: registry.npmmirror.com/mdast-util-directive@2.2.4 + micromark-extension-directive: registry.npmmirror.com/micromark-extension-directive@2.2.1 + unified: registry.npmmirror.com/unified@10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/remark-frontmatter@4.0.1: + resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz} + name: remark-frontmatter + version: 4.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-frontmatter: registry.npmmirror.com/mdast-util-frontmatter@1.0.1 + micromark-extension-frontmatter: registry.npmmirror.com/micromark-extension-frontmatter@1.1.1 + unified: registry.npmmirror.com/unified@10.1.2 + dev: false + + registry.npmmirror.com/remark-gfm@3.0.1: + resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-gfm/-/remark-gfm-3.0.1.tgz} + name: remark-gfm + version: 3.0.1 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-gfm: registry.npmmirror.com/mdast-util-gfm@2.0.2 + micromark-extension-gfm: registry.npmmirror.com/micromark-extension-gfm@2.0.3 + unified: registry.npmmirror.com/unified@10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/remark-parse@10.0.2: + resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.2.tgz} + name: remark-parse + version: 10.0.2 + dependencies: + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 + unified: registry.npmmirror.com/unified@10.1.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/remark-rehype@10.1.0: + resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-rehype/-/remark-rehype-10.1.0.tgz} + name: remark-rehype + version: 10.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 + mdast-util-to-hast: registry.npmmirror.com/mdast-util-to-hast@12.3.0 + unified: registry.npmmirror.com/unified@10.1.2 + dev: false + + registry.npmmirror.com/remote-origin-url@0.4.0: + resolution: {integrity: sha512-HYhdsT2pNd0LP4Osb0vtQ1iassxIc3Yk1oze7j8dMJFciMkW8e0rdg9E/mOunqtSVHSzvMfwLDIYzPnEDmpk6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remote-origin-url/-/remote-origin-url-0.4.0.tgz} + name: remote-origin-url + version: 0.4.0 + engines: {node: '>= 0.8.0'} + dependencies: + parse-git-config: registry.npmmirror.com/parse-git-config@0.2.0 + dev: false + + registry.npmmirror.com/remote-origin-url@0.5.3: + resolution: {integrity: sha512-crQ7Xk1m/F2IiwBx5oTqk/c0hjoumrEz+a36+ZoVupskQRE/q7pAwHKsTNeiZ31sbSTELvVlVv4h1W0Xo5szKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remote-origin-url/-/remote-origin-url-0.5.3.tgz} + name: remote-origin-url + version: 0.5.3 + engines: {node: '>= 0.8.0'} + dependencies: + parse-git-config: registry.npmmirror.com/parse-git-config@1.1.1 + dev: false + + registry.npmmirror.com/rename-keys@1.2.0: + resolution: {integrity: sha512-U7XpAktpbSgHTRSNRrjKSrjYkZKuhUukfoBlXWXUExCAqhzh1TU3BDRAfJmarcl5voKS+pbKU9MvyLWKZ4UEEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rename-keys/-/rename-keys-1.2.0.tgz} + name: rename-keys + version: 1.2.0 + engines: {node: '>= 0.8.0'} + dev: false + + registry.npmmirror.com/renderkid@3.0.0: + resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz} + name: renderkid + version: 3.0.0 + dependencies: + css-select: registry.npmmirror.com/css-select@4.3.0 + dom-converter: registry.npmmirror.com/dom-converter@0.2.0 + htmlparser2: registry.npmmirror.com/htmlparser2@6.1.0 + lodash: registry.npmmirror.com/lodash@4.17.21 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + dev: false + + registry.npmmirror.com/require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz} + name: require-directory + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz} + name: require-from-string + version: 2.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz} + name: resize-observer-polyfill + version: 1.5.1 + dev: false + + registry.npmmirror.com/resolve-dir@0.1.1: + resolution: {integrity: sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-dir/-/resolve-dir-0.1.1.tgz} + name: resolve-dir + version: 0.1.1 + engines: {node: '>=0.10.0'} + dependencies: + expand-tilde: registry.npmmirror.com/expand-tilde@1.2.2 + global-modules: registry.npmmirror.com/global-modules@0.2.3 + dev: false + + registry.npmmirror.com/resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} + name: resolve-from + version: 4.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz} + name: resolve-from + version: 5.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz} + name: resolve-pkg-maps + version: 1.0.0 + dev: false + + registry.npmmirror.com/resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz} + name: resolve + version: 1.22.8 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + dev: false + + registry.npmmirror.com/resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.5.tgz} + name: resolve + version: 2.0.0-next.5 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + path-parse: registry.npmmirror.com/path-parse@1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 + dev: false + + registry.npmmirror.com/restore-cursor@2.0.0: + resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz} + name: restore-cursor + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + onetime: registry.npmmirror.com/onetime@2.0.1 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + dev: false + + registry.npmmirror.com/retry@0.10.1: + resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/retry/-/retry-0.10.1.tgz} + name: retry + version: 0.10.1 + dev: false + + registry.npmmirror.com/reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} + name: reusify + version: 1.0.4 + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz} + name: rimraf + version: 2.7.1 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob@7.2.3 + dev: false + + registry.npmmirror.com/rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} + name: rimraf + version: 3.0.2 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob@7.2.3 + dev: false + + registry.npmmirror.com/ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz} + name: ripemd160 + version: 2.0.2 + dependencies: + hash-base: registry.npmmirror.com/hash-base@3.1.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + dev: false + + registry.npmmirror.com/rollup-plugin-visualizer@5.9.0(rollup@4.5.2): + resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz} + id: registry.npmmirror.com/rollup-plugin-visualizer/5.9.0 + name: rollup-plugin-visualizer + version: 5.9.0 + engines: {node: '>=14'} + hasBin: true + peerDependencies: + rollup: 2.x || 3.x + peerDependenciesMeta: + rollup: + optional: true + dependencies: + open: registry.npmmirror.com/open@8.4.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: 4.5.2 + source-map: registry.npmmirror.com/source-map@0.7.4 + yargs: registry.npmmirror.com/yargs@17.7.2 + dev: false + + registry.npmmirror.com/rollup@3.29.4: + resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz} + name: rollup + version: 3.29.4 + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/run-applescript@5.0.0: + resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz} + name: run-applescript + version: 5.0.0 + engines: {node: '>=12'} + dependencies: + execa: registry.npmmirror.com/execa@5.1.1 + dev: false + + registry.npmmirror.com/run-async@2.4.1: + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz} + name: run-async + version: 2.4.1 + engines: {node: '>=0.12.0'} + dev: false + + registry.npmmirror.com/run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} + name: run-parallel + version: 1.2.0 + dependencies: + queue-microtask: registry.npmmirror.com/queue-microtask@1.2.3 + dev: false + + registry.npmmirror.com/run-queue@1.0.3: + resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz} + name: run-queue + version: 1.0.3 + dependencies: + aproba: registry.npmmirror.com/aproba@1.2.0 + dev: false + + registry.npmmirror.com/rxjs@6.6.7: + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz} + name: rxjs + version: 6.6.7 + engines: {npm: '>=2.0.0'} + dependencies: + tslib: registry.npmmirror.com/tslib@1.14.1 + dev: false + + registry.npmmirror.com/sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz} + name: sade + version: 1.8.1 + engines: {node: '>=6'} + dependencies: + mri: registry.npmmirror.com/mri@1.2.0 + dev: false + + registry.npmmirror.com/safe-array-concat@1.0.1: + resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz} + name: safe-array-concat + version: 1.0.1 + engines: {node: '>=0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + isarray: registry.npmmirror.com/isarray@2.0.5 + dev: false + + registry.npmmirror.com/safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz} + name: safe-buffer + version: 5.1.2 + dev: false + + registry.npmmirror.com/safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} + name: safe-buffer + version: 5.2.1 + dev: false + + registry.npmmirror.com/safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz} + name: safe-regex-test + version: 1.0.0 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + dev: false + + registry.npmmirror.com/safe-stable-stringify@2.4.3: + resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz} + name: safe-stable-stringify + version: 2.4.3 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} + name: safer-buffer + version: 2.1.2 + dev: false + + registry.npmmirror.com/sass@1.69.5: + resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sass/-/sass-1.69.5.tgz} + name: sass + version: 1.69.5 + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: registry.npmmirror.com/chokidar@3.5.3 + immutable: registry.npmmirror.com/immutable@4.3.4 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: false + + registry.npmmirror.com/sax@1.2.4: + resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz} + name: sax + version: 1.2.4 + dev: false + + registry.npmmirror.com/sax@1.3.0: + resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz} + name: sax + version: 1.3.0 + dev: false + + registry.npmmirror.com/scheduler@0.22.0: + resolution: {integrity: sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scheduler/-/scheduler-0.22.0.tgz} + name: scheduler + version: 0.22.0 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify@1.4.0 + dev: false + + registry.npmmirror.com/schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz} + name: schema-utils + version: 3.3.0 + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 + ajv: registry.npmmirror.com/ajv@6.12.6 + ajv-keywords: registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6) + dev: false + + registry.npmmirror.com/screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz} + name: screenfull + version: 5.2.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz} + name: scroll-into-view-if-needed + version: 3.1.0 + dependencies: + compute-scroll-into-view: registry.npmmirror.com/compute-scroll-into-view@3.1.0 + dev: false + + registry.npmmirror.com/selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/selderee/-/selderee-0.11.0.tgz} + name: selderee + version: 0.11.0 + dependencies: + parseley: registry.npmmirror.com/parseley@0.12.1 + dev: false + + registry.npmmirror.com/select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz} + name: select-hose + version: 2.0.0 + dev: false + + registry.npmmirror.com/semver-diff@2.1.0: + resolution: {integrity: sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver-diff/-/semver-diff-2.1.0.tgz} + name: semver-diff + version: 2.1.0 + engines: {node: '>=0.10.0'} + dependencies: + semver: registry.npmmirror.com/semver@5.7.2 + dev: false + + registry.npmmirror.com/semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz} + name: semver + version: 5.7.2 + hasBin: true + dev: false + + registry.npmmirror.com/semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz} + name: semver + version: 6.3.1 + hasBin: true + dev: false + + registry.npmmirror.com/semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz} + name: semver + version: 7.5.4 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@6.0.0 + dev: false + + registry.npmmirror.com/serialize-javascript@6.0.1: + resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz} + name: serialize-javascript + version: 6.0.1 + dependencies: + randombytes: registry.npmmirror.com/randombytes@2.1.0 + dev: false + + registry.npmmirror.com/set-function-length@1.1.1: + resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-function-length/-/set-function-length-1.1.1.tgz} + name: set-function-length + version: 1.1.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + dev: false + + registry.npmmirror.com/set-function-name@2.0.1: + resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz} + name: set-function-name + version: 2.0.1 + engines: {node: '>= 0.4'} + dependencies: + define-data-property: registry.npmmirror.com/define-data-property@1.1.1 + functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 + has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + dev: false + + registry.npmmirror.com/setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz} + name: setimmediate + version: 1.0.5 + dev: false + + registry.npmmirror.com/sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz} + name: sha.js + version: 2.4.11 + hasBin: true + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/shallowequal@1.1.0: + resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz} + name: shallowequal + version: 1.1.0 + dev: false + + registry.npmmirror.com/shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz} + name: shebang-command + version: 1.2.0 + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: registry.npmmirror.com/shebang-regex@1.0.0 + dev: false + + registry.npmmirror.com/shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} + name: shebang-command + version: 2.0.0 + engines: {node: '>=8'} + dependencies: + shebang-regex: registry.npmmirror.com/shebang-regex@3.0.0 + dev: false + + registry.npmmirror.com/shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz} + name: shebang-regex + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} + name: shebang-regex + version: 3.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/shiki-es@0.2.0: + resolution: {integrity: sha512-RbRMD+IuJJseSZljDdne9ThrUYrwBwJR04FvN4VXpfsU3MNID5VJGHLAD5je/HGThCyEKNgH+nEkSFEWKD7C3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shiki-es/-/shiki-es-0.2.0.tgz} + name: shiki-es + version: 0.2.0 + dev: false + + registry.npmmirror.com/shortid@2.2.16: + resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shortid/-/shortid-2.2.16.tgz} + name: shortid + version: 2.2.16 + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + dependencies: + nanoid: registry.npmmirror.com/nanoid@2.1.11 + dev: false + + registry.npmmirror.com/side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} + name: side-channel + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + object-inspect: registry.npmmirror.com/object-inspect@1.13.1 + dev: false + + registry.npmmirror.com/signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz} + name: signal-exit + version: 3.0.7 + dev: false + + registry.npmmirror.com/simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz} + name: simple-swizzle + version: 0.2.2 + dependencies: + is-arrayish: registry.npmmirror.com/is-arrayish@0.3.2 + dev: false + + registry.npmmirror.com/sitemap@7.1.1: + resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sitemap/-/sitemap-7.1.1.tgz} + name: sitemap + version: 7.1.1 + engines: {node: '>=12.0.0', npm: '>=5.6.0'} + hasBin: true + dependencies: + '@types/node': registry.npmmirror.com/@types/node@17.0.45 + '@types/sax': registry.npmmirror.com/@types/sax@1.2.7 + arg: registry.npmmirror.com/arg@5.0.2 + sax: registry.npmmirror.com/sax@1.3.0 + dev: false + + registry.npmmirror.com/slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} + name: slash + version: 3.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz} + name: slash + version: 4.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz} + name: slice-ansi + version: 4.0.0 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + astral-regex: registry.npmmirror.com/astral-regex@2.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 + dev: false + + registry.npmmirror.com/smart-buffer@1.1.15: + resolution: {integrity: sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/smart-buffer/-/smart-buffer-1.1.15.tgz} + name: smart-buffer + version: 1.1.15 + engines: {node: '>= 0.10.15', npm: '>= 1.3.5'} + dev: false + + registry.npmmirror.com/socks-proxy-agent@3.0.1: + resolution: {integrity: sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz} + name: socks-proxy-agent + version: 3.0.1 + dependencies: + agent-base: registry.npmmirror.com/agent-base@4.3.0 + socks: registry.npmmirror.com/socks@1.1.10 + dev: false + + registry.npmmirror.com/socks@1.1.10: + resolution: {integrity: sha512-ArX4vGPULWjKDKgUnW8YzfI2uXW7kzgkJuB0GnFBA/PfT3exrrOk+7Wk2oeb894Qf20u1PWv9LEgrO0Z82qAzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/socks/-/socks-1.1.10.tgz} + name: socks + version: 1.1.10 + engines: {node: '>= 0.10.0', npm: '>= 1.3.5'} + deprecated: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0 + dependencies: + ip: registry.npmmirror.com/ip@1.1.8 + smart-buffer: registry.npmmirror.com/smart-buffer@1.1.15 + dev: false + + registry.npmmirror.com/sonic-boom@2.8.0: + resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sonic-boom/-/sonic-boom-2.8.0.tgz} + name: sonic-boom + version: 2.8.0 + dependencies: + atomic-sleep: registry.npmmirror.com/atomic-sleep@1.0.0 + dev: false + + registry.npmmirror.com/sort-object-keys@1.1.3: + resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz} + name: sort-object-keys + version: 1.1.3 + dev: false + + registry.npmmirror.com/sort-package-json@2.4.1: + resolution: {integrity: sha512-Nd3rgLBJcZ4iw7tpuOhwBupG6SvUDU0Fy1cZGAMorA2JmDUb+29Dg5phJK9gapa2Ak9d15w/RuMl/viwX+nKwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sort-package-json/-/sort-package-json-2.4.1.tgz} + name: sort-package-json + version: 2.4.1 + hasBin: true + dependencies: + detect-indent: registry.npmmirror.com/detect-indent@7.0.1 + detect-newline: registry.npmmirror.com/detect-newline@4.0.1 + git-hooks-list: registry.npmmirror.com/git-hooks-list@3.1.0 + globby: registry.npmmirror.com/globby@13.2.2 + is-plain-obj: registry.npmmirror.com/is-plain-obj@4.1.0 + sort-object-keys: registry.npmmirror.com/sort-object-keys@1.1.3 + dev: false + + registry.npmmirror.com/source-map-js@1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + name: source-map-js + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/source-map-resolve@0.6.0: + resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz} + name: source-map-resolve + version: 0.6.0 + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: registry.npmmirror.com/atob@2.1.2 + decode-uri-component: registry.npmmirror.com/decode-uri-component@0.2.2 + dev: false + + registry.npmmirror.com/source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz} + name: source-map-support + version: 0.5.21 + dependencies: + buffer-from: registry.npmmirror.com/buffer-from@1.1.2 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: false + + registry.npmmirror.com/source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz} + name: source-map + version: 0.5.7 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz} + name: source-map + version: 0.7.4 + engines: {node: '>= 8'} + dev: false + + registry.npmmirror.com/space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz} + name: space-separated-tokens + version: 1.1.5 + dev: false + + registry.npmmirror.com/space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz} + name: space-separated-tokens + version: 2.0.2 + dev: false + + registry.npmmirror.com/spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz} + name: spdx-correct + version: 3.2.0 + dependencies: + spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse@3.0.1 + spdx-license-ids: registry.npmmirror.com/spdx-license-ids@3.0.16 + dev: false + + registry.npmmirror.com/spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz} + name: spdx-exceptions + version: 2.3.0 + dev: false + + registry.npmmirror.com/spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz} + name: spdx-expression-parse + version: 3.0.1 + dependencies: + spdx-exceptions: registry.npmmirror.com/spdx-exceptions@2.3.0 + spdx-license-ids: registry.npmmirror.com/spdx-license-ids@3.0.16 + dev: false + + registry.npmmirror.com/spdx-license-ids@3.0.16: + resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz} + name: spdx-license-ids + version: 3.0.16 + dev: false + + registry.npmmirror.com/spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz} + name: spdy-transport + version: 3.0.0 + dependencies: + debug: registry.npmmirror.com/debug@4.3.4 + detect-node: registry.npmmirror.com/detect-node@2.1.0 + hpack.js: registry.npmmirror.com/hpack.js@2.1.6 + obuf: registry.npmmirror.com/obuf@1.1.2 + readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + wbuf: registry.npmmirror.com/wbuf@1.7.3 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz} + name: spdy + version: 4.0.2 + engines: {node: '>=6.0.0'} + dependencies: + debug: registry.npmmirror.com/debug@4.3.4 + handle-thing: registry.npmmirror.com/handle-thing@2.0.1 + http-deceiver: registry.npmmirror.com/http-deceiver@1.2.7 + select-hose: registry.npmmirror.com/select-hose@2.0.0 + spdy-transport: registry.npmmirror.com/spdy-transport@3.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/split-on-first@1.1.0: + resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz} + name: split-on-first + version: 1.1.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz} + name: split2 + version: 4.2.0 + engines: {node: '>= 10.x'} + dev: false + + registry.npmmirror.com/sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz} + name: sprintf-js + version: 1.0.3 + dev: false + + registry.npmmirror.com/ssri@4.1.6: + resolution: {integrity: sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssri/-/ssri-4.1.6.tgz} + name: ssri + version: 4.1.6 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/ssri@5.3.0: + resolution: {integrity: sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssri/-/ssri-5.3.0.tgz} + name: ssri + version: 5.3.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/stable@0.1.8: + resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz} + name: stable + version: 0.1.8 + deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' + dev: false + + registry.npmmirror.com/stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz} + name: stackframe + version: 1.3.4 + dev: false + + registry.npmmirror.com/stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz} + name: stop-iteration-iterator + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + dev: false + + registry.npmmirror.com/stream-browserify@2.0.2: + resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-browserify/-/stream-browserify-2.0.2.tgz} + name: stream-browserify + version: 2.0.2 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + dev: false + + registry.npmmirror.com/stream-each@1.2.3: + resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-each/-/stream-each-1.2.3.tgz} + name: stream-each + version: 1.2.3 + dependencies: + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + stream-shift: registry.npmmirror.com/stream-shift@1.0.1 + dev: false + + registry.npmmirror.com/stream-http@2.8.3: + resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-http/-/stream-http-2.8.3.tgz} + name: stream-http + version: 2.8.3 + dependencies: + builtin-status-codes: registry.npmmirror.com/builtin-status-codes@3.0.0 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + to-arraybuffer: registry.npmmirror.com/to-arraybuffer@1.0.1 + xtend: registry.npmmirror.com/xtend@4.0.2 + dev: false + + registry.npmmirror.com/stream-shift@1.0.1: + resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz} + name: stream-shift + version: 1.0.1 + dev: false + + registry.npmmirror.com/strict-uri-encode@2.0.0: + resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz} + name: strict-uri-encode + version: 2.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/string-convert@0.2.1: + resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz} + name: string-convert + version: 0.2.1 + dev: false + + registry.npmmirror.com/string-width@2.1.1: + resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz} + name: string-width + version: 2.1.1 + engines: {node: '>=4'} + dependencies: + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@2.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@4.0.0 + dev: false + + registry.npmmirror.com/string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} + name: string-width + version: 4.2.3 + engines: {node: '>=8'} + dependencies: + emoji-regex: registry.npmmirror.com/emoji-regex@8.0.0 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + + registry.npmmirror.com/string.prototype.matchall@4.0.10: + resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz} + name: string.prototype.matchall + version: 4.0.10 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + internal-slot: registry.npmmirror.com/internal-slot@1.0.6 + regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 + set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + side-channel: registry.npmmirror.com/side-channel@1.0.4 + dev: false + + registry.npmmirror.com/string.prototype.trim@1.2.8: + resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz} + name: string.prototype.trim + version: 1.2.8 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/string.prototype.trimend@1.0.7: + resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz} + name: string.prototype.trimend + version: 1.0.7 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/string.prototype.trimstart@1.0.7: + resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz} + name: string.prototype.trimstart + version: 1.0.7 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + dev: false + + registry.npmmirror.com/string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz} + name: string_decoder + version: 0.10.31 + dev: false + + registry.npmmirror.com/string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz} + name: string_decoder + version: 1.1.1 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.1.2 + dev: false + + registry.npmmirror.com/string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} + name: string_decoder + version: 1.3.0 + dependencies: + safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + dev: false + + registry.npmmirror.com/stringify-entities@4.0.3: + resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.3.tgz} + name: stringify-entities + version: 4.0.3 + dependencies: + character-entities-html4: registry.npmmirror.com/character-entities-html4@2.1.0 + character-entities-legacy: registry.npmmirror.com/character-entities-legacy@3.0.0 + dev: false + + registry.npmmirror.com/strip-ansi@4.0.0: + resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz} + name: strip-ansi + version: 4.0.0 + engines: {node: '>=4'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@3.0.1 + dev: false + + registry.npmmirror.com/strip-ansi@5.2.0: + resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz} + name: strip-ansi + version: 5.2.0 + engines: {node: '>=6'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@4.1.1 + dev: false + + registry.npmmirror.com/strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} + name: strip-ansi + version: 6.0.1 + engines: {node: '>=8'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@5.0.1 + + registry.npmmirror.com/strip-eof@1.0.0: + resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz} + name: strip-eof + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz} + name: strip-final-newline + version: 2.0.0 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz} + name: strip-final-newline + version: 3.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-indent/-/strip-indent-3.0.0.tgz} + name: strip-indent + version: 3.0.0 + engines: {node: '>=8'} + dependencies: + min-indent: registry.npmmirror.com/min-indent@1.0.1 + dev: false + + registry.npmmirror.com/strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz} + name: strip-json-comments + version: 2.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-mod/-/style-mod-4.1.0.tgz} + name: style-mod + version: 4.1.0 + dev: false + + registry.npmmirror.com/style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-search/-/style-search-0.1.0.tgz} + name: style-search + version: 0.1.0 + dev: false + + registry.npmmirror.com/style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-to-object/-/style-to-object-0.4.4.tgz} + name: style-to-object + version: 0.4.4 + dependencies: + inline-style-parser: registry.npmmirror.com/inline-style-parser@0.1.1 + dev: false + + registry.npmmirror.com/stylelint-config-recommended@7.0.0(stylelint@14.16.1): + resolution: {integrity: sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz} + id: registry.npmmirror.com/stylelint-config-recommended/7.0.0 + name: stylelint-config-recommended + version: 7.0.0 + peerDependencies: + stylelint: ^14.4.0 + dependencies: + stylelint: registry.npmmirror.com/stylelint@14.16.1 + dev: false + + registry.npmmirror.com/stylelint-config-standard@25.0.0(stylelint@14.16.1): + resolution: {integrity: sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz} + id: registry.npmmirror.com/stylelint-config-standard/25.0.0 + name: stylelint-config-standard + version: 25.0.0 + peerDependencies: + stylelint: ^14.4.0 + dependencies: + stylelint: registry.npmmirror.com/stylelint@14.16.1 + stylelint-config-recommended: registry.npmmirror.com/stylelint-config-recommended@7.0.0(stylelint@14.16.1) + dev: false + + registry.npmmirror.com/stylelint@14.16.1: + resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint/-/stylelint-14.16.1.tgz} + name: stylelint + version: 14.16.1 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dependencies: + '@csstools/selector-specificity': registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13) + balanced-match: registry.npmmirror.com/balanced-match@2.0.0 + colord: registry.npmmirror.com/colord@2.9.3 + cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 + css-functions-list: registry.npmmirror.com/css-functions-list@3.2.1 + debug: registry.npmmirror.com/debug@4.3.4 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + fastest-levenshtein: registry.npmmirror.com/fastest-levenshtein@1.0.16 + file-entry-cache: registry.npmmirror.com/file-entry-cache@6.0.1 + global-modules: registry.npmmirror.com/global-modules@2.0.0 + globby: registry.npmmirror.com/globby@11.1.0 + globjoin: registry.npmmirror.com/globjoin@0.1.4 + html-tags: registry.npmmirror.com/html-tags@3.3.1 + ignore: registry.npmmirror.com/ignore@5.3.0 + import-lazy: registry.npmmirror.com/import-lazy@4.0.0 + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + is-plain-object: registry.npmmirror.com/is-plain-object@5.0.0 + known-css-properties: registry.npmmirror.com/known-css-properties@0.26.0 + mathml-tag-names: registry.npmmirror.com/mathml-tag-names@2.1.3 + meow: registry.npmmirror.com/meow@9.0.0 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + normalize-path: registry.npmmirror.com/normalize-path@3.0.0 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + postcss: registry.npmmirror.com/postcss@8.4.31 + postcss-media-query-parser: registry.npmmirror.com/postcss-media-query-parser@0.2.3 + postcss-resolve-nested-selector: registry.npmmirror.com/postcss-resolve-nested-selector@0.1.1 + postcss-safe-parser: registry.npmmirror.com/postcss-safe-parser@6.0.0(postcss@8.4.31) + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + resolve-from: registry.npmmirror.com/resolve-from@5.0.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + style-search: registry.npmmirror.com/style-search@0.1.0 + supports-hyperlinks: registry.npmmirror.com/supports-hyperlinks@2.3.0 + svg-tags: registry.npmmirror.com/svg-tags@1.0.0 + table: registry.npmmirror.com/table@6.8.1 + v8-compile-cache: registry.npmmirror.com/v8-compile-cache@2.4.0 + write-file-atomic: registry.npmmirror.com/write-file-atomic@4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.2.0.tgz} + name: stylis + version: 4.2.0 + dev: false + + registry.npmmirror.com/stylis@4.3.0: + resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz} + name: stylis + version: 4.3.0 + dev: false + + registry.npmmirror.com/supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} + name: supports-color + version: 5.5.0 + engines: {node: '>=4'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@3.0.0 + dev: false + + registry.npmmirror.com/supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} + name: supports-color + version: 7.2.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + dev: false + + registry.npmmirror.com/supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz} + name: supports-color + version: 8.1.1 + engines: {node: '>=10'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + dev: false + + registry.npmmirror.com/supports-hyperlinks@2.3.0: + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz} + name: supports-hyperlinks + version: 2.3.0 + engines: {node: '>=8'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@4.0.0 + supports-color: registry.npmmirror.com/supports-color@7.2.0 + dev: false + + registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: false + + registry.npmmirror.com/svg-parser@2.0.4: + resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz} + name: svg-parser + version: 2.0.4 + dev: false + + registry.npmmirror.com/svg-pathdata@5.0.5: + resolution: {integrity: sha512-TAAvLNSE3fEhyl/Da19JWfMAdhSXTYeviXsLSoDT1UM76ADj5ndwAPX1FKQEgB/gFMPavOy6tOqfalXKUiXrow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-5.0.5.tgz} + name: svg-pathdata + version: 5.0.5 + engines: {node: '>=6.9.5'} + dev: false + + registry.npmmirror.com/svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz} + name: svg-tags + version: 1.0.0 + dev: false + + registry.npmmirror.com/svgo-browser@1.3.8: + resolution: {integrity: sha512-yOgDNIcewFZN3+jXdWeh/rQzbWJjCq1dTHphLz2r4T4AfTm+nqCxZ5B89v9bjQbFKA/s/k7TUc7J90+pP2HTyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgo-browser/-/svgo-browser-1.3.8.tgz} + name: svgo-browser + version: 1.3.8 + engines: {node: '>=4.0.0'} + hasBin: true + dependencies: + chalk: registry.npmmirror.com/chalk@2.4.2 + coa: registry.npmmirror.com/coa@2.0.2 + css-select: registry.npmmirror.com/css-select@2.1.0 + css-select-base-adapter: registry.npmmirror.com/css-select-base-adapter@0.1.1 + css-tree: registry.npmmirror.com/css-tree@1.0.0-alpha.37 + csso: registry.npmmirror.com/csso@4.2.0 + js-yaml: registry.npmmirror.com/js-yaml@3.14.1 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + sax: registry.npmmirror.com/sax@1.2.4 + stable: registry.npmmirror.com/stable@0.1.8 + unquote: registry.npmmirror.com/unquote@1.1.1 + util.promisify: registry.npmmirror.com/util.promisify@1.0.1 + dev: false + + registry.npmmirror.com/svgo@2.8.0: + resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz} + name: svgo + version: 2.8.0 + engines: {node: '>=10.13.0'} + hasBin: true + dependencies: + '@trysound/sax': registry.npmmirror.com/@trysound/sax@0.2.0 + commander: registry.npmmirror.com/commander@7.2.0 + css-select: registry.npmmirror.com/css-select@4.3.0 + css-tree: registry.npmmirror.com/css-tree@1.1.3 + csso: registry.npmmirror.com/csso@4.2.0 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + stable: registry.npmmirror.com/stable@0.1.8 + dev: false + + registry.npmmirror.com/svgson@4.1.0: + resolution: {integrity: sha512-DodISxHtdLKUghDYA+PGK4Qq350+CbBAkdvGLkBFSmWd9WKSg4dijgjB1IiRPTmsUCd+a7KYe+ILHtklYgQyzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgson/-/svgson-4.1.0.tgz} + name: svgson + version: 4.1.0 + dependencies: + deep-rename-keys: registry.npmmirror.com/deep-rename-keys@0.2.1 + omit-deep: registry.npmmirror.com/omit-deep@0.3.0 + xml-reader: registry.npmmirror.com/xml-reader@2.4.3 + dev: false + + registry.npmmirror.com/synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/synckit/-/synckit-0.8.5.tgz} + name: synckit + version: 0.8.5 + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': registry.npmmirror.com/@pkgr/utils@2.4.2 + tslib: registry.npmmirror.com/tslib@2.6.2 + dev: false + + registry.npmmirror.com/systemjs@6.14.2: + resolution: {integrity: sha512-1TlOwvKWdXxAY9vba+huLu99zrQURDWA8pUTYsRIYDZYQbGyK+pyEP4h4dlySsqo7ozyJBmYD20F+iUHhAltEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/systemjs/-/systemjs-6.14.2.tgz} + name: systemjs + version: 6.14.2 + dev: false + + registry.npmmirror.com/tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tabbable/-/tabbable-6.2.0.tgz} + name: tabbable + version: 6.2.0 + dev: false + + registry.npmmirror.com/table@6.8.1: + resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/table/-/table-6.8.1.tgz} + name: table + version: 6.8.1 + engines: {node: '>=10.0.0'} + dependencies: + ajv: registry.npmmirror.com/ajv@8.12.0 + lodash.truncate: registry.npmmirror.com/lodash.truncate@4.4.2 + slice-ansi: registry.npmmirror.com/slice-ansi@4.0.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + dev: false + + registry.npmmirror.com/tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz} + name: tapable + version: 2.2.1 + engines: {node: '>=6'} + dev: false + + registry.npmmirror.com/tar-fs@1.16.3: + resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tar-fs/-/tar-fs-1.16.3.tgz} + name: tar-fs + version: 1.16.3 + dependencies: + chownr: registry.npmmirror.com/chownr@1.1.4 + mkdirp: registry.npmmirror.com/mkdirp@0.5.6 + pump: registry.npmmirror.com/pump@1.0.3 + tar-stream: registry.npmmirror.com/tar-stream@1.6.2 + dev: false + + registry.npmmirror.com/tar-stream@1.6.2: + resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tar-stream/-/tar-stream-1.6.2.tgz} + name: tar-stream + version: 1.6.2 + engines: {node: '>= 0.8.0'} + dependencies: + bl: registry.npmmirror.com/bl@1.2.3 + buffer-alloc: registry.npmmirror.com/buffer-alloc@1.2.0 + end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 + fs-constants: registry.npmmirror.com/fs-constants@1.0.0 + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + to-buffer: registry.npmmirror.com/to-buffer@1.1.1 + xtend: registry.npmmirror.com/xtend@4.0.2 + dev: false + + registry.npmmirror.com/term-size@1.2.0: + resolution: {integrity: sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/term-size/-/term-size-1.2.0.tgz} + name: term-size + version: 1.2.0 + engines: {node: '>=4'} + dependencies: + execa: registry.npmmirror.com/execa@0.7.0 + dev: false + + registry.npmmirror.com/terser-webpack-plugin@5.3.9(esbuild@0.19.7)(webpack@5.89.0): + resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz} + id: registry.npmmirror.com/terser-webpack-plugin/5.3.9 + name: terser-webpack-plugin + version: 5.3.9 + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + esbuild: 0.19.7 + jest-worker: registry.npmmirror.com/jest-worker@27.5.1 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + serialize-javascript: registry.npmmirror.com/serialize-javascript@6.0.1 + terser: registry.npmmirror.com/terser@5.24.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) + dev: false + + registry.npmmirror.com/terser@5.24.0: + resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser/-/terser-5.24.0.tgz} + name: terser + version: 5.24.0 + engines: {node: '>=10'} + hasBin: true + dependencies: + '@jridgewell/source-map': registry.npmmirror.com/@jridgewell/source-map@0.3.5 + acorn: registry.npmmirror.com/acorn@8.11.2 + commander: registry.npmmirror.com/commander@2.20.3 + source-map-support: registry.npmmirror.com/source-map-support@0.5.21 + dev: false + + registry.npmmirror.com/test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz} + name: test-exclude + version: 6.0.0 + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema@0.1.3 + glob: registry.npmmirror.com/glob@7.2.3 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + dev: false + + registry.npmmirror.com/textextensions@2.6.0: + resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/textextensions/-/textextensions-2.6.0.tgz} + name: textextensions + version: 2.6.0 + engines: {node: '>=0.8'} + dev: false + + registry.npmmirror.com/thread-stream@0.15.2: + resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/thread-stream/-/thread-stream-0.15.2.tgz} + name: thread-stream + version: 0.15.2 + dependencies: + real-require: registry.npmmirror.com/real-require@0.1.0 + dev: false + + registry.npmmirror.com/throttle-debounce@5.0.0: + resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz} + name: throttle-debounce + version: 5.0.0 + engines: {node: '>=12.22'} + dev: false + + registry.npmmirror.com/through2@0.4.2: + resolution: {integrity: sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through2/-/through2-0.4.2.tgz} + name: through2 + version: 0.4.2 + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@1.0.34 + xtend: registry.npmmirror.com/xtend@2.1.2 + dev: false + + registry.npmmirror.com/through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz} + name: through2 + version: 2.0.5 + dependencies: + readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + xtend: registry.npmmirror.com/xtend@4.0.2 + dev: false + + registry.npmmirror.com/through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through/-/through-2.3.8.tgz} + name: through + version: 2.3.8 + dev: false + + registry.npmmirror.com/timed-out@4.0.1: + resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/timed-out/-/timed-out-4.0.1.tgz} + name: timed-out + version: 4.0.1 + engines: {node: '>=0.10.0'} + dev: false + + registry.npmmirror.com/timers-browserify@2.0.12: + resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/timers-browserify/-/timers-browserify-2.0.12.tgz} + name: timers-browserify + version: 2.0.12 + engines: {node: '>=0.6.0'} + dependencies: + setimmediate: registry.npmmirror.com/setimmediate@1.0.5 + dev: false + + registry.npmmirror.com/titleize@3.0.0: + resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz} + name: titleize + version: 3.0.0 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz} + name: tmp + version: 0.0.33 + engines: {node: '>=0.6.0'} + dependencies: + os-tmpdir: registry.npmmirror.com/os-tmpdir@1.0.2 + dev: false + + registry.npmmirror.com/tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz} + name: tmpl + version: 1.0.5 + dev: false + + registry.npmmirror.com/to-arraybuffer@1.0.1: + resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz} + name: to-arraybuffer + version: 1.0.1 + dev: false + + registry.npmmirror.com/to-buffer@1.1.1: + resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz} + name: to-buffer + version: 1.1.1 + dev: false + + registry.npmmirror.com/to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} + name: to-fast-properties + version: 2.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} + name: to-regex-range + version: 5.0.1 + engines: {node: '>=8.0'} + dependencies: + is-number: registry.npmmirror.com/is-number@7.0.0 + dev: false + + registry.npmmirror.com/toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz} + name: toggle-selection + version: 1.0.6 + dev: false + + registry.npmmirror.com/transformation-matrix@2.15.0: + resolution: {integrity: sha512-HN3kCvvH4ug3Xm/ycOfCFQOOktg5htxlC4Ih1Z7Wb6BMtQho+q+irOdGo10ARRKpqkRBXgBzQFw/AVmR0oIf0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/transformation-matrix/-/transformation-matrix-2.15.0.tgz} + name: transformation-matrix + version: 2.15.0 + dev: false + + registry.npmmirror.com/trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz} + name: trim-lines + version: 3.0.1 + dev: false + + registry.npmmirror.com/trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-newlines/-/trim-newlines-3.0.1.tgz} + name: trim-newlines + version: 3.0.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/trough@2.1.0: + resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz} + name: trough + version: 2.1.0 + dev: false + + registry.npmmirror.com/ts-toolbelt@9.6.0: + resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz} + name: ts-toolbelt + version: 9.6.0 + dev: false + + registry.npmmirror.com/tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} + name: tslib + version: 1.14.1 + dev: false + + registry.npmmirror.com/tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz} + name: tslib + version: 2.6.2 + dev: false + + registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz} + id: registry.npmmirror.com/tsutils/3.21.0 + name: tsutils + version: 3.21.0 + engines: {node: '>= 6'} + peerDependencies: + 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' + dependencies: + tslib: registry.npmmirror.com/tslib@1.14.1 + typescript: 5.3.2 + dev: false + + registry.npmmirror.com/tsx@3.14.0: + resolution: {integrity: sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsx/-/tsx-3.14.0.tgz} + name: tsx + version: 3.14.0 + hasBin: true + dependencies: + esbuild: registry.npmmirror.com/esbuild@0.18.20 + get-tsconfig: registry.npmmirror.com/get-tsconfig@4.7.2 + source-map-support: registry.npmmirror.com/source-map-support@0.5.21 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/tty-browserify@0.0.0: + resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz} + name: tty-browserify + version: 0.0.0 + dev: false + + registry.npmmirror.com/type-fest@0.18.1: + resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.18.1.tgz} + name: type-fest + version: 0.18.1 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz} + name: type-fest + version: 0.6.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz} + name: type-fest + version: 0.8.1 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/typed-array-buffer@1.0.0: + resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz} + name: typed-array-buffer + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typed-array-byte-length@1.0.0: + resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz} + name: typed-array-byte-length + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typed-array-byte-offset@1.0.0: + resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz} + name: typed-array-byte-offset + version: 1.0.0 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + has-proto: registry.npmmirror.com/has-proto@1.0.1 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz} + name: typed-array-length + version: 1.0.4 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 + dev: false + + registry.npmmirror.com/typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz} + name: typedarray + version: 0.0.6 + dev: false + + registry.npmmirror.com/types-ramda@0.29.6: + resolution: {integrity: sha512-VJoOk1uYNh9ZguGd3eZvqkdhD4hTGtnjRBUx5Zc0U9ftmnCgiWcSj/lsahzKunbiwRje1MxxNkEy1UdcXRCpYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/types-ramda/-/types-ramda-0.29.6.tgz} + name: types-ramda + version: 0.29.6 + dependencies: + ts-toolbelt: registry.npmmirror.com/ts-toolbelt@9.6.0 + dev: false + + registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(sass@1.69.5)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0): + resolution: {integrity: sha512-bC62ctJ3wnymADnhE5nU7IZz4+XQ3MPWwoVW150OJazyAqEioZdjIZEBgB9pVfQEM819xMc6+eslnyuCNOQV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/umi/-/umi-4.0.89.tgz} + id: registry.npmmirror.com/umi/4.0.89 + name: umi + version: 4.0.89 + engines: {node: '>=14'} + hasBin: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 + '@umijs/bundler-webpack': registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.2)(webpack@5.89.0) + '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 + '@umijs/lint': registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.54.0)(stylelint@14.16.1)(typescript@5.3.2) + '@umijs/preset-umi': registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.10.0)(@types/react@18.2.38)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0) + '@umijs/renderer-react': registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.2.0)(react@18.2.0) + '@umijs/server': registry.npmmirror.com/@umijs/server@4.0.89 + '@umijs/test': registry.npmmirror.com/@umijs/test@4.0.89(@babel/core@7.23.3) + '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 + prettier-plugin-organize-imports: registry.npmmirror.com/prettier-plugin-organize-imports@3.2.4(prettier@3.1.0)(typescript@5.3.2) + prettier-plugin-packagejson: registry.npmmirror.com/prettier-plugin-packagejson@2.4.3(prettier@3.1.0) + transitivePeerDependencies: + - '@babel/core' + - '@types/node' + - '@types/react' + - '@types/webpack' + - '@volar/vue-language-plugin-pug' + - '@volar/vue-typescript' + - eslint + - jest + - postcss-html + - postcss-jsx + - postcss-less + - postcss-markdown + - postcss-scss + - prettier + - react + - react-dom + - rollup + - sass + - sockjs-client + - stylelint + - stylus + - sugarss + - supports-color + - terser + - type-fest + - typescript + - webpack + - webpack-dev-server + - webpack-hot-middleware + - webpack-plugin-serve + dev: false + + registry.npmmirror.com/unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} + name: unbox-primitive + version: 1.0.2 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + has-bigints: registry.npmmirror.com/has-bigints@1.0.2 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + dev: false + + registry.npmmirror.com/undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz} + name: undici-types + version: 5.26.5 + dev: false + + registry.npmmirror.com/unfetch@5.0.0: + resolution: {integrity: sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unfetch/-/unfetch-5.0.0.tgz} + name: unfetch + version: 5.0.0 + dev: false + + registry.npmmirror.com/unified@10.1.2: + resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz} + name: unified + version: 10.1.2 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + bail: registry.npmmirror.com/bail@2.0.2 + extend: registry.npmmirror.com/extend@3.0.2 + is-buffer: registry.npmmirror.com/is-buffer@2.0.5 + is-plain-obj: registry.npmmirror.com/is-plain-obj@4.1.0 + trough: registry.npmmirror.com/trough@2.1.0 + vfile: registry.npmmirror.com/vfile@5.3.7 + dev: false + + registry.npmmirror.com/unique-filename@1.1.1: + resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz} + name: unique-filename + version: 1.1.1 + dependencies: + unique-slug: registry.npmmirror.com/unique-slug@2.0.2 + dev: false + + registry.npmmirror.com/unique-slug@2.0.2: + resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz} + name: unique-slug + version: 2.0.2 + dependencies: + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + dev: false + + registry.npmmirror.com/unique-string@1.0.0: + resolution: {integrity: sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-string/-/unique-string-1.0.0.tgz} + name: unique-string + version: 1.0.0 + engines: {node: '>=4'} + dependencies: + crypto-random-string: registry.npmmirror.com/crypto-random-string@1.0.0 + dev: false + + registry.npmmirror.com/unist-util-filter@4.0.1: + resolution: {integrity: sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-filter/-/unist-util-filter-4.0.1.tgz} + name: unist-util-filter + version: 4.0.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + dev: false + + registry.npmmirror.com/unist-util-generated@2.0.1: + resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz} + name: unist-util-generated + version: 2.0.1 + dev: false + + registry.npmmirror.com/unist-util-is@5.2.1: + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-is/-/unist-util-is-5.2.1.tgz} + name: unist-util-is + version: 5.2.1 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/unist-util-position@4.0.4: + resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-position/-/unist-util-position-4.0.4.tgz} + name: unist-util-position + version: 4.0.4 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/unist-util-stringify-position@3.0.3: + resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz} + name: unist-util-stringify-position + version: 3.0.3 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + dev: false + + registry.npmmirror.com/unist-util-visit-parents@5.1.3: + resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz} + name: unist-util-visit-parents + version: 5.1.3 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + dev: false + + registry.npmmirror.com/unist-util-visit@4.1.2: + resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz} + name: unist-util-visit + version: 4.1.2 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 + unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 + dev: false + + registry.npmmirror.com/universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz} + name: universalify + version: 0.1.2 + engines: {node: '>= 4.0.0'} + dev: false + + registry.npmmirror.com/universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz} + name: universalify + version: 2.0.1 + engines: {node: '>= 10.0.0'} + dev: false + + registry.npmmirror.com/unquote@1.1.1: + resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz} + name: unquote + version: 1.1.1 + dev: false + + registry.npmmirror.com/unset-value@0.1.2: + resolution: {integrity: sha512-yhv5I4TsldLdE3UcVQn0hD2T5sNCPv4+qm/CTUpRKIpwthYRIipsAPdsrNpOI79hPQa0rTTeW22Fq6JWRcTgNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unset-value/-/unset-value-0.1.2.tgz} + name: unset-value + version: 0.1.2 + engines: {node: '>=0.10.0'} + dependencies: + has-value: registry.npmmirror.com/has-value@0.3.1 + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: false + + registry.npmmirror.com/untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/untildify/-/untildify-4.0.0.tgz} + name: untildify + version: 4.0.0 + engines: {node: '>=8'} + dev: false + + registry.npmmirror.com/unzip-response@2.0.1: + resolution: {integrity: sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unzip-response/-/unzip-response-2.0.1.tgz} + name: unzip-response + version: 2.0.1 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.1): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz} + id: registry.npmmirror.com/update-browserslist-db/1.0.13 + name: update-browserslist-db + version: 1.0.13 + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.1 + escalade: registry.npmmirror.com/escalade@3.1.1 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + dev: false + + registry.npmmirror.com/update-notifier@2.5.0: + resolution: {integrity: sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/update-notifier/-/update-notifier-2.5.0.tgz} + name: update-notifier + version: 2.5.0 + engines: {node: '>=4'} + dependencies: + boxen: registry.npmmirror.com/boxen@1.3.0 + chalk: registry.npmmirror.com/chalk@2.4.2 + configstore: registry.npmmirror.com/configstore@3.1.5 + import-lazy: registry.npmmirror.com/import-lazy@2.1.0 + is-ci: registry.npmmirror.com/is-ci@1.2.1 + is-installed-globally: registry.npmmirror.com/is-installed-globally@0.1.0 + is-npm: registry.npmmirror.com/is-npm@1.0.0 + latest-version: registry.npmmirror.com/latest-version@3.1.0 + semver-diff: registry.npmmirror.com/semver-diff@2.1.0 + xdg-basedir: registry.npmmirror.com/xdg-basedir@3.0.0 + dev: false + + registry.npmmirror.com/uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} + name: uri-js + version: 4.4.1 + dependencies: + punycode: registry.npmmirror.com/punycode@2.3.1 + dev: false + + registry.npmmirror.com/url-parse-lax@1.0.0: + resolution: {integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz} + name: url-parse-lax + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + prepend-http: registry.npmmirror.com/prepend-http@1.0.4 + dev: false + + registry.npmmirror.com/url@0.11.3: + resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/url/-/url-0.11.3.tgz} + name: url + version: 0.11.3 + dependencies: + punycode: registry.npmmirror.com/punycode@1.4.1 + qs: registry.npmmirror.com/qs@6.11.2 + dev: false + + registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.1.0): + resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz} + id: registry.npmmirror.com/use-isomorphic-layout-effect/1.1.2 + name: use-isomorphic-layout-effect + version: 1.1.2 + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.2.38 + react: registry.npmmirror.com/react@18.1.0 + dev: false + + registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0): + resolution: {integrity: sha512-DXgG0kkgJN45TcyoXL49vJnn55LehnrmoHc7MbKi+QDBvr8dsesqws8UlyIWGHMR+JXgxc1nvY+jDGMlycsUcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-merge-value/-/use-merge-value-1.2.0.tgz} + id: registry.npmmirror.com/use-merge-value/1.2.0 + name: use-merge-value + version: 1.2.0 + peerDependencies: + react: '>= 16.x' + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/use-sync-external-store@1.2.0(react@18.2.0): + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz} + id: registry.npmmirror.com/use-sync-external-store/1.2.0 + name: use-sync-external-store + version: 1.2.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: false + + registry.npmmirror.com/util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} + name: util-deprecate + version: 1.0.2 + dev: false + + registry.npmmirror.com/util.promisify@1.0.1: + resolution: {integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.1.tgz} + name: util.promisify + version: 1.0.1 + dependencies: + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + object.getownpropertydescriptors: registry.npmmirror.com/object.getownpropertydescriptors@2.1.7 + dev: false + + registry.npmmirror.com/util@0.10.4: + resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util/-/util-0.10.4.tgz} + name: util + version: 0.10.4 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.3 + dev: false + + registry.npmmirror.com/util@0.11.1: + resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util/-/util-0.11.1.tgz} + name: util + version: 0.11.1 + dependencies: + inherits: registry.npmmirror.com/inherits@2.0.3 + dev: false + + registry.npmmirror.com/utila@0.4.0: + resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz} + name: utila + version: 0.4.0 + dev: false + + registry.npmmirror.com/uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz} + name: uuid + version: 8.3.2 + hasBin: true + dev: false + + registry.npmmirror.com/uvu@0.5.6: + resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz} + name: uvu + version: 0.5.6 + engines: {node: '>=8'} + hasBin: true + dependencies: + dequal: registry.npmmirror.com/dequal@2.0.3 + diff: registry.npmmirror.com/diff@5.1.0 + kleur: registry.npmmirror.com/kleur@4.1.5 + sade: registry.npmmirror.com/sade@1.8.1 + dev: false + + registry.npmmirror.com/v8-compile-cache@2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz} + name: v8-compile-cache + version: 2.3.0 + dev: false + + registry.npmmirror.com/v8-compile-cache@2.4.0: + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz} + name: v8-compile-cache + version: 2.4.0 + dev: false + + registry.npmmirror.com/validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} + name: validate-npm-package-license + version: 3.0.4 + dependencies: + spdx-correct: registry.npmmirror.com/spdx-correct@3.2.0 + spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse@3.0.1 + dev: false + + registry.npmmirror.com/validate-npm-package-name@3.0.0: + resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz} + name: validate-npm-package-name + version: 3.0.0 + dependencies: + builtins: registry.npmmirror.com/builtins@1.0.3 + dev: false + + registry.npmmirror.com/vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz} + name: vary + version: 1.1.2 + engines: {node: '>= 0.8'} + dev: false + + registry.npmmirror.com/vfile-location@4.1.0: + resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-location/-/vfile-location-4.1.0.tgz} + name: vfile-location + version: 4.1.0 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + vfile: registry.npmmirror.com/vfile@5.3.7 + dev: false + + registry.npmmirror.com/vfile-message@3.1.4: + resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.4.tgz} + name: vfile-message + version: 3.1.4 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 + dev: false + + registry.npmmirror.com/vfile@5.3.7: + resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile/-/vfile-5.3.7.tgz} + name: vfile + version: 5.3.7 + dependencies: + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + is-buffer: registry.npmmirror.com/is-buffer@2.0.5 + unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 + vfile-message: registry.npmmirror.com/vfile-message@3.1.4 + dev: false + + registry.npmmirror.com/vite@4.3.1(@types/node@20.10.0)(less@4.1.3)(sass@1.69.5)(terser@5.24.0): + resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.3.1.tgz} + id: registry.npmmirror.com/vite/4.3.1 + name: vite + version: 4.3.1 + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': 20.10.0 + esbuild: registry.npmmirror.com/esbuild@0.17.19 + less: registry.npmmirror.com/less@4.1.3 + postcss: registry.npmmirror.com/postcss@8.4.31 + rollup: registry.npmmirror.com/rollup@3.29.4 + sass: registry.npmmirror.com/sass@1.69.5 + terser: 5.24.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: false + + registry.npmmirror.com/vm-browserify@1.1.2: + resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz} + name: vm-browserify + version: 1.1.2 + dev: false + + registry.npmmirror.com/w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz} + name: w3c-keyname + version: 2.2.8 + dev: false + + registry.npmmirror.com/walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz} + name: walker + version: 1.0.8 + dependencies: + makeerror: registry.npmmirror.com/makeerror@1.0.12 + dev: false + + registry.npmmirror.com/watchpack@2.4.0: + resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz} + name: watchpack + version: 2.4.0 + engines: {node: '>=10.13.0'} + dependencies: + glob-to-regexp: registry.npmmirror.com/glob-to-regexp@0.4.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + dev: false + + registry.npmmirror.com/wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz} + name: wbuf + version: 1.7.3 + dependencies: + minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 + dev: false + + registry.npmmirror.com/web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz} + name: web-namespaces + version: 2.0.1 + dev: false + + registry.npmmirror.com/web-streams-polyfill@3.2.1: + resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz} + name: web-streams-polyfill + version: 3.2.1 + engines: {node: '>= 8'} + dev: false + + registry.npmmirror.com/webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} + name: webpack-sources + version: 3.2.3 + engines: {node: '>=10.13.0'} + dev: false + + registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7): + resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack/-/webpack-5.89.0.tgz} + id: registry.npmmirror.com/webpack/5.89.0 + name: webpack + version: 5.89.0 + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + dependencies: + '@types/eslint-scope': registry.npmmirror.com/@types/eslint-scope@3.7.7 + '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 + '@webassemblyjs/wasm-edit': registry.npmmirror.com/@webassemblyjs/wasm-edit@1.11.6 + '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 + acorn: registry.npmmirror.com/acorn@8.11.2 + acorn-import-assertions: registry.npmmirror.com/acorn-import-assertions@1.9.0(acorn@8.11.2) + browserslist: registry.npmmirror.com/browserslist@4.22.1 + chrome-trace-event: registry.npmmirror.com/chrome-trace-event@1.0.3 + enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 + es-module-lexer: registry.npmmirror.com/es-module-lexer@1.4.1 + eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 + events: registry.npmmirror.com/events@3.3.0 + glob-to-regexp: registry.npmmirror.com/glob-to-regexp@0.4.1 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 + loader-runner: registry.npmmirror.com/loader-runner@4.3.0 + mime-types: registry.npmmirror.com/mime-types@2.1.35 + neo-async: registry.npmmirror.com/neo-async@2.6.2 + schema-utils: registry.npmmirror.com/schema-utils@3.3.0 + tapable: registry.npmmirror.com/tapable@2.2.1 + terser-webpack-plugin: registry.npmmirror.com/terser-webpack-plugin@5.3.9(esbuild@0.19.7)(webpack@5.89.0) + watchpack: registry.npmmirror.com/watchpack@2.4.0 + webpack-sources: registry.npmmirror.com/webpack-sources@3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + dev: false + + registry.npmmirror.com/which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} + name: which-boxed-primitive + version: 1.0.2 + dependencies: + is-bigint: registry.npmmirror.com/is-bigint@1.0.4 + is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 + is-number-object: registry.npmmirror.com/is-number-object@1.0.7 + is-string: registry.npmmirror.com/is-string@1.0.7 + is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + dev: false + + registry.npmmirror.com/which-builtin-type@1.1.3: + resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz} + name: which-builtin-type + version: 1.1.3 + engines: {node: '>= 0.4'} + dependencies: + function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.6 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + is-async-function: registry.npmmirror.com/is-async-function@2.0.0 + is-date-object: registry.npmmirror.com/is-date-object@1.0.5 + is-finalizationregistry: registry.npmmirror.com/is-finalizationregistry@1.0.2 + is-generator-function: registry.npmmirror.com/is-generator-function@1.0.10 + is-regex: registry.npmmirror.com/is-regex@1.1.4 + is-weakref: registry.npmmirror.com/is-weakref@1.0.2 + isarray: registry.npmmirror.com/isarray@2.0.5 + which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 + which-collection: registry.npmmirror.com/which-collection@1.0.1 + which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 + dev: false + + registry.npmmirror.com/which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-collection/-/which-collection-1.0.1.tgz} + name: which-collection + version: 1.0.1 + dependencies: + is-map: registry.npmmirror.com/is-map@2.0.2 + is-set: registry.npmmirror.com/is-set@2.0.2 + is-weakmap: registry.npmmirror.com/is-weakmap@2.0.1 + is-weakset: registry.npmmirror.com/is-weakset@2.0.2 + dev: false + + registry.npmmirror.com/which-typed-array@1.1.13: + resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.13.tgz} + name: which-typed-array + version: 1.1.13 + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 + call-bind: registry.npmmirror.com/call-bind@1.0.5 + for-each: registry.npmmirror.com/for-each@0.3.3 + gopd: registry.npmmirror.com/gopd@1.0.1 + has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + dev: false + + registry.npmmirror.com/which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-1.3.1.tgz} + name: which + version: 1.3.1 + hasBin: true + dependencies: + isexe: registry.npmmirror.com/isexe@2.0.0 + dev: false + + registry.npmmirror.com/which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-2.0.2.tgz} + name: which + version: 2.0.2 + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: registry.npmmirror.com/isexe@2.0.0 + dev: false + + registry.npmmirror.com/widest-line@2.0.1: + resolution: {integrity: sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/widest-line/-/widest-line-2.0.1.tgz} + name: widest-line + version: 2.0.1 + engines: {node: '>=4'} + dependencies: + string-width: registry.npmmirror.com/string-width@2.1.1 + dev: false + + registry.npmmirror.com/wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} + name: wrap-ansi + version: 7.0.0 + engines: {node: '>=10'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 + string-width: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + + registry.npmmirror.com/wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} + name: wrappy + version: 1.0.2 + dev: false + + registry.npmmirror.com/write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz} + name: write-file-atomic + version: 2.4.3 + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + dev: false + + registry.npmmirror.com/write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz} + name: write-file-atomic + version: 4.0.2 + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 + signal-exit: registry.npmmirror.com/signal-exit@3.0.7 + dev: false + + registry.npmmirror.com/xdg-basedir@3.0.0: + resolution: {integrity: sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz} + name: xdg-basedir + version: 3.0.0 + engines: {node: '>=4'} + dev: false + + registry.npmmirror.com/xml-lexer@0.2.2: + resolution: {integrity: sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xml-lexer/-/xml-lexer-0.2.2.tgz} + name: xml-lexer + version: 0.2.2 + dependencies: + eventemitter3: registry.npmmirror.com/eventemitter3@2.0.3 + dev: false + + registry.npmmirror.com/xml-reader@2.4.3: + resolution: {integrity: sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xml-reader/-/xml-reader-2.4.3.tgz} + name: xml-reader + version: 2.4.3 + dependencies: + eventemitter3: registry.npmmirror.com/eventemitter3@2.0.3 + xml-lexer: registry.npmmirror.com/xml-lexer@0.2.2 + dev: false + + registry.npmmirror.com/xtend@2.1.2: + resolution: {integrity: sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xtend/-/xtend-2.1.2.tgz} + name: xtend + version: 2.1.2 + engines: {node: '>=0.4'} + dependencies: + object-keys: registry.npmmirror.com/object-keys@0.4.0 + dev: false + + registry.npmmirror.com/xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz} + name: xtend + version: 4.0.2 + engines: {node: '>=0.4'} + dev: false + + registry.npmmirror.com/y18n@3.2.2: + resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-3.2.2.tgz} + name: y18n + version: 3.2.2 + dev: false + + registry.npmmirror.com/y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz} + name: y18n + version: 4.0.3 + dev: false + + registry.npmmirror.com/y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz} + name: y18n + version: 5.0.8 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/yallist@2.1.2: + resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz} + name: yallist + version: 2.1.2 + dev: false + + registry.npmmirror.com/yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz} + name: yallist + version: 3.1.1 + dev: false + + registry.npmmirror.com/yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} + name: yallist + version: 4.0.0 + dev: false + + registry.npmmirror.com/yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz} + name: yaml + version: 1.10.2 + engines: {node: '>= 6'} + dev: false + + registry.npmmirror.com/yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz} + name: yargs-parser + version: 20.2.9 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz} + name: yargs-parser + version: 21.1.1 + engines: {node: '>=12'} + dev: false + + registry.npmmirror.com/yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz} + name: yargs + version: 17.7.2 + engines: {node: '>=12'} + dependencies: + cliui: registry.npmmirror.com/cliui@8.0.1 + escalade: registry.npmmirror.com/escalade@3.1.1 + get-caller-file: registry.npmmirror.com/get-caller-file@2.0.5 + require-directory: registry.npmmirror.com/require-directory@2.1.1 + string-width: registry.npmmirror.com/string-width@4.2.3 + y18n: registry.npmmirror.com/y18n@5.0.8 + yargs-parser: registry.npmmirror.com/yargs-parser@21.1.1 + dev: false + + registry.npmmirror.com/yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz} + name: yocto-queue + version: 0.1.0 + engines: {node: '>=10'} + dev: false + + registry.npmmirror.com/zustand-utils@1.3.1(react@18.2.0)(zustand@4.4.7): + resolution: {integrity: sha512-YBfWpWEwZN0ZxtMg5zJeywTuNAaN+xVCTAjYC0SFsWx7hwfdHQGFbkA3ruTRBLez5S9y9ZwqnmFeDCHzRmLLMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zustand-utils/-/zustand-utils-1.3.1.tgz} + id: registry.npmmirror.com/zustand-utils/1.3.1 + name: zustand-utils + version: 1.3.1 + peerDependencies: + react: '>=16.8' + zustand: '>=4.4.1' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 + react: 18.2.0 + zustand: registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.38)(immer@10.0.3)(react@18.2.0) + dev: false + + registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.38)(immer@10.0.3)(react@18.2.0): + resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zustand/-/zustand-4.4.7.tgz} + id: registry.npmmirror.com/zustand/4.4.7 + name: zustand + version: 4.4.7 + engines: {node: '>=12.7.0'} + peerDependencies: + '@types/react': '>=16.8' + immer: '>=9.0' + react: '>=16.8' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + dependencies: + '@types/react': 18.2.38 + immer: 10.0.3 + react: 18.2.0 + use-sync-external-store: registry.npmmirror.com/use-sync-external-store@1.2.0(react@18.2.0) + dev: false + + registry.npmmirror.com/zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zwitch/-/zwitch-2.0.4.tgz} + name: zwitch + version: 2.0.4 + dev: false diff --git a/apps/admin/postcss.config.js b/apps/admin/postcss.config.js new file mode 100644 index 00000000..e87ced38 --- /dev/null +++ b/apps/admin/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + autoprefixer: {}, + ...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {}) + } +} diff --git a/apps/admin/prettier.config.js b/apps/admin/prettier.config.js new file mode 100644 index 00000000..e95b8c12 --- /dev/null +++ b/apps/admin/prettier.config.js @@ -0,0 +1,27 @@ +// 配置文档: https://prettier.nodejs.cn/ + +/** @type {import('prettier').Config} */ +export default { + // 每行最大宽度,超过换行 + printWidth: 120, + // 缩进级别的空格数 + tabWidth: 2, + // 用制表符而不是空格缩进行 + useTabs: false, + // 语句末尾用分号 + semi: false, + // 使用单引号而不是双引号 + singleQuote: true, + // 在 JSX 中使用单引号而不是双引号 + jsxSingleQuote: true, + // 尾随逗号 + trailingComma: 'none', + // 对象字面量中括号之间有空格 { foo: bar } + bracketSpacing: true, + // 将多行 HTML(HTML、JSX)元素的 > 放在最后一行的末尾,而不是单独放在下一行 + bracketSameLine: false, + // 在唯一的箭头函数参数周围包含括号(avoid:省略括号, always:不省略括号) + arrowParens: 'avoid', + // 换行符使用 lf 结尾 可选值 auto|lf|crlf|cr + endOfLine: 'lf' +} diff --git a/apps/admin/public/favicon.ico b/apps/admin/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..661e3169cfa1f94787df8fae8addaeda63a06c22 GIT binary patch literal 1446 zcmV;X1zGxuP)Px)U`a$lR9Hu)muYNNRTRhn=e{=`XbS_8(q-D(fDl5Jh)awV4Msm0(_#ryP@_Q! z(FEvB3$m&BWXUvko7T3-VhT!u&;)`_5T-@I1w{oUQ4`r(ZJ8EDGi=>v<{k4&3)A*a zX9nKKch33W-#zD^^X?kGhm0|cdS5d#3! zD?`vp5jCv(ws@k&4<|Qo_J)E936ND+G{zs*wMCG~BtRV~*bm^2(Z>qvhoxHHJWyEJ zHWWlifb1_FX?~S{0`nM|P!IqkDIR5{`uL$wtIppOfDt_NkYg1SHUJm|90Y((!=lz6 z+)<(3a|sNA7mpREa98(f2JQ>11O!jCCF+s7trd-715BvohtDm-8Gu+8lzDK2jf5xx zAOh`@3^19+>V}$63Z#oOQ%X6~n{D)~VZWWy)Cw-s$6{qm4t2-^jZTR5nvW4MZAbvZ z&z{kk7OVr(N;$1t!Rzi^TH6mGrJVQqffo0Fut6hT2JwQ+@v;K!911`&EAw478@J2i zlS_EGU!Z{q$K5u1XApo_N0zE%T1!6tC=;0T+n%V-mJ4S0C;ARCPBZFw|5*x{M|RY7{Um%j&LgyD1h3<%t`#95x+TUmHY8mqC0x8Q3c zWGDjbFXhtvvJ7N1;8#^lzOUQ{M0*?36X!tFq~(iu@{g z&TXSLQh?q?Pg+LcnLifLbs5CWddE~h1b|fqD_fS(N5SeF?EMUl)w83pPX{sw z`UqgT+fIccOJF$Y3~!7H6B-xOpOHXVOE|}`V0Yia>sJCD_SSqV3k#q(u(~Y?3z0+q za3GA4>k~K(;7OT3MGC--t1*Nr7wz;{H~@*oJX=>#OOpFT&#q+vRwu9a1M6j%4kL&e z4VSHWK2#PaZe;7VPW%Fb^ajO@4pkuQl8uZE-DyK+ri3!&5MUg*RM}2VgzRP;?H?)& ziB4X}zbP({anNi)8N1g#QK_aKII@SWaAS?|OV}>3@nAL2jF9t + ) +} + +export default App diff --git a/apps/admin/src/api/index.ts b/apps/admin/src/api/index.ts new file mode 100644 index 00000000..cd3a80b0 --- /dev/null +++ b/apps/admin/src/api/index.ts @@ -0,0 +1,40 @@ +import { service } from '@/utils/axios' + +interface LoginParams { + username: string + password: string +} + +// User login api +export function loginApi(data: LoginParams): Promise { + return service({ + url: '/login', + method: 'post', + data + }) +} + +// Get User info +export function getUserInfo(): Promise { + return service({ + url: '/getUserInfo', + method: 'get' + }) +} + +// User logout api +export function logoutApi() { + return service({ + url: '/logout', + method: 'get' + }) +} + +// Table list +export function getTableList(params: any) { + return service({ + url: '/table/getTableList', + method: 'get', + params + }) +} diff --git a/apps/admin/src/assets/icons/bug.svg b/apps/admin/src/assets/icons/bug.svg new file mode 100644 index 00000000..f7268a86 --- /dev/null +++ b/apps/admin/src/assets/icons/bug.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/collapsed.svg b/apps/admin/src/assets/icons/collapsed.svg new file mode 100644 index 00000000..0319e4a0 --- /dev/null +++ b/apps/admin/src/assets/icons/collapsed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/compo.svg b/apps/admin/src/assets/icons/compo.svg new file mode 100644 index 00000000..0164a17a --- /dev/null +++ b/apps/admin/src/assets/icons/compo.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/document.svg b/apps/admin/src/assets/icons/document.svg new file mode 100644 index 00000000..92d285ff --- /dev/null +++ b/apps/admin/src/assets/icons/document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/editor.svg b/apps/admin/src/assets/icons/editor.svg new file mode 100644 index 00000000..7b2ecd89 --- /dev/null +++ b/apps/admin/src/assets/icons/editor.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/excel.svg b/apps/admin/src/assets/icons/excel.svg new file mode 100644 index 00000000..f167095b --- /dev/null +++ b/apps/admin/src/assets/icons/excel.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/flow.svg b/apps/admin/src/assets/icons/flow.svg new file mode 100644 index 00000000..cc9c2ac2 --- /dev/null +++ b/apps/admin/src/assets/icons/flow.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/form.svg b/apps/admin/src/assets/icons/form.svg new file mode 100644 index 00000000..b27c95f2 --- /dev/null +++ b/apps/admin/src/assets/icons/form.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/github.svg b/apps/admin/src/assets/icons/github.svg new file mode 100644 index 00000000..4590cad8 --- /dev/null +++ b/apps/admin/src/assets/icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/heart.svg b/apps/admin/src/assets/icons/heart.svg new file mode 100644 index 00000000..ed4d9fc5 --- /dev/null +++ b/apps/admin/src/assets/icons/heart.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/hints.svg b/apps/admin/src/assets/icons/hints.svg new file mode 100644 index 00000000..c0d6017a --- /dev/null +++ b/apps/admin/src/assets/icons/hints.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/home.svg b/apps/admin/src/assets/icons/home.svg new file mode 100644 index 00000000..beb8f1cb --- /dev/null +++ b/apps/admin/src/assets/icons/home.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/image.svg b/apps/admin/src/assets/icons/image.svg new file mode 100644 index 00000000..16de4ab0 --- /dev/null +++ b/apps/admin/src/assets/icons/image.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/like.svg b/apps/admin/src/assets/icons/like.svg new file mode 100644 index 00000000..cff0e7da --- /dev/null +++ b/apps/admin/src/assets/icons/like.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/linking.svg b/apps/admin/src/assets/icons/linking.svg new file mode 100644 index 00000000..110bdb37 --- /dev/null +++ b/apps/admin/src/assets/icons/linking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/locale.svg b/apps/admin/src/assets/icons/locale.svg new file mode 100644 index 00000000..179582e6 --- /dev/null +++ b/apps/admin/src/assets/icons/locale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/location.svg b/apps/admin/src/assets/icons/location.svg new file mode 100644 index 00000000..1d187aab --- /dev/null +++ b/apps/admin/src/assets/icons/location.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/message.svg b/apps/admin/src/assets/icons/message.svg new file mode 100644 index 00000000..8b9f3cff --- /dev/null +++ b/apps/admin/src/assets/icons/message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/moon.svg b/apps/admin/src/assets/icons/moon.svg new file mode 100644 index 00000000..e6667f0d --- /dev/null +++ b/apps/admin/src/assets/icons/moon.svg @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/apps/admin/src/assets/icons/person.svg b/apps/admin/src/assets/icons/person.svg new file mode 100644 index 00000000..2a7f8fb4 --- /dev/null +++ b/apps/admin/src/assets/icons/person.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/pushpin-fill.svg b/apps/admin/src/assets/icons/pushpin-fill.svg new file mode 100644 index 00000000..a8836e8b --- /dev/null +++ b/apps/admin/src/assets/icons/pushpin-fill.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/pushpin-line.svg b/apps/admin/src/assets/icons/pushpin-line.svg new file mode 100644 index 00000000..e8767f3e --- /dev/null +++ b/apps/admin/src/assets/icons/pushpin-line.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/screen-full.svg b/apps/admin/src/assets/icons/screen-full.svg new file mode 100644 index 00000000..d1e2542b --- /dev/null +++ b/apps/admin/src/assets/icons/screen-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/screen-normal.svg b/apps/admin/src/assets/icons/screen-normal.svg new file mode 100644 index 00000000..4f8844a5 --- /dev/null +++ b/apps/admin/src/assets/icons/screen-normal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/search.svg b/apps/admin/src/assets/icons/search.svg new file mode 100644 index 00000000..bfcadbab --- /dev/null +++ b/apps/admin/src/assets/icons/search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/sun.svg b/apps/admin/src/assets/icons/sun.svg new file mode 100644 index 00000000..a3997cbf --- /dev/null +++ b/apps/admin/src/assets/icons/sun.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/apps/admin/src/assets/icons/table.svg b/apps/admin/src/assets/icons/table.svg new file mode 100644 index 00000000..9b402b41 --- /dev/null +++ b/apps/admin/src/assets/icons/table.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/tree.svg b/apps/admin/src/assets/icons/tree.svg new file mode 100644 index 00000000..7a1c2556 --- /dev/null +++ b/apps/admin/src/assets/icons/tree.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/unfold.svg b/apps/admin/src/assets/icons/unfold.svg new file mode 100644 index 00000000..32249c91 --- /dev/null +++ b/apps/admin/src/assets/icons/unfold.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/video.svg b/apps/admin/src/assets/icons/video.svg new file mode 100644 index 00000000..ed867571 --- /dev/null +++ b/apps/admin/src/assets/icons/video.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/images/avatar.jpeg b/apps/admin/src/assets/images/avatar.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..eaf44be9013965461b53cd05d44751a047b750eb GIT binary patch literal 35510 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 Lz>Lw%K12W6g+lP5 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/avatar.png b/apps/admin/src/assets/images/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..310a864de8364b3e40611186af57341a76a920f8 GIT binary patch literal 265579 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

DPwCbdGSz}0&od?zN17ukEia!lI;aahs)bB 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

$y^Hyp_w*95Z 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/login-background.jpg b/apps/admin/src/assets/images/login-background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e68486f2b6238b8c37ede9a581a5c501465f7e2 GIT binary patch literal 89379 zcmbrljaw6Ex_Wf0tf;C0>8jNJ_Rk{f&YCe;Y+Q?)oRUy zvu8i3c{ooCzaB0m=aKMFp}uIrKQAcKFE3uSsCc>MiLxgw&pq?ZbM-IQzwt&E`TzR{ z{}={&$_GxU|1bkF05lJok%#=_B$y8$^Z&iT|9c_m3e z&Su3Lovx@;pmenq+L~1Z8Ge~ICnj_z6NS_=86K$+XjDdz2^iA9f6N&IIA*8)jNoBq zwa#;nX>ulIeBreeC8NPqI}rwnfY~JI)TD=1>j*-h$;>;Gl6XT3U@YPcqZ1T?y4|@H z4?O1Dc~gRs$qEBv7^K1&QY!|0QicWT=T8JB;>`dBKTL-K(u6An)IURPW*p>NaUr{P-%&G|z$0U$c6Nsbs z+}aQtxz(Tcct@m|0CM9hACD=jB_O`xaT@$;oq$wes2`)y5h|G*SK}0>JrB1uWBX1U zl4y!DVqv5r?v-&cTcx%ZM;XD+I2d=_1RohlzzHAGMP)pA0uWi076dHhmI_7!2b8L+hFntupBjUI0eK zY*}`o!of*04%ZtS;jnDuH6x(GfQ`+jR^sD` zW!w#e1D@6lPub}CnE?t5)WOXY?l04i8)3i$YA}q2B~`5qu(=*NWfah`;O--FNgMEn zF=?QV)jeOXM1#lejDQG4SRzfHc4tBWY5D#FvjS%Erzt%}NNO_0(Sig#waK*m{ini6 z6_pT#M9L}Se!=6T;6|h#`dm%va1RR*nSa2_$j9l^aG^Yp);{)!E8mG;($>iu#hArbyOG~A#nkd zv(7%M#^l2Rjx+))BRu!$*?S)~t@#EEGit^o`m6PsO{m{VV46V*gc(%UHTiL1%Cp`- z4gwK896VQoBB?kl4hNiZ)=}F;0D&Rm58wXrF9%PWUUUO@#ut_dDt6K(VNnWKnTr8p z0SR0E85uVk5ehyMfl2{6D^zVkTb)PmmCpfc{(G60d+j$i zeKP>Ko>4c#pk|xfou^7mhDTNG#jZfuS!U)5_8f+13nEi%e`hLz0GTGcY zInGkEweR}zIE#*8=&9W0btmqf!TB<2==n>8M724gh@9yYBJWcQ$q@PPC`GpGH#;o-20|9%M8As#TYTiJ{G zNfG`VolpZ}W}6Q%LvEykPiKpRT~-Q<6(el68i=08Xfdp9<3zPq!ihAK!gRQC(V^>i zf8>Za6DjduUIPSB>u`vS5YGUU8{vTzu7=n&C+24XtsSc=S(13rcbFCtkuEvLv<`> zN5gyF0(#6%?6{f*IDGrK*ALQ{x6IsvJuT!WD7YcC7z)ks zR2M~Jl*7!XWtwQadG{}mq32Q{ZkgDz4-3QX8W3Z`vi)fa5Be!1kc~h?!IGQB7#Nkf zB@Gxcg-}UYqIFbu9=G;OG)!b2Hk%Li>^^X3$8X-f(;sy?5r^~0f=Xu&f)P57p;1c0 z5#hqBRv`>wfll}dHBu)Kz&-TPQ-~O>Hj6F2xMIj-rwGJulrt_eq@yldJm&f3#iz=m z%b3(T3{scx;Vub4AkZ*m1)-3vq(G)t2qB!`BTf(sctS#0hAb{GX`*oSisa#?STJ$L zJp>O09haF6otEwYedgM0YP>kk@g_0${Dr*x8}DI-L4aZUIE%GYz=ZK_Y0{;}rf87O zGL#H(dvjcy5!+RbA=L)o3|o~`#xM+sfeKCb{t@3w58{I^wUC&gR(4rDc94~gI01pR zPca1fkSIinP{PeiVvAFT_0q0W*HgJ=B;1|>vzW2a)qT6xe(DLQld^*q9PEaLm7Q<@ zD)9N>z}*I}-r^#67qVhRo@(vQU)UcXGBDfAdpY^Sur;V#!f1w5O?1Ube_1vs40pkje$K3EYBuL+d+z5uH1qsLdu%;|4sLdpTa8f!JjNm!T? z2z)3QE<3&F&JM$;_>h<$`m#3|;QW8TUq=!`8S3D|l3Nf=I0;cam^fy_WjF0idN!@* z;I`lZ0#8oPROEU?JkOIDC1b0xUYAs`eEWi~c}(IHo&6<~1=65rJ{SRNMh3mwei_FA zp@y6aM+m1TjSI9pUBf`qFYycv2-vO|{8A$)iZIkMJkx}^g5kGbES=tdw?@YeR)vb? z6qCl^xynMAf#o>p7hvgu@q>jpPF~M~q{&un@Do@V$9OVNZ1(~Ry@CS>vnj~|vm1T& z?(2_4y;tp3pPF2}iMJe2q~0EZZ&ns?u(@_h3kfoX0jz!AXi5zLS=?|j4cQr_*V_I0 z4zkyfI0th=EIqw*^ZFv&qK4Z$Mk z7XS{E!;j}}%8j(eDZ-r?;W10d6&%ZWt3w2&hk-=Esl-`_GwJWT{SWZO{`a5CRu86J zLa%s<^NSoR|bFoP(q&ovxNpV@fflqiK=3yuqb1Qv^j2hVTr}5GLiBeI}P( zgxSjhk$}v?U-0cmI#=XfY3S10PpX+g@v5!%9R4?g#4w%!xnLt82p$c!6FL(G5!IUU zNwB`E=@7z4A+~$iaF$6?Bsxy1y)Al3zgS_#pAOx-lx~kVeM!5-aB4}bQIa2hH?*rj zkTWd4&{GW)2mYeaj%HSlNN6csz^`uzeOB;aY%@mR-FCPHRP45M5{!b9=|C z7gX`r8WQP?dnl=ZC?{M|VR@AZFT=)L4hZ}497yr$zortyJZ97bcj&KsJj5Cqs%#Dxoj zpdF8GAdFa)g}5YRy(+}vGriP>*%3Z5A{W4XaR_XIgG1Qx+|Pe(N~d1%_*^Oe1syLW zMlkso=V0ZBL5NE@%w>*1%w;Wuh>1=3X(7I8D6LgGhpGt{HO2_o52I-zQw7j2n6s*k zoK($Iz8sI$77hLGV|9f~0g%5`QjFE^;Wx%ID2E4 z=tL+4sagycPr+k0v;AMHnb~IXeiuf{0uE9_#zj#y{3)ign{{XaP4RMXt~Y(8D)@%2 zvC6;a#?KoIv0lf9m&B`$o|KS_34H{m=p$(=5riP7BaZe_h`BbK5GWo75j~I z683VC<|n$?To>emLsUWnw28{4$WGZ~<7rZZgTZJq43wq-Z}|Gt6dkI#_sFA*4oFc$ z@KPef$2q*o1&=h52v-3dcc*alcbjUM#5e;RopIR@#UV#B(-6WyE`>`3>|4#Xu&*ho zx+EXrX=&(~c;Qpd?sKpF)!A!z3MkrPdCw&nGLY-WIgse<#4v{?ID94H;V}r6I0;Eh zyh)&Fzf8h&^Kh}^_FA_XoS+Gp$vIg4kSBFygKAZ@kpMqVj~+D=vM9mkls8#>39-!* z7{w`9yCuXSW;;PBWunZl#-J8MK{OBp98VHZKuFWYvd2kOJDgZbt_mSr5?#(Y<-_+P zz$Ft7J_{uRF^o}&eQ~Q0ce-L8J0nw$ig>LU=Q)Xn@C!rIKvg6Sceq79O5@PLB;|ZyFJzGrU(yLUmntA^zNzl>lu#V6Z6*cn& z-`5NU8ae9JkSJ7I9JY#!=&lNa5HFl-e@zf2iawUBYGX}2;fij8;k)$SUwU!@j>tGE zffNWiyMf6?IUS=rM&a&w-0ZWPI6;Q}Jd=i^2C{)o3R$EoW8&#_W_Ba!W!%X)2XQVD z#)yPK%)S2Oremov7$jsF3kz`{Vy7kWpgtAla7bX^vq&=BGh9-!4vrv#R|L4GT&P&* z8#`)wr?LM%Ox>tV_PS&bo60j=em`}0#T`2Ih86ZOA zie40C9u9tFj>K{B;i90#$n6+0gN1Ee-k zC-RdMEQ}CHjHp3O%1Hu40fN!N?hc2bi@T^sG{nj1^vXvcjm&&?pFtqvJbJYjb^*a# zSIA%}CCym*+~Y_7ZDsl6zx~P&5jMqY)0E5{y$E$t3}OrgE>aR~7hvOt3Mqnt2ds`C zguGzDGQMEpvHVl7bUEGP1Z!5?)M)lj2Ykx zWI%hMt_QzTHsA<|skueu!+6KQu0Sm_iZKzu zmBFUKIPc6J&tNVXM&L8EGF0Kv;c@i($o1=smiJsJVm+%loFD{&moX)}`1JJ6)6v3t z9~&=H{i(#{&aYRsv2j*_x_s0J`6NNRXqN&IMrxqWa zk~`s-fRyf)C;@^!g{B-%Ix%sdRpKG(Z2Re(69X z5w19@tN6orcem3o)$cd%&n3QD`fjIv-(Y8M1pV#T!;Qp=#_F zb?kXYc2RMTODBRSo~VUkIOCD$o;b8q0eP*?%!P%d>!a77So?qeVz)2<>po&W}+yB1^;>$gJ2jMFn@QhmqH-BXZ-ttbo%_j~os^FsHn1-B_1dyX45}bxn27;#qF50v`^lY{7AQy_ahyO~JV{XyYD_Gp zn-}6?g@RDbi4I5%skM?Q8b#DbxB%6O`n|6C;0`Gx46y=4zr`LsDmMf?lQ_ z7ph}e^d$o)MtW{{{mbS5r}A+^3!m zh_zn}s+S0YpAZt4_dp}3oLskm()EqeP(aWHK1 zzTqOP_0Tp*%{GX|!&f=wQ02`ZOfSC{YrS8rrcA8b(+C^8Pz;iea~wl417^-Bp?(>S z!oJO(dFz+Idh&NmCp^>sWFMN=6?4W17c8DS-d9IB><5jAlfX@A0(QgEP6nhs-R0}; zP)cW=tJM@!jh=8olG$$ZCj8aBrwn1CdRqrU8kLsczH|Ev2lwoX6K~%)dQ9GS>dCD~ z|9WTZjXucfVG4$DboiLV1#-!z?iYM{FV&wsG$@cb(0Su#E|lV=0UuDqO6YO0z0u+r z13TQ|c1q2_N_zUh{N?C`&i+>3+#ViE&1KFDt~XXby7#8bMZyjiIDGRAEpbPkGp~sc zXBMvV4gb6L*3CJm@S5|L;g027yW|(oQcudOVd3Z? z!W*Fp0c95|3E4PYEpqeD?b9!<(+FzIy4?j&cy4K9o~jxoB~<>r@y+pSDNQgbHxS-2 z!vF*49&3snE+Q4ElmF=mcYi$u)M1GP4XYN^gp&g5@YdL>n2aSDT2;JlMaMY7B&7Ab zm9aOVubFNXgWDI(ZWPpzAiVqWu4R;&?6TS;v{Z z!L*4~47uZaK(g8-Zy9NM@v|mK&T+&BbB#qO$Rqfyjk5fh>a_$*^DegF+VNCb0! z5I2kCgb{7CLw4q7=v5)?=$r4Y8@VL`$b#_SE?KK*T9cI8N4Z_|c0Y8yh6O6~2Bgs~ zE0O?OH>~zpP(uXg{27G}AWwRHhz}|kYMnQc;+>Fo69DQr-21!tOzu);EMWp|fAU@y zYjxsa=(rd-TD9Z#G3QX;^N)MV=<0yZP74K3KgB*I>Wu+LsK_aS>cxM>NFx-L+_IZO z>YQqIZ88HPEa2mj+FWSv?gizKx4NQcCyl8m#{5bU3*e1e!IRs%W8RTs3zPARj{05< z52mCrOERe2Fs{6814`AJzvsdLh8T1b?i+#eIuT+LtagGLo7p@ayK}8Go-uP`P*}95 z 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/logo.png b/apps/admin/src/assets/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..848e03950bc3eeba48ea8d86acbeba60c2ea6b40 GIT binary patch literal 11266 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 HEk6Dq!_X9& literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/logo_name.png b/apps/admin/src/assets/images/logo_name.png new file mode 100644 index 0000000000000000000000000000000000000000..ff85108a4f3bad6dc1c2e1a99358a73e6505d9c5 GIT binary patch literal 5866 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/name_white.png b/apps/admin/src/assets/images/name_white.png new file mode 100644 index 0000000000000000000000000000000000000000..2c25ebcdb27f3e680944bd508e65cde1224d6721 GIT binary patch literal 5080 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

+ + logo + logo + +
+ ) +} + +export default AppLogo diff --git a/apps/admin/src/components/AppLogo/src/app-logo.module.less b/apps/admin/src/components/AppLogo/src/app-logo.module.less new file mode 100644 index 00000000..56186de7 --- /dev/null +++ b/apps/admin/src/components/AppLogo/src/app-logo.module.less @@ -0,0 +1,24 @@ +.app-logo { + display: flex; + align-items: center; + height: 48px; + padding-left: 24px; + cursor: pointer; + transition: all 0.3s ease; + + .logo-img { + display: block; + width: 32px; + height: 32px; + } + + .logo-name { + display: block; + width: 120px; + height: 15px; + + &.hidden { + display: none; + } + } +} diff --git a/apps/admin/src/components/LazyLoad/index.ts b/apps/admin/src/components/LazyLoad/index.ts new file mode 100644 index 00000000..6e954097 --- /dev/null +++ b/apps/admin/src/components/LazyLoad/index.ts @@ -0,0 +1,3 @@ +import LazyLoad from './src/LazyLoad' + +export { LazyLoad } \ No newline at end of file diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx new file mode 100644 index 00000000..06b6e887 --- /dev/null +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -0,0 +1,29 @@ +import { ReactNode, Suspense, LazyExoticComponent } from 'react' +import { Spin } from 'antd' + +/** + * @description 路由懒加载 + * @param {Element} Component 需要访问的组件 + * @returns element + */ +const LazyLoad = (Component: LazyExoticComponent): ReactNode => { + return ( + + } + > + + + ) +} + +export default LazyLoad diff --git a/apps/admin/src/components/Page/index.ts b/apps/admin/src/components/Page/index.ts new file mode 100644 index 00000000..908eda9c --- /dev/null +++ b/apps/admin/src/components/Page/index.ts @@ -0,0 +1,3 @@ +import PageWrapper from './src/PageWrapper' + +export { PageWrapper } \ No newline at end of file diff --git a/apps/admin/src/components/Page/src/PageWrapper.tsx b/apps/admin/src/components/Page/src/PageWrapper.tsx new file mode 100644 index 00000000..14edb8c3 --- /dev/null +++ b/apps/admin/src/components/Page/src/PageWrapper.tsx @@ -0,0 +1,43 @@ +import { Button } from 'antd' +import { openWindow } from '@/utils' +import SvgIcon from '@/components/SvgIcon' +import compoStyle from './compo.module.less' + +interface PluginProp { + name?: string + desc?: string + url?: string +} + +interface PageProp { + plugin: PluginProp + children: JSX.Element +} + +const PageWrapper = (props: PageProp) => { + + function openGithub() { + openWindow(props.plugin?.url!) + } + + return ( +
+
+
+ + {props.plugin?.name} +
+

{props.plugin?.desc}

+

+ github源码: + +

+
+
+ {props.children} +
+
+ ) +} + +export default PageWrapper \ No newline at end of file diff --git a/apps/admin/src/components/Page/src/compo.module.less b/apps/admin/src/components/Page/src/compo.module.less new file mode 100644 index 00000000..4bab958e --- /dev/null +++ b/apps/admin/src/components/Page/src/compo.module.less @@ -0,0 +1,26 @@ +.compo_page-wrapper { + + .page-header { + width: 100%; + min-height: 48px; + padding: 16px 24px; + margin-bottom: 12px; + background: #fff; + box-sizing: border-box; + + &-name { + margin-bottom: 4px; + font-size: 16px; + font-weight: 600; + + svg { + margin-right: 6px; + } + } + + } + + .page-content { + min-height: 420px + } +} \ No newline at end of file diff --git a/apps/admin/src/components/SvgIcon/index.module.less b/apps/admin/src/components/SvgIcon/index.module.less new file mode 100644 index 00000000..88e9ca7c --- /dev/null +++ b/apps/admin/src/components/SvgIcon/index.module.less @@ -0,0 +1,6 @@ +.svg-icon { + display: inline-block; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; +} \ No newline at end of file diff --git a/apps/admin/src/components/SvgIcon/index.tsx b/apps/admin/src/components/SvgIcon/index.tsx new file mode 100644 index 00000000..8e6e52d6 --- /dev/null +++ b/apps/admin/src/components/SvgIcon/index.tsx @@ -0,0 +1,22 @@ +import { SvgIconProp } from './types' +import styles from './index.module.less' + +export default function SvgIcon({ + name, + prefix = 'icon', + size = 16, + style +} : SvgIconProp) { + const symbolId = `#${prefix}-${name}` + const iconStyle = { + width: `${size}px`, + height: `${size}px`, + ...style + } + + return ( + + ) +} \ No newline at end of file diff --git a/apps/admin/src/components/SvgIcon/types.ts b/apps/admin/src/components/SvgIcon/types.ts new file mode 100644 index 00000000..3402cee0 --- /dev/null +++ b/apps/admin/src/components/SvgIcon/types.ts @@ -0,0 +1,6 @@ +export interface SvgIconProp { + name: string + prefix?: string + size?: number, + style?: React.CSSProperties +} \ No newline at end of file diff --git a/apps/admin/src/components/Upload/index.ts b/apps/admin/src/components/Upload/index.ts new file mode 100644 index 00000000..f96de6ae --- /dev/null +++ b/apps/admin/src/components/Upload/index.ts @@ -0,0 +1,3 @@ +import UploadImage from './src/UploadImage' + +export { UploadImage } \ No newline at end of file diff --git a/apps/admin/src/components/Upload/src/UploadImage.tsx b/apps/admin/src/components/Upload/src/UploadImage.tsx new file mode 100644 index 00000000..d629cbfe --- /dev/null +++ b/apps/admin/src/components/Upload/src/UploadImage.tsx @@ -0,0 +1,60 @@ +import { FC } from 'react' +import type { UploadChangeParam } from 'antd/es/upload' +import { Upload, Button, message } from 'antd' + +interface propState { + onSuccess: (data: any) => void +} + +const UploadImage: FC = ({ onSuccess }) => { + + const handleChange = (imageFile: UploadChangeParam) => { + const { file } = imageFile + const rawImage = file.originFileObj + + if (!rawImage) return + if (!/\.(jpg|png|bmp|jpeg|webp)$/.test(rawImage.name)) { + message.warning('图片只支持.jpg, .png, .bmp, .jpeg, .webp格式!') + return + } + + const isLimit1M = rawImage.size / 1024 /1024 < 5 + if (!isLimit1M) { + message.warning('上传的图片大小不能超过5M!') + return + } + + readImage(rawImage) + } + + const readImage = (image: any) => { + const reader = new FileReader() + reader.onload = e => { + const data = e.target && e.target.result as any + // Convert Array Buffer to blob if it is base64 + const result = typeof data === 'object' ? window.URL.createObjectURL(new Blob([data])) : data + onSuccess(result) + } + // Convert to base64 + reader.readAsDataURL(image) + // Convert to blob + // reader.readAsArrayBuffer(image) + reader.onerror = () => { + message.error('图片读取出错!') + } + } + + return ( + + + + ) +} + +export default UploadImage \ No newline at end of file diff --git a/apps/admin/src/design/antd.less b/apps/admin/src/design/antd.less new file mode 100644 index 00000000..e3d87392 --- /dev/null +++ b/apps/admin/src/design/antd.less @@ -0,0 +1,35 @@ +.ant-menu { + + &.ant-menu-dark { + background: @primary-dark-bg !important; + + .ant-menu-sub { + background: @submenu-dark-bg !important; + } + } +} + +.ant-menu-inline { + svg +span { + margin-inline-start: 4px; + } +} + +.ant-layout-header { + padding: 0 !important; +} + +.ant-table-thead { + + .sub-title { + font-size: 12px; + color: rgba(0, 0, 0, .4); + } +} + +.ant-layout-sider { + + &-dark { + background: @primary-dark-bg !important; + } +} \ No newline at end of file diff --git a/apps/admin/src/design/index.less b/apps/admin/src/design/index.less new file mode 100644 index 00000000..0ffd18db --- /dev/null +++ b/apps/admin/src/design/index.less @@ -0,0 +1,102 @@ +@import './antd.less'; +@import './variable/index.less'; +@import './public.less'; +@import './scroll-bar.less'; + +// CSS resets +* { + padding: 0; + margin: 0; +} + +ul,li { + list-style: none; +} + +p { + margin: 0!important; +} + +a, +a:focus, +a:hover { + cursor: pointer; + color: inherit; + outline: none; + text-decoration: none; +} + +html { + height: 100%; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + box-sizing: border-box; + + &.color-weak { + filter: invert(80%); + } + + &.gray-mode { + filter: grayscale(100%); + filter: progid:dximagetransform.microsoft.basicimage(grayscale=1); + } +} + +body { + height: 100%; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + font-family: Microsoft YaHei,Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Arial, sans-serif; + font-size: 14px; + color: #222; +} + +img { + width: 100%; + height: 100%; + max-width: none; + border-style: none; +} + +pre { + font-family: Consolas,Menlo,Courier,monospace; +} + +.fr { + float: right; +} + +.fl { + float: left; +} + +.clear-fix { + &:before, + &:after { + content: ''; + display: table; + clear: both; + } +} + +.flex-center-v { + display: flex; + align-items: center; +} + +.flex-center-h { + display: flex; + justify-content: center; +} + +.flex-center { + display: flex; + align-items: center; + justify-content: center; +} + +.flex-between-h { + display: flex; + justify-content: space-between; +} \ No newline at end of file diff --git a/apps/admin/src/design/public.less b/apps/admin/src/design/public.less new file mode 100644 index 00000000..a82afe60 --- /dev/null +++ b/apps/admin/src/design/public.less @@ -0,0 +1,23 @@ +// html +span.icon-btn { + display: flex; + align-items: center; + cursor: pointer; + margin-left: 10px; +} + +.ant-upload-drag { + height: auto!important; +} + +.list-upload { + .ant-upload { + width: 100% !important; + } + + .ant-btn { + display: block; + margin: 0 auto 8px; + } +} + diff --git a/apps/admin/src/design/scroll-bar.less b/apps/admin/src/design/scroll-bar.less new file mode 100644 index 00000000..ead950d2 --- /dev/null +++ b/apps/admin/src/design/scroll-bar.less @@ -0,0 +1,29 @@ +// Customize the scroll-bar style +&::-webkit-scrollbar-track-piece { + background-color: rgba(0, 0, 0, 0); + border-left: 1px solid rgba(0, 0, 0, 0); +} + +&::-webkit-scrollbar { + width: 6px; + height: 6px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +&::-webkit-scrollbar-thumb { + background-color: rgba(0, 0, 0, 0.2); + background-clip: padding-box; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + min-height: 28px; +} + +&::-webkit-scrollbar-thumb:hover { + background-color: rgba(0, 0, 0, 0.3); + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} diff --git a/apps/admin/src/design/variable/color.less b/apps/admin/src/design/variable/color.less new file mode 100644 index 00000000..8b41df9f --- /dev/null +++ b/apps/admin/src/design/variable/color.less @@ -0,0 +1,5 @@ +@white: #fff; +@primary-color: #1890ff; + +@primary-dark-bg: #263238; +@submenu-dark-bg: #202b30; \ No newline at end of file diff --git a/apps/admin/src/design/variable/index.less b/apps/admin/src/design/variable/index.less new file mode 100644 index 00000000..2462f65e --- /dev/null +++ b/apps/admin/src/design/variable/index.less @@ -0,0 +1,5 @@ +@import './color.less'; + +@namespace: v-desg; + +@layout-hybrid-sider-fixed-z-index: 550; diff --git a/apps/admin/src/enums/appEnum.ts b/apps/admin/src/enums/appEnum.ts new file mode 100644 index 00000000..6eda1b60 --- /dev/null +++ b/apps/admin/src/enums/appEnum.ts @@ -0,0 +1,32 @@ +export const SIDE_BAR_MIN_WIDTH = 48 +export const SIDE_BAR_SHOW_TITLE_MIN_WIDTH = 80 + +// App mode enum +export enum AppModeEnum { + DARK = 'dark', + LIGHT = 'light' +} + +// Menu theme enum +export enum ThemeEnum { + DARK = 'dark', + LIGHT = 'light' +} + +// Page switching animation +export enum PageTransitionEnum { + FADE = 'fade', + FADE_SIDE = 'fade-slide', + FADE_BOTTOM = 'fade-bottom', + FADE_SCALE = 'fade-scale', + ZOOM_FADE = 'zoom-fade', + ZOOM_OUT = 'zoom-out' +} + +// Permission mode +export enum PermissionModeEnum { + // Route mapping + MAPPING = 'MAPPING', + // The back-end response + BACKEND = 'BACKEND' +} diff --git a/apps/admin/src/enums/cacheEnum.ts b/apps/admin/src/enums/cacheEnum.ts new file mode 100644 index 00000000..c7c740e5 --- /dev/null +++ b/apps/admin/src/enums/cacheEnum.ts @@ -0,0 +1,18 @@ +export const TOKEN_KEY = 'TOKEN_KEY' + +export const LOCALE_KEY = 'LOCALE_KEY' + +export const USER_INFO_KEY = 'USER_INFO_KEY' + +export const APP_CONFIG_KEY = 'APP_CONFIG_KEY' + +export const APP_TAGS_KEY = 'APP_TAGS_KEY' + +export const APP_LOCAL_CACHE_KEY = 'APP_LOCAL_CACHE_KEY' + +export const APP_SESSION_CACHE_KEY = 'APP_SESSION_CACHE_KEY' + +export enum CacheTypeEnum { + SESSION, + LOCAL, +} \ No newline at end of file diff --git a/apps/admin/src/enums/exceptionEnum.ts b/apps/admin/src/enums/exceptionEnum.ts new file mode 100644 index 00000000..47d048ec --- /dev/null +++ b/apps/admin/src/enums/exceptionEnum.ts @@ -0,0 +1,10 @@ +export enum ExceptionEnum { + // page not access + PAGE_NOT_ACCESS = 403, + + // page not found + PAGE_NOT_FOUND = 404, + + // server error + SERVER_ERROR = 500 +} diff --git a/apps/admin/src/enums/menuEnum.ts b/apps/admin/src/enums/menuEnum.ts new file mode 100644 index 00000000..55b00de9 --- /dev/null +++ b/apps/admin/src/enums/menuEnum.ts @@ -0,0 +1,26 @@ +// Menu types +export enum MenuTypeEnum { + SIDER_MENU = 'sider-menu', + + HEADER_MENU = 'header-menu', + + HYBRID_MENU = 'hybrid-menu' +} + +// Menu modes +export enum MenuModeEnum { + VERTICAL = 'vertical', + + HORIZONTAL = 'horizontal', + + INLINE = 'inline' +} + +// Menu folding button location +export enum MenuFoldBtnEnum { + NONE = 'none', + + HEADER = 'header', + + SIDER = 'sider' +} diff --git a/apps/admin/src/enums/tagsEnum.ts b/apps/admin/src/enums/tagsEnum.ts new file mode 100644 index 00000000..0cbfdfab --- /dev/null +++ b/apps/admin/src/enums/tagsEnum.ts @@ -0,0 +1,8 @@ +export enum TagActionEnum { + REFRESH, + CLOSE, + CLOSE_LEFT, + CLOSE_RIGHT, + CLOSE_OTHER, + CLOSE_ALL +} diff --git a/apps/admin/src/hooks/web/useECharts.ts b/apps/admin/src/hooks/web/useECharts.ts new file mode 100644 index 00000000..ef6f8369 --- /dev/null +++ b/apps/admin/src/hooks/web/useECharts.ts @@ -0,0 +1,75 @@ +import type { EChartsOption } from 'echarts' +import { useRef, useEffect } from 'react' +import { useDebounceFn } from 'ahooks' +import echarts from '@/utils/echarts' + +export function useECharts( + options: EChartsOption, + loading: boolean = true, + theme: 'light' | 'dark' | 'default' = 'default' +) { + + const chartRef = useRef(null) + let chartInstance: echarts.ECharts | null = null + + const { run: resizeFn } = useDebounceFn( + () => { + chartInstance?.resize() + }, + { wait: 200 } + ) + + useEffect(() => { + initCharts() + + return () => { + disposeCharts() + } + }, []) + + useEffect(() => { + if (loading) return + setOptions(options) + + return () => { + disposeCharts() + } + }, [loading, options]) + + const initCharts = (t = theme) => { + const el = chartRef?.current + if (!el) return + + chartInstance = echarts.init(el, t) + + window.addEventListener('resize', resizeFn) + } + + const setOptions = (options: EChartsOption) => { + if (!chartInstance) { + initCharts() + + if (!chartInstance) return + } + + chartInstance?.clear() + + chartInstance?.setOption(options) + } + + const disposeCharts = () => { + if (!chartInstance) return + window.removeEventListener('resize', resizeFn) + chartInstance.dispose() + chartInstance = null + } + + const getInstance = (): echarts.ECharts | null => { + if (!chartInstance) { + initCharts() + } + return chartInstance + } + + return { chartRef, getInstance } +} \ No newline at end of file diff --git a/apps/admin/src/hooks/web/useMessage.tsx b/apps/admin/src/hooks/web/useMessage.tsx new file mode 100644 index 00000000..c2461fc3 --- /dev/null +++ b/apps/admin/src/hooks/web/useMessage.tsx @@ -0,0 +1,54 @@ +import type { ModalFuncProps } from 'antd' +import { Modal, message as Message } from 'antd' +import { InfoCircleFilled, CheckCircleFilled, CloseCircleFilled } from '@ant-design/icons' + +import { isString } from '@/utils/is' + +export interface ModalOptionsEx extends Omit { + iconType: 'success' | 'info' | 'warning' | 'error' +} + +function getIcon(iconType: string) { + if (iconType === 'warning') { + return + } else if (iconType === 'success') { + return + } else if (iconType === 'info') { + return + } else { + return + } +} + +function renderContent({ content }: Pick) { + if (isString(content)) { + // @ts-ignore + return
${content as string}
`}> + } else { + return content + } +} + +// Create confirmation box +function createConfirm(options: ModalOptionsEx) { + const iconType = options.iconType || 'warning' + Reflect.deleteProperty(options, 'iconType') + + const opt: ModalFuncProps = { + centered: true, + icon: getIcon(iconType), + content: renderContent(options), + okText: '确定', + cancelText: '取消', + ...options + } + + return Modal.confirm(opt) +} + +export function useMessage() { + return { + createMessage: Message, + createConfirm + } +} diff --git a/apps/admin/src/hooks/web/useTitle.ts b/apps/admin/src/hooks/web/useTitle.ts new file mode 100644 index 00000000..b8839455 --- /dev/null +++ b/apps/admin/src/hooks/web/useTitle.ts @@ -0,0 +1,18 @@ +import { useState, useEffect } from 'react' +import { useLocation } from 'react-router-dom' +import { useTitle as usePageTitle } from 'ahooks' +import { searchRoute } from '@/utils' +import { basicRoutes } from '@/router' + +// 监听页面变化和动态改变网站标题 +export function useTitle() { + const [pageTitle, setPageTitle] = useState('react-admin-design') + const { pathname } = useLocation() + + useEffect(() => { + const currRoute = searchRoute(pathname, basicRoutes) + setPageTitle(currRoute?.meta.title) + }, [pathname]) + + usePageTitle(pageTitle) +} diff --git a/apps/admin/src/layout/feature/components/DocLink.tsx b/apps/admin/src/layout/feature/components/DocLink.tsx new file mode 100644 index 00000000..470d23d3 --- /dev/null +++ b/apps/admin/src/layout/feature/components/DocLink.tsx @@ -0,0 +1,16 @@ +import { Tooltip } from 'antd' +import SvgIcon from '@/components/SvgIcon' + +export default function DocLink() { + return ( + + + + + + ) +} \ No newline at end of file diff --git a/apps/admin/src/layout/feature/components/FullScreen.tsx b/apps/admin/src/layout/feature/components/FullScreen.tsx new file mode 100644 index 00000000..a9de3727 --- /dev/null +++ b/apps/admin/src/layout/feature/components/FullScreen.tsx @@ -0,0 +1,15 @@ +import { Tooltip } from 'antd' +import { useFullscreen } from 'ahooks' +import SvgIcon from '@/components/SvgIcon' + +export default function FullScreen() { + const [isFullscreen, { toggleFullscreen }] = useFullscreen(document.body) + + return ( + + + {!isFullscreen ? : } + + + ) +} diff --git a/apps/admin/src/layout/feature/components/GithubLink.tsx b/apps/admin/src/layout/feature/components/GithubLink.tsx new file mode 100644 index 00000000..d98fdc91 --- /dev/null +++ b/apps/admin/src/layout/feature/components/GithubLink.tsx @@ -0,0 +1,27 @@ +import { Tooltip } from 'antd' +import { openWindow } from '@/utils' +import SvgIcon from '@/components/SvgIcon' + +export default function GithubLink() { + function openGithub () { + openWindow('https://github.com/baimingxuan/react-admin-design') + } + + return ( + + + + + + ) +} \ No newline at end of file diff --git a/apps/admin/src/layout/feature/components/UserDropdown.tsx b/apps/admin/src/layout/feature/components/UserDropdown.tsx new file mode 100644 index 00000000..1ef9b3d5 --- /dev/null +++ b/apps/admin/src/layout/feature/components/UserDropdown.tsx @@ -0,0 +1,98 @@ +import type { MenuProps } from 'antd' +import { Space, Dropdown } from 'antd' +import { LockOutlined, PoweroffOutlined } from '@ant-design/icons' +import { useNavigate } from 'react-router-dom' +import { getAuthCache, clearAuthCache } from '@/utils/auth' +import { TOKEN_KEY } from '@/enums/cacheEnum' +import { useAppDispatch, useAppSelector } from '@/stores' +import { useMessage } from '@/hooks/web/useMessage' +import { logoutApi } from '@/api' +import { resetState } from '@/stores/modules/user' +import headerImg from '@/assets/images/avatar.jpeg' + +export default function UserDropdown() { + const items: MenuProps['items'] = [ + { + key: 'lock', + label: ( + + + 锁定屏幕 + + ) + }, + { + key: 'logout', + label: ( + + + 退出登录 + + ) + } + ] + + const onClick: MenuProps['onClick'] = ({ key }) => { + switch (key) { + case 'lock': + handleLock() + break + case 'logout': + handleLogout() + break + } + } + + const navigate = useNavigate() + + const dispatch = useAppDispatch() + const { token } = useAppSelector(state => state.user) + const getToken = (): string => { + return token || getAuthCache(TOKEN_KEY) + } + + const handleLock = () => {} + + const handleLogout = () => { + const { createConfirm } = useMessage() + + createConfirm({ + iconType: 'warning', + title: 温馨提醒, + content: 是否确认退出系统?, + onOk: async () => { + await logoutAction(true) + } + }) + } + + const logoutAction = async (goLogin = false) => { + if (getToken()) { + try { + await logoutApi() + } catch (error) { + const { createMessage } = useMessage() + createMessage.error('注销失败!') + } + } + dispatch(resetState()) + clearAuthCache() + goLogin && navigate('/login') + } + + return ( + + + + + + ) +} diff --git a/apps/admin/src/layout/feature/components/index.ts b/apps/admin/src/layout/feature/components/index.ts new file mode 100644 index 00000000..5443d3ba --- /dev/null +++ b/apps/admin/src/layout/feature/components/index.ts @@ -0,0 +1,6 @@ +import FullScreen from './FullScreen' +import DocLink from './DocLink' +import GithubLink from './GithubLink' +import UserDropdown from './UserDropdown' + +export { FullScreen, DocLink, GithubLink, UserDropdown } \ No newline at end of file diff --git a/apps/admin/src/layout/feature/index.module.less b/apps/admin/src/layout/feature/index.module.less new file mode 100644 index 00000000..a5236973 --- /dev/null +++ b/apps/admin/src/layout/feature/index.module.less @@ -0,0 +1,19 @@ +.layout_feature { + display: flex; + align-items: center; + justify-content: space-between; + min-width: 210px; + height: 48px; + + &-main { + display: flex; + justify-content: right; + min-width: 156px; + } + + &-divider { + height: 50%; + margin: 0; + border-color: rgba(0, 0, 0, .3); + } +} \ No newline at end of file diff --git a/apps/admin/src/layout/feature/index.tsx b/apps/admin/src/layout/feature/index.tsx new file mode 100644 index 00000000..34771010 --- /dev/null +++ b/apps/admin/src/layout/feature/index.tsx @@ -0,0 +1,21 @@ +import { Divider } from 'antd' +import { FullScreen, DocLink, GithubLink, UserDropdown } from './components' +import moduleStyle from './index.module.less' + +export default function LayoutFeature() { + const prefixCls = 'layout_feature' + + return ( +
+
+ {/* */} + + {/* */} + + +
+ + +
+ ) +} \ No newline at end of file diff --git a/apps/admin/src/layout/header/components/Breadcrumb.tsx b/apps/admin/src/layout/header/components/Breadcrumb.tsx new file mode 100644 index 00000000..086212a2 --- /dev/null +++ b/apps/admin/src/layout/header/components/Breadcrumb.tsx @@ -0,0 +1,33 @@ +import { useState, useEffect } from 'react' +import { Breadcrumb } from 'antd' +import { useLocation, matchRoutes } from 'react-router-dom' +import { useAppSelector } from '@/stores' +import SvgIcon from '@/components/SvgIcon' + +export default function LayoutBreadcrumb() { + const [breadcrumbs, setBreadcrumbs] = useState([]) + const { pathname } = useLocation() + const getMenuList = useAppSelector(state => state.menu.menuList) + + useEffect(() => { + const matchRouteList = matchRoutes(getMenuList, pathname) || [] + const breadcrumbList = matchRouteList.map((item: any) => { + const { name, icon = '' } = item?.route + return { + title: ( + <> + {icon && } + {name} + + ) + } + }) + setBreadcrumbs(breadcrumbList) + }, [pathname]) + + return ( +
+ +
+ ) +} diff --git a/apps/admin/src/layout/header/components/FoldTrigger/index.module.less b/apps/admin/src/layout/header/components/FoldTrigger/index.module.less new file mode 100644 index 00000000..37bfa791 --- /dev/null +++ b/apps/admin/src/layout/header/components/FoldTrigger/index.module.less @@ -0,0 +1,14 @@ +.compo_fold-trigger { + display: flex; + align-items: center; + cursor: pointer; + + &.unfold { + + svg { + transform: scaleX(-1); + transition: transform 0.2s; + } + } + +} diff --git a/apps/admin/src/layout/header/components/FoldTrigger/index.tsx b/apps/admin/src/layout/header/components/FoldTrigger/index.tsx new file mode 100644 index 00000000..67d57685 --- /dev/null +++ b/apps/admin/src/layout/header/components/FoldTrigger/index.tsx @@ -0,0 +1,23 @@ +import { useAppSelector, useAppDispatch } from '@/stores' +import { setAppConfig } from '@/stores/modules/app' +import SvgIcon from '@/components/SvgIcon' +import style from './index.module.less' +import classNames from 'classnames' + +export default function FoldTrigger() { + const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) + const dispatch = useAppDispatch() + + function toggledMenuFold() { + dispatch(setAppConfig({ menuSetting: { menuFold: !getMenuFold } })) + } + + return ( + + + + ) +} diff --git a/apps/admin/src/layout/header/components/index.ts b/apps/admin/src/layout/header/components/index.ts new file mode 100644 index 00000000..5bd547de --- /dev/null +++ b/apps/admin/src/layout/header/components/index.ts @@ -0,0 +1,4 @@ +import FoldTrigger from './FoldTrigger' +import Breadcrumb from './Breadcrumb' + +export { FoldTrigger, Breadcrumb } \ No newline at end of file diff --git a/apps/admin/src/layout/header/index.tsx b/apps/admin/src/layout/header/index.tsx new file mode 100644 index 00000000..ca0ad5da --- /dev/null +++ b/apps/admin/src/layout/header/index.tsx @@ -0,0 +1,30 @@ +import { Layout } from 'antd' +import { Breadcrumb, FoldTrigger } from './components' +import LayoutFeature from '../feature' +import LayoutTags from '../tags' + +const LayoutHeader = (props: any) => { + const { Header } = Layout + + return ( +
+
+
+ + +
+ +
+ +
+ ) +} + +export default LayoutHeader diff --git a/apps/admin/src/layout/index.less b/apps/admin/src/layout/index.less new file mode 100644 index 00000000..344a5fbc --- /dev/null +++ b/apps/admin/src/layout/index.less @@ -0,0 +1,14 @@ +.layout_wrapper { + display: flex; + width: 100%; + height: 100vh; + overflow-x: hidden; + + .ant-layout-content { + height: calc(100vh - 48px); + box-sizing: border-box; + flex: 1; + padding: 12px; + overflow-x: hidden; + } +} \ No newline at end of file diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx new file mode 100644 index 00000000..f84110bb --- /dev/null +++ b/apps/admin/src/layout/index.tsx @@ -0,0 +1,33 @@ +import { Layout } from 'antd' +import { Outlet } from 'react-router-dom' +import LayoutMenu from './menu' +import LayoutHeader from './header' +import { AppLogo } from '@/components/AppLogo' +import './index.less' +import { useTitle } from '@/hooks/web/useTitle' +import { useAppSelector } from '@/stores' +import ErrorBoundary from 'antd/es/alert/ErrorBoundary' + +export const BasicLayout = (props: any) => { + useTitle() + const { Sider, Content } = Layout + + const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) + + return ( + + + + + + + + + + + + + + + ) +} diff --git a/apps/admin/src/layout/menu/index.tsx b/apps/admin/src/layout/menu/index.tsx new file mode 100644 index 00000000..d25df59c --- /dev/null +++ b/apps/admin/src/layout/menu/index.tsx @@ -0,0 +1,113 @@ +import type { MenuProps } from 'antd' +import React, { useState, useEffect } from 'react' +import { useNavigate, useLocation } from 'react-router-dom' +import { connect } from 'react-redux' +import { Menu, Spin } from 'antd' +import { getAsyncMenus } from '@/router/menus' +import { AppMenu } from '@/router/types' +import { setMenuList } from '@/stores/modules/menu' +import { getOpenKeys } from '@/utils/helper/menuHelper' +import SvgIcon from '@/components/SvgIcon' + +type MenuItem = Required['items'][number] + +const getItem = ( + label: React.ReactNode, + key: React.Key, + icon?: React.ReactNode, + children?: MenuItem[], + type?: 'group' +): MenuItem => { + return { + label, + key, + icon, + children, + type + } as MenuItem +} + +const LayoutMenu = (props: any) => { + const { pathname } = useLocation() + const { setMenuList: setMenuListAction } = props + const [loading, setLoading] = useState(false) + const [menuList, setMenuList] = useState([]) + const [openKeys, setOpenKeys] = useState([]) + const [selectedKeys, setSelectedKeys] = useState([pathname]) + + useEffect(() => { + setSelectedKeys([pathname]) + + setOpenKeys(getOpenKeys(pathname)) + }, [pathname]) + + const addIcon = (icon?: string) => { + if (!icon) return null + return ( + + + + ) + } + + const getMenuItem = (data: AppMenu[], list: MenuItem[] = []) => { + data.forEach((item: AppMenu) => { + if (!item?.children?.length) { + return list.push(getItem(item.name, item.path, addIcon(item.icon))) + } + list.push(getItem(item.name, item.path, addIcon(item.icon), getMenuItem(item.children))) + }) + return list + } + + const getMenuList = async () => { + setLoading(true) + try { + const menus = await getAsyncMenus() + setMenuList(getMenuItem(menus)) + setMenuListAction(menus) + } finally { + setLoading(false) + } + } + + useEffect(() => { + getMenuList() + }, []) + + const handleOpenChange: MenuProps['onOpenChange'] = (keys: string[]) => { + if (keys.length === 0 || keys.length === 1) return setOpenKeys(keys) + const latestKey = keys[keys.length - 1] + if (latestKey.includes(keys[0])) return setOpenKeys(keys) + setOpenKeys([latestKey]) + } + + const navigate = useNavigate() + const handleMenuClick: MenuProps['onClick'] = ({ key }: { key: string }) => { + navigate(key) + } + + return ( +
+ + + +
+ ) +} + +const mapStateToProps = (state: any) => state.menu +const mapDispatchToProps = { setMenuList } + +export default connect(mapStateToProps, mapDispatchToProps)(LayoutMenu) diff --git a/apps/admin/src/layout/tags/components/TagItem/index.module.less b/apps/admin/src/layout/tags/components/TagItem/index.module.less new file mode 100644 index 00000000..d31f9e2a --- /dev/null +++ b/apps/admin/src/layout/tags/components/TagItem/index.module.less @@ -0,0 +1,47 @@ +.compo_tag-item { + display: inline-block; + vertical-align: top; + height: 24px; + margin: 0 2px; + padding: 0 8px; + border-radius: 3px; + line-height: 24px; + color: #555; + background: #fff; + overflow: hidden; + cursor: pointer; + + &__dot { + display: inline-block; + vertical-align: baseline; + width: 8px; + height: 8px; + margin-right: 6px; + border-radius: 50%; + background: #dcdee0; + } + + &__name { + font-size: 12px; + } + + :global .anticon-close { + vertical-align: baseline; + svg { + width: 8px; + height: 8px; + } + } + + &.active { + border: none; + color: #fff; + background: #1890ff; + & .compo_tag-item__dot{ + background: #fff; + } + :global .anticon-close { + color: #fff; + } + } +} diff --git a/apps/admin/src/layout/tags/components/TagItem/index.tsx b/apps/admin/src/layout/tags/components/TagItem/index.tsx new file mode 100644 index 00000000..56388f06 --- /dev/null +++ b/apps/admin/src/layout/tags/components/TagItem/index.tsx @@ -0,0 +1,28 @@ +import { FC } from 'react' +import { Tag } from 'antd' +import classNames from 'classnames' +import styles from './index.module.less' + +interface PropState { + name: string + fixed?: boolean + active?: boolean + closeTag: () => void + onClick: () => void +} + +const TagItem: FC = ({ name, fixed, active, closeTag, onClick }) => { + return ( + + + {name} + + ) +} + +export default TagItem diff --git a/apps/admin/src/layout/tags/components/index.ts b/apps/admin/src/layout/tags/components/index.ts new file mode 100644 index 00000000..49acc629 --- /dev/null +++ b/apps/admin/src/layout/tags/components/index.ts @@ -0,0 +1,3 @@ +import TagItem from './TagItem' + +export { TagItem } diff --git a/apps/admin/src/layout/tags/index.module.less b/apps/admin/src/layout/tags/index.module.less new file mode 100644 index 00000000..bb034ad6 --- /dev/null +++ b/apps/admin/src/layout/tags/index.module.less @@ -0,0 +1,30 @@ +.layout_tags { + z-index: 299; + display: flex; + justify-content: space-between; + height: 32px; + padding: 4px 12px; + line-height: 32px; + // border-top: dashed 1px #d9d9d9; + box-sizing: border-box; + + &__main { + position: relative; + width: calc(100% - 116px); + height: 24px; + overflow: hidden; + + &-body { + position: absolute; + height: 100%; + padding: 0 2px; + overflow: visible; + white-space: nowrap; + transition: left .5s ease; + } + } + + &__btn-space { + margin-left: 4px; + } +} diff --git a/apps/admin/src/layout/tags/index.tsx b/apps/admin/src/layout/tags/index.tsx new file mode 100644 index 00000000..fa41a72a --- /dev/null +++ b/apps/admin/src/layout/tags/index.tsx @@ -0,0 +1,210 @@ +import type { MenuProps } from 'antd' +import type { RouteObject } from '@/router/types' +import { FC, WheelEvent, useState, useEffect, useRef } from 'react' +import { Button, Dropdown } from 'antd' +import { LeftOutlined, RightOutlined, RedoOutlined, CloseOutlined } from '@ant-design/icons' +import { useLocation, useNavigate } from 'react-router-dom' +import { TagItem } from './components' +import { basicRoutes } from '@/router' +import { useAppSelector, useAppDispatch } from '@/stores' +import { addVisitedTags } from '@/stores/modules/tags' +import { searchRoute } from '@/utils' +import { closeAllTags, closeTagByKey, closeTagsByType } from '@/stores/modules/tags' +import classNames from 'classnames' +import styles from './index.module.less' + +const LayoutTags: FC = () => { + const items: MenuProps['items'] = [ + { key: 'left', label: '关闭左侧' }, + { key: 'right', label: '关闭右侧' }, + { key: 'other', label: '关闭其它' }, + { key: 'all', label: '关闭所有' } + ] + + const onClick: MenuProps['onClick'] = ({ key }) => { + if (key === 'all') { + // @ts-ignore + dispatch(closeAllTags()).then(({ payload }) => { + const lastTag = payload.slice(-1)[0] + if (activeTag !== lastTag?.fullPath) { + navigate(lastTag?.fullPath) + } + }) + } else { + dispatch(closeTagsByType({ type: key, path: activeTag })) + } + } + + const tagsMain = useRef(null) + const tagsMainBody = useRef(null) + + const [tagsBodyLeft, setTagsBodyLeft] = useState(0) + + const { pathname } = useLocation() + const navigate = useNavigate() + const visitedTags = useAppSelector(state => state.tags.visitedTags) + const dispatch = useAppDispatch() + + const [activeTag, setActiveTag] = useState(pathname) + + useEffect(() => { + const affixTags = initAffixTags(basicRoutes) + for (const tag of affixTags) { + dispatch(addVisitedTags(tag)) + } + }, []) + + useEffect(() => { + const currRoute = searchRoute(pathname, basicRoutes) + if (currRoute) { + dispatch(addVisitedTags(currRoute)) + } + setActiveTag(pathname) + }, [pathname]) + + useEffect(() => { + const tagNodeList = tagsMainBody.current?.childNodes as unknown as Array + const activeTagNode = Array.from(tagNodeList).find(item => item.dataset.path === activeTag)! + moveToActiveTag(activeTagNode) + }, [activeTag]) + + const initAffixTags = (routes: RouteObject[], basePath: string = '/') => { + let affixTags: RouteObject[] = [] + + for (const route of routes) { + if (route.meta?.affix) { + const fullPath = route.path!.startsWith('/') ? route.path : basePath + route.path + affixTags.push({ + ...route, + path: fullPath + }) + } + if (route.children && route.children.length) { + affixTags = affixTags.concat(initAffixTags(route.children, route.path)) + } + } + + return affixTags + } + + const moveToActiveTag = (tag: any) => { + let leftOffset: number = 0 + const mainBodyPadding = 4 + const mainWidth = tagsMain.current?.offsetWidth! + const mainBodyWidth = tagsMainBody.current?.offsetWidth! + if (mainBodyWidth < mainWidth) { + leftOffset = 0 + } else if (tag?.offsetLeft! < -tagsBodyLeft) { + // 标签在可视区域左侧 (The active tag on the left side of the layout_tags-main) + leftOffset = -tag?.offsetLeft! + mainBodyPadding + } else if (tag?.offsetLeft! > -tagsBodyLeft && tag?.offsetLeft! + tag?.offsetWidth! < -tagsBodyLeft + mainWidth) { + // 标签在可视区域 (The active tag on the layout_tags-main) + leftOffset = Math.min(0, mainWidth - tag?.offsetWidth! - tag?.offsetLeft! - mainBodyPadding) + } else { + // 标签在可视区域右侧 (The active tag on the right side of the layout_tags-main) + leftOffset = -(tag?.offsetLeft! - (mainWidth - mainBodyPadding - tag?.offsetWidth!)) + } + setTagsBodyLeft(leftOffset) + } + + const handleMove = (offset: number) => { + let leftOffset: number = 0 + const mainWidth = tagsMain.current?.offsetWidth! + const mainBodyWidth = tagsMainBody.current?.offsetWidth! + + if (offset > 0) { + leftOffset = Math.min(0, tagsBodyLeft + offset) + } else { + if (mainWidth < mainBodyWidth) { + if (tagsBodyLeft >= -(mainBodyWidth - mainWidth)) { + leftOffset = Math.max(tagsBodyLeft + offset, mainWidth - mainBodyWidth) + } + } else { + leftOffset = 0 + } + } + setTagsBodyLeft(leftOffset) + } + + const handleScroll = (e: WheelEvent) => { + const type = e.type + let distance: number = 0 + + if (type === 'wheel') { + distance = e.deltaY ? e.deltaY * 2 : -(e.detail || 0) * 2 + } + + handleMove(distance) + } + + const handleCloseTag = (path: string) => { + // @ts-ignore + dispatch(closeTagByKey(path)).then(({ payload }) => { + let currTag: RouteObject = {} + const { tagIndex, tagsList } = payload + const tagLen = tagsList.length + if (path === activeTag) { + if (tagIndex <= tagLen - 1) { + currTag = tagsList[tagIndex] + } else { + currTag = tagsList[tagLen - 1] + } + navigate(currTag?.fullPath!) + } + }) + } + + const handleClickTag = (path: string) => { + setActiveTag(path) + navigate(path) + } + + const handleReload = () => {} + + return ( +
+
+ ) +} + +export default LayoutTags diff --git a/apps/admin/src/main.tsx b/apps/admin/src/main.tsx new file mode 100644 index 00000000..39e49e1e --- /dev/null +++ b/apps/admin/src/main.tsx @@ -0,0 +1,20 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import { Provider } from 'react-redux' +import { PersistGate } from 'redux-persist/integration/react' +import { store, persistor } from './stores' +import App from './App' +import '@/design/index.less' + +// register svg icon +import 'virtual:svg-icons-register' + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( + + + + + + + +) diff --git a/apps/admin/src/router/guard/guardRoute.tsx b/apps/admin/src/router/guard/guardRoute.tsx new file mode 100644 index 00000000..4ea774b2 --- /dev/null +++ b/apps/admin/src/router/guard/guardRoute.tsx @@ -0,0 +1,24 @@ +import { ReactNode } from 'react' +import { Navigate, useLocation } from 'react-router-dom' +import { getAuthCache } from '@/utils/auth' +import { TOKEN_KEY } from '@/enums/cacheEnum' +import { useAppSelector } from '@/stores' + +export const GuardRoute = ({ children }: { children: ReactNode }) => { + const whiteList: string[] = ['/', '/home', '/login'] + const { pathname } = useLocation() + const { token } = useAppSelector(state => state.user) + const getToken = (): string => { + return token || getAuthCache(TOKEN_KEY) + } + + if (!getToken()) { + if (whiteList.includes(pathname)) { + return + } else { + return + } + } + + return children +} diff --git a/apps/admin/src/router/guard/index.tsx b/apps/admin/src/router/guard/index.tsx new file mode 100644 index 00000000..70db9087 --- /dev/null +++ b/apps/admin/src/router/guard/index.tsx @@ -0,0 +1,10 @@ +import { BasicLayout } from '@/layout' +import { GuardRoute } from './guardRoute' + +export const LayoutGuard = () => { + return ( + + + + ) +} diff --git a/apps/admin/src/router/helpers/index.ts b/apps/admin/src/router/helpers/index.ts new file mode 100644 index 00000000..c4d890e4 --- /dev/null +++ b/apps/admin/src/router/helpers/index.ts @@ -0,0 +1,63 @@ +import type { RouteObject, AppMenu } from '../types' +import { cloneDeep } from 'lodash-es' +import { isUrl } from '@/utils/is' +import { treeMap } from '@/utils/helper/treeHelper' + +export function joinParentPath(menus: AppMenu[], parentPath = '') { + for (let index = 0; index < menus.length; index++) { + const menu = menus[index] + // Note that nested paths that start with / will be treated as a root path. + if (!(menu.path.startsWith('/') || isUrl(menu.path))) { + // Path doesn't start with /, nor is it a url, join parent path + menu.path = `${parentPath}/${menu.path}` + } + if (menu?.children?.length) { + joinParentPath(menu.children, menu.path) + } + } +} + +export function transformRouteToMenu(routes: RouteObject[]) { + const cloneRoutes = cloneDeep(routes) + const routeList: RouteObject[] = [] + + cloneRoutes.forEach(item => { + if (item.meta!.hideChildrenInMenu) { + item.children = [] + } + + routeList.push(item) + }) + + const list = treeMap(routeList, { + conversion: (node: RouteObject) => { + const { meta: { title, hideMenu = false, ...rest } = {} } = node + + return { + ...(rest || {}), + name: title, + hideMenu, + path: node.path + } + } + }) as AppMenu[] + + joinParentPath(list) + return cloneDeep(list) +} + +export function genFullPath(routes: RouteObject[], parentPath = '') { + for (let index = 0; index < routes.length; index++) { + const route = routes[index] + + if (route.path!.startsWith('/')) { + route.fullPath = route.path + } else { + route.fullPath = `${parentPath}/${route.path}` + } + + if (route?.children?.length) { + genFullPath(route.children, route.fullPath) + } + } +} diff --git a/apps/admin/src/router/index.tsx b/apps/admin/src/router/index.tsx new file mode 100644 index 00000000..49769255 --- /dev/null +++ b/apps/admin/src/router/index.tsx @@ -0,0 +1,59 @@ +import { RouteObject } from './types' +import { Navigate, createHashRouter, redirect } from 'react-router-dom' +import { genFullPath } from './helpers' +import { ExceptionEnum } from '@/enums/exceptionEnum' +import { getAuthCache } from '@/utils/auth' +import { TOKEN_KEY } from '@/enums/cacheEnum' +import LoginPage from '@/views/login' +import PageException from '@/views/exception' + +const metaRoutes = import.meta.glob('./routes/*.tsx', { eager: true }) as Recordable + +const routeList: RouteObject[] = [] + +Object.keys(metaRoutes).forEach(key => { + const module = metaRoutes[key].default || {} + const moduleList = Array.isArray(module) ? [...module] : [module] + genFullPath(moduleList) + routeList.push(...moduleList) +}) + +const rootRoutes: RouteObject[] = [ + { + path: '/', + element: + }, + { + path: '/login', + element: , + meta: { + title: '登录页', + key: 'login' + }, + loader: () => { + if (getAuthCache(TOKEN_KEY)) { + return redirect('/') + } + return null + } + }, + ...routeList, + { + path: '*', + element: + }, + { + path: '/403', + element: , + loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: false }) + }, + { + path: '/404', + element: , + loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: false }) + } +] + +export { routeList as basicRoutes } + +export default createHashRouter(rootRoutes) diff --git a/apps/admin/src/router/menus/index.ts b/apps/admin/src/router/menus/index.ts new file mode 100644 index 00000000..b49b4c26 --- /dev/null +++ b/apps/admin/src/router/menus/index.ts @@ -0,0 +1,13 @@ +import type { AppMenu } from '../types' +import { basicRoutes } from '..' +import { transformRouteToMenu } from '../helpers' + +// Get async menus +export async function getAsyncMenus(): Promise { + const staticMenus = transformRouteToMenu(basicRoutes) + staticMenus.sort((a, b) => { + return (a?.orderNo || staticMenus.length) - (b?.orderNo || staticMenus.length) + }) + + return staticMenus.filter((item) => !item.hideMenu) +} diff --git a/apps/admin/src/router/routes/compo.tsx b/apps/admin/src/router/routes/compo.tsx new file mode 100644 index 00000000..049b716e --- /dev/null +++ b/apps/admin/src/router/routes/compo.tsx @@ -0,0 +1,66 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// component module page +const CompoRoute: RouteObject = { + path: '/compo', + element: , + meta: { + title: '组件', + icon: 'compo', + orderNo: 6 + }, + children: [ + { + path: 'image-upload', + element: LazyLoad(lazy(() => import('@/views/compo/image-upload'))), + meta: { + title: '图片上传', + key: 'imageUpload' + } + }, + { + path: 'drag', + meta: { + title: '拖拽' + }, + children: [ + { + path: 'drag-list', + element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-list'))), + meta: { + title: '列表拖拽', + key: 'dragList' + } + }, + { + path: 'drag-resize', + element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-resize'))), + meta: { + title: '组件拖拽', + key: 'dragResize' + } + } + ] + }, + { + path: 'transfer', + element: LazyLoad(lazy(() => import('@/views/compo/transfer'))), + meta: { + title: '穿梭框' + } + }, + { + path: 'count-up', + element: LazyLoad(lazy(() => import('@/views/compo/count-up'))), + meta: { + title: '数字滚动', + key: 'countUp' + } + } + ] +} + +export default CompoRoute diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/routes/excel.tsx new file mode 100644 index 00000000..f4442649 --- /dev/null +++ b/apps/admin/src/router/routes/excel.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// excel module page +const ExcelRoute: RouteObject = { + path: '/excel', + element: , + meta: { + title: 'Excel', + icon: 'excel', + orderNo: 10 + }, + children: [ + { + path: 'export-excel', + element: LazyLoad(lazy(() => import('@/views/excel/export-excel'))), + meta: { + title: '导出Excel', + key: 'exportExcel' + } + }, + { + path: 'import-excel', + element: LazyLoad(lazy(() => import('@/views/excel/import-excel'))), + meta: { + title: '导入Excel', + key: 'importExcel' + } + } + ] +} + +export default ExcelRoute diff --git a/apps/admin/src/router/routes/exception.tsx b/apps/admin/src/router/routes/exception.tsx new file mode 100644 index 00000000..0e62ee68 --- /dev/null +++ b/apps/admin/src/router/routes/exception.tsx @@ -0,0 +1,47 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { ExceptionEnum } from '@/enums/exceptionEnum' +import { LazyLoad } from '@/components/LazyLoad' + +// exception module page +const ExceptionRoute: RouteObject = { + path: '/exception', + element: , + meta: { + title: '异常页面', + icon: 'bug', + orderNo: 11 + }, + children: [ + { + path: 'page-403', + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '403页面', + key: 'page403' + }, + loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }) + }, + { + path: 'page-404', + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '404页面', + key: 'page404' + }, + loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }) + }, + { + path: 'page-500', + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '500页面', + key: 'page500' + }, + loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }) + } + ] +} + +export default ExceptionRoute diff --git a/apps/admin/src/router/routes/form.tsx b/apps/admin/src/router/routes/form.tsx new file mode 100644 index 00000000..7417fd67 --- /dev/null +++ b/apps/admin/src/router/routes/form.tsx @@ -0,0 +1,43 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// form module page +const FormRoute: RouteObject = { + path: '/form', + element: , + meta: { + title: '表单', + icon: 'form', + orderNo: 2 + }, + children: [ + { + path: 'basic-form', + element: LazyLoad(lazy(() => import('@/views/form/basic-form'))), + meta: { + title: '基础表单', + key: 'basicForm' + } + }, + { + path: 'form-designer', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '表单设计器', + key: 'formDesigner' + } + }, + { + path: 'gbeata-form', + element: LazyLoad(lazy(() => import('@/views/form/gbeata-form'))), + meta: { + title: 'gbeata表单', + key: 'gbeataForm' + } + } + ] +} + +export default FormRoute diff --git a/apps/admin/src/router/routes/graph-editor.tsx b/apps/admin/src/router/routes/graph-editor.tsx new file mode 100644 index 00000000..26e3cd53 --- /dev/null +++ b/apps/admin/src/router/routes/graph-editor.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// graph-editor module page +const GraphEditorRoute: RouteObject = { + path: '/graph-editor', + element: , + meta: { + title: '图形编辑器', + icon: 'flow', + orderNo: 8 + }, + children: [ + { + path: 'flow-chart', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '流程图', + key: 'flowChart' + } + }, + { + path: 'mind-chart', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '思维导图', + key: 'mindChart' + } + } + ] +} + +export default GraphEditorRoute diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx new file mode 100644 index 00000000..c7861110 --- /dev/null +++ b/apps/admin/src/router/routes/home.tsx @@ -0,0 +1,31 @@ +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import Home from '@/views/home' + +// Home route +const HomeRoute: RouteObject = { + path: '/home', + element: , + meta: { + title: '首页', + icon: 'home', + affix: true, + orderNo: 1, + hideChildrenInMenu: true + }, + children: [ + { + path: '', + element: , + meta: { + title: '首页', + key: 'home', + icon: 'home', + orderNo: 1, + hideMenu: true + } + } + ] +} + +export default HomeRoute diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/routes/images.tsx new file mode 100644 index 00000000..e41c795d --- /dev/null +++ b/apps/admin/src/router/routes/images.tsx @@ -0,0 +1,43 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// image module page +const ImageRoute: RouteObject = { + path: '/image', + element: , + meta: { + title: '图片处理', + icon: 'image', + orderNo: 4 + }, + children: [ + { + path: 'image-cropper', + element: LazyLoad(lazy(() => import('@/views/image/image-cropper'))), + meta: { + title: '图片裁剪', + key: 'imageCropper' + } + }, + { + path: 'image-compress', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '图片压缩', + key: 'imageCompress' + } + }, + { + path: 'image-composition', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '图片合成', + key: 'imageComposition' + } + } + ] +} + +export default ImageRoute diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/routes/table.tsx new file mode 100644 index 00000000..a925331e --- /dev/null +++ b/apps/admin/src/router/routes/table.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// table module page +const TableRoute: RouteObject = { + path: '/table', + element: , + meta: { + title: '表格', + icon: 'table', + orderNo: 3 + }, + children: [ + { + path: 'table-basic', + element: LazyLoad(lazy(() => import('@/views/table/table-basic'))), + meta: { + title: '基础表格', + key: 'tableBasic' + } + }, + { + path: 'table-edit-row', + element: LazyLoad(lazy(() => import('@/views/table/table-edit-row'))), + meta: { + title: '可编辑行表格', + key: 'tableEditRow' + } + } + ] +} + +export default TableRoute diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/routes/text-editor.tsx new file mode 100644 index 00000000..0ac9ec13 --- /dev/null +++ b/apps/admin/src/router/routes/text-editor.tsx @@ -0,0 +1,43 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// text-editor module page +const TextEditorRoute: RouteObject = { + path: '/editor', + element: , + meta: { + title: '文本编辑器', + icon: 'editor', + orderNo: 7 + }, + children: [ + { + path: 'markdown', + element: LazyLoad(lazy(() => import('@/views/editor/markdown'))), + meta: { + title: 'Markdown编辑器', + key: 'markdown' + } + }, + { + path: 'rich-text', + element: LazyLoad(lazy(() => import('@/views/editor/rich-text'))), + meta: { + title: '富文本编辑器', + key: 'richText' + } + }, + { + path: 'code-editor', + element: LazyLoad(lazy(() => import('@/views/editor/code-mirror'))), + meta: { + title: '代码编辑器', + key: 'codeEditor' + } + } + ] +} + +export default TextEditorRoute diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/routes/tree.tsx new file mode 100644 index 00000000..3a6cf422 --- /dev/null +++ b/apps/admin/src/router/routes/tree.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// tree module page +const TreeRoute: RouteObject = { + path: '/tree', + element: , + meta: { + title: '树形结构', + icon: 'tree', + orderNo: 9 + }, + children: [ + { + path: 'org-tree', + element: LazyLoad(lazy(() => import('@/views/tree/org-tree'))), + meta: { + title: '组织树', + key: 'orgTree' + } + }, + { + path: 'antd-tree', + element: LazyLoad(lazy(() => import('@/views/tree/antd-tree'))), + meta: { + title: '控件树', + key: 'antdTree' + } + } + ] +} + +export default TreeRoute diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/routes/video.tsx new file mode 100644 index 00000000..d2d78697 --- /dev/null +++ b/apps/admin/src/router/routes/video.tsx @@ -0,0 +1,35 @@ +import { lazy } from 'react' +import { RouteObject } from '../types' +import { LayoutGuard } from '../guard' +import { LazyLoad } from '@/components/LazyLoad' + +// video module page +const VideoRoute: RouteObject = { + path: '/video', + element: , + meta: { + title: '视频处理', + icon: 'video', + orderNo: 5 + }, + children: [ + { + path: 'video-player', + element: LazyLoad(lazy(() => import('@/views/video/video-player'))), + meta: { + title: '视频播放器', + key: 'videoPlayer' + } + }, + { + path: 'video-mark', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '视频水印', + key: 'videoMark' + } + } + ] +} + +export default VideoRoute diff --git a/apps/admin/src/router/types.ts b/apps/admin/src/router/types.ts new file mode 100644 index 00000000..90bfb8d7 --- /dev/null +++ b/apps/admin/src/router/types.ts @@ -0,0 +1,37 @@ +import { ReactNode } from 'react' +import { LoaderFunction } from 'react-router-dom' + +export interface MetaProps { + title: string + key?: string + icon?: string + affix?: boolean + keepAlive?: boolean + orderNo?: number + hideMenu?: boolean + hideChildrenInMenu?: boolean +} + +export interface RouteObject { + id?: string + loader?: LoaderFunction + element?: ReactNode + path?: string + fullPath?: string + children?: RouteObject[] + index?: false + meta?: MetaProps +} + +export interface AppMenu { + name: string + path: string + children?: AppMenu[] + disabled?: boolean + icon?: string + affix?: boolean + orderNo?: number + hideMenu?: boolean + hideChildrenInMenu?: boolean + hideBreadcrumb?: boolean +} diff --git a/apps/admin/src/settings/appBaseSetting.ts b/apps/admin/src/settings/appBaseSetting.ts new file mode 100644 index 00000000..e550ff45 --- /dev/null +++ b/apps/admin/src/settings/appBaseSetting.ts @@ -0,0 +1,78 @@ +import type { AppConfig } from '@/types/config' +import { MenuTypeEnum, MenuModeEnum, MenuFoldBtnEnum } from '@/enums/menuEnum' +import { ThemeEnum, PageTransitionEnum, PermissionModeEnum } from '@/enums/appEnum' +import { CacheTypeEnum } from '@/enums/cacheEnum' + +export const appSetting: AppConfig = { + // Theme color + themeColor: '#1890ff', + // Permission-related cache is stored in sessionStorage or localStorage + permissionCacheType: CacheTypeEnum.LOCAL, + // Header configuration + headerSetting: { + // Show breadCrumb + showBreadCrumb: true, + // Show tags + showTags: true, + // Show search + showSearch: true, + // Turn on full screen + showFullScreen: true, + // Show locale + showLocale: false, + // Show document button + showDoc: false, + // Show github button + showGithub: true + }, + // Menu configuration + menuSetting: { + // Menu type + menuType: MenuTypeEnum.SIDER_MENU, + // Menu mode + menuMode: MenuModeEnum.INLINE, + // Menu theme + menuTheme: ThemeEnum.DARK, + // Menu split + menuSplit: false, + // Menu can drag + menuCanDrag: false, + // Menu collapse + menuFold: false, + // Menu collapse type + menuFoldBtn: MenuFoldBtnEnum.HEADER, + // Whether to display the menu name when folding the menu + menuFoldShowTitle: false, + // Menu width + menuWidth: 210, + // Hydrid sider menu fixed + menuFixed: false, + // Hybrid mode sider menu hidden + menuHidden: false + }, + // Transition settings + transitionSetting: { + // Whether to open the top progress bar + openNProgress: false, + // Whether to open page switching loading + openPageLoading: false, + // Whether to open the page switching animation + openTransition: true, + // Page basic switching animation + basicTransition: PageTransitionEnum.FADE + }, + // Permission mode + permissionMode: PermissionModeEnum.MAPPING, + // Whether tags cached + tagsCached: false, + // Route keepAlive + openKeepAlive: true, + // Lock screen time + lockScreenTime: 0, + // Whether to show the global footer + showFooter: false, + // Whether to turn on the color weak mode + colorWeak: false, + // Whether to turn on the gray mode + grayMode: false +} diff --git a/apps/admin/src/settings/designSetting.ts b/apps/admin/src/settings/designSetting.ts new file mode 100644 index 00000000..009a8539 --- /dev/null +++ b/apps/admin/src/settings/designSetting.ts @@ -0,0 +1,40 @@ +import { AppModeEnum } from '@/enums/appEnum' + +// app mode +export const baseAppMode = AppModeEnum.LIGHT + +// app theme color +export const APP_THEME_COLOR_LIST = [ + { + name: '拂晓蓝', + color: '#1765AE' + }, + { + name: '薄暮', + color: '#A71A1F' + }, + { + name: '火山', + color: '#AE3E17' + }, + { + name: '日暮', + color: '#B8831B' + }, + { + name: '明青', + color: '#269491' + }, + { + name: '极光绿', + color: '#509827' + }, + { + name: '极客蓝', + color: '#20389A' + }, + { + name: '酱紫', + color: '#60339A' + } +] diff --git a/apps/admin/src/settings/encryptionSetting.ts b/apps/admin/src/settings/encryptionSetting.ts new file mode 100644 index 00000000..17459dc3 --- /dev/null +++ b/apps/admin/src/settings/encryptionSetting.ts @@ -0,0 +1,13 @@ +import { isDevMode } from '@/utils/env' + +// System default cache time, in seconds +export const DEFAULT_CACHE_TIME = 60 * 60 * 24 * 7 + +// aes encryption key +export const cacheCipher = { + key: '_11111000001111@', + iv: '@11111000001111_' +} + +// Whether the system cache is encrypted using aes +export const enableStorageEncryption = !isDevMode() diff --git a/apps/admin/src/settings/websiteSetting.ts b/apps/admin/src/settings/websiteSetting.ts new file mode 100644 index 00000000..16acc09f --- /dev/null +++ b/apps/admin/src/settings/websiteSetting.ts @@ -0,0 +1,151 @@ +// Github repo url +export const GITHUB_URL = 'https://github.com/baimingxuan/vue3-admin-design' + +// Form component +export const FORM_COMPO = { + name: 'Form表单', + url: 'https://www.antdv.com/components/form', + desc: 'ant-design-form: 使用 ant-design 的 form 组件, 可用以收集、校验和提交数据等操作。' +} + +// Form-create plugin +export const FORM_CREATE_DESIGNER = { + name: 'Form表单设计器', + url: 'https://github.com/xaboy/form-create-designer/tree/next', + desc: 'form-create-designer: 一个通过拖拽的方式快速创建表单的设计器组件, 能提高开发者对表单的开发效率, 节省开发者的时间。' +} + +// Table component +export const TABLE_COMPO = { + name: 'Table表格', + url: 'https://ant-design.antgroup.com/components/table', + desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行相关操作。' +} + +// Table edit component +export const TABLE_EDIT_COMPO = { + name: 'Table表格(可编辑行)', + url: 'https://ant-design.antgroup.com/components/table', + desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行行数据编辑操作。' +} + +// Tree component +export const TREE_COMPO = { + name: 'Tree树形控件', + url: 'https://ant-design.antgroup.com/components/tree', + desc: 'ant-design-tree: 基于Ant-Design的Tree组件, 可以完整展现其中的层级关系, 并具有展开收起选择等交互功能。' +} + +// Transfer component +export const TRANSFER_COMPO = { + name: 'Transfer穿梭框', + url: 'https://ant-design.antgroup.com/components/transfer', + desc: 'ant-design-transfer: 使用 ant-design 的 transfer 组件, 可用于对列表数据进行选中、取消等操作。' +} + +// Upload component +export const UPLOAD_COMPO = { + name: 'Upload图片上传组件', + url: 'https://antdv.com/components/upload', + desc: 'ant-design-upload: 使用 ant-design 的 upload 组件, 并具有多种列表展示方式。' +} + +// Video player plugin +export const VIDEO_PLUGIN = { + name: 'Video视频播放器', + url: 'https://github.com/video-react/video-react', + desc: 'Video-React: 一个使用 React 为 HTML5 构建的web视频播放器, 适用于目前主流网络视频的播放。' +} + +// Video resource src +export const VIDEO_RES_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/videos/houlang.mp4' + +// Xlsx plugin +export const XLSX_PLUGIN = { + name: 'JS-xlsx插件', + url: 'https://github.com/SheetJS/sheetjs', + desc: 'JS-xlsx: 由SheetJS出品的一款非常方便的只需要纯JS即可读取和导出excel的工具库, 功能强大, 支持xlsx、csv、txt等格式。' +} + +// React-Sortable plugin +export const SORTABLE_PLUGIN = { + name: 'Sortable拖拽列表', + url: 'https://github.com/SortableJS/react-sortablejs', + desc: 'ReactSortable: 基于Sortable.js的react组件, 用以实现拖拽功能。' +} + +// React-Rnd plugin +export const REACT_RND_PLUGIN = { + name: 'React-Rnd拖拽组件', + url: 'https://github.com/bokuweb/react-rnd', + desc: 'React-Rnd: 一款可调整大小和可拖拽的React组件。' +} + +// React-cropper plugin +export const REACT_CROPPER_PLUGIN = { + name: 'React-Cropper图片裁剪', + url: 'https://github.com/react-cropper/react-cropper', + desc: 'react-cropper: 一个优雅的图片裁剪插件, 可实现图片裁剪、图片生成等功能, 并支持生成png、jpeg、webp等图片格式。' +} + +// Image-composition component +export const IMAGE_COMPOSITION = { + name: 'Image图片合成', + url: 'https://github.com/xyxiao001/vue-cropper', + desc: '图片合成: 基于VueDRR拖拽功能, 在其上通过叠加图片、文字等, 实现图片的叠加伪合成功能。' +} + +// Cropper image src +export const CROPPER_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img02.jpg' + +// Compress image src +export const COMPRESS_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg' + +// Image-compress component +export const IMAGE_COMPRESS = { + name: 'Image图片压缩', + url: 'https://github.com/baimingxuan/vue3-admin-design/blob/main/src/views/image/image-compress.tsx', + desc: 'ImageCompress: 纯JS实现对图片的等比压缩和放大的功能, 并能对图片进行下载。' +} + +// Count-to plugin +export const COUNTUP_PLUGIN = { + name: 'CountUp数字滚动', + url: 'https://github.com/glennreyes/react-countup', + desc: 'React-CountUp: 一个无依赖、轻量级的react数字滚动插件, 以更有趣的方式显示数字数据。' +} + +// React-CodeMirror plugin +export const CODEMIRROR_PLUGIN = { + name: 'CodeMirror代码编辑器', + url: 'https://github.com/uiwjs/react-codemirror', + desc: 'React-CodeMirror: 是一款基于 react 的代码编辑器, 可支持html、javascript、typescript等。' +} + +// Antv-g6 plugin +export const ANTV_G6_PLUGIN = { + name: 'AntV-G6流程图', + url: 'https://github.com/antvis/g6', + desc: 'antv-g6: 一个图可视化引擎。它提供了图的绘制、布局、分析、交互、动画等图可视化的基础能力。' +} + +// ReactTreeOrg plugin +export const React_TREE_ORG_PLUGIN = { + name: 'Tree-Org树状组织图', + url: 'https://github.com/artdong/react-org-tree', + desc: 'react-tree-org: 基于 react 的树结构组织图, 可用于公司组织架构展示。' +} + +// WangEditor plugin +export const WANG_EDITOR_PLUGIN = { + name: '富文本编辑器', + url: 'https://github.com/wangeditor-team/wangEditor', + desc: 'wangEditor: 基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费。' +} + +// React-Markdown-Editor plugin +export const MARKDOWN_EDITOR_PLUGIN = { + name: 'Markdown编辑器', + url: 'https://github.com/uiwjs/react-md-editor', + desc: 'React-Md-Editor: 是一款基于 react 的 Markdown 编辑器,比较适合博客系统。' +} \ No newline at end of file diff --git a/apps/admin/src/stores/index.ts b/apps/admin/src/stores/index.ts new file mode 100644 index 00000000..422b570a --- /dev/null +++ b/apps/admin/src/stores/index.ts @@ -0,0 +1,37 @@ +import type { Store } from 'redux' +import { configureStore, ThunkAction, Action } from '@reduxjs/toolkit' +import { useDispatch, useSelector, TypedUseSelectorHook } from 'react-redux' +import { persistStore, persistReducer } from 'redux-persist' +import storage from 'redux-persist/lib/storage' +import appSlice from './modules/app' +import menuSlice from './modules/menu' +import tagsSlice from './modules/tags' +import userSlice from './modules/user' + +const persistConfig = { + key: 'redux-persist', + storage +} + +export const store: Store = configureStore({ + reducer: { + app: persistReducer(persistConfig, appSlice), + menu: persistReducer(persistConfig, menuSlice), + tags: persistReducer(persistConfig, tagsSlice), + user: persistReducer(persistConfig, userSlice) + }, + middleware: getDefaultMiddleware => + getDefaultMiddleware({ + serializableCheck: false + }), + devTools: true +}) + +export const persistor = persistStore(store) + +export type RootState = ReturnType +export type AppDispatch = typeof store.dispatch +export type AppThunk = ThunkAction> + +export const useAppDispatch: () => AppDispatch = useDispatch +export const useAppSelector: TypedUseSelectorHook = useSelector diff --git a/apps/admin/src/stores/modules/app.ts b/apps/admin/src/stores/modules/app.ts new file mode 100644 index 00000000..6eebee44 --- /dev/null +++ b/apps/admin/src/stores/modules/app.ts @@ -0,0 +1,38 @@ +import { createSlice } from '@reduxjs/toolkit' +import { AppState } from '../types' +import { Persistent } from '@/utils/cache/persistent' +import { APP_CONFIG_KEY } from '@/enums/cacheEnum' +import { deepMerge } from '@/utils' + +const initialState: AppState = { + appMode: undefined, + themeMode: undefined, + appConfig: Persistent.getLocal(APP_CONFIG_KEY) +} + +const app = createSlice({ + name: 'app', + initialState, + reducers: { + setAppMode: (state, action) => { + state.appMode = action.payload + }, + setThemeMode: (state, action) => { + state.themeMode = action.payload + }, + setAppConfig: (state, action) => { + state.appConfig = deepMerge(state.appConfig || {}, action.payload) + Persistent.setLocal(APP_CONFIG_KEY, state.appConfig, true) + }, + resetState(state) { + state.appMode = undefined + state.themeMode = undefined + state.appConfig = null + Persistent.clearAll() + } + } +}) + +export const { setAppMode, setThemeMode, setAppConfig, resetState } = app.actions + +export default app.reducer diff --git a/apps/admin/src/stores/modules/menu.ts b/apps/admin/src/stores/modules/menu.ts new file mode 100644 index 00000000..b37e0cc3 --- /dev/null +++ b/apps/admin/src/stores/modules/menu.ts @@ -0,0 +1,24 @@ +import { createSlice } from '@reduxjs/toolkit' +import { MenuState } from '@/stores/types' + +const initialState: MenuState = { + menuList: [], + isCollapse: false +} + +const menu = createSlice({ + name: 'menu', + initialState, + reducers: { + setMenuList: (state, action) => { + state.menuList = action.payload + }, + updateCollapse: (state, action) => { + state.isCollapse = action.payload + } + } +}) + +export const { setMenuList, updateCollapse } = menu.actions + +export default menu.reducer diff --git a/apps/admin/src/stores/modules/tags.ts b/apps/admin/src/stores/modules/tags.ts new file mode 100644 index 00000000..980adb97 --- /dev/null +++ b/apps/admin/src/stores/modules/tags.ts @@ -0,0 +1,76 @@ +// import type { PayloadAction } from '@reduxjs/toolkit' +import type { RouteObject } from '@/router/types' +import { createSlice, createAsyncThunk } from '@reduxjs/toolkit' +import { TagsState } from '@/stores/types' +import { RootState, AppDispatch } from '..' + +const initialState: TagsState = { + visitedTags: [], + cachedTags: [] +} + +const createAppAsyncThunk = createAsyncThunk.withTypes<{ + state: RootState + dispatch: AppDispatch + rejectValue: string + extra: { s: string; n: number } +}>() + +const tags = createSlice({ + name: 'tags', + initialState, + reducers: { + addVisitedTags: (state, action) => { + const hasExistIndex = state.visitedTags.findIndex(tag => tag.path === action.payload.path) + if (hasExistIndex < 0) { + state.visitedTags.push(action.payload) + } else { + state.visitedTags[hasExistIndex] = Object.assign({}, state.visitedTags[hasExistIndex], action.payload) + } + }, + updateVisitedTags: (state, action) => { + state.visitedTags = action.payload + }, + closeTagsByType: (state, action) => { + let restTags: RouteObject[] = [] + const { type, path } = action.payload + const { visitedTags } = state + const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path) + const affixTags = visitedTags.filter((tag: any) => tag?.meta?.affix) + switch (type) { + case 'left': + restTags = visitedTags.slice(tagIndex) + break + case 'right': + restTags = visitedTags.slice(0, tagIndex + 1) + break + case 'other': + restTags = visitedTags.filter((tag: any) => tag.fullPath === path) + break + } + state.visitedTags = affixTags.concat(restTags.filter((tag: RouteObject) => !tag.meta?.affix)) + } + } +}) + +export const closeTagByKey = createAppAsyncThunk('tags/closeTagByKey', (path: string, { getState, dispatch }) => { + const { visitedTags } = getState().tags + const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path) + const restTags = visitedTags.filter((tag: any) => tag.fullPath !== path) + dispatch(updateVisitedTags(restTags)) + return Promise.resolve({ + tagIndex, + tagsList: restTags + }) +}) + +export const closeAllTags = createAppAsyncThunk('tags/closeAllTags', (_, { getState, dispatch }) => { + const { visitedTags } = getState().tags + const restTags = visitedTags.filter((tag: any) => tag?.meta?.affix) + dispatch(updateVisitedTags(restTags)) + return Promise.resolve(restTags) +}) + +export const { addVisitedTags, updateVisitedTags, closeTagsByType } = tags.actions + +export default tags.reducer diff --git a/apps/admin/src/stores/modules/user.ts b/apps/admin/src/stores/modules/user.ts new file mode 100644 index 00000000..c6b51741 --- /dev/null +++ b/apps/admin/src/stores/modules/user.ts @@ -0,0 +1,40 @@ +import type { UserState } from '@/stores/types' +import { createSlice } from '@reduxjs/toolkit' +import { TOKEN_KEY, USER_INFO_KEY } from '@/enums/cacheEnum' +import { setAuthCache } from '@/utils/auth' + +const initialState: UserState = { + userInfo: null, + token: undefined, + sessionTimeout: false, + lastUpdateTime: 0 +} + +const user = createSlice({ + name: 'user', + initialState, + reducers: { + setToken: (state, action) => { + state.token = action.payload ? action.payload : '' + setAuthCache(TOKEN_KEY, action.payload) + }, + setUserInfo: (state, action) => { + state.userInfo = action.payload + state.lastUpdateTime = new Date().getTime() + setAuthCache(USER_INFO_KEY, action.payload) + }, + setSessionTimeout: (state, action) => { + state.sessionTimeout = action.payload + }, + resetState(state) { + state.userInfo = null + state.token = undefined + state.sessionTimeout = false + state.lastUpdateTime = 0 + } + } +}) + +export const { setToken, setUserInfo, setSessionTimeout, resetState } = user.actions + +export default user.reducer diff --git a/apps/admin/src/stores/types.ts b/apps/admin/src/stores/types.ts new file mode 100644 index 00000000..19ffacab --- /dev/null +++ b/apps/admin/src/stores/types.ts @@ -0,0 +1,47 @@ +import { AppConfig } from '@/types/config' +import { AppModeEnum, ThemeEnum } from '@/enums/appEnum' +import { RouteObject } from '@/router/types' + +export interface UserInfo { + userId: string | number + username: string + realName: string + avatar: string + token: string + desc?: string + homePath?: string +} + +export interface UserState { + userInfo: Nullable + token?: string + sessionTimeout?: boolean + lastUpdateTime: number +} + +export interface MenuOptions { + path: string + title: string + icon?: string + isLink?: string + close?: boolean + children?: MenuOptions[] +} + +export interface MenuState { + menuList: MenuOptions[] + isCollapse: boolean +} + +export interface TagsState { + visitedTags: RouteObject[] + cachedTags: string[] +} + +export interface AppState { + appMode?: AppModeEnum + + themeMode?: ThemeEnum + + appConfig: AppConfig | null +} diff --git a/apps/admin/src/types/config.ts b/apps/admin/src/types/config.ts new file mode 100644 index 00000000..44cf4b92 --- /dev/null +++ b/apps/admin/src/types/config.ts @@ -0,0 +1,84 @@ +import { MenuModeEnum, MenuTypeEnum, MenuFoldBtnEnum } from '../enums/menuEnum' +import { PageTransitionEnum, ThemeEnum } from '../enums/appEnum' +import { PermissionModeEnum } from '../enums/appEnum' +import { CacheTypeEnum } from '../enums/cacheEnum' + +export interface AppConfig { + // Theme color + themeColor: string + // Storage location of permission related information + permissionCacheType: CacheTypeEnum + // Header setting + headerSetting: HeaderSetting + // Menu setting + menuSetting: MenuSetting + // Transition setting + transitionSetting: TransitionSetting + // Permission mode + permissionMode: PermissionModeEnum + // Whether tags cached + tagsCached: boolean + // Route keepAlive + openKeepAlive: boolean + // Lock screen time + lockScreenTime: number + // Whether to show the global footer + showFooter: boolean + // Whether to turn on the color weak mode + colorWeak: boolean + // Whether to turn on the gray mode + grayMode: boolean +} + +export interface HeaderSetting { + // Show breadCrumb + showBreadCrumb: boolean + // Show tags + showTags: boolean + // Show search + showSearch: boolean + // Turn on full screen + showFullScreen: boolean + // Show locale + showLocale: boolean + // Show document button + showDoc: boolean + // Show github button + showGithub: boolean +} + +export interface MenuSetting { + // Menu type + menuType: MenuTypeEnum + // Menu mode + menuMode: MenuModeEnum + // Menu theme + menuTheme: ThemeEnum + // Menu split + menuSplit: boolean + // Menu can drag + menuCanDrag: boolean + // Menu collapse + menuFold: boolean + // Menu collapse type + menuFoldBtn: MenuFoldBtnEnum + // Whether to display the menu name when folding the menu + menuFoldShowTitle: boolean + // Menu width + menuWidth: number, + // Hydrid mode sider menu fixed + menuFixed: boolean, + // Hybrid mode sider menu hidden + menuHidden: boolean +} + +export interface TransitionSetting { + // Whether to open the top progress bar + openNProgress: boolean + // Whether to open page switching loading + openPageLoading: boolean + // Whether to open the page switching animation + openTransition: boolean + // Page basic switching animation + basicTransition: PageTransitionEnum +} \ No newline at end of file diff --git a/apps/admin/src/types/index.ts b/apps/admin/src/types/index.ts new file mode 100644 index 00000000..40d21287 --- /dev/null +++ b/apps/admin/src/types/index.ts @@ -0,0 +1,18 @@ +export interface LoginParams { + username: string + password: string +} + +export interface UserInfo { + userId: string | number + username: string + realName: string + avatar: string + token: string + desc?: string + homePath?: string +} + +export type ThemeMode = 'dark' | 'light' + +export type LocaleType = 'zh_CN' | 'en' diff --git a/apps/admin/src/utils/auth.ts b/apps/admin/src/utils/auth.ts new file mode 100644 index 00000000..d8f6289c --- /dev/null +++ b/apps/admin/src/utils/auth.ts @@ -0,0 +1,25 @@ +import { Persistent, BasicKeys } from './cache/persistent' +import { appSetting } from '@/settings/appBaseSetting' +import { TOKEN_KEY, CacheTypeEnum } from '@/enums/cacheEnum' + +const { permissionCacheType } = appSetting +const isLocal = permissionCacheType === CacheTypeEnum.LOCAL + +export function getToken() { + return getAuthCache(TOKEN_KEY) +} + +export function getAuthCache(key: BasicKeys) { + const fn = isLocal ? Persistent.getLocal : Persistent.getSession + return fn(key) as T +} + +export function setAuthCache(key: BasicKeys, value: any) { + const fn = isLocal ? Persistent.setLocal : Persistent.setSession + return fn(key, value, true) +} + +export function clearAuthCache(immediate = true) { + const fn = isLocal ? Persistent.clearLocal : Persistent.clearSession + return fn(immediate) +} diff --git a/apps/admin/src/utils/axios.ts b/apps/admin/src/utils/axios.ts new file mode 100644 index 00000000..63df5f86 --- /dev/null +++ b/apps/admin/src/utils/axios.ts @@ -0,0 +1,45 @@ +import type { InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios' +import axios from 'axios' +import { message } from 'antd' +import { getToken, clearAuthCache } from '@/utils/auth' + +// Create axios instance +const service = axios.create({ + baseURL: '/api', + timeout: 10 * 1000 +}) + +// Handle Error +const handleError = (error: AxiosError): Promise => { + if (error.response?.status === 401 || error.response?.status === 504) { + clearAuthCache() + location.href = '/login' + } + message.error(error.message || 'error') + return Promise.reject(error) +} + +// Request interceptors configuration +service.interceptors.request.use((config: InternalAxiosRequestConfig) => { + const token = getToken() + if (token) { + ;(config as Recordable).headers['Authorization'] = `${token}` + } + ;(config as Recordable).headers['Content-Type'] = 'application/json' + return config +}, handleError) + +// Respose interceptors configuration +service.interceptors.response.use((response: AxiosResponse) => { + const data = response.data + + if (data.code === 0) { + return data.data + } else { + message.error(data.message) + + return Promise.reject('error') + } +}, handleError) + +export { service } diff --git a/apps/admin/src/utils/cache/index.ts b/apps/admin/src/utils/cache/index.ts new file mode 100644 index 00000000..f51abc33 --- /dev/null +++ b/apps/admin/src/utils/cache/index.ts @@ -0,0 +1,30 @@ +import { createStorage as create, CreateStorageParams } from './storageCache' +import { enableStorageEncryption, DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting' + +type Options = Partial + +const createOptions = (storage: Storage, options: Options = {}): Options => { + return { + // No encryption in debug mode + hasEncrypt: enableStorageEncryption, + storage, + prefixKey: 'react-admin-design__', + ...options + } +} + +const WebStorage = create(createOptions(sessionStorage)) + +export const createStorage = (storage: Storage = sessionStorage, options: Options = {}) => { + return create(createOptions(storage, options)) +} + +export const createSessionStorage = (options: Options = {}) => { + return createStorage(sessionStorage, { ...options, timeout: DEFAULT_CACHE_TIME }) +} + +export const createLocalStorage = (options: Options = {}) => { + return createStorage(localStorage, { ...options, timeout: DEFAULT_CACHE_TIME }) +} + +export default WebStorage diff --git a/apps/admin/src/utils/cache/memory.ts b/apps/admin/src/utils/cache/memory.ts new file mode 100644 index 00000000..d3c9a617 --- /dev/null +++ b/apps/admin/src/utils/cache/memory.ts @@ -0,0 +1,88 @@ +export interface Cache { + value?: V + timeoutId?: ReturnType + time?: number + alive?: number +} + +export class Memory { + private cache: { [key in keyof T]?: Cache } = {} + private alive: number + + constructor(alive = 0) { + this.alive = alive * 1000 + } + + get getCache() { + return this.cache + } + + get(key: K) { + return this.cache[key] + } + + set(key: K, value: V, expires?: number) { + let item = this.get(key) + + if (!expires || (expires as number) <= 0) { + expires = this.alive + } + if (item) { + if (item.timeoutId) { + clearTimeout(item.timeoutId) + item.timeoutId = undefined + } + item.value = value + } else { + item = { value, alive: expires } + this.cache[key] = item + } + + if (!expires) { + return value + } + + const now = new Date().getTime() + item.time = now + this.alive + item.timeoutId = setTimeout( + () => { + this.remove(key) + }, + expires > now ? expires - now : expires + ) + + return value + } + + remove(key: K) { + const item = this.get(key) + Reflect.deleteProperty(this.cache, key) + if (item) { + clearTimeout(item.timeoutId!) + return item.value + } + } + + resetCache(cache: { [K in keyof T]: Cache }) { + Object.keys(cache).forEach(key => { + const k = key as any as keyof T + const item = cache[k] + if (item && item.time) { + const now = new Date().getTime() + const expire = item.time + if (expire > now) { + this.set(k, item.value, expire) + } + } + }) + } + + clear() { + Object.keys(this.cache).forEach(key => { + // @ts-ignore + const item = this.cache[key] + item.timeoutId && clearTimeout(item.timeoutId) + }) + this.cache = {} + } +} diff --git a/apps/admin/src/utils/cache/persistent.ts b/apps/admin/src/utils/cache/persistent.ts new file mode 100644 index 00000000..7ab77b4e --- /dev/null +++ b/apps/admin/src/utils/cache/persistent.ts @@ -0,0 +1,113 @@ +import type { RouteObject } from '@/router/types' + +import { Memory } from './memory' +import { AppConfig } from '@/types/config' +import { + TOKEN_KEY, + USER_INFO_KEY, + APP_CONFIG_KEY, + APP_TAGS_KEY, + APP_LOCAL_CACHE_KEY, + APP_SESSION_CACHE_KEY +} from '@/enums/cacheEnum' +import { createLocalStorage, createSessionStorage } from '@/utils/cache' +import { DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting' +import { UserInfo } from '@/types' + +interface BasicStore { + [TOKEN_KEY]: string | number | null | undefined + [USER_INFO_KEY]: UserInfo + [APP_CONFIG_KEY]: AppConfig + [APP_TAGS_KEY]: RouteObject[] +} + +type LocalStore = BasicStore +type SessionStore = BasicStore + +export type BasicKeys = keyof BasicStore +type LocalKeys = keyof LocalStore +type SessionKeys = keyof SessionStore + +const ls = createLocalStorage() +const ss = createSessionStorage() + +const localMemory = new Memory(DEFAULT_CACHE_TIME) +const sessionMemory = new Memory(DEFAULT_CACHE_TIME) + +function initPersistentMemory() { + const localCache = ls.get(APP_LOCAL_CACHE_KEY) + const sessionCache = ss.get(APP_SESSION_CACHE_KEY) + localCache && localMemory.resetCache(localCache) + sessionCache && sessionMemory.resetCache(sessionCache) +} + +export class Persistent { + static getLocal(key: LocalKeys) { + return localMemory.get(key)?.value as Nullable + } + + static setLocal(key: LocalKeys, value: LocalStore[LocalKeys], immediate = false): void { + localMemory.set(key, value) + immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache) + } + + static removeLocal(key: LocalKeys, immediate = false): void { + localMemory.remove(key) + immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache) + } + + static clearLocal(immediate = false): void { + localMemory.clear() + immediate && ls.clear() + } + + static getSession(key: SessionKeys) { + return sessionMemory.get(key)?.value as Nullable + } + + static setSession(key: SessionKeys, value: SessionStore[SessionKeys], immediate = false): void { + sessionMemory.set(key, value) + immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache) + } + + static removeSession(key: SessionKeys, immediate = false): void { + sessionMemory.remove(key) + immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache) + } + + static clearSession(immediate = false): void { + sessionMemory.clear() + immediate && ss.clear() + } + + static clearAll(immediate = false) { + sessionMemory.clear() + localMemory.clear() + if (immediate) { + ls.clear() + ss.clear() + } + } +} + +function storageChange(e: any) { + const { key, newValue, oldValue } = e + + if (!key) { + Persistent.clearAll() + return + } + + if (!!newValue && !!oldValue) { + if (APP_LOCAL_CACHE_KEY === key) { + Persistent.clearLocal() + } + if (APP_SESSION_CACHE_KEY === key) { + Persistent.clearSession() + } + } +} + +window.addEventListener('storage', storageChange) + +initPersistentMemory() diff --git a/apps/admin/src/utils/cache/storageCache.ts b/apps/admin/src/utils/cache/storageCache.ts new file mode 100644 index 00000000..d07629fa --- /dev/null +++ b/apps/admin/src/utils/cache/storageCache.ts @@ -0,0 +1,110 @@ +import type { EncryptParams } from '../cipher' +import { cacheCipher } from '@/settings/encryptionSetting' +import { AesEncrypt } from '../cipher' +import { isNullOrUnDef } from '../is' + +export interface CreateStorageParams extends EncryptParams { + prefixKey: string + storage: Storage + hasEncrypt: boolean + timeout?: Nullable +} + +export const createStorage = ({ + prefixKey = '', + storage = sessionStorage, + hasEncrypt = true, + key = cacheCipher.key, + iv = cacheCipher.iv, + timeout = null +}: Partial = {}) => { + if (hasEncrypt && [key.length, iv.length].some(item => item !== 16)) { + throw new Error('When hasEncrypt is true, the key or iv must be 16 bits!') + } + + const encrypt = new AesEncrypt({ key, iv }) + + /** + * Cache class + * Construction parameters can be passed into sessionStorage, localStorage + * @class Cache + * @example + */ + const WebStorage = class WebStorage { + private storage: Storage + private prefixKey?: string + private encrypt: AesEncrypt + private hasEncrypt: boolean + + constructor() { + this.storage = storage + this.prefixKey = prefixKey + this.encrypt = encrypt + this.hasEncrypt = hasEncrypt + } + + private getKey(key: string) { + return `${this.prefixKey}${key}`.toUpperCase() + } + + /** + * Set cache + * @param {string} key + * @param {*} value + * @param {*} expire Expiration time in seconds + * @memberof Cache + */ + set(key: string, value: any, expire: number | null = timeout) { + const stringData = JSON.stringify({ + value, + time: Date.now(), + expire: !isNullOrUnDef(expire) ? new Date().getTime() + expire * 1000 : null + }) + const stringifyValue = this.hasEncrypt + ? this.encrypt.encryptByAES(stringData) + : stringData + this.storage.setItem(this.getKey(key), stringifyValue) + } + + /** + * Read cache + * @param {string} key + * @param {*} def + * @memberof Cache + */ + get(key: string, def: any = null): any { + const val = this.storage.getItem(this.getKey(key)) + if (!val) return def + + try { + const decVal = this.hasEncrypt ? this.encrypt.decryptByAES(val) : val + const data = JSON.parse(decVal) + const { value, expire } = data + if (isNullOrUnDef(expire) || expire >= new Date().getTime()) { + return value + } + this.remove(key) + } catch (e) { + return def + } + } + + /** + * Delete cache based on key + * @param {string} key + * @memberof Cache + */ + remove(key: string) { + this.storage.removeItem(this.getKey(key)) + } + + /** + * Delete all caches of this instance + */ + clear(): void { + this.storage.clear() + } + } + + return new WebStorage() +} \ No newline at end of file diff --git a/apps/admin/src/utils/cipher.ts b/apps/admin/src/utils/cipher.ts new file mode 100644 index 00000000..ae3c49cd --- /dev/null +++ b/apps/admin/src/utils/cipher.ts @@ -0,0 +1,41 @@ +import { encrypt, decrypt } from 'crypto-js/aes' +import { parse } from 'crypto-js/enc-utf8' +import UTF8 from 'crypto-js/enc-utf8' +import PKCS7 from 'crypto-js/pad-pkcs7' +import ECB from 'crypto-js/mode-ecb' + +export interface EncryptParams { + key: string + iv: string +} + +export class AesEncrypt { + private key + private iv + + constructor(opt: Partial = {}) { + const { key, iv } = opt + if (key) { + this.key = parse(key) + } + if (iv) { + this.iv = parse(iv) + } + } + + get getOptions() { + return { + mode: ECB, + padding: PKCS7, + iv: this.iv + }; + } + + encryptByAES(cipherText: string) { + return encrypt(cipherText, this.key!, this.getOptions).toString() + } + + decryptByAES(cipherText: string) { + return decrypt(cipherText, this.key!, this.getOptions).toString(UTF8) + } +} \ No newline at end of file diff --git a/apps/admin/src/utils/download.ts b/apps/admin/src/utils/download.ts new file mode 100644 index 00000000..f65466a7 --- /dev/null +++ b/apps/admin/src/utils/download.ts @@ -0,0 +1,111 @@ +import { openWindow } from '.' +import { base64toBlob, urlToBase64 } from './image' + +/** + * Download image by url + * @param url + * @param filename + * @param mineType + * @param bom + */ +export function downloadImgByUrl( + url: string, + filename: string, + mineType?: string, + bom?: BlobPart +) { + urlToBase64(url).then((base64) => { + downloadImgByBase64(base64, filename, mineType, bom) + }) +} + +/** + * Download image based on base64 + * @param buf + * @param filename + * @param mineType + * @param bom + */ +export function downloadImgByBase64( + buf: string, + filename: string, + mineType?: string, + bom?: BlobPart +) { + const base64Buf = base64toBlob(buf) + downloadByData(base64Buf, filename, mineType, bom) +} + +/** + * Download by the back-end interface file stream + * @param {*} data + * @param {*} filename + * @param {*} mineType + * @param {*} bom + */ +export function downloadByData( + data: BlobPart, + filename: string, + mineType?: string, + bom?: BlobPart +) { + const blobData = typeof bom !== 'undefined' ? [bom, data] : [data] + const blob = new Blob(blobData, { type: mineType || 'application/octet-stream' }) + + const blobURL = window.URL.createObjectURL(blob) + const tempLink = document.createElement('a') + tempLink.style.display = 'none' + tempLink.href = blobURL + tempLink.setAttribute('download', filename) + if (typeof tempLink.download === 'undefined') { + tempLink.setAttribute('target', '_blank') + } + document.body.appendChild(tempLink) + tempLink.click() + document.body.removeChild(tempLink) + window.URL.revokeObjectURL(blobURL) +} + +/** + * Download file by url + * @param {*} sUrl + */ +export function downloadByUrl({ + url, + target = '_blank', + fileName +}: { + url: string + target?: TargetContext + fileName?: string +}): boolean { + const isChrome = window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1 + const isSafari = window.navigator.userAgent.toLowerCase().indexOf('safari') > -1 + + if (/(iP)/g.test(window.navigator.userAgent)) { + console.error('Your browser does not support download!') + return false + } + if (isChrome || isSafari) { + const link = document.createElement('a') + link.href = url + link.target = target + + if (link.download !== undefined) { + link.download = fileName || url.substring(url.lastIndexOf('/') + 1, url.length) + } + + if (document.createEvent) { + const e = document.createEvent('MouseEvents') + e.initEvent('click', true, true) + link.dispatchEvent(e) + return true + } + } + if (url.indexOf('?') === -1) { + url += '?download' + } + + openWindow(url, { target }) + return true +} \ No newline at end of file diff --git a/apps/admin/src/utils/echarts.ts b/apps/admin/src/utils/echarts.ts new file mode 100644 index 00000000..d0564593 --- /dev/null +++ b/apps/admin/src/utils/echarts.ts @@ -0,0 +1,54 @@ +import * as echarts from 'echarts/core' +import { SVGRenderer } from 'echarts/renderers' + +import { + BarChart, + LineChart, + PieChart, + MapChart, + PictorialBarChart, + RadarChart +} from 'echarts/charts' + +import { + TitleComponent, + TooltipComponent, + GridComponent, + PolarComponent, + AriaComponent, + ParallelComponent, + LegendComponent, + RadarComponent, + ToolboxComponent, + DataZoomComponent, + VisualMapComponent, + TimelineComponent, + CalendarComponent, + GraphicComponent +} from 'echarts/components' + +echarts.use([ + LegendComponent, + TitleComponent, + TooltipComponent, + GridComponent, + PolarComponent, + AriaComponent, + ParallelComponent, + BarChart, + LineChart, + PieChart, + MapChart, + RadarChart, + SVGRenderer, + PictorialBarChart, + RadarComponent, + ToolboxComponent, + DataZoomComponent, + VisualMapComponent, + TimelineComponent, + CalendarComponent, + GraphicComponent +]) + +export default echarts \ No newline at end of file diff --git a/apps/admin/src/utils/env.ts b/apps/admin/src/utils/env.ts new file mode 100644 index 00000000..7c91d053 --- /dev/null +++ b/apps/admin/src/utils/env.ts @@ -0,0 +1,15 @@ + // Get environment variables + export function getEnv(): string { + return import.meta.env.MODE + } + + // It is a development mode + export function isDevMode(): boolean { + return import.meta.env.DEV + } + + // It is a production mode + export function isProdMode(): boolean { + return import.meta.env.PROD + } + \ No newline at end of file diff --git a/apps/admin/src/utils/helper/menuHelper.ts b/apps/admin/src/utils/helper/menuHelper.ts new file mode 100644 index 00000000..c8e9b07c --- /dev/null +++ b/apps/admin/src/utils/helper/menuHelper.ts @@ -0,0 +1,16 @@ +/** + * @description Get expand subMenu + * @param {String} path Current route path + * @returns subMenu array + */ +export const getOpenKeys = (path: string) => { + let pathStr: string = '' + const openKeys: string[] = [] + path.split('/').forEach(key => { + if (key) { + pathStr += '/' + key + openKeys.push(pathStr) + } + }) + return openKeys.slice(0, -1) +} \ No newline at end of file diff --git a/apps/admin/src/utils/helper/treeHelper.ts b/apps/admin/src/utils/helper/treeHelper.ts new file mode 100644 index 00000000..b5ca16c2 --- /dev/null +++ b/apps/admin/src/utils/helper/treeHelper.ts @@ -0,0 +1,182 @@ +interface TreeHelperConfig { + id: string + children: string + pid: string +} + +const DEFAULT_CONFIG: TreeHelperConfig = { + id: 'id', + children: 'children', + pid: 'pid' +} + +const getConfig = (config: Partial) => Object.assign({}, DEFAULT_CONFIG, config) + +// tree from list +export function listToTree(list: any[], config: Partial = {}): T[] { + const conf = getConfig(config) as TreeHelperConfig + const nodeMap = new Map() + const result: T[] = [] + const { id, children, pid } = conf + + for (const node of list) { + node[children] = node[children] || [] + nodeMap.set(node[id], node) + } + for (const node of list) { + const parent = nodeMap.get(node[pid]) + ;(parent ? parent[children] : result).push(node) + } + return result +} + +export function treeToList(tree: any, config: Partial = {}): T { + config = getConfig(config) + const { children } = config + const result: any = [...tree] + for (let i = 0; i < result.length; i++) { + if (!result[i][children!]) continue + result.splice(i + 1, 0, ...result[i][children!]) + } + return result +} + +export function findNode(tree: any, func: Fn, config: Partial = {}): T | null { + config = getConfig(config) + const { children } = config + const list = [...tree] + for (const node of list) { + if (func(node)) return node + node[children!] && list.push(...node[children!]) + } + return null +} + +export function findNodeAll(tree: any, func: Fn, config: Partial = {}): T[] { + config = getConfig(config) + const { children } = config + const list = [...tree] + const result: T[] = [] + for (const node of list) { + func(node) && result.push(node) + node[children!] && list.push(...node[children!]) + } + return result +} + +export function findPath(tree: any, func: Fn, config: Partial = {}): T | T[] | null { + config = getConfig(config) + const path: T[] = [] + const list = [...tree] + const visitedSet = new Set() + const { children } = config + while (list.length) { + const node = list[0] + if (visitedSet.has(node)) { + path.pop() + list.shift() + } else { + visitedSet.add(node) + node[children!] && list.unshift(...node[children!]) + path.push(node) + if (func(node)) { + return path + } + } + } + return null +} + +export function findPathAll(tree: any, func: Fn, config: Partial = {}) { + config = getConfig(config) + const path: any[] = [] + const list = [...tree] + const result: any[] = [] + const visitedSet = new Set(), + { children } = config + while (list.length) { + const node = list[0] + if (visitedSet.has(node)) { + path.pop() + list.shift() + } else { + visitedSet.add(node) + node[children!] && list.unshift(...node[children!]) + path.push(node) + func(node) && result.push([...path]) + } + } + return result +} + +export function filter(tree: T[], func: (n: T) => boolean, config: Partial = {}): T[] { + config = getConfig(config) + const children = config.children as string + function listFilter(list: T[]) { + return list + .map((node: any) => ({ ...node })) + .filter(node => { + node[children] = node[children] && listFilter(node[children]) + return func(node) || (node[children] && node[children].length) + }) + } + return listFilter(tree) +} + +export function forEach(tree: T[], func: (n: T) => any, config: Partial = {}): void { + config = getConfig(config) + const list: any[] = [...tree] + const { children } = config + for (let i = 0; i < list.length; i++) { + //func 返回true就终止遍历,避免大量节点场景下无意义循环,引起浏览器卡顿 + if (func(list[i])) { + return + } + children && list[i][children] && list.splice(i + 1, 0, ...list[i][children]) + } +} + +/** + * @description: Extract tree specified structure + */ +export function treeMap(treeData: T[], opt: { children?: string; conversion: Fn }): T[] { + return treeData.map(item => treeMapEach(item, opt)) +} + +/** + * @description: Extract tree specified structure + */ +export function treeMapEach(data: any, { children = 'children', conversion }: { children?: string; conversion: Fn }) { + const haveChildren = Array.isArray(data[children]) && data[children].length > 0 + const conversionData = conversion(data) || {} + if (haveChildren) { + return { + ...conversionData, + [children]: data[children].map((i: number) => + treeMapEach(i, { + children, + conversion + }) + ) + } + } else { + return { + ...conversionData + } + } +} + +/** + * 递归遍历树结构 + * @param treeDatas 树 + * @param callBack 回调 + * @param parentNode 父节点 + */ +export function eachTree(treeDatas: any[], callBack: Fn, parentNode = {}) { + treeDatas.forEach(element => { + const newNode = callBack(element, parentNode) || element + if (element.children) { + eachTree(element.children, callBack, newNode) + } + }) +} diff --git a/apps/admin/src/utils/image.ts b/apps/admin/src/utils/image.ts new file mode 100644 index 00000000..d23b8fe4 --- /dev/null +++ b/apps/admin/src/utils/image.ts @@ -0,0 +1,44 @@ +/** + * Image base64 to Blob + * @param image + * @returns {Blob} + */ +export function base64toBlob(base64Buf: string): Blob { + const arr = base64Buf.split(',') + const typeItem = arr[0] + const mime = typeItem.match(/:(.*?);/)![1] + const bstr = window.atob(arr[1]) + let n = bstr.length + const u8arr = new Uint8Array(n) + while (n--) { + u8arr[n] = bstr.charCodeAt(n) + } + return new Blob([u8arr], { type: mime }) +} + +/** + * Image url to base64 + * @param url + * @param mineType + */ +export function urlToBase64(url: string, mineType?: string): Promise { + return new Promise((resolve, reject) => { + let canvas = document.createElement('CANVAS') as Nullable + const ctx = canvas!.getContext('2d') + + const img = new Image() + img.crossOrigin = '' + img.onload = function () { + if (!canvas || !ctx) { + return reject() + } + canvas.width = img.width + canvas.height = img.height + ctx.drawImage(img, 0, 0) + const dataURL = canvas.toDataURL(mineType || 'image/png') + canvas = null + resolve(dataURL) + } + img.src = url + }) +} \ No newline at end of file diff --git a/apps/admin/src/utils/index.ts b/apps/admin/src/utils/index.ts new file mode 100644 index 00000000..21a1c8ae --- /dev/null +++ b/apps/admin/src/utils/index.ts @@ -0,0 +1,44 @@ +import { isObject } from './is' + +export function openWindow( + url: string, + opt?: { + target?: TargetContext | string + noopener?: boolean + noreferrer?: boolean + } +) { + const { target = '__blank', noopener = true, noreferrer = true } = opt || {} + const feature: string[] = [] + + noopener && feature.push('noopener=yes') + noreferrer && feature.push('noreferrer=yes') + + window.open(url, target, feature.join(',')) +} + +export function promiseTimeout(ms: number, throwOnTimeout = false, reason = 'Timeout'): Promise { + return new Promise((resolve, reject) => { + if (throwOnTimeout) setTimeout(() => reject(reason), ms) + else setTimeout(resolve, ms) + }) +} + +export const searchRoute: any = (path: string, routes: any = []) => { + for (const item of routes) { + if (item.path === path || item.fullPath === path) return item + if (item.children) { + const result = searchRoute(path, item.children) + if (result) return result + } + } + return null +} + +export function deepMerge(src: any = {}, target: any = {}): T { + let key: string + for (key in target) { + src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key]) + } + return src +} diff --git a/apps/admin/src/utils/is.ts b/apps/admin/src/utils/is.ts new file mode 100644 index 00000000..2ff445e7 --- /dev/null +++ b/apps/admin/src/utils/is.ts @@ -0,0 +1,49 @@ +export function is(val: unknown, type: string) { + return Object.prototype.toString.call(val) === `[object ${type}]` +} + +export function isFunction(val: unknown): val is Function { + return typeof val === 'function' +} + +export function isArray(val: any): val is Array { + return val && Array.isArray(val) +} + +export function isObject(val: any): val is Record { + return val !== null && is(val, 'Object') +} + +export function isNumber(val: unknown): val is number { + return is(val, 'Number') +} + +export function isString(val: unknown): val is string { + return is(val, 'String') +} + +export function isDef(val?: T): val is T { + return typeof val !== 'undefined' +} + +export function isUnDef(val?: T): val is T { + return !isDef(val) +} + +export function isNull(val: unknown): val is null { + return val === null +} + +export function isNullOrUnDef(val: unknown): val is null | undefined { + return isUnDef(val) || isNull(val) +} + +export function isUrl(path: string): boolean { + const reg = + /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/; + return reg.test(path) +} + +export const isServer = typeof window === 'undefined' + +export const isClient = !isServer \ No newline at end of file diff --git a/apps/admin/src/views/blank.tsx b/apps/admin/src/views/blank.tsx new file mode 100644 index 00000000..42bddc96 --- /dev/null +++ b/apps/admin/src/views/blank.tsx @@ -0,0 +1,11 @@ +import { FC } from 'react' + +const BlankPage: FC = () => { + return ( +
+ 空页面 +
+ ) +} + +export default BlankPage diff --git a/apps/admin/src/views/compo/count-up.tsx b/apps/admin/src/views/compo/count-up.tsx new file mode 100644 index 00000000..850f7d92 --- /dev/null +++ b/apps/admin/src/views/compo/count-up.tsx @@ -0,0 +1,136 @@ +import React, { useRef, useState, useEffect } from 'react' +import { Row, Col, Card, Button, Form, Input, InputNumber, Space } from 'antd' +import { PageWrapper } from '@/components/Page' +import CountUp, { useCountUp } from 'react-countup' +import { COUNTUP_PLUGIN } from '@/settings/websiteSetting' + +const CountUpPage: React.FC = () => { + const [form] = Form.useForm() + const [formData, setFromData] = useState({ + start: 0, + end: 2020, + duration: 4, + decimals: 0, + separator: ',', + prefix: '¥ ', + suffix: ' rmb' + }) + + const countUpRef = useRef(null) + const { start, reset } = useCountUp({ + ref: countUpRef, + ...formData + }) + + useEffect(() => { + reset() + }, []) + + const onValuesChange = (values: any) => { + setFromData({...formData, ...values}) + } + + return ( + + +
+ + + + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + ) +} + +export default CountUpPage \ No newline at end of file diff --git a/apps/admin/src/views/compo/drag/drag-list.tsx b/apps/admin/src/views/compo/drag/drag-list.tsx new file mode 100644 index 00000000..ae45fa1c --- /dev/null +++ b/apps/admin/src/views/compo/drag/drag-list.tsx @@ -0,0 +1,110 @@ +import React, { useState } from 'react' +import { Row, Col, Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { cloneDeep } from 'lodash-es' +import { SORTABLE_PLUGIN } from '@/settings/websiteSetting' +import { ReactSortable } from 'react-sortablejs' + +interface ItemState { + id: number + name: string +} + +const DragList: React.FC = () => { + const [listOne, setListOne] = useState([ + { name: 'ECMAScript6', id: 1 }, + { name: 'VueJS', id: 2 }, + { name: 'ReactJS', id: 3 }, + { name: 'AngularJS', id: 4 }, + { name: 'Webpack', id: 5 } + ]) + const [listTwo, setListTwo] = useState([ + { name: 'NodeJS', id: 6 }, + { name: 'TypeScript', id: 7 } + ]) + + const [dragLogs, setDragLogs] = useState([ + '列表1 => 列表2, 6 => 1', + '列表1 => 列表2, 6 => 2' + ]) + + const handleDrop = (event: any) => { + const listMap = new Map([ + ['list1', '列表1'], + ['list2', '列表2'] + ]) + const fromClsName = event.from.className + const toClsName = event.to.className + const from = listMap.get(fromClsName) + const to = listMap.get(toClsName) + const newDrapLogs = cloneDeep(dragLogs) + newDrapLogs.push(`${from} => ${to}, ${event.oldIndex + 1} => ${event.newIndex + 1}`) + setDragLogs(newDrapLogs) + } + + return ( + + + + + + { + listOne.map(item => ( + + {item.name} + + )) + } + + + + + + + { + listTwo.map(item => ( + + {item.name} + + )) + } + + + + + + { dragLogs.map(item => { + return

{item}

+ }) } +
+ +
+ +
+              {JSON.stringify(listOne.map(({ name, id }) => ({ name, id })), null, 2)}
+            
+
+ +
+ +
+              {JSON.stringify(listTwo.map(({ name, id }) => ({ name, id })), null, 2)}
+            
+
+ + + + ) +} + +export default DragList \ No newline at end of file diff --git a/apps/admin/src/views/compo/drag/drag-resize.tsx b/apps/admin/src/views/compo/drag/drag-resize.tsx new file mode 100644 index 00000000..1a0b5018 --- /dev/null +++ b/apps/admin/src/views/compo/drag/drag-resize.tsx @@ -0,0 +1,69 @@ +import React, { useRef, useState } from 'react' +import { Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { REACT_RND_PLUGIN } from '@/settings/websiteSetting' +import { Rnd } from 'react-rnd' + +interface configState { + x: number + y: number + width: number + height: number +} + +const DragResize: React.FC = () => { + const rectWrapper = useRef(null) + const [config, setConfig] = useState({ + x: 650, + y: 130, + width: 180, + height: 180 + }) + + const handleDragStop = (_: any, d: any) => { + setConfig({ + ...config, + x: d.x, + y: d.y + }) + } + + const handleResize = (_e: any, _direction: any, ref: any, _delta: any, position: any) => { + setConfig({ + ...config, + width: ref.offsetWidth, + height: ref.offsetHeight, + ...position + }) + } + + return ( + + +
+ +
+
+

x: {config.x}

+

y: {config.y}

+

width: {config.width}

+

height: {config.height}

+
+
+
+
+
+
+ ) +} + +export default DragResize \ No newline at end of file diff --git a/apps/admin/src/views/compo/image-upload.tsx b/apps/admin/src/views/compo/image-upload.tsx new file mode 100644 index 00000000..81d98eac --- /dev/null +++ b/apps/admin/src/views/compo/image-upload.tsx @@ -0,0 +1,129 @@ +import type { UploadFile } from 'antd/es/upload/interface' +import type { RcFile, UploadProps } from 'antd/es/upload' +import React, { useState } from 'react' +import { Row, Col, Card, Button, Upload, Modal } from 'antd' +import { CloudUploadOutlined, PlusOutlined } from '@ant-design/icons' +import { PageWrapper } from '@/components/Page' +import { UPLOAD_COMPO } from '@/settings/websiteSetting' + +const ImageUpload: React.FC = () => { + const { Dragger } = Upload + + const [previewVisible, setPreviewVisible] = useState(false) + const [previewImage, setPreviewImage] = useState('') + const [previewTitle, setPreviewTitle] = useState('') + + const dragImgs: UploadFile[] = [ + { uid: '-1', name: 'beautiful-girl.jpg' }, + { uid: '-2', name: 'beautiful-sunshine.jpg' } + ] + const [listImgs, setListImgs] = useState([ + { + uid: '-1', + name: 'beautiful-girl.jpg', + status: 'done', + url: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img04.jpg', + thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img04.jpg' + }, + { + uid: '-2', + name: 'beautiful-sunshine.jpg', + status: 'done', + url: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg', + thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg' + } + ]) + + const handlePreview = async (file: UploadFile) => { + if (!file.url && !file.preview) { + file.preview = (await getBase64(file.originFileObj as RcFile)) as string + } + setPreviewImage(file.url || (file.preview as string)) + setPreviewVisible(true) + setPreviewTitle(file.name || file.url!.substring(file.url!.lastIndexOf('/') + 1)) + } + + const getBase64 = (file: RcFile): Promise => { + return new Promise((resolve, reject) => { + const reader = new FileReader() + reader.readAsDataURL(file) + reader.onload = () => resolve(reader.result as string) + reader.onerror = error => reject(error) + }) + } + + const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => setListImgs(newFileList) + + const handleCancle = () => { + setPreviewVisible(false) + setPreviewTitle('') + } + + return ( + + +
+ + +

+ +

+

将图片拖到此处, 或点击上传

+

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

+
+
+ +
+ + + +

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

+
+
+ +
+ + +
+ +
点击上传
+
+
+
+ + + + + + + ) +} + +export default ImageUpload \ No newline at end of file diff --git a/apps/admin/src/views/compo/transfer/data.ts b/apps/admin/src/views/compo/transfer/data.ts new file mode 100644 index 00000000..2d529af7 --- /dev/null +++ b/apps/admin/src/views/compo/transfer/data.ts @@ -0,0 +1,56 @@ +import type { TransferItem, TransferProps } from 'antd/es/transfer' + +interface DataState { + key: string + title: string + children?: DataState[] + disabled?: boolean +} + +const mockData: Record[] = [] +for (let i = 1; i < 10; i++) { + mockData.push({ + key: i.toString(), + title: `备选项 ${i}` + }) +} + +const treeData: DataState[] = [ + { key: '1', title: '备选项 1' }, + { + key: '2', + title: '备选项 2', + children: [ + { key: '2-1', title: '备选项 2-1' }, + { key: '2-2', title: '备选项 2-2' }, + { key: '2-3', title: '备选项 2-3' } + ], + }, + { key: '3', title: '备选项 3-1' }, + { + key: '4', + title: '备选项 4', + children: [ + { key: '4-1', title: '备选项 4-1' }, + { + key: '4-2', + title: '备选项 4-2', + children: [ + { key: '4-2-1', title: '备选项 4-2-1' } + ] + }, + { key: '4-3', title: '备选项 4-3' } + ] + } +] + +const transferDataSource: DataState[] = [] +function flatten(list: DataState[] = []) { + list.forEach(item => { + transferDataSource?.push(item) + flatten(item.children) + }) +} +flatten(JSON.parse(JSON.stringify(treeData))) + +export { mockData, treeData, transferDataSource } \ No newline at end of file diff --git a/apps/admin/src/views/compo/transfer/index.tsx b/apps/admin/src/views/compo/transfer/index.tsx new file mode 100644 index 00000000..887903c9 --- /dev/null +++ b/apps/admin/src/views/compo/transfer/index.tsx @@ -0,0 +1,145 @@ +import type { DataNode } from 'antd/es/tree' +import React, { useState } from 'react' +import { Row, Col, Card, Transfer, Table, Tree } from 'antd' +import { PageWrapper } from '@/components/Page' +import { TRANSFER_COMPO } from '@/settings/websiteSetting' +import { mockData, treeData, transferDataSource } from './data' + +const TransferPage: React.FC = () => { + const [targetKeys, setTargetKeys] = useState(['1', '5']) + const [selectedKeys, setSelectedKeys] = useState(['2', '6']) + const [treeTargetKeys, setTreeTargetKeys] = useState([]) + + const onChange = (nextTargetKeys: string[]) => { + setTargetKeys(nextTargetKeys) + } + + const onSelectChange = (sourceSelectedKeys: string[], targetSelectedKeys: string[]) => { + setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]) + } + + const isChecked = (selectedKeys: (string | number)[], eventKey: string | number) => + selectedKeys.includes(eventKey) + + const generateTree = (treeNodes: DataNode[] = [], checkedKeys: string[] = []): DataNode[] => + treeNodes.map(({ children, ...props }) => ({ + ...props, + disabled: checkedKeys.includes(props.key as string), + children: generateTree(children, checkedKeys) + })) + + const handleChange = (nextTargetKeys: string[]) => { + setTreeTargetKeys(nextTargetKeys) + } + + const getRowSelection = ({ + selectedKeys, + onItemSelectAll, + onItemSelect, + }: Record) => { + return { + onSelectAll(selected: boolean, selectedRows: Record[]) { + const treeSelectedKeys = selectedRows + .filter(item => !item.disabled) + .map(({ key }) => key) + onItemSelectAll(treeSelectedKeys, selected) + }, + onSelect({ key }: Record, selected: boolean) { + onItemSelect(key, selected) + }, + selectedRowKeys: selectedKeys + } + } + + return ( + + +
+ + item.title} + listStyle={{width: '230px', height: '360px'}} + locale={{itemsUnit: '项 '}} + onChange={onChange} + onSelectChange={onSelectChange} + /> + + + + + item.title} + showSelectAll={false} + listStyle={{width: '230px', height: '360px'}} + onChange={handleChange} + > + { + ({ + direction, + selectedKeys, + onItemSelect + }) => { + if (direction === 'left') { + const treeCheckedKeys = [...selectedKeys, ...treeTargetKeys] + return ( + { + onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)) + }} + onSelect={(_, { node: { key } }) => { + onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)) + }} + /> + ) + } + } + } + + + + + + + { + ({ + filteredItems, + selectedKeys, + onItemSelectAll, + onItemSelect + }) => ( +
({onClick: () => {onItemSelect(key, !selectedKeys.includes(key))}})} + /> + ) + } + + + + + + ) +} + +export default TransferPage \ No newline at end of file diff --git a/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx b/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx new file mode 100644 index 00000000..d39cb281 --- /dev/null +++ b/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx @@ -0,0 +1,31 @@ +import { FC } from 'react' +import { Form } from 'antd' +import { InfoState } from '../types' + +interface PropState { + info: InfoState +} + +const CodeInfo: FC = ({ info }) => { + + return ( +
+
+ + {info.length} + + + {info.lines} + + + {info.cursor} + + + {info.selected} + + +
+ ) +} + +export default CodeInfo \ No newline at end of file diff --git a/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx b/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx new file mode 100644 index 00000000..89002205 --- /dev/null +++ b/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx @@ -0,0 +1,64 @@ +import { FC } from 'react' +import { Form, Select, Checkbox } from 'antd' +import { ConfigState } from '../types' + +interface PropState { + config: ConfigState + valueChange: (values: any) => void +} + +const CodeToolbar: FC = ({ config, valueChange }) => { + const [form] = Form.useForm() + + const onValuesChange = (values: any) => { + valueChange(values) + } + + return ( +
+
+ + + + +
+ ) +} + +export default CodeToolbar \ No newline at end of file diff --git a/apps/admin/src/views/editor/code-mirror/index.tsx b/apps/admin/src/views/editor/code-mirror/index.tsx new file mode 100644 index 00000000..a134c1e5 --- /dev/null +++ b/apps/admin/src/views/editor/code-mirror/index.tsx @@ -0,0 +1,68 @@ +import { FC, useState } from 'react' +import { useImmer } from 'use-immer' +import { Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { CODEMIRROR_PLUGIN } from '@/settings/websiteSetting' +import { ConfigState, InfoState } from './types' +import Codemirror from '@uiw/react-codemirror' +import Toolbar from './components/Toolbar' +import CodeInfo from './components/CodeInfo' + +const CodeMirror: FC = () => { + const [codeVal, setCodeVal] = useState(`console.log('Hello, world!')`) + const [config, setConfig] = useState({ + language: 'javascript', + autoFocus: true, + indentWithTab: true, + height: '350px' + }) + const [codeInfo, setCodeInfo] = useImmer({ + lines: null as null | number, + cursor: null as null | number, + selected: null as null | number, + length: null as null | number + }) + + const handleValueChange = (values: any) => { + setConfig({...config, ...values}) + } + + const handleChange = (value: any) => { + setCodeVal(value) + } + + const handleStateUpdate = (viewUpdate: any) => { + const ranges = viewUpdate.state.selection.ranges + setCodeInfo({ + lines: viewUpdate.state.doc.lines, + cursor: ranges[0].anchor, + selected: ranges.reduce((plus: any, range: any) => plus + range.to - range.from, 0), + length: viewUpdate.state.doc.length + }) + } + + return ( + + + + + + + + ) +} + +export default CodeMirror \ No newline at end of file diff --git a/apps/admin/src/views/editor/code-mirror/types.ts b/apps/admin/src/views/editor/code-mirror/types.ts new file mode 100644 index 00000000..c3ff233e --- /dev/null +++ b/apps/admin/src/views/editor/code-mirror/types.ts @@ -0,0 +1,13 @@ +export interface ConfigState { + language: string + autoFocus: boolean + indentWithTab: boolean + height: string +} + +export interface InfoState { + lines: null | number + cursor: null | number + selected: null | number + length: null | number +} \ No newline at end of file diff --git a/apps/admin/src/views/editor/markdown.tsx b/apps/admin/src/views/editor/markdown.tsx new file mode 100644 index 00000000..77cdce0c --- /dev/null +++ b/apps/admin/src/views/editor/markdown.tsx @@ -0,0 +1,26 @@ +import { FC, useState } from 'react' +import { PageWrapper } from '@/components/Page' +import { MARKDOWN_EDITOR_PLUGIN } from '@/settings/websiteSetting' +import MDEditor from '@uiw/react-md-editor' + +const MarkdownEditor: FC = () => { + const [value, setValue] = useState("**Hello world!!!**") + + const handleChange = (value: any) => { + setValue(value) + } + + return ( + +
+ +
+
+ ) +} + +export default MarkdownEditor \ No newline at end of file diff --git a/apps/admin/src/views/editor/rich-text/components/Editor.tsx b/apps/admin/src/views/editor/rich-text/components/Editor.tsx new file mode 100644 index 00000000..360a99bf --- /dev/null +++ b/apps/admin/src/views/editor/rich-text/components/Editor.tsx @@ -0,0 +1,91 @@ +import React, { useRef, useEffect, useState } from 'react' +import {SlateDescendant, IEditorConfig, createEditor, IDomEditor, SlateEditor, SlateTransforms } from '@wangeditor/editor' + +interface IProps { + defaultContent?: SlateDescendant[] + onCreated?: (editor: IDomEditor) => void + defaultHtml?: string + value?: string + onChange: (editor: IDomEditor) => void + defaultConfig: Partial + mode?: string + style?: React.CSSProperties + className?: string +} + +function EditorComponent(props: Partial) { + const { defaultContent = [], onCreated, defaultHtml = '', value = '', onChange, defaultConfig = {}, mode = 'default', style = {}, className } = props + const ref = useRef(null) + const [editor, setEditor] = useState(null) + const [curValue, setCurValue] = useState('') + + const handleCreated = (editor: IDomEditor) => { + // Component attr onCreated。(组件属性 onCreated) + if (onCreated) onCreated(editor) + + // Editor config onCreate。(编辑器 配置 onCreated) + const { onCreated: onCreatedFromConfig } = defaultConfig + if (onCreatedFromConfig) onCreatedFromConfig(editor) + } + + const handleChanged = (editor: IDomEditor) => { + // Records the current html value。(记录当前 html 值) + setCurValue(editor.getHtml()) + + // Component attr onChange。(组件属性 onChange) + if (onChange) onChange(editor) + + // Editor config onChange。(编辑器 配置 onChange) + const { onChange: onChangeFromConfig } = defaultConfig + if (onChangeFromConfig) onChangeFromConfig(editor) + } + + const handleDestroyed = (editor: IDomEditor) => { + const { onDestroyed } = defaultConfig + setEditor(null) + if(onDestroyed) { + onDestroyed(editor) + } + } + + // Value changes, resets HTML。(value 变化,重置 HTML) + useEffect(() => { + if (editor == null) return + + // Ignore if it is equal to the current html value。(如果和当前 html 值相等,则忽略) + if (value === curValue) return + + // Reset HTML。(重新设置 HTML) + try { + editor.setHtml(value) + } catch (error) { + console.error(error) + } + + }, [value]) + + useEffect(() => { + if (ref.current == null) return + if (editor != null) return + // Prevents duplicate rendering when the editor is already created。(防止重复渲染 当编辑器已经创建就不在创建了) + if (ref.current?.getAttribute('data-w-e-textarea')) return + + const newEditor = createEditor({ + selector: ref.current, + config: { + ...defaultConfig, + onCreated: handleCreated, + onChange: handleChanged, + onDestroyed: handleDestroyed, + }, + content: defaultContent, + html: defaultHtml || value, + mode, + }) + setEditor(newEditor) + }, [editor]) + + return
+} + +export default EditorComponent \ No newline at end of file diff --git a/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx b/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx new file mode 100644 index 00000000..f8955ad3 --- /dev/null +++ b/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx @@ -0,0 +1,31 @@ +import { useRef, useEffect } from 'react' +import * as wangEditor from '@wangeditor/editor' + +interface IProps { + editor: wangEditor.IDomEditor | null + defaultConfig?: Partial + mode?: string + style?: object + className?: string +} + +function ToolbarComponent(props: IProps) { + const { editor, defaultConfig = {}, mode = 'default', style = {}, className } = props + const ref = useRef(null) + + useEffect(() => { + if (ref.current == null) return + if (editor == null) return + + wangEditor.createToolbar({ + editor, + selector: ref.current, + config: defaultConfig, + mode, + }) + }, [editor]) + + return
+} + +export default ToolbarComponent \ No newline at end of file diff --git a/apps/admin/src/views/editor/rich-text/index.tsx b/apps/admin/src/views/editor/rich-text/index.tsx new file mode 100644 index 00000000..e235eaae --- /dev/null +++ b/apps/admin/src/views/editor/rich-text/index.tsx @@ -0,0 +1,49 @@ +import {FC, useState, useEffect } from 'react' +import { PageWrapper } from '@/components/Page' +import { WANG_EDITOR_PLUGIN } from '@/settings/websiteSetting' +import { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor' +import Editor from './components/Editor' +import Toolbar from './components/Toolbar' +import '@wangeditor/editor/dist/css/style.css' + +const RichTextEditor: FC = () => { + const [editor, setEditor] = useState(null) + const [html, setHtml] = useState('

hello

') + + + const toolbarConfig: Partial = {} + const editorConfig: Partial = { // TS 语法 + placeholder: '请输入内容...' + } + + useEffect(() => { + return () => { + if (editor == null) return + editor.destroy() + setEditor(null) + } + }, [editor]) + + return ( + +
+ + setHtml(editor.getHtml())} + mode='default' + style={{ height: '500px', overflowY: 'hidden' }} + /> +
+
+ ) +} + +export default RichTextEditor \ No newline at end of file diff --git a/apps/admin/src/views/excel/export-excel/data.ts b/apps/admin/src/views/excel/export-excel/data.ts new file mode 100644 index 00000000..7d57239f --- /dev/null +++ b/apps/admin/src/views/excel/export-excel/data.ts @@ -0,0 +1,91 @@ +export interface DataItem { + key: number + name: string + sex: string + phone: number + birth: string + education: string + hobby: string + forbid: boolean + editable: boolean +} + +export const tableData: DataItem[] = [ + { + key: 1001, + name: '张三', + sex: '男', + phone: 15266001235, + birth: '2002-05-06', + education: '高中', + hobby: '羽毛球、篮球、听歌、阅读', + forbid: false, + editable: true + }, + { + key: 1002, + name: '李四', + sex: '男', + phone: 15266006621, + birth: '1998-09-21', + education: '初中', + hobby: '乒乓球、排球、游泳', + forbid: true, + editable: false + }, + { + key: 1003, + name: '王五', + sex: '男', + phone: 15264848125, + birth: '1993-06-06', + education: '本科', + hobby: '旱冰、滑雪、跳高、打游戏', + forbid: false, + editable: false + }, + { + key: 1004, + name: '辛八', + sex: '男', + phone: 15248491001, + birth: '1995-08-03', + education: '大专', + hobby: '网球、篮球、跳伞', + forbid: true, + editable: false + }, + { + key: 1005, + name: '刘二', + sex: '女', + phone: 15248411021, + birth: '1999-11-05', + education: '本科', + hobby: '滑翔、游泳、篮球、看电影', + forbid: true, + editable: false + }, + { + key: 1006, + name: '赵七', + sex: '男', + phone: 15298621500, + birth: '2000-07-18', + education: '大专', + hobby: '游泳、篮球、潜水', + forbid: false, + editable: false + }, + { + key: 1007, + name: '杨一', + sex: '女', + phone: 15267499461, + birth: '1998-12-25', + education: '高中', + hobby: '冲浪、上网、看书、打游戏', + forbid: false, + editable: false + } +] diff --git a/apps/admin/src/views/excel/export-excel/index.tsx b/apps/admin/src/views/excel/export-excel/index.tsx new file mode 100644 index 00000000..6d40b3df --- /dev/null +++ b/apps/admin/src/views/excel/export-excel/index.tsx @@ -0,0 +1,125 @@ +import { useState } from 'react' +import { Form, Button, Card, Input, Radio, Select, Table, Space, message } from 'antd' +import { ColumnType } from 'antd/es/table' +import { PageWrapper } from '@/components/Page' +import { XLSX_PLUGIN } from '@/settings/websiteSetting' +import { useExcel } from '../useExcel' +import { DataToSheet } from '../types' +import { tableData } from './data' + +type FileType = 'xlsx' | 'csv' | 'txt' + +interface FormState { + fileName: string + autoWidth: boolean + fileType: FileType +} + +const ExportExcel = (props: any) => { + const { Item } = Form + const { Group } = Radio + + const { exportDataToExcel } = useExcel() + + const formParam = { + fileName: '', + autoWidth: true, + fileType: 'xlsx' + } + + const tableColumns: ColumnType[] = [ + { title: '编号', dataIndex: 'key', align: 'center' }, + { title: '姓名', dataIndex: 'name', align: 'center' }, + { title: '性别', dataIndex: 'sex', align: 'center' }, + { title: '手机', dataIndex: 'phone', align: 'center' }, + { title: '学历', dataIndex: 'education', align: 'center' }, + { title: '爱好', dataIndex: 'hobby', align: 'center' } + ] + + const [tableSelectedKeys, setTableSelectedKeys] = useState([]) + const [tableSelectedRows, setTableSelectedRows] = useState([]) + + function handleTableChange(selectedKeys: any[]) { + setTableSelectedKeys(selectedKeys) + } + + function handleTableSelect( + _record: object, + _selected: boolean, + selectedRows: object[] + ) { + setTableSelectedRows(selectedRows) + } + + function handleTableSelectAll(_selected: boolean, selectedRows: object[]) { + setTableSelectedRows(selectedRows) + } + + + function handleExport(values: FormState) { + console.log('values', values) + if (!tableSelectedRows.length) { + message.warning('请勾选要导出的数据项!') + return + } + const { fileName, autoWidth, fileType: bookType } = values + + const params: DataToSheet = { + data: tableSelectedRows, + header: ['编号', '姓名', '性别', '手机', '学历', '爱好'], + key: ['key', 'name', 'sex', 'phone', 'education', 'hobby'], + fileName, autoWidth, bookType + } + exportDataToExcel(params) + setTableSelectedKeys([]) + setTableSelectedRows([]) + } + + return ( + + + +
+ + + + + + + +
+ + + + ) +} + +export default ExportExcel \ No newline at end of file diff --git a/apps/admin/src/views/excel/import-excel.tsx b/apps/admin/src/views/excel/import-excel.tsx new file mode 100644 index 00000000..c98cec56 --- /dev/null +++ b/apps/admin/src/views/excel/import-excel.tsx @@ -0,0 +1,76 @@ +import type { UploadChangeParam } from 'antd/es/upload' +import type { ColumnType } from 'antd/es/table' +import { useState } from 'react' +import { Card, Table, Upload, Space, message } from 'antd' +import { CloudUploadOutlined } from '@ant-design/icons' +import { PageWrapper } from '@/components/Page' +import { XLSX_PLUGIN } from '@/settings/websiteSetting' +import { useExcel } from './useExcel' + +const ImportExcel = (props: any) => { + const { Dragger } = Upload + const [tableData, setTableData] = useState([]) + const [tableColumns, setTableColumns] = useState[]>([]) + const { readDataFromExcel } = useExcel() + + function handleChange(fileParam: UploadChangeParam) { + const { file } = fileParam + const rawFile = file.originFileObj + + if (!rawFile) return + if (!/\.(xlsx|xls|csv)$/.test(rawFile.name)) { + message.warning('Excel文件只支持.xlsx, .xls, .csv格式!') + return + } + + const isLimit1M = rawFile.size / 1024 /1024 < 1 + if (!isLimit1M) { + message.warning('上传的Excel文件大小不能超过1M!') + return + } + + readFile(rawFile) + } + + function readFile(rawFile: File) { + const reader = new FileReader() + reader.onload = e => { + const data = e.target && e.target.result + const { header, results } = readDataFromExcel(data, 'array') + const columns = header.map(key => ({title: key, dataIndex: key, align: 'center'})) as ColumnType[] + setTableColumns(columns) + setTableData(results as object[]) + } + reader.readAsArrayBuffer(rawFile) + reader.onerror = () => { + message.error('Excel文件读取出错!') + } + } + + return ( + + + + +

+ +

+

将Excel文件拖到此处, 或点击上传

+
+
+ + + + ) +} + +export default ImportExcel \ No newline at end of file diff --git a/apps/admin/src/views/excel/types.ts b/apps/admin/src/views/excel/types.ts new file mode 100644 index 00000000..b27e22b2 --- /dev/null +++ b/apps/admin/src/views/excel/types.ts @@ -0,0 +1,12 @@ +import type { BookType } from 'xlsx' + +export type ImportType = 'base64' | 'binary' | 'string' | 'buffer' | 'array' | 'file' + +export interface DataToSheet { + data: T[] + header: T[] + key: T[] + fileName?: string + autoWidth?: boolean + bookType: BookType +} \ No newline at end of file diff --git a/apps/admin/src/views/excel/useExcel.ts b/apps/admin/src/views/excel/useExcel.ts new file mode 100644 index 00000000..15d2166a --- /dev/null +++ b/apps/admin/src/views/excel/useExcel.ts @@ -0,0 +1,119 @@ +import type { WorkSheet } from 'xlsx' +import { write, read, utils } from 'xlsx' +import { saveAs } from 'file-saver' +import { ImportType, DataToSheet } from './types' + +export function useExcel() { + // Automatic width calculation (自动宽度计算) + function AutoWidth(ws: WorkSheet, arr: any[][]) { + // Sets the maximum width of each column of the worksheet (设置worksheet每列的最大宽度) + const colWidth = arr.map(row => row.map(val => { + // Checked null or undefined(判断是否为null/undefined) + if (val == null) { + return { wch: 10 } + } else if (val.toString().charCodeAt(0) > 255) { // Checked Chinese (判断是否为中文) + return { wch: val.toString().length * 2 } + } else { + return { wch: val.toString().length } + } + })) + // The initial value of the first row (以第一行为初始值) + const result = colWidth[0] + for (let i = 1; i < colWidth.length; i++) { + for (let j = 0; j < colWidth[i].length; j++) { + if (result[j].wch < colWidth[i][j].wch) { + result[j].wch = colWidth[i][j].wch + } + } + } + ws['!cols'] = result + } + + // Array to JSON (数组转换成JSON) + function formatJSON(key: any[], data: any[]) { + return data.map(v => key.map(i => { return v[i] })) + } + + // String to ArrayBuffer (字符串转ArrayBuffer) + function s2ab(s: string) { + const buf = new ArrayBuffer(s.length) + const view = new Uint8Array(buf) + for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF + return buf + } + + // Exporting EXCEL (导出EXCEL表格) + function exportDataToExcel( + { + header, // Table header label (表头名数组) + key, // Table header key (列对应字段数组) + data, // Data to be exported (需要导出数据的数组) + fileName, // Export file name (导出文件名) + autoWidth = true, // Automatic width (是否自动宽度) + bookType = 'xlsx' // Export file type (导出文件格式) + }: DataToSheet) { + // Create the Workbook object (创建Workbook对象) + const wb = utils.book_new() + const arr = formatJSON(key, data) + fileName = fileName || 'excel-list' + arr.unshift(header) + // Convert the array to worksheet (将数组数据转换为worksheet) + const ws = utils.aoa_to_sheet(arr) + if (autoWidth) { + AutoWidth(ws, arr) + } + // Appends the worksheet and fileName to the Workbook object (向Workbook对象中追加worksheet和fileName) + utils.book_append_sheet(wb, ws, fileName) + // Generate EXCEL configuration items (生成EXCEL的配置项) + const wbout = write(wb, { + bookType: bookType, + bookSST: false, + type: 'binary' + }) + // Browser download (浏览器下载) + saveAs(new Blob([s2ab(wbout)], { + type: 'application/octet-stream' + }), `${fileName}.${bookType}`) + } + + // Get the table header from the Excel file (从Excel文件中获取表格头) + function getHeaderRow(sheet: WorkSheet) { + if (!sheet || !sheet['!ref']) return [] + + const headers: string[] = [] + // Converts a string such as A1:G8 to a column and row object (将 A1:G8 这种字符串转换为行列对象) + const range = utils.decode_range(sheet['!ref']) + + const R = range.s.r + // Start in the first row, walk every column in the range (从第一列开始,遍历范围中的每一列) + for (let C = range.s.c; C <= range.e.c; ++C) { + // Converts a row object to a string such as A1 (将行列对象转换为 A1 这种字符串) + const cell = sheet[utils.encode_cell({ c: C, r: R })] + // Replace with your desired default (用默认值替换) + let hdr = 'UNKNOWN ' + C + if (cell && cell.t) hdr = utils.format_cell(cell) + headers.push(hdr) + } + return headers + } + + // Reading excel files (读取Excel文件) + function readDataFromExcel(data: any, type: ImportType) { + // Read the Excel file and save it to the Workbook object (读取Excel文件并保存到Workbook对象) + const workbook = read(data, { type: type }) + const firstSheetName = workbook.SheetNames[0] + // Gets the worksheet of the Workbook object (获取Workbook对象的worksheet) + const worksheet = workbook.Sheets[firstSheetName] + const header = getHeaderRow(worksheet) + // Convert the worksheet to an array (将worksheet转化成数组) + const results = utils.sheet_to_json(worksheet) + return { header, results } + } + + return { + exportDataToExcel, + readDataFromExcel + } + +} + diff --git a/apps/admin/src/views/exception/index.tsx b/apps/admin/src/views/exception/index.tsx new file mode 100644 index 00000000..4ad71cfa --- /dev/null +++ b/apps/admin/src/views/exception/index.tsx @@ -0,0 +1,48 @@ +import { FC, ReactNode } from 'react' +import { Result, Card, Button } from 'antd' +import { useNavigate, useLoaderData } from 'react-router-dom' + +const subTitleMap = new Map([ + [403, '对不起,您没有权限访问此页面。'], + [404, '对不起,您访问的页面不存在。'], + [500, '对不起,服务器发生错误。'] +]) + +const PageException: FC = () => { + const navigate = useNavigate() + + const { status, withCard } = useLoaderData() as { status: any; withCard: boolean } + + const goHome = () => { + navigate('/home') + } + + const WithCard = ({ children }: { children: ReactNode }) => { + if (withCard) { + return {children} + } else { + return ( +
+ {children} +
+ ) + } + } + + return ( + + + 返回首页 + + } + /> + + ) +} + +export default PageException diff --git a/apps/admin/src/views/form/basic-form/data.ts b/apps/admin/src/views/form/basic-form/data.ts new file mode 100644 index 00000000..24f5cb50 --- /dev/null +++ b/apps/admin/src/views/form/basic-form/data.ts @@ -0,0 +1,248 @@ + +export const provinceData = ['guangdong', 'Zhejiang', 'Jiangsu'] + +export const cityData: Record = { + guangdong: ['guangzhou', 'shenzhen', 'foshan', 'dongguan', 'zhuhai'], + Zhejiang: ['Hangzhou', 'Ningbo', 'Wenzhou'], + Jiangsu: ['Nanjing', 'Suzhou', 'Zhenjiang', 'wuxi'] +} + +export const cascaderData = [{ + value: 'zhinan', + label: '指南', + children: [{ + value: 'shejiyuanze', + label: '设计原则', + children: [{ + value: 'yizhi', + label: '一致' + }, { + value: 'fankui', + label: '反馈' + }, { + value: 'xiaolv', + label: '效率' + }, { + value: 'kekong', + label: '可控' + }] + }, { + value: 'daohang', + label: '导航', + children: [{ + value: 'cexiangdaohang', + label: '侧向导航' + }, { + value: 'dingbudaohang', + label: '顶部导航' + }] + }] +}, { + value: 'zujian', + label: '组件', + children: [{ + value: 'basic', + label: 'Basic', + children: [{ + value: 'layout', + label: 'layout 布局' + }, { + value: 'color', + label: 'Color 色彩' + }, { + value: 'typography', + label: 'Typography 字体' + }, { + value: 'icon', + label: 'Icon 图标' + }, { + value: 'button', + label: 'Button 按钮' + }] + }, { + value: 'form', + label: 'Form', + children: [{ + value: 'radio', + label: 'Radio 单选框' + }, { + value: 'checkbox', + label: 'Checkbox 多选框' + }, { + value: 'input', + label: 'Input 输入框' + }, { + value: 'input-number', + label: 'InputNumber 计数器' + }, { + value: 'select', + label: 'Select 选择器' + }, { + value: 'cascader', + label: 'Cascader 级联选择器' + }, { + value: 'switch', + label: 'Switch 开关' + }, { + value: 'slider', + label: 'Slider 滑块' + }, { + value: 'time-picker', + label: 'TimePicker 时间选择器' + }, { + value: 'date-picker', + label: 'DatePicker 日期选择器' + }, { + value: 'datetime-picker', + label: 'DateTimePicker 日期时间选择器' + }, { + value: 'upload', + label: 'Upload 上传' + }, { + value: 'rate', + label: 'Rate 评分' + }, { + value: 'form', + label: 'Form 表单' + }] + }, { + value: 'data', + label: 'Data', + children: [{ + value: 'table', + label: 'Table 表格' + }, { + value: 'tag', + label: 'Tag 标签' + }, { + value: 'progress', + label: 'Progress 进度条' + }, { + value: 'tree', + label: 'Tree 树形控件' + }, { + value: 'pagination', + label: 'Pagination 分页' + }, { + value: 'badge', + label: 'Badge 标记' + }] + }, { + value: 'notice', + label: 'Notice', + children: [{ + value: 'alert', + label: 'Alert 警告' + }, { + value: 'loading', + label: 'Loading 加载' + }, { + value: 'message', + label: 'Message 消息提示' + }, { + value: 'message-box', + label: 'MessageBox 弹框' + }, { + value: 'notification', + label: 'Notification 通知' + }] + }, { + value: 'navigation', + label: 'Navigation', + children: [{ + value: 'menu', + label: 'NavMenu 导航菜单' + }, { + value: 'tabs', + label: 'Tabs 标签页' + }, { + value: 'breadcrumb', + label: 'Breadcrumb 面包屑' + }, { + value: 'dropdown', + label: 'Dropdown 下拉菜单' + }, { + value: 'steps', + label: 'Steps 步骤条' + }] + }, { + value: 'others', + label: 'Others', + children: [{ + value: 'dialog', + label: 'Dialog 对话框' + }, { + value: 'tooltip', + label: 'Tooltip 文字提示' + }, { + value: 'popover', + label: 'Popover 弹出框' + }, { + value: 'card', + label: 'Card 卡片' + }, { + value: 'carousel', + label: 'Carousel 走马灯' + }, { + value: 'collapse', + label: 'Collapse 折叠面板' + }] + }] +}, { + value: 'ziyuan', + label: '资源', + children: [{ + value: 'axure', + label: 'Axure Components' + }, { + value: 'sketch', + label: 'Sketch Templates' + }, { + value: 'jiaohu', + label: '组件交互文档' + }] +}] + +export const treeData = [{ + title: 'Node1', + value: '0-0', + children: [{ + title: 'Child Node1', + value: '0-0-0', + children: [{ + title: 'Child Node6', + value: '0-0-1' + }] + }] +}, { + title: 'Node2', + value: '0-1', + children: [{ + title: 'Child Node3', + value: '0-1-0', + disabled: true, + }, { + title: 'Child Node4', + value: '0-1-1', + }, { + title: 'Child Node5', + value: '0-1-2', + }] +}] + +export const radioData = [ + { label: '免费', value: 'free' }, + { label: '收费', value: 'fee' }, + { label: '赞助', value: 'sponsor' }, + { label: '线上', value: 'online', disabled: true }, + { label: '线下', value: 'offline', disabled: true } +] + +export const checkboxData = [ + { label: '游泳', value: 'swim' }, + { label: '跑步', value: 'run' }, + { label: '健身', value: 'fit' }, + { label: '阅读', value: 'read', disabled: true }, + { label: '音乐', value: 'music', disabled: true }, + { label: '电影', value: 'movie' } +] diff --git a/apps/admin/src/views/form/basic-form/index.tsx b/apps/admin/src/views/form/basic-form/index.tsx new file mode 100644 index 00000000..8d55119b --- /dev/null +++ b/apps/admin/src/views/form/basic-form/index.tsx @@ -0,0 +1,264 @@ +import type { CascaderProps, TreeSelectProps } from 'antd' +import type { Rule } from 'antd/es/form' +import { FC, useState } from 'react' +import { Card, Form, Row, Col, Input, InputNumber, Button, Select, DatePicker, TimePicker, + Switch, Slider, Cascader, TreeSelect, Radio, Checkbox } from 'antd' +import { FORM_COMPO } from '@/settings/websiteSetting' +import { PageWrapper } from '@/components/Page' +import { provinceData, cityData, cascaderData, treeData, radioData, checkboxData } from './data' + +const BasicForm: FC = () => { + const [form] = Form.useForm() + + const province = provinceData[0] + const [formState, setFormState] = useState({ + inputLimit: '', + inputNum: '', + password: '', + selectProvince: province, + selectCity: cityData[province][0], + dateVal: '', + timeVal: '', + switchVal: true, + sliderVal: 32, + cascaderVal: [], + cascaderLazy: [], + treeVal: ['0-0-1'], + treeLazy: '1', + radioVal: 'offline', + checkboxVal: ['read'], + textareaVal: '' + }) + + const formRules: Record = { + inputLimit: [ + { required: true, message: '内容不能为空' } + ], + inputNum: [ + { required: true, message: '内容不能为空' }, + { type: 'number', message: '内容必须为数字值' } + ], + password: [ + { required: true, message: '内容不能为空' }, + { min: 6, max: 16, message: '密码长度在 6 到 16 个字符' }, + { pattern: /^[a-zA-Z0-9_-]{6,16}$/, message: '密码只支持字母、数字和下划线' } + ] + } + + const switchVal = Form.useWatch('switchVal', form) + + const [cascaderLazyData, setCascaderLazyData] = useState([ + { value: 1, label: '选项1', isLeaf: false } + ]) + + const [treeLazyData, setTreeLazyData] = useState([ + { id: 1, pId: 0, value: '1', title: 'Expand to load' }, + { id: 2, pId: 0, value: '2', title: 'Expand to load' }, + { id: 3, pId: 0, value: '3', title: 'Tree Node', isLeaf: true }, + ]) + + const handleProvinceChange = (value: any) => { + form.setFieldsValue({ selectCity: cityData[value][0] }) + } + + const loadCascaderLazy = (selectedOptions: any) => { + const targetOption = selectedOptions[selectedOptions.length - 1] + targetOption.loading = true + + setTimeout(() => { + targetOption.loading = false + let id = selectedOptions.length + const level = selectedOptions.length + targetOption.children = Array.from({ length: level + 1 }) + .map(() => ({ + value: ++id, + label: `选项${id}`, + isLeaf: level >= 2 + })) + setCascaderLazyData([...cascaderLazyData!]) + }, 1000) + } + + const loadTreeLazy: TreeSelectProps['loadData'] = ({ id }) => { + const genTreeNode = (parentId: number, isLeaf = false) => { + const random = Math.random().toString(36).substring(2, 6) + return { + id: random, + pId: parentId, + value: random, + title: isLeaf ? 'Tree Node' : 'Expand to load', + isLeaf + } + } + + return new Promise(resolve => { + setTimeout(() => { + setTreeLazyData(treeLazyData?.concat([ + genTreeNode(id, false), + genTreeNode(id, true), + genTreeNode(id, true) + ])) + resolve(undefined) + }, 500) + }) + } + + const onFinish = (values: any) => { + console.log('Success:', values) + } + + const resetForm = () => { + form.resetFields() + } + + return ( + + + + + + + + + + + + + + +
+ + ({ value: city }))} + /> + + + + + + + + + + + + + + + + + + + + { + !switchVal + ? null + : ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) + } + + + + + + + + ) +} + +export default BasicForm diff --git a/apps/admin/src/views/form/form-designer.tsx b/apps/admin/src/views/form/form-designer.tsx new file mode 100644 index 00000000..c59d9e45 --- /dev/null +++ b/apps/admin/src/views/form/form-designer.tsx @@ -0,0 +1,15 @@ +import { FC } from 'react' +import { Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { FORM_CREATE_DESIGNER } from '@/settings/websiteSetting' + +const FormCreate: FC = () => { + + return ( + + + + ) +} + +export default FormCreate \ No newline at end of file diff --git a/apps/admin/src/views/form/gbeata-form/index.tsx b/apps/admin/src/views/form/gbeata-form/index.tsx new file mode 100644 index 00000000..050a3597 --- /dev/null +++ b/apps/admin/src/views/form/gbeata-form/index.tsx @@ -0,0 +1,27 @@ +import { GButton } from 'gbeata' + +const GbeataForm = () => { + const fields: Array = [ + { + title: '中文名', + key: 'cn' + }, + { + title: '年龄', + type: 'slider', + key: 'sex' + } + ] + const handleConfirm = (form: any) => { + console.log(form) + alert(JSON.stringify(form)) + } + + return ( + + 提交 + + ) +} + +export default GbeataForm diff --git a/apps/admin/src/views/home/components/ChartsCard.tsx b/apps/admin/src/views/home/components/ChartsCard.tsx new file mode 100644 index 00000000..6be515cf --- /dev/null +++ b/apps/admin/src/views/home/components/ChartsCard.tsx @@ -0,0 +1,32 @@ +import type { EChartsOption } from 'echarts' +import { FC } from 'react' +import { Card } from 'antd' +import { useECharts } from '@/hooks/web/useECharts' + +interface propState { + loading: boolean + options: EChartsOption + height: number +} + +const ChartsCard: FC = ({ loading, options, height }) => { + + const { chartRef } = useECharts(options, loading) + + return ( + +
+ + ) +} + +export default ChartsCard \ No newline at end of file diff --git a/apps/admin/src/views/home/components/CountUpCard.tsx b/apps/admin/src/views/home/components/CountUpCard.tsx new file mode 100644 index 00000000..a20f98d6 --- /dev/null +++ b/apps/admin/src/views/home/components/CountUpCard.tsx @@ -0,0 +1,55 @@ +import { FC } from 'react' +import { Card } from 'antd' +import CountUp from 'react-countup' +import SvgIcon from '@/components/SvgIcon' + +interface propState { + loading: boolean + title: string + color: string + iconName: string + countNum: number +} + +const CountUpCard: FC = (props) => { + + return ( + +
+
+ +
+
+ +

{props.title}

+
+
+
+ ) +} + +export default CountUpCard \ No newline at end of file diff --git a/apps/admin/src/views/home/data.ts b/apps/admin/src/views/home/data.ts new file mode 100644 index 00000000..51cd354b --- /dev/null +++ b/apps/admin/src/views/home/data.ts @@ -0,0 +1,278 @@ +import type { EChartsOption } from 'echarts' + +export const countUpData = [ + { + title: '今日点击', + icon: 'location', + count: 682, + color: '#1890ff' + }, + { + title: '新增用户', + icon: 'person', + count: 259, + color: '#fa541c' + }, + { + title: '信息发送', + icon: 'message', + count: 1262, + color: '#faad14' + }, + { + title: '点赞统计', + icon: 'like', + count: 508, + color: '#13c2c2' + }, + { + title: '累计收藏', + icon: 'heart', + count: 379, + color: '#722ed1' + } +] + +export const pieOptions: EChartsOption = { + tooltip: { + trigger: 'item' + }, + legend: { + bottom: 0, + left: 'center' + }, + series: [ + { + name: '访问来源', + type: 'pie', + radius: '70%', + center: ['50%', '45%'], + color: ['#1890ff', '#fa541c', '#faad14', '#13c2c2', '#722ed1'], + data: [ + { value: 1620, name: '直接访问' }, + { value: 1169, name: '邮件营销' }, + { value: 986, name: '联盟广告' }, + { value: 624, name: '视频广告' }, + { value: 857, name: '搜索引擎' } + ], + roseType: 'radius', + animationType: 'scale', + animationEasing: 'exponentialInOut', + animationDelay: function () { + return Math.random() * 400 + } + } + ] +} + +export const ringOptions: EChartsOption = { + tooltip: { + trigger: 'item' + }, + legend: { + bottom: 0, + left: 'center' + }, + series: [ + { + color: ['#1890ff', '#fa541c', '#faad14', '#13c2c2', '#722ed1'], + name: '访问来源', + type: 'pie', + radius: ['40%', '70%'], + center: ['50%', '45%'], + avoidLabelOverlap: false, + itemStyle: { + borderRadius: 10, + borderColor: '#fff', + borderWidth: 2 + }, + label: { + show: false, + position: 'center' + }, + emphasis: { + label: { + show: true, + fontSize: '12', + fontWeight: 'bold' + } + }, + labelLine: { + show: false + }, + data: [ + { value: 1620, name: '直接访问' }, + { value: 1169, name: '邮件营销' }, + { value: 986, name: '联盟广告' }, + { value: 624, name: '视频广告' }, + { value: 2758, name: '搜索引擎' } + ], + animationType: 'scale', + animationEasing: 'exponentialInOut', + animationDelay: function () { + return Math.random() * 100 + } + } + ] +} + +export const radarOptions: EChartsOption = { + legend: { + bottom: 0, + data: ['推广渠道', '广告投放', '访问来源'] + }, + radar: { + radius: '70%', + center: ['50%', '45%'], + splitNumber: 8, + indicator: [ + { + name: '直接访问' + }, + { + name: '邮件营销' + }, + { + name: '联盟广告' + }, + { + name: '视频广告' + }, + { + name: '搜索引擎' + } + ] + }, + series: [ + { + type: 'radar', + symbolSize: 0, + areaStyle: { + shadowBlur: 0, + shadowColor: 'rgba(0,0,0,.2)', + shadowOffsetX: 0, + shadowOffsetY: 10, + opacity: 1 + }, + data: [ + { + value: [1920, 1920, 1920, 0, 0], + name: '推广渠道', + itemStyle: { + color: '#1890ff' + } + }, + { + value: [1920, 0, 0, 1920, 1920], + name: '访问来源', + itemStyle: { + color: '#722ed1' + } + }, + { + value: [920, 920, 920, 920, 920], + name: '广告投放', + itemStyle: { + color: '#faad14' + } + } + ] + } + ] +} + +export const barOptions: EChartsOption = { + tooltip: { + trigger: 'axis', + axisPointer: { + lineStyle: { + width: 1, + color: '#fa541c' + } + } + }, + grid: { + left: 0, + right: '1%', + top: '2%', + bottom: 0, + containLabel: true + }, + xAxis: { + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + axisTick: { + alignWithLabel: true + } + }, + yAxis: { + type: 'value', + max: value => { + return Math.ceil(value.max / 100) * 100 + 300 + } + }, + label: { + show: true, + fontSize: 14, + color: '#1890ff', + position: 'top', + formatter: '{c}' + }, + series: [ + { + type: 'bar', + name: '访问量', + barWidth: '40%', + color: ['#1890ff'], + data: [782, 925, 1196, 812, 328, 223, 1080] + } + ] +} + +export const lineOptions: EChartsOption = { + tooltip: { + trigger: 'axis', + axisPointer: { + lineStyle: { + width: 1, + color: '#fa541c' + } + } + }, + grid: { + left: 0, + right: '1%', + top: '2%', + bottom: 0, + containLabel: true + }, + xAxis: { + type: 'category', + data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], + axisTick: { + alignWithLabel: true + } + }, + yAxis: { + type: 'value', + max: value => { + return Math.ceil(value.max / 100) * 100 + 300 + } + }, + label: { + show: true, + fontSize: 14, + color: '#722ed1', + position: 'top', + formatter: '{c}' + }, + series: [ + { + type: 'line', + name: '访问量', + color: ['#722ed1'], + smooth: true, + data: [782, 925, 1196, 812, 328, 223, 1080] + } + ] +} diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx new file mode 100644 index 00000000..45d148c6 --- /dev/null +++ b/apps/admin/src/views/home/index.tsx @@ -0,0 +1,56 @@ +import { FC, useState } from 'react' +import { Row, Col, Space } from 'antd' +import CountUpCard from './components/CountUpCard' +import ChartsCard from './components/ChartsCard' +import { countUpData, pieOptions, ringOptions, radarOptions, barOptions, lineOptions } from './data' + +const HomePage: FC = () => { + const [isLoading, setIsLoading] = useState(true) + + setTimeout(() => { + setIsLoading(false) + }, 1500) + + return ( + + + { + countUpData.map(item => { + return ( +
+ + + ) + }) + } + + + + + + + + + + + + + + + + + + + + + + ) +} + +export default HomePage \ No newline at end of file diff --git a/apps/admin/src/views/image/image-cropper.tsx b/apps/admin/src/views/image/image-cropper.tsx new file mode 100644 index 00000000..efb98f45 --- /dev/null +++ b/apps/admin/src/views/image/image-cropper.tsx @@ -0,0 +1,74 @@ +import React, { useRef, useState } from 'react' +import { Row, Col, Card, Button, Space } from 'antd' +import { PageWrapper } from '@/components/Page' +import { REACT_CROPPER_PLUGIN, CROPPER_IMG_SRC } from '@/settings/websiteSetting' +import Cropper, { ReactCropperElement } from 'react-cropper' +import 'cropperjs/dist/cropper.css' +import { downloadImgByUrl } from '@/utils/download' +import { UploadImage } from '@/components/Upload' + +const ImageCropper: React.FC = () => { + const cropperRef = useRef(null) + const [imgSrc, setImgSrc] = useState(CROPPER_IMG_SRC) + + const handleSuccess = (data: any) => { + setImgSrc(data) + } + + const downloadImage = () => { + if (typeof cropperRef.current?.cropper !== 'undefined') { + const imgUrl = cropperRef.current?.cropper.getCroppedCanvas().toDataURL() + + downloadImgByUrl(imgUrl, 'demo.png') + } + } + + return ( + + + + + + + + + +
+ + + + +
+
+ +
+ +
+ + + + + ) +} + +export default ImageCropper \ No newline at end of file diff --git a/apps/admin/src/views/login/index.less b/apps/admin/src/views/login/index.less new file mode 100644 index 00000000..2a8969f5 --- /dev/null +++ b/apps/admin/src/views/login/index.less @@ -0,0 +1,42 @@ +.login-wrapper { + display: flex; + justify-content: center; + align-items: center; + width: 100vw; + height: 100vh; + background-image: url('@/assets/images/login-background.jpg'); + background-size: cover; + + .login-box { + padding: 16px 30px 10px; + background: #fff; + border-radius: 4px; + box-shadow: 0 15px 30px 0 rgba(0, 0, 1, .1); + + &-title { + margin: 0 auto 35px; + text-align: center; + color: #707070; + font-size: 18px; + letter-spacing: 2px; + + img { + width: 200px; + height: 82px; + margin: 12px auto 0; + } + } + + &-form { + width: 320px; + } + + .login-btn { + width: 100%; + } + + .no-margin { + margin-bottom: 0; + } + } +} diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx new file mode 100644 index 00000000..977a42bd --- /dev/null +++ b/apps/admin/src/views/login/index.tsx @@ -0,0 +1,144 @@ +import type { FormInstance } from 'antd/es/form' +import type { LoginParams, UserInfo } from '@/types' +import { FC, useRef, useState } from 'react' +import { useNavigate, useSearchParams } from 'react-router-dom' +import { Form, Input, Checkbox, Button, message } from 'antd' +import { UserOutlined, LockOutlined } from '@ant-design/icons' +import { useAppSelector, useAppDispatch } from '@/stores' +import { setToken, setUserInfo, setSessionTimeout } from '@/stores/modules/user' +import { getAuthCache } from '@/utils/auth' +import { TOKEN_KEY } from '@/enums/cacheEnum' +import { loginApi, getUserInfo } from '@/api' +import logoIcon from '@/assets/images/logo_name.png' +import classNames from 'classnames' +import './index.less' + +const LoginPage: FC = () => { + const [form] = Form.useForm() + const loginFormRef = useRef(null) + const [loading, setLoading] = useState(false) + + const dispatch = useAppDispatch() + + const { token, sessionTimeout } = useAppSelector(state => state.user) + const getToken = (): string => { + return token || getAuthCache(TOKEN_KEY) + } + + const navigate = useNavigate() + const [searchParams] = useSearchParams() + + const handleLogin = async (values: any) => { + try { + setLoading(true) + const userInfo = await loginAction({ + username: values.username, + password: values.password + }) + if (userInfo) { + message.success('登陆成功!') + } + } catch (error) { + message.error((error as unknown as Error).message) + } finally { + setLoading(false) + } + } + + const loginAction = async ( + params: LoginParams & { + goHome?: boolean + } + ): Promise => { + try { + const { goHome = true, ...loginParams } = params + const data = await loginApi(loginParams) + + // 保存 Token + dispatch(setToken(data?.token)) + return afterLoginAction(goHome) + } catch (error) { + return Promise.reject(error) + } + } + + const afterLoginAction = async (goHome?: boolean): Promise => { + if (!getToken()) return null + + const userInfo = await getUserInfoAction() + + if (sessionTimeout) { + dispatch(setSessionTimeout(false)) + } else { + const redirect = searchParams.get('redirect') + if (redirect) { + navigate(redirect) + } else { + goHome && navigate(userInfo?.homePath || '/home') + } + } + + return userInfo + } + + const getUserInfoAction = async (): Promise => { + if (!getToken()) return null + + const userInfo = await getUserInfo() + + dispatch(setUserInfo(userInfo)) + + return userInfo + } + + return ( + + ) +} + +export default LoginPage diff --git a/apps/admin/src/views/table/table-basic/index.tsx b/apps/admin/src/views/table/table-basic/index.tsx new file mode 100644 index 00000000..708a0a8f --- /dev/null +++ b/apps/admin/src/views/table/table-basic/index.tsx @@ -0,0 +1,172 @@ +import type { ColumnsType } from 'antd/es/table' +import { FC, useState, useEffect } from 'react' +import { Card, Button, Table, Tag, Select, Switch, Popover, Space, Modal, TableProps } from 'antd' +import { ExclamationCircleOutlined } from '@ant-design/icons' +import { TABLE_COMPO } from '@/settings/websiteSetting' +import { getTableList } from '@/api' +import { PageWrapper } from '@/components/Page' +import { APIResult, PageState, TableDataType } from './types' + +const marriedOptions = [ + { label: '单身', value: 0 }, + { label: '未婚', value: 1 }, + { label: '已婚', value: 2 }, + { label: '离异', value: 3 } +] + +const TableBasic: FC = () => { + + const [tableLoading, setTableLoading] = useState(false) + const [tableData, setTableData] = useState([]) + const [tableTotal, setTableTotal] = useState(0) + const [tableQuery, setTableQuery] = useState({ current: 1, pageSize: 10 }) + + const columns: ColumnsType = [ + { + title: '编号', + dataIndex: 'id', + align: 'center', + sorter: true + }, + { + title: '姓名', + dataIndex: 'name', + align: 'center', + render: (_, record: any) => { + const content = ( +
+

姓名: {record.name}

+

手机: {record.phone}

+

爱好: {record.hobby.join('、')}

+
+ ) + return ( + + {record.name} + + ) + } + }, + { + title: '性别', + dataIndex: 'sex', + align: 'center' + }, + { + title: '手机', + dataIndex: 'phone', + align: 'center' + }, + { + title: '学历', + dataIndex: 'education', + align: 'center' + }, + { + title: '婚姻状况', + dataIndex: 'married', + align: 'center', + render: (text, record: any) => ( +
`Total ${tableTotal} items`, + showSizeChanger: true, + showQuickJumper: true, + onChange: handlePageChange + }} + /> + + + ) +} + +export default TableBasic \ No newline at end of file diff --git a/apps/admin/src/views/table/table-basic/types.ts b/apps/admin/src/views/table/table-basic/types.ts new file mode 100644 index 00000000..6b82581a --- /dev/null +++ b/apps/admin/src/views/table/table-basic/types.ts @@ -0,0 +1,20 @@ +export interface APIResult { + list: any[], + total: number +} + +export interface PageState { + current: number + pageSize: number +} + +export interface TableDataType { + id: number + name: string + sex: string + phone: number + education: string + married: number + forbid: boolean + hobby: string[] +} \ No newline at end of file diff --git a/apps/admin/src/views/table/table-edit-row/data.ts b/apps/admin/src/views/table/table-edit-row/data.ts new file mode 100644 index 00000000..d76a136c --- /dev/null +++ b/apps/admin/src/views/table/table-edit-row/data.ts @@ -0,0 +1,75 @@ +export interface DataItem { + key: string + name: string + sex: string + birth: string + education: string + hobby: string + forbid: boolean +} + +export const tableData: DataItem[] = [ + { + key: '1001', + name: '张三', + sex: '男', + birth: '2002-05-06', + education: '高中', + hobby: '羽毛球、篮球、听歌、阅读', + forbid: false + }, + { + key: '1002', + name: '李四', + sex: '男', + birth: '1998-09-21', + education: '初中', + hobby: '乒乓球、排球、游泳', + forbid: true + }, + { + key: '1003', + name: '王五', + sex: '男', + birth: '1993-06-06', + education: '本科', + hobby: '旱冰、滑雪、跳高、打游戏', + forbid: false + }, + { + key: '1004', + name: '辛八', + sex: '男', + birth: '1995-08-03', + education: '大专', + hobby: '网球、篮球、跳伞', + forbid: true + }, + { + key: '1005', + name: '刘二', + sex: '女', + birth: '1999-11-05', + education: '本科', + hobby: '滑翔、游泳、篮球、看电影', + forbid: true + }, + { + key: '1006', + name: '赵七', + sex: '男', + birth: '2000-07-18', + education: '大专', + hobby: '游泳、篮球、潜水', + forbid: false + }, + { + key: '1007', + name: '杨一', + sex: '女', + birth: '1998-12-25', + education: '高中', + hobby: '冲浪、上网、看书、打游戏', + forbid: false + } +] diff --git a/apps/admin/src/views/table/table-edit-row/index.tsx b/apps/admin/src/views/table/table-edit-row/index.tsx new file mode 100644 index 00000000..f66764dd --- /dev/null +++ b/apps/admin/src/views/table/table-edit-row/index.tsx @@ -0,0 +1,305 @@ +import React, { useState } from 'react' +import { Form, Button, Table, Select, Switch, InputNumber, Input, DatePicker, Radio, Checkbox, Card, Popconfirm, Space } from 'antd' +import { ColumnType } from 'antd/es/table' +import { PageWrapper } from '@/components/Page' +import dayjs from 'dayjs' +import { TABLE_EDIT_COMPO } from '@/settings/websiteSetting' +import { tableData, DataItem } from './data' + +type CellType = 'number' | 'text' | 'radio' | 'date' | 'select' | 'checkbox' | 'switch' + +interface EditableCellProps extends React.HTMLAttributes { + editing: boolean + dataIndex: string + title: any + cellType: CellType + record: DataItem + index: number + children: React.ReactNode +} + +type theadKey = Record +const theadMap: theadKey = { + key: { title: '数字输入框', type: 'number' }, + name: { title: '输入框', type: 'text' }, + sex: { title: '单选框', type: 'radio' }, + birth: { title: '日期选择框', type: 'date' }, + education: { title: '选择器', type: 'select' }, + hobby: { title: '多选框', type: 'checkbox' }, + forbid: { title: '开关', type: 'switch' }, + action: { title: '按钮', type: 'button' } +} + +const nodeType = (type: CellType, record: DataItem) => { + switch (type) { + case 'number': + return + case 'text': + return + case 'radio': + return ({value: item, label: item}))} /> + case 'date': + return
+ case 'select': + return
+ ) +} + +const TableEditRow: React.FC = () => { + + const [form] = Form.useForm() + const [data, setData] = useState(tableData) + const [editingKey, setEditingKey] = useState('') + + const isEditing = (record: DataItem) => record.key === editingKey + + const edit = (record: Partial) => { + form.setFieldsValue({ ...record }) + setEditingKey(record.key!) + } + + const cancel = () => { + setEditingKey('') + } + + const save = async (key: React.Key) => { + try { + const row = (await form.validateFields()) as DataItem + + const newData = [...data] + const index = newData.findIndex((item) => key === item.key) + + if (index > -1) { + const item = newData[index] + newData.splice(index, 1, { + ...item, + ...row + }) + setData(newData) + setEditingKey('') + } else { + newData.push(row) + setData(newData) + setEditingKey('') + } + } catch (errInfo) { + console.log('Validate Failed:', errInfo); + } + } + + // @ts-ignore + const columns: ColumnType[] = [ + { + title: () => { + return ( + <> + 编号 +

(数字输入框)

+ + ) + }, + dataIndex: 'key', + width: 70, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 姓名 +

(输入框)

+ + ) + }, + dataIndex: 'name', + width: 110, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 性别 +

(单选框)

+ + ) + }, + dataIndex: 'sex', + width: 120, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 生日 +

(日期选择器)

+ + ) + }, + dataIndex: 'birth', + width: 140, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 学历 +

(选择器)

+ + ) + }, + dataIndex: 'education', + width: 80, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 爱好 +

(多选框)

+ + ) + }, + dataIndex: 'hobby', + width: 250, + editable: true, + align: 'center' + }, + { + title: () => { + return ( + <> + 禁止编辑 +

(开关)

+ + ) + }, + dataIndex: 'forbid', + width: 70, + editable: true, + align: 'center', + render: (text: string, record: DataItem) => { + return ( + {record.forbid ? '是' : '否'} + ) + } + }, + { + title: () => { + return ( + <> + 操作 +

(按钮)

+ + ) + }, + dataIndex: 'action', + width: 70, + align: 'center', + render: (_: any, record: DataItem) => { + const editable = isEditing(record) + return editable ? ( + + + + + + + ) : ( + + ) + } + } + ] + + const mergedColumns = columns.map((col) => { + if (!col.editable) { + return col + } + return { + ...col, + onCell: (record: DataItem) => ({ + record, + cellType: theadMap[col.dataIndex].type, + dataIndex: col.dataIndex, + title: col.title, + editing: isEditing(record) + }) + } + }) + + return ( + + +
+
+ {editing ? ( + + {cellNode} + + ) : ( + children + )} +
+ + + + ) +} + +export default TableEditRow \ No newline at end of file diff --git a/apps/admin/src/views/tree/antd-tree/data.ts b/apps/admin/src/views/tree/antd-tree/data.ts new file mode 100644 index 00000000..a599f8b0 --- /dev/null +++ b/apps/admin/src/views/tree/antd-tree/data.ts @@ -0,0 +1,48 @@ +export const treeData = [{ + key: '1-0', + title: '一级 1', + children: [{ + key: '1-1', + title: '二级 1-1', + children: [{ + key: '1-1-1', + title: '三级 1-1-1' + }, { + key: '1-1-2', + title: '三级 1-1-2' + }] + }] +}, { + key: '2-0', + title: '一级 2', + children: [{ + key: '2-1', + title: '二级 2-1' + }, { + key:'2-2', + title: '二级 2-2', + disabled: true + }] +}, { + key: '3-0', + title: '一级 3', + children: [{ + key: '3-1', + title: '二级 3-1' + }, { + key: '3-2', + title: '二级 3-2', + children: [{ + key: '3-2-1', + title: '三级 3-2-1', + disableCheckbox: true + }, { + key: '3-2-2', + title: '三级 3-2-2' + }, { + key: '3-2-3', + title: '三级 3-2-3' + }] + }] +}] + diff --git a/apps/admin/src/views/tree/antd-tree/index.tsx b/apps/admin/src/views/tree/antd-tree/index.tsx new file mode 100644 index 00000000..928fcf55 --- /dev/null +++ b/apps/admin/src/views/tree/antd-tree/index.tsx @@ -0,0 +1,79 @@ +import { useState } from 'react' +import { Row, Col, Card, Tree } from 'antd' +import { TREE_COMPO } from '@/settings/websiteSetting' +import { PageWrapper } from '@/components/Page' +import { treeData } from './data' + +interface DataNode { + title: string; + key: string; + isLeaf?: boolean; + children?: DataNode[]; +} + +const initTreeData: DataNode[] = [ + { title: 'Expand to load', key: '0' }, + { title: 'Expand to load', key: '1' }, + { title: 'Tree Node', key: '2', isLeaf: true } +] + +const AntdTree = () => { + const [lazyTreeData, setLazyTreeData] = useState(initTreeData) + + function handleLoadData(treeNode: any) { + return new Promise(resolve => { + if (treeNode.dataRef.children) { + resolve() + return + } + setTimeout(() => { + treeNode.dataRef.children = [ + { title: 'Child Node', key: `${treeNode.eventKey}-0` }, + { title: 'Child Node', key: `${treeNode.eventKey}-1` } + ] + setLazyTreeData([...lazyTreeData]) + resolve() + }, 1000) + }) + } + + function handleDrop() {} + + return ( + + + + + + + + + + + + + + + + + + + + ) +} + +export default AntdTree \ No newline at end of file diff --git a/apps/admin/src/views/tree/org-tree/data.ts b/apps/admin/src/views/tree/org-tree/data.ts new file mode 100644 index 00000000..0f1dda3a --- /dev/null +++ b/apps/admin/src/views/tree/org-tree/data.ts @@ -0,0 +1,78 @@ +export const data = { + id: 1, + label: 'XXX科技有限公司', + children: [ + { + id: 2, + pid: 1, + label: '产品研发部', + children: [ + { + id: 5, + pid: 2, + label: '产品经理' + }, { + id: 6, + pid: 2, + label: 'UI设计' + }, { + id: 9, + pid: 2, + label: '研发-前端' + }, { + id: 10, + pid: 2, + label: '研发-后端' + }, { + id: 12, + pid: 2, + label: '测试' + } + ] + }, + { + id: 3, + pid: 1, + label: '销售部', + children: [ + { + id: 7, + pid: 3, + label: '销售一部', + children: [ + { + id: 14, + pid: 7, + label: '售前' + }, { + id: 15, + pid: 7, + label: '售后' + }, { + id: 16, + pid: 7, + label: '客服' + } + ] + }, { + id: 8, + pid: 3, + label: '销售二部' + }, { + id: 13, + pid: 3, + label: '销售三部' + } + ] + }, + { + id: 4, + pid: 1, + label: '财务部' + }, { + id: 11, + pid: 1, + label: 'HR人事' + } + ] +} diff --git a/apps/admin/src/views/tree/org-tree/index.tsx b/apps/admin/src/views/tree/org-tree/index.tsx new file mode 100644 index 00000000..4a11358a --- /dev/null +++ b/apps/admin/src/views/tree/org-tree/index.tsx @@ -0,0 +1,54 @@ +import { FC, useState } from 'react' +import { Card, Form, Radio, Switch } from 'antd' +import { PageWrapper } from '@/components/Page' +import { React_TREE_ORG_PLUGIN } from '@/settings/websiteSetting' +import OrgTree from 'react-org-tree' +import { data } from './data' + +const OrgTreePage: FC = () => { + const [form] = Form.useForm() + + const [config, setConfig] = useState({ + horizontal: false, + expandAll: true + }) + + const onValuesChange = (values: any) => { + console.log('values', values) + setConfig({...config, ...values}) + } + + return ( + + +
+ + + 水平 + 垂直 + + + + + + +
+ +
+
+
+ ) +} + +export default OrgTreePage \ No newline at end of file diff --git a/apps/admin/src/views/video/video-player.tsx b/apps/admin/src/views/video/video-player.tsx new file mode 100644 index 00000000..a3423632 --- /dev/null +++ b/apps/admin/src/views/video/video-player.tsx @@ -0,0 +1,47 @@ + +// @ts-nocheck +import { Row, Col, Card } from 'antd' +import { PageWrapper } from '@/components/Page' +import { VIDEO_RES_SRC, VIDEO_PLUGIN } from '@/settings/websiteSetting' +import { Player, ControlBar, BigPlayButton, CurrentTimeDisplay, TimeDivider, + PlaybackRateMenuButton, VolumeMenuButton } from 'video-react' +import 'video-react/dist/video-react.css' + +const VideoPlayers = () => { + + return ( + + +
+ + + + + + + + + + + + + + + + + + + ) +} + +export default VideoPlayers \ No newline at end of file diff --git a/apps/admin/tsconfig.json b/apps/admin/tsconfig.json new file mode 100644 index 00000000..4c56e434 --- /dev/null +++ b/apps/admin/tsconfig.json @@ -0,0 +1,45 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "baseUrl": ".", + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "paths": { + "@/*": ["src/*"], + "#/*": ["types/*"] + }, + "types": [ + "vite/client", + "vite-plugin-svg-icons/client" + ] + }, + "include": [ + "src/**/*.ts", + "src/**/*.d.ts", + "src/**/*.tsx", + "src/**/*.vue", + "typings/**/*.d.ts", + "typings/**/*.ts", + "build/**/*.ts", + "build/**/*.d.ts", + "mock/*.ts", + "vite.config.ts" + ], + "exclude": [ + "node_modules", + "dist", + "**/*.js" + ] +} diff --git a/apps/admin/typings/global.d.ts b/apps/admin/typings/global.d.ts new file mode 100644 index 00000000..44afcf90 --- /dev/null +++ b/apps/admin/typings/global.d.ts @@ -0,0 +1,3 @@ +declare type Nullable = T | null +declare type Recordable = Record +declare type ElRef = Nullable diff --git a/apps/admin/typings/index.d.ts b/apps/admin/typings/index.d.ts new file mode 100644 index 00000000..69f39d3b --- /dev/null +++ b/apps/admin/typings/index.d.ts @@ -0,0 +1,9 @@ +declare interface Fn { + (...arg: T[]): R +} + +declare type AnyFn = (...args: any[]) => any + +declare type TargetContext = '_self' | '_blank' + +declare module 'react-org-tree' \ No newline at end of file diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts new file mode 100644 index 00000000..b5f144b4 --- /dev/null +++ b/apps/admin/vite.config.ts @@ -0,0 +1,60 @@ +import type { ConfigEnv, UserConfig } from 'vite' +import { loadEnv } from 'vite' +import react from '@vitejs/plugin-react' +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' +import { viteMockServe } from 'vite-plugin-mock' +import { wrapperEnv } from './build/utils' +// 需要安装 @typings/node 插件 +import { resolve } from 'path' + +/** @type {import('vite').UserConfig} */ +export default ({ command, mode }: ConfigEnv): UserConfig => { + const root = process.cwd() + const isBuild = command === 'build' + + const env = loadEnv(mode, root) + + // this function can be converted to different typings + const viteEnv: any = wrapperEnv(env) + const { VITE_PORT, VITE_DROP_CONSOLE } = viteEnv + + return { + base: isBuild ? '/react-admin-design/' : './', + server: { + // Listening on all local ips + host: true, + port: VITE_PORT + }, + plugins: [ + react(), + createSvgIconsPlugin({ + iconDirs: [resolve(process.cwd(), 'src/assets/icons')], + symbolId: 'icon-[dir]-[name]' + }), + viteMockServe({ + mockPath: 'mock', + ignore: /^_/ + }) + ], + + build: { + target: 'es2015', + cssTarget: 'chrome86', + minify: 'terser', + terserOptions: { + compress: { + keep_infinity: true, + // used to delete console and debugger in production environment + drop_console: VITE_DROP_CONSOLE + } + }, + chunkSizeWarningLimit: 2000 + }, + + resolve: { + alias: { + '@': resolve(__dirname, './src') + } + } + } +} From a1edc303597cf993d105908d5b693501dd452a7d Mon Sep 17 00:00:00 2001 From: G Date: Sat, 16 Dec 2023 10:34:06 +0800 Subject: [PATCH 003/134] =?UTF-8?q?refactor:=20:recycle:=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 4 + apps/admin/.eslintcache | 1 + apps/admin/.eslintrc.js | 9 + apps/admin/build/.env.development | 0 apps/admin/build/.env.production | 0 apps/admin/build/README.en-US.md | 90 - apps/admin/build/README.md | 91 - apps/admin/build/build/utils.ts | 39 - apps/admin/build/eslint.config.js | 128 - apps/admin/build/index.html | 13 - apps/admin/build/mock/_utils.ts | 59 - apps/admin/build/mock/data/table.ts | 61 - apps/admin/build/mock/data/user.ts | 68 - apps/admin/build/package.json | 101 - apps/admin/build/pnpm-lock.yaml | 25067 ---------------- apps/admin/build/postcss.config.js | 6 - apps/admin/build/prettier.config.js | 27 - apps/admin/build/public/favicon.ico | Bin 1446 -> 0 bytes apps/admin/build/src/App.tsx | 11 - apps/admin/build/src/api/index.ts | 40 - apps/admin/build/src/assets/icons/bug.svg | 2 - .../build/src/assets/icons/collapsed.svg | 1 - apps/admin/build/src/assets/icons/compo.svg | 2 - .../admin/build/src/assets/icons/document.svg | 1 - apps/admin/build/src/assets/icons/editor.svg | 2 - apps/admin/build/src/assets/icons/excel.svg | 2 - apps/admin/build/src/assets/icons/flow.svg | 2 - apps/admin/build/src/assets/icons/form.svg | 2 - apps/admin/build/src/assets/icons/github.svg | 1 - apps/admin/build/src/assets/icons/heart.svg | 1 - apps/admin/build/src/assets/icons/hints.svg | 1 - apps/admin/build/src/assets/icons/home.svg | 2 - apps/admin/build/src/assets/icons/image.svg | 2 - apps/admin/build/src/assets/icons/like.svg | 1 - apps/admin/build/src/assets/icons/linking.svg | 1 - apps/admin/build/src/assets/icons/locale.svg | 1 - .../admin/build/src/assets/icons/location.svg | 1 - apps/admin/build/src/assets/icons/message.svg | 1 - apps/admin/build/src/assets/icons/moon.svg | 16 - apps/admin/build/src/assets/icons/person.svg | 1 - .../build/src/assets/icons/pushpin-fill.svg | 2 - .../build/src/assets/icons/pushpin-line.svg | 2 - .../build/src/assets/icons/screen-full.svg | 1 - .../build/src/assets/icons/screen-normal.svg | 1 - apps/admin/build/src/assets/icons/search.svg | 1 - apps/admin/build/src/assets/icons/sun.svg | 42 - apps/admin/build/src/assets/icons/table.svg | 2 - apps/admin/build/src/assets/icons/tree.svg | 2 - apps/admin/build/src/assets/icons/unfold.svg | 1 - apps/admin/build/src/assets/icons/video.svg | 2 - .../admin/build/src/assets/images/avatar.jpeg | Bin 35510 -> 0 bytes apps/admin/build/src/assets/images/avatar.png | Bin 265579 -> 0 bytes .../src/assets/images/login-background.jpg | Bin 89379 -> 0 bytes apps/admin/build/src/assets/images/logo.png | Bin 11266 -> 0 bytes .../build/src/assets/images/logo_name.png | Bin 5866 -> 0 bytes apps/admin/build/src/assets/images/name.png | Bin 5202 -> 0 bytes .../build/src/assets/images/name_white.png | Bin 5080 -> 0 bytes apps/admin/build/src/assets/react.svg | 1 - .../build/src/components/AppLogo/index.ts | 3 - .../src/components/AppLogo/src/AppLogo.tsx | 26 - .../AppLogo/src/app-logo.module.less | 24 - .../build/src/components/LazyLoad/index.ts | 3 - .../src/components/LazyLoad/src/LazyLoad.tsx | 29 - apps/admin/build/src/components/Page/index.ts | 3 - .../src/components/Page/src/PageWrapper.tsx | 43 - .../src/components/Page/src/compo.module.less | 26 - .../src/components/SvgIcon/index.module.less | 6 - .../build/src/components/SvgIcon/index.tsx | 22 - .../build/src/components/SvgIcon/types.ts | 6 - .../build/src/components/Upload/index.ts | 3 - .../src/components/Upload/src/UploadImage.tsx | 60 - apps/admin/build/src/design/antd.less | 35 - apps/admin/build/src/design/index.less | 102 - apps/admin/build/src/design/public.less | 23 - apps/admin/build/src/design/scroll-bar.less | 29 - .../build/src/design/variable/color.less | 5 - .../build/src/design/variable/index.less | 5 - apps/admin/build/src/enums/appEnum.ts | 32 - apps/admin/build/src/enums/cacheEnum.ts | 18 - apps/admin/build/src/enums/exceptionEnum.ts | 10 - apps/admin/build/src/enums/menuEnum.ts | 26 - apps/admin/build/src/enums/tagsEnum.ts | 8 - apps/admin/build/src/hooks/web/useECharts.ts | 75 - apps/admin/build/src/hooks/web/useMessage.tsx | 54 - apps/admin/build/src/hooks/web/useTitle.ts | 18 - .../src/layout/feature/components/DocLink.tsx | 16 - .../layout/feature/components/FullScreen.tsx | 15 - .../layout/feature/components/GithubLink.tsx | 27 - .../feature/components/UserDropdown.tsx | 98 - .../src/layout/feature/components/index.ts | 6 - .../src/layout/feature/index.module.less | 19 - apps/admin/build/src/layout/feature/index.tsx | 21 - .../layout/header/components/Breadcrumb.tsx | 33 - .../components/FoldTrigger/index.module.less | 14 - .../header/components/FoldTrigger/index.tsx | 23 - .../src/layout/header/components/index.ts | 4 - apps/admin/build/src/layout/header/index.tsx | 30 - apps/admin/build/src/layout/index.less | 14 - apps/admin/build/src/layout/index.tsx | 33 - apps/admin/build/src/layout/menu/index.tsx | 113 - .../tags/components/TagItem/index.module.less | 47 - .../layout/tags/components/TagItem/index.tsx | 28 - .../build/src/layout/tags/components/index.ts | 3 - .../build/src/layout/tags/index.module.less | 30 - apps/admin/build/src/layout/tags/index.tsx | 210 - apps/admin/build/src/main.tsx | 20 - .../build/src/router/guard/guardRoute.tsx | 24 - apps/admin/build/src/router/guard/index.tsx | 10 - apps/admin/build/src/router/helpers/index.ts | 63 - apps/admin/build/src/router/index.tsx | 59 - apps/admin/build/src/router/menus/index.ts | 13 - apps/admin/build/src/router/routes/compo.tsx | 66 - apps/admin/build/src/router/routes/excel.tsx | 35 - .../build/src/router/routes/exception.tsx | 47 - apps/admin/build/src/router/routes/form.tsx | 43 - .../build/src/router/routes/graph-editor.tsx | 35 - apps/admin/build/src/router/routes/home.tsx | 31 - apps/admin/build/src/router/routes/images.tsx | 43 - apps/admin/build/src/router/routes/table.tsx | 35 - .../build/src/router/routes/text-editor.tsx | 43 - apps/admin/build/src/router/routes/tree.tsx | 35 - apps/admin/build/src/router/routes/video.tsx | 35 - apps/admin/build/src/router/types.ts | 37 - .../build/src/settings/appBaseSetting.ts | 78 - .../admin/build/src/settings/designSetting.ts | 40 - .../build/src/settings/encryptionSetting.ts | 13 - .../build/src/settings/websiteSetting.ts | 151 - apps/admin/build/src/stores/index.ts | 37 - apps/admin/build/src/stores/modules/app.ts | 38 - apps/admin/build/src/stores/modules/menu.ts | 24 - apps/admin/build/src/stores/modules/tags.ts | 76 - apps/admin/build/src/stores/modules/user.ts | 40 - apps/admin/build/src/stores/types.ts | 47 - apps/admin/build/src/types/config.ts | 84 - apps/admin/build/src/types/index.ts | 18 - apps/admin/build/src/utils/auth.ts | 25 - apps/admin/build/src/utils/axios.ts | 45 - apps/admin/build/src/utils/cache/index.ts | 30 - apps/admin/build/src/utils/cache/memory.ts | 88 - .../admin/build/src/utils/cache/persistent.ts | 113 - .../build/src/utils/cache/storageCache.ts | 110 - apps/admin/build/src/utils/cipher.ts | 41 - apps/admin/build/src/utils/download.ts | 111 - apps/admin/build/src/utils/echarts.ts | 54 - apps/admin/build/src/utils/env.ts | 15 - .../build/src/utils/helper/menuHelper.ts | 16 - .../build/src/utils/helper/treeHelper.ts | 182 - apps/admin/build/src/utils/image.ts | 44 - apps/admin/build/src/utils/index.ts | 44 - apps/admin/build/src/utils/is.ts | 49 - apps/admin/build/src/views/blank.tsx | 11 - apps/admin/build/src/views/compo/count-up.tsx | 136 - .../build/src/views/compo/drag/drag-list.tsx | 110 - .../src/views/compo/drag/drag-resize.tsx | 69 - .../build/src/views/compo/image-upload.tsx | 129 - .../build/src/views/compo/transfer/data.ts | 56 - .../build/src/views/compo/transfer/index.tsx | 145 - .../code-mirror/components/CodeInfo.tsx | 31 - .../editor/code-mirror/components/Toolbar.tsx | 64 - .../src/views/editor/code-mirror/index.tsx | 68 - .../src/views/editor/code-mirror/types.ts | 13 - .../admin/build/src/views/editor/markdown.tsx | 26 - .../editor/rich-text/components/Editor.tsx | 91 - .../editor/rich-text/components/Toolbar.tsx | 31 - .../src/views/editor/rich-text/index.tsx | 49 - .../src/views/excel/export-excel/data.ts | 91 - .../src/views/excel/export-excel/index.tsx | 125 - .../build/src/views/excel/import-excel.tsx | 76 - apps/admin/build/src/views/excel/types.ts | 12 - apps/admin/build/src/views/excel/useExcel.ts | 119 - .../admin/build/src/views/exception/index.tsx | 48 - .../build/src/views/form/basic-form/data.ts | 248 - .../build/src/views/form/basic-form/index.tsx | 264 - .../build/src/views/form/form-designer.tsx | 15 - .../src/views/form/gbeata-form/index.tsx | 27 - .../src/views/home/components/ChartsCard.tsx | 32 - .../src/views/home/components/CountUpCard.tsx | 55 - apps/admin/build/src/views/home/data.ts | 278 - apps/admin/build/src/views/home/index.tsx | 56 - .../build/src/views/image/image-cropper.tsx | 74 - apps/admin/build/src/views/login/index.less | 42 - apps/admin/build/src/views/login/index.tsx | 144 - .../src/views/table/table-basic/index.tsx | 172 - .../src/views/table/table-basic/types.ts | 20 - .../src/views/table/table-edit-row/data.ts | 75 - .../src/views/table/table-edit-row/index.tsx | 305 - .../build/src/views/tree/antd-tree/data.ts | 48 - .../build/src/views/tree/antd-tree/index.tsx | 79 - .../build/src/views/tree/org-tree/data.ts | 78 - .../build/src/views/tree/org-tree/index.tsx | 54 - .../build/src/views/video/video-player.tsx | 47 - apps/admin/build/tsconfig.json | 45 - apps/admin/build/typings/global.d.ts | 3 - apps/admin/build/typings/index.d.ts | 9 - apps/admin/build/utils.ts | 24 +- apps/admin/build/vite.config.ts | 60 - apps/admin/eslint.config.js | 128 - apps/admin/mock/_utils.ts | 30 +- apps/admin/package.json | 21 +- apps/admin/src/App.tsx | 10 +- apps/admin/src/api/index.ts | 18 +- apps/admin/src/components/AppLogo/index.ts | 4 +- .../src/components/AppLogo/src/AppLogo.tsx | 14 +- apps/admin/src/components/LazyLoad/index.ts | 4 +- .../src/components/LazyLoad/src/LazyLoad.tsx | 14 +- apps/admin/src/components/Page/index.ts | 4 +- .../src/components/Page/src/PageWrapper.tsx | 20 +- apps/admin/src/components/SvgIcon/index.tsx | 16 +- apps/admin/src/components/SvgIcon/types.ts | 2 +- apps/admin/src/components/Upload/index.ts | 4 +- .../src/components/Upload/src/UploadImage.tsx | 54 +- apps/admin/src/enums/appEnum.ts | 12 +- apps/admin/src/enums/cacheEnum.ts | 16 +- apps/admin/src/enums/exceptionEnum.ts | 2 +- apps/admin/src/enums/menuEnum.ts | 6 +- apps/admin/src/enums/tagsEnum.ts | 2 +- apps/admin/src/hooks/web/useECharts.ts | 81 +- apps/admin/src/hooks/web/useMessage.tsx | 41 +- apps/admin/src/hooks/web/useTitle.ts | 24 +- .../src/layout/feature/components/DocLink.tsx | 9 +- .../layout/feature/components/FullScreen.tsx | 11 +- .../layout/feature/components/GithubLink.tsx | 16 +- .../feature/components/UserDropdown.tsx | 84 +- .../src/layout/feature/components/index.ts | 12 +- apps/admin/src/layout/feature/index.tsx | 15 +- .../layout/header/components/Breadcrumb.tsx | 34 +- .../header/components/FoldTrigger/index.tsx | 23 +- .../src/layout/header/components/index.ts | 6 +- apps/admin/src/layout/header/index.tsx | 19 +- apps/admin/src/layout/index.tsx | 32 +- apps/admin/src/layout/menu/index.tsx | 124 +- .../layout/tags/components/TagItem/index.tsx | 21 +- .../admin/src/layout/tags/components/index.ts | 4 +- apps/admin/src/layout/tags/index.tsx | 201 +- apps/admin/src/main.tsx | 22 +- apps/admin/src/router/guard/guardRoute.tsx | 31 +- apps/admin/src/router/guard/index.tsx | 11 +- apps/admin/src/router/helpers/index.ts | 50 +- apps/admin/src/router/index.tsx | 65 +- apps/admin/src/router/menus/index.ts | 15 +- apps/admin/src/router/routes/compo.tsx | 46 +- apps/admin/src/router/routes/excel.tsx | 28 +- apps/admin/src/router/routes/exception.tsx | 35 +- apps/admin/src/router/routes/form.tsx | 32 +- apps/admin/src/router/routes/graph-editor.tsx | 28 +- apps/admin/src/router/routes/home.tsx | 21 +- apps/admin/src/router/routes/images.tsx | 32 +- apps/admin/src/router/routes/table.tsx | 28 +- apps/admin/src/router/routes/text-editor.tsx | 32 +- apps/admin/src/router/routes/tree.tsx | 28 +- apps/admin/src/router/routes/video.tsx | 28 +- apps/admin/src/router/types.ts | 4 +- apps/admin/src/settings/appBaseSetting.ts | 19 +- apps/admin/src/settings/designSetting.ts | 70 +- apps/admin/src/settings/encryptionSetting.ts | 10 +- apps/admin/src/settings/websiteSetting.ts | 88 +- apps/admin/src/stores/index.ts | 49 +- apps/admin/src/stores/modules/app.ts | 45 +- apps/admin/src/stores/modules/menu.ts | 23 +- apps/admin/src/stores/modules/tags.ts | 83 +- apps/admin/src/stores/modules/user.ts | 47 +- apps/admin/src/stores/types.ts | 7 +- apps/admin/src/types/config.ts | 9 +- apps/admin/src/types/index.ts | 4 +- apps/admin/src/utils/auth.ts | 25 +- apps/admin/src/utils/axios.ts | 49 +- apps/admin/src/utils/cache/index.ts | 39 +- apps/admin/src/utils/cache/memory.ts | 71 +- apps/admin/src/utils/cache/persistent.ts | 100 +- apps/admin/src/utils/cache/storageCache.ts | 81 +- apps/admin/src/utils/cipher.ts | 64 +- apps/admin/src/utils/download.ts | 76 +- apps/admin/src/utils/echarts.ts | 38 +- apps/admin/src/utils/env.ts | 29 +- apps/admin/src/utils/helper/menuHelper.ts | 16 +- apps/admin/src/utils/helper/treeHelper.ts | 175 +- apps/admin/src/utils/image.ts | 46 +- apps/admin/src/utils/index.ts | 36 +- apps/admin/src/utils/is.ts | 29 +- apps/admin/src/views/blank.tsx | 10 +- apps/admin/src/views/compo/count-up.tsx | 74 +- apps/admin/src/views/compo/drag/drag-list.tsx | 78 +- .../src/views/compo/drag/drag-resize.tsx | 52 +- apps/admin/src/views/compo/image-upload.tsx | 91 +- apps/admin/src/views/compo/transfer/data.ts | 36 +- apps/admin/src/views/compo/transfer/index.tsx | 118 +- .../code-mirror/components/CodeInfo.tsx | 18 +- .../editor/code-mirror/components/Toolbar.tsx | 31 +- .../src/views/editor/code-mirror/index.tsx | 55 +- .../src/views/editor/code-mirror/types.ts | 2 +- apps/admin/src/views/editor/markdown.tsx | 22 +- .../editor/rich-text/components/Editor.tsx | 71 +- .../editor/rich-text/components/Toolbar.tsx | 22 +- .../src/views/editor/rich-text/index.tsx | 51 +- .../src/views/excel/export-excel/data.ts | 18 +- .../src/views/excel/export-excel/index.tsx | 86 +- apps/admin/src/views/excel/import-excel.tsx | 82 +- apps/admin/src/views/excel/types.ts | 6 +- apps/admin/src/views/excel/useExcel.ts | 106 +- apps/admin/src/views/exception/index.tsx | 35 +- apps/admin/src/views/form/basic-form/data.ts | 149 +- .../admin/src/views/form/basic-form/index.tsx | 142 +- apps/admin/src/views/form/form-designer.tsx | 17 +- .../src/views/form/gbeata-form/index.tsx | 22 +- .../src/views/home/components/ChartsCard.tsx | 21 +- .../src/views/home/components/CountUpCard.tsx | 30 +- apps/admin/src/views/home/data.ts | 154 +- apps/admin/src/views/home/index.tsx | 35 +- apps/admin/src/views/image/image-cropper.tsx | 54 +- apps/admin/src/views/login/index.tsx | 113 +- .../src/views/table/table-basic/index.tsx | 101 +- .../src/views/table/table-basic/types.ts | 2 +- .../src/views/table/table-edit-row/data.ts | 18 +- .../src/views/table/table-edit-row/index.tsx | 190 +- apps/admin/src/views/tree/antd-tree/data.ts | 31 +- apps/admin/src/views/tree/antd-tree/index.tsx | 51 +- apps/admin/src/views/tree/org-tree/data.ts | 42 +- apps/admin/src/views/tree/org-tree/index.tsx | 41 +- apps/admin/src/views/video/video-player.tsx | 29 +- package.json | 5 +- packages/config-eslint/index.js | 44 + packages/config-eslint/index.ts | 20 - packages/config-eslint/package.json | 11 +- packages/gbeata/package.json | 3 - pnpm-lock.yaml | 4841 ++- 325 files changed, 7294 insertions(+), 36372 deletions(-) create mode 100644 apps/admin/.eslintcache create mode 100644 apps/admin/.eslintrc.js delete mode 100644 apps/admin/build/.env.development delete mode 100644 apps/admin/build/.env.production delete mode 100644 apps/admin/build/README.en-US.md delete mode 100644 apps/admin/build/README.md delete mode 100644 apps/admin/build/build/utils.ts delete mode 100644 apps/admin/build/eslint.config.js delete mode 100644 apps/admin/build/index.html delete mode 100644 apps/admin/build/mock/_utils.ts delete mode 100644 apps/admin/build/mock/data/table.ts delete mode 100644 apps/admin/build/mock/data/user.ts delete mode 100644 apps/admin/build/package.json delete mode 100644 apps/admin/build/pnpm-lock.yaml delete mode 100644 apps/admin/build/postcss.config.js delete mode 100644 apps/admin/build/prettier.config.js delete mode 100644 apps/admin/build/public/favicon.ico delete mode 100644 apps/admin/build/src/App.tsx delete mode 100644 apps/admin/build/src/api/index.ts delete mode 100644 apps/admin/build/src/assets/icons/bug.svg delete mode 100644 apps/admin/build/src/assets/icons/collapsed.svg delete mode 100644 apps/admin/build/src/assets/icons/compo.svg delete mode 100644 apps/admin/build/src/assets/icons/document.svg delete mode 100644 apps/admin/build/src/assets/icons/editor.svg delete mode 100644 apps/admin/build/src/assets/icons/excel.svg delete mode 100644 apps/admin/build/src/assets/icons/flow.svg delete mode 100644 apps/admin/build/src/assets/icons/form.svg delete mode 100644 apps/admin/build/src/assets/icons/github.svg delete mode 100644 apps/admin/build/src/assets/icons/heart.svg delete mode 100644 apps/admin/build/src/assets/icons/hints.svg delete mode 100644 apps/admin/build/src/assets/icons/home.svg delete mode 100644 apps/admin/build/src/assets/icons/image.svg delete mode 100644 apps/admin/build/src/assets/icons/like.svg delete mode 100644 apps/admin/build/src/assets/icons/linking.svg delete mode 100644 apps/admin/build/src/assets/icons/locale.svg delete mode 100644 apps/admin/build/src/assets/icons/location.svg delete mode 100644 apps/admin/build/src/assets/icons/message.svg delete mode 100644 apps/admin/build/src/assets/icons/moon.svg delete mode 100644 apps/admin/build/src/assets/icons/person.svg delete mode 100644 apps/admin/build/src/assets/icons/pushpin-fill.svg delete mode 100644 apps/admin/build/src/assets/icons/pushpin-line.svg delete mode 100644 apps/admin/build/src/assets/icons/screen-full.svg delete mode 100644 apps/admin/build/src/assets/icons/screen-normal.svg delete mode 100644 apps/admin/build/src/assets/icons/search.svg delete mode 100644 apps/admin/build/src/assets/icons/sun.svg delete mode 100644 apps/admin/build/src/assets/icons/table.svg delete mode 100644 apps/admin/build/src/assets/icons/tree.svg delete mode 100644 apps/admin/build/src/assets/icons/unfold.svg delete mode 100644 apps/admin/build/src/assets/icons/video.svg delete mode 100644 apps/admin/build/src/assets/images/avatar.jpeg delete mode 100644 apps/admin/build/src/assets/images/avatar.png delete mode 100644 apps/admin/build/src/assets/images/login-background.jpg delete mode 100644 apps/admin/build/src/assets/images/logo.png delete mode 100644 apps/admin/build/src/assets/images/logo_name.png delete mode 100644 apps/admin/build/src/assets/images/name.png delete mode 100644 apps/admin/build/src/assets/images/name_white.png delete mode 100644 apps/admin/build/src/assets/react.svg delete mode 100644 apps/admin/build/src/components/AppLogo/index.ts delete mode 100644 apps/admin/build/src/components/AppLogo/src/AppLogo.tsx delete mode 100644 apps/admin/build/src/components/AppLogo/src/app-logo.module.less delete mode 100644 apps/admin/build/src/components/LazyLoad/index.ts delete mode 100644 apps/admin/build/src/components/LazyLoad/src/LazyLoad.tsx delete mode 100644 apps/admin/build/src/components/Page/index.ts delete mode 100644 apps/admin/build/src/components/Page/src/PageWrapper.tsx delete mode 100644 apps/admin/build/src/components/Page/src/compo.module.less delete mode 100644 apps/admin/build/src/components/SvgIcon/index.module.less delete mode 100644 apps/admin/build/src/components/SvgIcon/index.tsx delete mode 100644 apps/admin/build/src/components/SvgIcon/types.ts delete mode 100644 apps/admin/build/src/components/Upload/index.ts delete mode 100644 apps/admin/build/src/components/Upload/src/UploadImage.tsx delete mode 100644 apps/admin/build/src/design/antd.less delete mode 100644 apps/admin/build/src/design/index.less delete mode 100644 apps/admin/build/src/design/public.less delete mode 100644 apps/admin/build/src/design/scroll-bar.less delete mode 100644 apps/admin/build/src/design/variable/color.less delete mode 100644 apps/admin/build/src/design/variable/index.less delete mode 100644 apps/admin/build/src/enums/appEnum.ts delete mode 100644 apps/admin/build/src/enums/cacheEnum.ts delete mode 100644 apps/admin/build/src/enums/exceptionEnum.ts delete mode 100644 apps/admin/build/src/enums/menuEnum.ts delete mode 100644 apps/admin/build/src/enums/tagsEnum.ts delete mode 100644 apps/admin/build/src/hooks/web/useECharts.ts delete mode 100644 apps/admin/build/src/hooks/web/useMessage.tsx delete mode 100644 apps/admin/build/src/hooks/web/useTitle.ts delete mode 100644 apps/admin/build/src/layout/feature/components/DocLink.tsx delete mode 100644 apps/admin/build/src/layout/feature/components/FullScreen.tsx delete mode 100644 apps/admin/build/src/layout/feature/components/GithubLink.tsx delete mode 100644 apps/admin/build/src/layout/feature/components/UserDropdown.tsx delete mode 100644 apps/admin/build/src/layout/feature/components/index.ts delete mode 100644 apps/admin/build/src/layout/feature/index.module.less delete mode 100644 apps/admin/build/src/layout/feature/index.tsx delete mode 100644 apps/admin/build/src/layout/header/components/Breadcrumb.tsx delete mode 100644 apps/admin/build/src/layout/header/components/FoldTrigger/index.module.less delete mode 100644 apps/admin/build/src/layout/header/components/FoldTrigger/index.tsx delete mode 100644 apps/admin/build/src/layout/header/components/index.ts delete mode 100644 apps/admin/build/src/layout/header/index.tsx delete mode 100644 apps/admin/build/src/layout/index.less delete mode 100644 apps/admin/build/src/layout/index.tsx delete mode 100644 apps/admin/build/src/layout/menu/index.tsx delete mode 100644 apps/admin/build/src/layout/tags/components/TagItem/index.module.less delete mode 100644 apps/admin/build/src/layout/tags/components/TagItem/index.tsx delete mode 100644 apps/admin/build/src/layout/tags/components/index.ts delete mode 100644 apps/admin/build/src/layout/tags/index.module.less delete mode 100644 apps/admin/build/src/layout/tags/index.tsx delete mode 100644 apps/admin/build/src/main.tsx delete mode 100644 apps/admin/build/src/router/guard/guardRoute.tsx delete mode 100644 apps/admin/build/src/router/guard/index.tsx delete mode 100644 apps/admin/build/src/router/helpers/index.ts delete mode 100644 apps/admin/build/src/router/index.tsx delete mode 100644 apps/admin/build/src/router/menus/index.ts delete mode 100644 apps/admin/build/src/router/routes/compo.tsx delete mode 100644 apps/admin/build/src/router/routes/excel.tsx delete mode 100644 apps/admin/build/src/router/routes/exception.tsx delete mode 100644 apps/admin/build/src/router/routes/form.tsx delete mode 100644 apps/admin/build/src/router/routes/graph-editor.tsx delete mode 100644 apps/admin/build/src/router/routes/home.tsx delete mode 100644 apps/admin/build/src/router/routes/images.tsx delete mode 100644 apps/admin/build/src/router/routes/table.tsx delete mode 100644 apps/admin/build/src/router/routes/text-editor.tsx delete mode 100644 apps/admin/build/src/router/routes/tree.tsx delete mode 100644 apps/admin/build/src/router/routes/video.tsx delete mode 100644 apps/admin/build/src/router/types.ts delete mode 100644 apps/admin/build/src/settings/appBaseSetting.ts delete mode 100644 apps/admin/build/src/settings/designSetting.ts delete mode 100644 apps/admin/build/src/settings/encryptionSetting.ts delete mode 100644 apps/admin/build/src/settings/websiteSetting.ts delete mode 100644 apps/admin/build/src/stores/index.ts delete mode 100644 apps/admin/build/src/stores/modules/app.ts delete mode 100644 apps/admin/build/src/stores/modules/menu.ts delete mode 100644 apps/admin/build/src/stores/modules/tags.ts delete mode 100644 apps/admin/build/src/stores/modules/user.ts delete mode 100644 apps/admin/build/src/stores/types.ts delete mode 100644 apps/admin/build/src/types/config.ts delete mode 100644 apps/admin/build/src/types/index.ts delete mode 100644 apps/admin/build/src/utils/auth.ts delete mode 100644 apps/admin/build/src/utils/axios.ts delete mode 100644 apps/admin/build/src/utils/cache/index.ts delete mode 100644 apps/admin/build/src/utils/cache/memory.ts delete mode 100644 apps/admin/build/src/utils/cache/persistent.ts delete mode 100644 apps/admin/build/src/utils/cache/storageCache.ts delete mode 100644 apps/admin/build/src/utils/cipher.ts delete mode 100644 apps/admin/build/src/utils/download.ts delete mode 100644 apps/admin/build/src/utils/echarts.ts delete mode 100644 apps/admin/build/src/utils/env.ts delete mode 100644 apps/admin/build/src/utils/helper/menuHelper.ts delete mode 100644 apps/admin/build/src/utils/helper/treeHelper.ts delete mode 100644 apps/admin/build/src/utils/image.ts delete mode 100644 apps/admin/build/src/utils/index.ts delete mode 100644 apps/admin/build/src/utils/is.ts delete mode 100644 apps/admin/build/src/views/blank.tsx delete mode 100644 apps/admin/build/src/views/compo/count-up.tsx delete mode 100644 apps/admin/build/src/views/compo/drag/drag-list.tsx delete mode 100644 apps/admin/build/src/views/compo/drag/drag-resize.tsx delete mode 100644 apps/admin/build/src/views/compo/image-upload.tsx delete mode 100644 apps/admin/build/src/views/compo/transfer/data.ts delete mode 100644 apps/admin/build/src/views/compo/transfer/index.tsx delete mode 100644 apps/admin/build/src/views/editor/code-mirror/components/CodeInfo.tsx delete mode 100644 apps/admin/build/src/views/editor/code-mirror/components/Toolbar.tsx delete mode 100644 apps/admin/build/src/views/editor/code-mirror/index.tsx delete mode 100644 apps/admin/build/src/views/editor/code-mirror/types.ts delete mode 100644 apps/admin/build/src/views/editor/markdown.tsx delete mode 100644 apps/admin/build/src/views/editor/rich-text/components/Editor.tsx delete mode 100644 apps/admin/build/src/views/editor/rich-text/components/Toolbar.tsx delete mode 100644 apps/admin/build/src/views/editor/rich-text/index.tsx delete mode 100644 apps/admin/build/src/views/excel/export-excel/data.ts delete mode 100644 apps/admin/build/src/views/excel/export-excel/index.tsx delete mode 100644 apps/admin/build/src/views/excel/import-excel.tsx delete mode 100644 apps/admin/build/src/views/excel/types.ts delete mode 100644 apps/admin/build/src/views/excel/useExcel.ts delete mode 100644 apps/admin/build/src/views/exception/index.tsx delete mode 100644 apps/admin/build/src/views/form/basic-form/data.ts delete mode 100644 apps/admin/build/src/views/form/basic-form/index.tsx delete mode 100644 apps/admin/build/src/views/form/form-designer.tsx delete mode 100644 apps/admin/build/src/views/form/gbeata-form/index.tsx delete mode 100644 apps/admin/build/src/views/home/components/ChartsCard.tsx delete mode 100644 apps/admin/build/src/views/home/components/CountUpCard.tsx delete mode 100644 apps/admin/build/src/views/home/data.ts delete mode 100644 apps/admin/build/src/views/home/index.tsx delete mode 100644 apps/admin/build/src/views/image/image-cropper.tsx delete mode 100644 apps/admin/build/src/views/login/index.less delete mode 100644 apps/admin/build/src/views/login/index.tsx delete mode 100644 apps/admin/build/src/views/table/table-basic/index.tsx delete mode 100644 apps/admin/build/src/views/table/table-basic/types.ts delete mode 100644 apps/admin/build/src/views/table/table-edit-row/data.ts delete mode 100644 apps/admin/build/src/views/table/table-edit-row/index.tsx delete mode 100644 apps/admin/build/src/views/tree/antd-tree/data.ts delete mode 100644 apps/admin/build/src/views/tree/antd-tree/index.tsx delete mode 100644 apps/admin/build/src/views/tree/org-tree/data.ts delete mode 100644 apps/admin/build/src/views/tree/org-tree/index.tsx delete mode 100644 apps/admin/build/src/views/video/video-player.tsx delete mode 100644 apps/admin/build/tsconfig.json delete mode 100644 apps/admin/build/typings/global.d.ts delete mode 100644 apps/admin/build/typings/index.d.ts delete mode 100644 apps/admin/build/vite.config.ts delete mode 100644 apps/admin/eslint.config.js create mode 100644 packages/config-eslint/index.js delete mode 100644 packages/config-eslint/index.ts diff --git a/Readme.md b/Readme.md index 7535a6c4..d2d15f0d 100644 --- a/Readme.md +++ b/Readme.md @@ -47,3 +47,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 ``` --> - [ ] 框架设计 + +## 注意点: + +1. 使用semantic-release做自动化发布时,不需要打包的子包,设置`"private": true` diff --git a/apps/admin/.eslintcache b/apps/admin/.eslintcache new file mode 100644 index 00000000..306f34d7 --- /dev/null +++ b/apps/admin/.eslintcache @@ -0,0 +1 @@ +[{"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/build/utils.ts":"1","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/_utils.ts":"2","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/table.ts":"3","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/user.ts":"4","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/App.tsx":"5","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/api/index.ts":"6","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/AppLogo/index.ts":"7","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/AppLogo/src/AppLogo.tsx":"8","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/LazyLoad/index.ts":"9","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx":"10","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Page/index.ts":"11","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Page/src/PageWrapper.tsx":"12","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/SvgIcon/index.tsx":"13","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/SvgIcon/types.ts":"14","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Upload/index.ts":"15","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Upload/src/UploadImage.tsx":"16","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/appEnum.ts":"17","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/cacheEnum.ts":"18","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/exceptionEnum.ts":"19","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/menuEnum.ts":"20","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/tagsEnum.ts":"21","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useECharts.ts":"22","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useMessage.tsx":"23","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useTitle.ts":"24","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/DocLink.tsx":"25","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/FullScreen.tsx":"26","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/GithubLink.tsx":"27","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/UserDropdown.tsx":"28","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/index.ts":"29","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/index.tsx":"30","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/Breadcrumb.tsx":"31","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/FoldTrigger/index.tsx":"32","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/index.ts":"33","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/index.tsx":"34","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/index.tsx":"35","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/menu/index.tsx":"36","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/components/TagItem/index.tsx":"37","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/components/index.ts":"38","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/index.tsx":"39","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/main.tsx":"40","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/guard/guardRoute.tsx":"41","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/guard/index.tsx":"42","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/helpers/index.ts":"43","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/index.tsx":"44","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/menus/index.ts":"45","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/compo.tsx":"46","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/excel.tsx":"47","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/exception.tsx":"48","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/form.tsx":"49","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/graph-editor.tsx":"50","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/home.tsx":"51","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/images.tsx":"52","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/table.tsx":"53","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/text-editor.tsx":"54","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/tree.tsx":"55","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/video.tsx":"56","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/types.ts":"57","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/appBaseSetting.ts":"58","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/designSetting.ts":"59","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/encryptionSetting.ts":"60","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/websiteSetting.ts":"61","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/index.ts":"62","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/app.ts":"63","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/menu.ts":"64","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/tags.ts":"65","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/user.ts":"66","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/types.ts":"67","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/types/config.ts":"68","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/types/index.ts":"69","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/auth.ts":"70","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/axios.ts":"71","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/index.ts":"72","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/memory.ts":"73","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/persistent.ts":"74","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/storageCache.ts":"75","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cipher.ts":"76","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/download.ts":"77","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/echarts.ts":"78","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/env.ts":"79","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/helper/menuHelper.ts":"80","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/helper/treeHelper.ts":"81","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/image.ts":"82","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/index.ts":"83","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/is.ts":"84","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/blank.tsx":"85","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/count-up.tsx":"86","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/drag/drag-list.tsx":"87","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/drag/drag-resize.tsx":"88","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/image-upload.tsx":"89","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/transfer/data.ts":"90","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/transfer/index.tsx":"91","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx":"92","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx":"93","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/index.tsx":"94","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/types.ts":"95","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/markdown.tsx":"96","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/components/Editor.tsx":"97","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx":"98","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/index.tsx":"99","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/export-excel/data.ts":"100","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/export-excel/index.tsx":"101","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/import-excel.tsx":"102","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/types.ts":"103","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/useExcel.ts":"104","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/exception/index.tsx":"105","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/basic-form/data.ts":"106","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/basic-form/index.tsx":"107","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/form-designer.tsx":"108","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/gbeata-form/index.tsx":"109","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/components/ChartsCard.tsx":"110","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/components/CountUpCard.tsx":"111","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/data.ts":"112","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/index.tsx":"113","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/image/image-cropper.tsx":"114","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/login/index.tsx":"115","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-basic/index.tsx":"116","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-basic/types.ts":"117","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-edit-row/data.ts":"118","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-edit-row/index.tsx":"119","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/antd-tree/data.ts":"120","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/antd-tree/index.tsx":"121","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/org-tree/data.ts":"122","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/org-tree/index.tsx":"123","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/video/video-player.tsx":"124"},{"size":998,"mtime":1702692806973},{"size":1268,"mtime":1702658308580},{"size":1756,"mtime":1702658308588,"results":"125","hashOfConfig":"126"},{"size":1994,"mtime":1702658308589,"results":"127","hashOfConfig":"126"},{"size":175,"mtime":1702658308649},{"size":652,"mtime":1702658308651},{"size":56,"mtime":1702658308718},{"size":777,"mtime":1702658308720},{"size":58,"mtime":1702658308725},{"size":608,"mtime":1702658308728},{"size":67,"mtime":1702658308731},{"size":1015,"mtime":1702658308732},{"size":445,"mtime":1702658308736},{"size":112,"mtime":1702658308737},{"size":67,"mtime":1702658308740},{"size":1559,"mtime":1702658308742},{"size":613,"mtime":1702658308754},{"size":385,"mtime":1702658308755},{"size":161,"mtime":1702658308756},{"size":378,"mtime":1702658308759},{"size":106,"mtime":1702658308760},{"size":1490,"mtime":1702658308768},{"size":1485,"mtime":1702658308769},{"size":565,"mtime":1702658308771},{"size":329,"mtime":1702658308773},{"size":559,"mtime":1702658308774},{"size":539,"mtime":1702658308775},{"size":2428,"mtime":1702658308776},{"size":207,"mtime":1702658308777},{"size":614,"mtime":1702658308781},{"size":1008,"mtime":1702658308785},{"size":719,"mtime":1702658308788},{"size":113,"mtime":1702658308789},{"size":680,"mtime":1702658308789},{"size":933,"mtime":1702658308791},{"size":3116,"mtime":1702692419876},{"size":688,"mtime":1702658308798},{"size":52,"mtime":1702658308799},{"size":6874,"mtime":1702658308802},{"size":568,"mtime":1702658308803},{"size":755,"mtime":1702658308806},{"size":191,"mtime":1702658308808},{"size":1704,"mtime":1702658308810},{"size":1498,"mtime":1702658308812},{"size":435,"mtime":1702658308814},{"size":1474,"mtime":1702658308817},{"size":764,"mtime":1702658308818},{"size":1216,"mtime":1702658308819},{"size":938,"mtime":1702658308820},{"size":763,"mtime":1702658308821},{"size":551,"mtime":1702658308821},{"size":959,"mtime":1702658308822},{"size":774,"mtime":1702658308823},{"size":983,"mtime":1702658308824},{"size":738,"mtime":1702658308824},{"size":758,"mtime":1702658308825},{"size":704,"mtime":1702658308826},{"size":2207,"mtime":1702658308827},{"size":668,"mtime":1702658308830},{"size":343,"mtime":1702658308832},{"size":5863,"mtime":1702658308832},{"size":1292,"mtime":1702658308834},{"size":1048,"mtime":1702658308835},{"size":504,"mtime":1702658308836},{"size":2602,"mtime":1702658308837},{"size":1093,"mtime":1702658308838},{"size":860,"mtime":1702658308839},{"size":2184,"mtime":1702658308839},{"size":318,"mtime":1702658308840},{"size":793,"mtime":1702658308841},{"size":1210,"mtime":1702658308842},{"size":983,"mtime":1702658308843},{"size":1861,"mtime":1702658308844},{"size":2948,"mtime":1702658308846},{"size":2801,"mtime":1702658308847},{"size":890,"mtime":1702658308848},{"size":2597,"mtime":1702658308850},{"size":927,"mtime":1702658308851},{"size":325,"mtime":1702658308853},{"size":366,"mtime":1702658308855},{"size":5074,"mtime":1702658308856},{"size":1107,"mtime":1702658308857},{"size":1214,"mtime":1702658308858},{"size":1305,"mtime":1702658308859},{"size":223,"mtime":1702658308864},{"size":4104,"mtime":1702658308867},{"size":3546,"mtime":1702658308870},{"size":1817,"mtime":1702658308872},{"size":4706,"mtime":1702658308873},{"size":1235,"mtime":1702658308876},{"size":5166,"mtime":1702658308878},{"size":719,"mtime":1702658308886},{"size":1699,"mtime":1702658308890},{"size":2051,"mtime":1702658308895},{"size":243,"mtime":1702658308897},{"size":633,"mtime":1702658308898},{"size":2893,"mtime":1702658308914},{"size":762,"mtime":1702658308920},{"size":1434,"mtime":1702658308923},{"size":1751,"mtime":1702658308928},{"size":3837,"mtime":1702658308932},{"size":2448,"mtime":1702658308937},{"size":266,"mtime":1702658308939},{"size":4505,"mtime":1702658308942},{"size":1146,"mtime":1702658308945},{"size":5212,"mtime":1702658308947},{"size":9071,"mtime":1702658308948},{"size":348,"mtime":1702658308949},{"size":472,"mtime":1702658308951},{"size":609,"mtime":1702658308953},{"size":1205,"mtime":1702658308954},{"size":5297,"mtime":1702658308955},{"size":1497,"mtime":1702658308956},{"size":2348,"mtime":1702658308957},{"size":4350,"mtime":1702658308960},{"size":4407,"mtime":1702658308963},{"size":298,"mtime":1702658308964},{"size":1415,"mtime":1702658308966},{"size":7282,"mtime":1702658308967},{"size":785,"mtime":1702658308969},{"size":2065,"mtime":1702658308970},{"size":1368,"mtime":1702658308972},{"size":1599,"mtime":1702658308973},{"size":1429,"mtime":1702658308974},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":1,"fatalErrorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"d40uvm",{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":1,"fatalErrorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/table.ts",["134"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/user.ts",["135"],[],{"ruleId":null,"fatal":true,"severity":2,"message":"136","nodeType":null},{"ruleId":null,"fatal":true,"severity":2,"message":"137","nodeType":null},"Parsing error: ESLint was configured to run on `/mock/data/table.ts` using `parserOptions.project`: /users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/tsconfig.json\nHowever, that TSConfig does not include this file. Either:\n- Change ESLint's list of included files to not include this file\n- Change that TSConfig to include this file\n- Create a new TSConfig that includes this file and include it in your parserOptions.project\nSee the typescript-eslint docs for more info: https://typescript-eslint.io/linting/troubleshooting#i-get-errors-telling-me-eslint-was-configured-to-run--however-that-tsconfig-does-not--none-of-those-tsconfigs-include-this-file","Parsing error: ESLint was configured to run on `/mock/data/user.ts` using `parserOptions.project`: /users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/tsconfig.json\nHowever, that TSConfig does not include this file. Either:\n- Change ESLint's list of included files to not include this file\n- Change that TSConfig to include this file\n- Create a new TSConfig that includes this file and include it in your parserOptions.project\nSee the typescript-eslint docs for more info: https://typescript-eslint.io/linting/troubleshooting#i-get-errors-telling-me-eslint-was-configured-to-run--however-that-tsconfig-does-not--none-of-those-tsconfigs-include-this-file"] \ No newline at end of file diff --git a/apps/admin/.eslintrc.js b/apps/admin/.eslintrc.js new file mode 100644 index 00000000..2dcbb68f --- /dev/null +++ b/apps/admin/.eslintrc.js @@ -0,0 +1,9 @@ +/** @type {import('eslint').Linter.Config} */ +module.exports = { + root: true, + extends: ['gbeata-eslint'], + parserOptions: { + tsconfigRootDir: __dirname, + project: ['./tsconfig.json'] + } +} diff --git a/apps/admin/build/.env.development b/apps/admin/build/.env.development deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/admin/build/.env.production b/apps/admin/build/.env.production deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/admin/build/README.en-US.md b/apps/admin/build/README.en-US.md deleted file mode 100644 index b151048e..00000000 --- a/apps/admin/build/README.en-US.md +++ /dev/null @@ -1,90 +0,0 @@ -

- -

-

- - react - - - react-router - - - redux-toolkit - - - vite - - - antd - - - typescript - - - less - -

- -**English** | [中文](./README.md) - -## Introduction - -#### React-admin-design is a back-end management system solution based on React18 + ant-design5, it uses the latest front-end technology stack, and provides a wealth of functional components modules, can help you quickly build enterprise-level back-end front-end architecture. - -## Feature - -- **The Technology Stack**:Use React18, Vite4, TSX and other front-end technology development -- **Theming**: Configurable themes -- **International**:Built-in complete internationalization program -- **Mock Server** Built-in mock data scheme - -## Preview - -> ##### Preview Site:[https://baimingxuan.github.io/react-admin-design/](https://baimingxuan.github.io/react-admin-design/) -> -> ##### Github Site:[https://github.com/baimingxuan/react-admin-design](https://github.com/baimingxuan/react-admin-design) -> - -![](https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/home-vue3.png) - -## Development - -```bash -// clone -git clone https://github.com/baimingxuan/react-admin-design.git - -// install -pnpm install - -// dev -pnpm run dev -``` - -## Build - -```bash -// build -pnpm run build -``` - -## Browser support - -The `Chrome 80+` browser is recommended for local development - -Support modern browsers, not IE - -| [ Edge](http://godban.github.io/browsers-support-badges/)
IE | [ Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | -| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | -| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | - -## Git Contribution submission specification - -- `feat` Add new features -- `fix` Fix the problem/BUG -- `style` The code style is related and does not affect the running result -- `perf` Optimization/performance improvement -- `refactor` Refactor -- `revert` Undo edit -- `test` Test related -- `docs` Documentation/notes -- `chore` Dependency update/scaffolding configuration modification etc. \ No newline at end of file diff --git a/apps/admin/build/README.md b/apps/admin/build/README.md deleted file mode 100644 index 209043ef..00000000 --- a/apps/admin/build/README.md +++ /dev/null @@ -1,91 +0,0 @@ -

- -

-

- - react - - - react-router - - - redux-toolkit - - - vite - - - antd - - - typescript - - - less - -

- -**中文** | [English](./README.en-US.md) - -## 简介 - -#### react-admin-design是一个基于react18 + ant-design5的后台管理系统的解决方案,它使用了最新的前端技术栈,并且提供了丰富的功能组件模块,可以帮助你快速搭建企业级中后台的前端架构。 - -## 特性 - -- **技术栈**:使用 React18、Vite4、TSX 等前端前沿技术开发 -- **主题**:可配置的主题色 -- **国际化**:内置完善的国际化方案 -- **Mock 数据** 内置 Mock 数据方案 - -## 预览 - -> ##### 演示地址:[https://baimingxuan.github.io/react-admin-design/](https://baimingxuan.github.io/react-admin-design/) -> -> ##### Github地址:[https://github.com/baimingxuan/react-admin-design](https://github.com/baimingxuan/react-admin-design) -> - -![](https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/home-vue3.png) - -## 开发 - -```bash -// 克隆项目 -git clone https://github.com/baimingxuan/react-admin-design.git - -// 安装依赖 -pnpm install - -// 开发 -pnpm run dev -``` - -## 构建 - -```bash -// 构建 -pnpm run build -``` - -## 浏览器支持 - -本地开发推荐使用`Chrome 80+` 浏览器 - -支持现代浏览器, 不支持 IE - -| [ Edge](http://godban.github.io/browsers-support-badges/)
IE | [ Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | -| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | -| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | - -## Git 贡献提交规范 - -- `feat` 增加新功能 -- `fix` 修复问题/BUG -- `style` 代码风格相关无影响运行结果的 -- `perf` 优化/性能提升 -- `refactor` 重构 -- `revert` 撤销修改 -- `test` 测试相关 -- `docs` 文档/注释 -- `chore` 依赖更新/脚手架配置修改等 - diff --git a/apps/admin/build/build/utils.ts b/apps/admin/build/build/utils.ts deleted file mode 100644 index 39850141..00000000 --- a/apps/admin/build/build/utils.ts +++ /dev/null @@ -1,39 +0,0 @@ -declare type Recordable = Record - -interface ViteEnv { - VITE_PORT: number - VITE_PROXY: [string, string][] - VITE_DROP_CONSOLE: boolean -} - -// read all environment variable configuration files to process.env -export function wrapperEnv(envConf: Recordable): ViteEnv { - const result: any = {} - - for (const envName of Object.keys(envConf)) { - let realName = envConf[envName].replace(/\\n/g, '\n') - realName = realName === 'true' ? true : realName === 'false' ? false : realName - - if (envName === 'VITE_PORT') { - realName = Number(realName) - } - - if (envName === 'VITE_PROXY' && realName) { - try { - realName = JSON.parse(realName.replace(/'/g, '"')) - } catch (error) { - realName = '' - } - } - - result[envName] = realName - - if (typeof realName === 'string') { - process.env[envName] = realName - } else if (typeof realName === 'object') { - process.env[envName] = JSON.stringify(realName) - } - } - - return result -} \ No newline at end of file diff --git a/apps/admin/build/eslint.config.js b/apps/admin/build/eslint.config.js deleted file mode 100644 index 111e3f71..00000000 --- a/apps/admin/build/eslint.config.js +++ /dev/null @@ -1,128 +0,0 @@ -// 配置文档: https://eslint.nodejs.cn/ - -export default { - root: true, - env: { - browser: true, - node: true, - es6: true - }, - settings: { - react: { - version: 'detect' - } - }, - // 指定如何解析语法 - parser: '@typescript-eslint/parser', - // 优先级低于 parse 的语法解析配置 - parserOptions: { - ecmaVersion: 7, - sourceType: 'module', - jsxPragma: 'React', - ecmaFeatures: { - jsx: true - } - }, - plugins: ['react', '@typescript-eslint', 'react-hooks', 'prettier'], - // 继承某些已有的规则 - extends: [ - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:react/jsx-runtime', - 'plugin:react-hooks/recommended', - 'prettier', - 'plugin:prettier/recommended' - ], - /* - * 'off' 或 0 ==> 关闭规则 - * 'warn' 或 1 ==> 规则提示为警告(不影响代码执行) - * 'error' 或 2 ==> 规则提示为错误(代码不能执行,界面报错) - */ - rules: { - /* - * Eslint规则配置 - * 配置文档: https://eslint.nodejs.cn/docs/latest/rules/ - */ - // 需要 let 或 const 而不是 var - 'no-var': 'error', - // 禁止在定义变量之前使用变量 - 'no-use-before-define': 'off', - // 声明后永远不会重新分配的变量需要 const 声明 - 'prefer-const': 'error', - // 禁止不规则空格 - 'no-irregular-whitespace': 'off', - // 禁止使用 debugger - 'no-debugger': 'off', - // 禁止未使用的变量 - 'no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_', - varsIgnorePattern: '^_' - } - ], - // 使用 prettier 插件 - 'prettier/prettier': [ - 'error', - { - endOfLine: 'auto' - } - ], - - /* - * TypeScript规则配置 - * 配置文档: https://typescript-eslint.nodejs.cn/rules/) - */ - // 根据参数、属性和变量的默认值或初始值推断其类型 - '@typescript-eslint/no-inferrable-types': 'off', - // 禁止使用自定义 ts 模块和命名空间 - '@typescript-eslint/no-namespace': 'off', - // 禁止使用 any 类型 - '@typescript-eslint/no-explicit-any': 'off', - // 禁止使用特定类型 - '@typescript-eslint/ban-types': 'off', - // 不允许对初始化为数字、字符串或布尔值的变量或参数进行显式返回类型声明 - '@typescript-eslint/explicit-function-return-type': 'off', - // 不允许在 import 语句中使用 require 语句 - '@typescript-eslint/no-var-requires': 'off', - // 禁止空函数 - '@typescript-eslint/no-empty-function': 'off', - // 禁止在变量定义之前使用它们 - '@typescript-eslint/no-use-before-define': 'off', - // 禁止 @ts- 注释代码 - '@typescript-eslint/ban-ts-comment': 'off', - // 不允许使用后缀运算符的非空断言(!) - '@typescript-eslint/no-non-null-assertion': 'off', - // 要求导出函数和类的公共类方法的显式返回和参数类型 - '@typescript-eslint/explicit-module-boundary-types': 'off', - // 使用顶层 type 限定符进行导入 - '@typescript-eslint/no-import-type-side-effects': 'error', - // 禁止定义未使用的变量 - '@typescript-eslint/no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_', - varsIgnorePattern: '^_' - } - ], - // 允许在导入上指定 type 关键字 - '@typescript-eslint/consistent-type-imports': [ - 'error', - { - disallowTypeAnnotations: false, - fixStyle: 'inline-type-imports' - } - ], - // 允许枚举成员的值是多种不同类型的有效 js 表达式 - '@typescript-eslint/prefer-literal-enum-member': [ - 'error', - { - allowBitwiseExpressions: true - } - ], - - 'react-hooks/rules-of-hooks': 'off', - 'react-hooks/exhaustive-deps': 'off' - } -} diff --git a/apps/admin/build/index.html b/apps/admin/build/index.html deleted file mode 100644 index d33e7830..00000000 --- a/apps/admin/build/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - react-admin-design - - -
- - - diff --git a/apps/admin/build/mock/_utils.ts b/apps/admin/build/mock/_utils.ts deleted file mode 100644 index 8701dbec..00000000 --- a/apps/admin/build/mock/_utils.ts +++ /dev/null @@ -1,59 +0,0 @@ -// Interface data format used to return a unified format - -export interface requestParams { - headers?: { authorization?: string } - method: string - body: any - query: any -} - -export function resultSuccess(data: T, { message = '成功' } = {}) { - return { - type: 'success', - code: 0, - data, - message - } -} - -export function resultError(message = '失败', { code = -1, data = null } = {}) { - return { - type: 'error', - code, - data, - message - } -} - -// This function is used to get a token from the request data -export function getRequestToken({ headers }: requestParams): string | undefined { - return headers?.authorization -} - -export function pagination( - currentPage: number, - pageSize: number, - array: T[] -): T[] { - const offset = (currentPage - 1) * Number(pageSize) - return (offset + Number(pageSize)) >= array.length - ? array.slice(offset, array.length) - : array.slice(offset, offset + Number(pageSize)) -} - -export function resultPageSuccess ( - currentPage: number, - pageSize: number, - list: T[], - { message = 'ok' } = {} -) { - const pageData = pagination(currentPage, pageSize, list) - - return { - ...resultSuccess({ - list: pageData, - total: list.length - }), - message - } -} \ No newline at end of file diff --git a/apps/admin/build/mock/data/table.ts b/apps/admin/build/mock/data/table.ts deleted file mode 100644 index 05ed4caa..00000000 --- a/apps/admin/build/mock/data/table.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { MockMethod } from 'vite-plugin-mock' -import { Random } from 'mockjs' -import { resultPageSuccess } from '../_utils' - -const getPhone = () => { - const prefixList = [135, 136, 137, 138, 139, 155, 158, 183, 185, 189] - const randomNum = Math.floor(Math.random() * 10) - const phoneStr = prefixList[randomNum] + Math.random().toString().slice(-8) - return Number(phoneStr) -} - -const getEducation = () => { - const educationList = ['小学', '初中', '高中', '专科', '本科', '研究生'] - const randomNum = Math.floor(Math.random() * educationList.length) - return educationList[randomNum] -} - -const getMarried = () => { - return Math.floor(Math.random() * 4) -} - -const getHobby = () => { - const list: any[] = [] - const hobbyList = ['羽毛球', '乒乓球', '篮球', '排球', '网球', '游泳', '滑雪', '跳高', '滑翔', '潜水'] - const len = [3, 4][Number(Random.boolean())] - for (let key = 0; key < len; key++) { - const randomNum = Math.floor(Math.random() * 10) - list.push(hobbyList[randomNum]) - } - return list -} - -const genList = () => { - const list: any[] = [] - for (let index = 0; index < 100; index++) { - const num = index < 10 ? '0' + index : index - list.push({ - id: Number(`10${num}`) + 1, - name: Random.cname(), - sex: ['男', '女'][Number(Random.boolean())], - phone: getPhone(), - education: getEducation(), - married: getMarried(), - forbid: Random.boolean(), - hobby: getHobby() - }) - } - return list -} - -export default [ - { - url: '/api/table/getTableList', - timeout: 200, - method: 'get', - response: ({ query }) => { - const { current = 1, pageSize = 10 } = query - return resultPageSuccess(current, pageSize, genList()) - } - } -] as MockMethod[] \ No newline at end of file diff --git a/apps/admin/build/mock/data/user.ts b/apps/admin/build/mock/data/user.ts deleted file mode 100644 index 8718612d..00000000 --- a/apps/admin/build/mock/data/user.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { MockMethod } from 'vite-plugin-mock' -import { requestParams, resultSuccess, resultError, getRequestToken } from '../_utils' - -export function createFakeUserList() { - return [ - { - userId: '10000', - username: 'admin', - realName: 'react admin design', - avatar: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/avatar.png', - desc: 'super admin', - password: '123456', - token: 'fakeToken', - homePath: '/home' - } - ] -} - -// Mock user login -export default [ - { - url: '/api/login', - timeout: 500, - method: 'post', - response: ({ body }) => { - const { username, password } = body - const checkUser = createFakeUserList().find(item => item.username === username && password === item.password) - if (!checkUser) { - return resultError('Incorrect account or password!') - } - const { userId, username: _username, token, realName, desc } = checkUser - return resultSuccess({ - userId, - username: _username, - token, - realName, - desc - }) - } - }, - { - url: '/api/getUserInfo', - method: 'get', - response: (request: requestParams) => { - const token = getRequestToken(request) - if (!token) return resultError('Invalid token!') - const checkUser = createFakeUserList().find(item => item.token === token) - if (!checkUser) { - return resultError('The corresponding user information was not obtained!') - } - return resultSuccess(checkUser) - } - }, - { - url: '/api/logout', - timeout: 200, - method: 'get', - response: (request: requestParams) => { - const token = getRequestToken(request) - if (!token) return resultError('Invalid token!') - const checkUser = createFakeUserList().find(item => item.token === token) - if (!checkUser) { - return resultError('Invalid token!') - } - return resultSuccess(undefined, { message: 'Token has been destroyed!' }) - } - } -] as MockMethod[] diff --git a/apps/admin/build/package.json b/apps/admin/build/package.json deleted file mode 100644 index 06fa6c81..00000000 --- a/apps/admin/build/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "name": "react-admin-design", - "version": "0.0.0", - "type": "module", - "scripts": { - "serve": "vite", - "build": "rimraf dist && tsc && vite build", - "preview": "vite preview", - "clean:cache": "rimraf .eslintcache && rimraf node_modules && pnpm install", - "lint:eslint": "eslint --cache --fix \"{src,mock,build}/**/*.{js,ts,tsx}\"", - "lint:prettier": "prettier --write \"src/**/*.{js,json,ts,tsx,css,less,html,md}\"", - "lint:lint-staged": "lint-staged", - "prepare": "husky install" - }, - "dependencies": { - "@ant-design/icons": "^5.2.6", - "@codemirror/view": "^6.22.0", - "@reduxjs/toolkit": "^2.0.1", - "@uiw/react-codemirror": "^4.21.20", - "@uiw/react-md-editor": "^3.25.6", - "@wangeditor/editor": "^5.1.23", - "ahooks": "^3.7.8", - "antd": "^5.11.2", - "axios": "^1.6.2", - "classnames": "^2.3.2", - "cropperjs": "^1.6.1", - "crypto-js": "^4.2.0", - "dayjs": "^1.11.10", - "echarts": "^5.4.3", - "file-saver": "^2.0.5", - "gbeata": "^1.2.5", - "immer": "^10.0.3", - "lodash-es": "^4.17.21", - "mockjs": "^1.1.0", - "react": "^18.2.0", - "react-countup": "^6.5.0", - "react-cropper": "^2.3.3", - "react-dom": "^18.2.0", - "react-org-tree": "^1.0.1", - "react-redux": "^8.1.3", - "react-rnd": "^10.4.1", - "react-router-dom": "^6.19.0", - "react-sortablejs": "^6.1.4", - "redux": "^4.2.1", - "redux-persist": "^6.0.0", - "sortablejs": "^1.15.0", - "use-immer": "^0.9.0", - "video-react": "^0.16.0", - "xlsx": "^0.18.5" - }, - "devDependencies": { - "@babel/core": "^7.23.3", - "@commitlint/cli": "^18.4.3", - "@commitlint/config-conventional": "^18.4.3", - "@types/crypto-js": "^4.2.1", - "@types/file-saver": "^2.0.7", - "@types/lodash-es": "^4.17.11", - "@types/node": "^20.9.2", - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", - "@types/sortablejs": "^1.15.5", - "@types/video-react": "^0.15.4", - "@typescript-eslint/eslint-plugin": "^6.11.0", - "@typescript-eslint/parser": "^6.11.0", - "@vitejs/plugin-react": "^4.2.0", - "autoprefixer": "^10.4.16", - "commitizen": "^4.3.0", - "cssnano": "^6.0.1", - "cz-git": "^1.7.1", - "esbuild": "^0.19.6", - "eslint": "^8.54.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-prettier": "^5.0.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", - "fast-glob": "^3.3.2", - "husky": "^8.0.3", - "less": "^4.2.0", - "lint-staged": "^15.1.0", - "postcss": "^8.4.31", - "prettier": "^3.1.0", - "rimraf": "^5.0.5", - "rollup": "^4.5.1", - "terser": "^5.24.0", - "typescript": "^5.2.2", - "vite": "4.5.0", - "vite-plugin-eslint": "^1.8.1", - "vite-plugin-mock": "2.9.8", - "vite-plugin-svg-icons": "^2.0.1" - }, - "lint-staged": { - "{src,mock,build}/**/*.{js,ts,tsx}": [ - "eslint --fix" - ] - }, - "config": { - "commitizen": { - "path": "node_modules/cz-git" - } - } -} diff --git a/apps/admin/build/pnpm-lock.yaml b/apps/admin/build/pnpm-lock.yaml deleted file mode 100644 index 754be048..00000000 --- a/apps/admin/build/pnpm-lock.yaml +++ /dev/null @@ -1,25067 +0,0 @@ -lockfileVersion: '6.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -dependencies: - '@ant-design/icons': - specifier: ^5.2.6 - version: 5.2.6(react-dom@18.2.0)(react@18.2.0) - '@codemirror/view': - specifier: ^6.22.0 - version: 6.22.0 - '@reduxjs/toolkit': - specifier: ^2.0.1 - version: 2.0.1(react-redux@8.1.3)(react@18.2.0) - '@uiw/react-codemirror': - specifier: ^4.21.20 - version: 4.21.20(@babel/runtime@7.23.4)(@codemirror/autocomplete@6.11.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.22.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) - '@uiw/react-md-editor': - specifier: ^3.25.6 - version: 3.25.6(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0) - '@wangeditor/editor': - specifier: ^5.1.23 - version: 5.1.23 - ahooks: - specifier: ^3.7.8 - version: 3.7.8(react@18.2.0) - antd: - specifier: ^5.11.2 - version: 5.11.4(react-dom@18.2.0)(react@18.2.0) - axios: - specifier: ^1.6.2 - version: 1.6.2 - classnames: - specifier: ^2.3.2 - version: 2.3.2 - cropperjs: - specifier: ^1.6.1 - version: 1.6.1 - crypto-js: - specifier: ^4.2.0 - version: 4.2.0 - dayjs: - specifier: ^1.11.10 - version: 1.11.10 - echarts: - specifier: ^5.4.3 - version: 5.4.3 - file-saver: - specifier: ^2.0.5 - version: 2.0.5 - gbeata: - specifier: ^1.2.5 - version: registry.npmmirror.com/gbeata@1.2.5(@types/react@18.2.38)(antd-style@3.6.1)(antd@5.11.4)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) - immer: - specifier: ^10.0.3 - version: 10.0.3 - lodash-es: - specifier: ^4.17.21 - version: 4.17.21 - mockjs: - specifier: ^1.1.0 - version: 1.1.0 - react: - specifier: ^18.2.0 - version: 18.2.0 - react-countup: - specifier: ^6.5.0 - version: 6.5.0(react@18.2.0) - react-cropper: - specifier: ^2.3.3 - version: 2.3.3(react@18.2.0) - react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) - react-org-tree: - specifier: ^1.0.1 - version: 1.0.1 - react-redux: - specifier: ^8.1.3 - version: 8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) - react-rnd: - specifier: ^10.4.1 - version: 10.4.1(react-dom@18.2.0)(react@18.2.0) - react-router-dom: - specifier: ^6.19.0 - version: 6.20.0(react-dom@18.2.0)(react@18.2.0) - react-sortablejs: - specifier: ^6.1.4 - version: 6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0) - redux: - specifier: ^4.2.1 - version: 4.2.1 - redux-persist: - specifier: ^6.0.0 - version: 6.0.0(react@18.2.0)(redux@4.2.1) - sortablejs: - specifier: ^1.15.0 - version: 1.15.0 - use-immer: - specifier: ^0.9.0 - version: 0.9.0(immer@10.0.3)(react@18.2.0) - video-react: - specifier: ^0.16.0 - version: 0.16.0(react-dom@18.2.0)(react@18.2.0) - xlsx: - specifier: ^0.18.5 - version: 0.18.5 - -devDependencies: - '@babel/core': - specifier: ^7.23.3 - version: 7.23.3 - '@commitlint/cli': - specifier: ^18.4.3 - version: 18.4.3(typescript@5.3.2) - '@commitlint/config-conventional': - specifier: ^18.4.3 - version: 18.4.3 - '@types/crypto-js': - specifier: ^4.2.1 - version: 4.2.1 - '@types/file-saver': - specifier: ^2.0.7 - version: 2.0.7 - '@types/lodash-es': - specifier: ^4.17.11 - version: 4.17.12 - '@types/node': - specifier: ^20.9.2 - version: 20.10.0 - '@types/react': - specifier: ^18.2.37 - version: 18.2.38 - '@types/react-dom': - specifier: ^18.2.15 - version: 18.2.17 - '@types/sortablejs': - specifier: ^1.15.5 - version: 1.15.7 - '@types/video-react': - specifier: ^0.15.4 - version: 0.15.4 - '@typescript-eslint/eslint-plugin': - specifier: ^6.11.0 - version: 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/parser': - specifier: ^6.11.0 - version: 6.12.0(eslint@8.54.0)(typescript@5.3.2) - '@vitejs/plugin-react': - specifier: ^4.2.0 - version: 4.2.0(vite@4.5.0) - autoprefixer: - specifier: ^10.4.16 - version: 10.4.16(postcss@8.4.31) - commitizen: - specifier: ^4.3.0 - version: 4.3.0(typescript@5.3.2) - cssnano: - specifier: ^6.0.1 - version: 6.0.1(postcss@8.4.31) - cz-git: - specifier: ^1.7.1 - version: 1.7.1 - esbuild: - specifier: ^0.19.6 - version: 0.19.7 - eslint: - specifier: ^8.54.0 - version: 8.54.0 - eslint-config-prettier: - specifier: ^9.0.0 - version: 9.0.0(eslint@8.54.0) - eslint-plugin-prettier: - specifier: ^5.0.1 - version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0) - eslint-plugin-react: - specifier: ^7.33.2 - version: 7.33.2(eslint@8.54.0) - eslint-plugin-react-hooks: - specifier: ^4.6.0 - version: 4.6.0(eslint@8.54.0) - fast-glob: - specifier: ^3.3.2 - version: 3.3.2 - husky: - specifier: ^8.0.3 - version: 8.0.3 - less: - specifier: ^4.2.0 - version: 4.2.0 - lint-staged: - specifier: ^15.1.0 - version: 15.1.0 - postcss: - specifier: ^8.4.31 - version: 8.4.31 - prettier: - specifier: ^3.1.0 - version: 3.1.0 - rimraf: - specifier: ^5.0.5 - version: 5.0.5 - rollup: - specifier: ^4.5.1 - version: 4.5.2 - terser: - specifier: ^5.24.0 - version: 5.24.0 - typescript: - specifier: ^5.2.2 - version: 5.3.2 - vite: - specifier: 4.5.0 - version: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) - vite-plugin-eslint: - specifier: ^1.8.1 - version: 1.8.1(eslint@8.54.0)(vite@4.5.0) - vite-plugin-mock: - specifier: 2.9.8 - version: 2.9.8(mockjs@1.1.0)(vite@4.5.0) - vite-plugin-svg-icons: - specifier: ^2.0.1 - version: 2.0.1(vite@4.5.0) - -packages: - - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} - - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - - /@ant-design/colors@7.0.0: - resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==} - dependencies: - '@ctrl/tinycolor': 3.6.1 - dev: false - - /@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Ed2rruHMxZTVYGPec6QBZkrh00Df5K1FAufmBpONai5iGYxoxIkg1sRD8YdCw0NvPRAa4r1nJP5LbwICGHzGiQ==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': 7.23.4 - '@emotion/hash': 0.8.0 - '@emotion/unitless': 0.7.5 - classnames: 2.3.2 - csstype: 3.1.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - stylis: 4.3.0 - dev: false - - /@ant-design/icons-svg@4.3.1: - resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==} - dev: false - - /@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==} - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@ant-design/colors': 7.0.0 - '@ant-design/icons-svg': 4.3.1 - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@ant-design/react-slick@1.0.2(react@18.2.0): - resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==} - peerDependencies: - react: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - json2mq: 0.2.0 - react: 18.2.0 - resize-observer-polyfill: 1.5.1 - throttle-debounce: 5.0.0 - dev: false - - /@babel/code-frame@7.23.4: - resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - /@babel/compat-data@7.23.3: - resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==} - engines: {node: '>=6.9.0'} - - /@babel/core@7.23.3: - resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.4 - '@babel/generator': 7.23.4 - '@babel/helper-compilation-targets': 7.22.15 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3) - '@babel/helpers': 7.23.4 - '@babel/parser': 7.23.4 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.4 - '@babel/types': 7.23.4 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - /@babel/generator@7.23.4: - resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - jsesc: 2.5.2 - - /@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.3 - '@babel/helper-validator-option': 7.22.15 - browserslist: 4.22.1 - lru-cache: 5.1.1 - semver: 6.3.1 - - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.4 - - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - - /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.4 - - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} - engines: {node: '>=6.9.0'} - - /@babel/helpers@7.23.4: - resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.4 - '@babel/types': 7.23.4 - transitivePeerDependencies: - - supports-color - - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - - /@babel/parser@7.23.4: - resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.4 - - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/runtime@7.23.4: - resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==} - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.0 - dev: false - - /@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.4 - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 - - /@babel/traverse@7.23.4: - resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.4 - '@babel/generator': 7.23.4 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - /@babel/types@7.23.4: - resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 - - /@codemirror/commands@6.3.0: - resolution: {integrity: sha512-tFfcxRIlOWiQDFhjBSWJ10MxcvbCIsRr6V64SgrcaY0MwNk32cUOcCuNlWo8VjV4qRQCgNgUAnIeo0svkk4R5Q==} - dependencies: - '@codemirror/language': 6.9.2 - '@codemirror/state': 6.3.1 - '@codemirror/view': 6.22.0 - '@lezer/common': 1.1.1 - dev: false - - /@codemirror/language@6.9.2: - resolution: {integrity: sha512-QGTQXSpAKDIzaSE96zNK1UfIUhPgkT1CLjh1N5qVzZuxgsEOhz5RqaN8QCIdyOQklGLx3MgHd9YrE3X3+Pl1ow==} - dependencies: - '@codemirror/state': 6.3.1 - '@codemirror/view': 6.22.0 - '@lezer/common': 1.1.1 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.3.14 - style-mod: 4.1.0 - dev: false - - /@codemirror/state@6.3.1: - resolution: {integrity: sha512-88e4HhMtKJyw6fKprGaN/yZfiaoGYOi2nM45YCUC6R/kex9sxFWBDGatS1vk4lMgnWmdIIB9tk8Gj1LmL8YfvA==} - dev: false - - /@codemirror/view@6.22.0: - resolution: {integrity: sha512-6zLj4YIoIpfTGKrDMTbeZRpa8ih4EymMCKmddEDcJWrCdp/N1D46B38YEz4creTb4T177AVS9EyXkLeC/HL2jA==} - dependencies: - '@codemirror/state': 6.3.1 - style-mod: 4.1.0 - w3c-keyname: 2.2.8 - dev: false - - /@commitlint/cli@18.4.3(typescript@5.3.2): - resolution: {integrity: sha512-zop98yfB3A6NveYAZ3P1Mb6bIXuCeWgnUfVNkH4yhIMQpQfzFwseadazOuSn0OOfTt0lWuFauehpm9GcqM5lww==} - engines: {node: '>=v18'} - hasBin: true - dependencies: - '@commitlint/format': 18.4.3 - '@commitlint/lint': 18.4.3 - '@commitlint/load': 18.4.3(typescript@5.3.2) - '@commitlint/read': 18.4.3 - '@commitlint/types': 18.4.3 - execa: 5.1.1 - lodash.isfunction: 3.0.9 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - yargs: 17.7.2 - transitivePeerDependencies: - - typescript - dev: true - - /@commitlint/config-conventional@18.4.3: - resolution: {integrity: sha512-729eRRaNta7JZF07qf6SAGSghoDEp9mH7yHU0m7ff0q89W97wDrWCyZ3yoV3mcQJwbhlmVmZPTkPcm7qiAu8WA==} - engines: {node: '>=v18'} - dependencies: - conventional-changelog-conventionalcommits: 7.0.2 - dev: true - - /@commitlint/config-validator@18.4.3: - resolution: {integrity: sha512-FPZZmTJBARPCyef9ohRC9EANiQEKSWIdatx5OlgeHKu878dWwpyeFauVkhzuBRJFcCA4Uvz/FDtlDKs008IHcA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 18.4.3 - ajv: 8.12.0 - dev: true - - /@commitlint/ensure@18.4.3: - resolution: {integrity: sha512-MI4fwD9TWDVn4plF5+7JUyLLbkOdzIRBmVeNlk4dcGlkrVA+/l5GLcpN66q9LkFsFv6G2X31y89ApA3hqnqIFg==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 18.4.3 - lodash.camelcase: 4.3.0 - lodash.kebabcase: 4.1.1 - lodash.snakecase: 4.1.1 - lodash.startcase: 4.4.0 - lodash.upperfirst: 4.3.1 - dev: true - - /@commitlint/execute-rule@18.4.3: - resolution: {integrity: sha512-t7FM4c+BdX9WWZCPrrbV5+0SWLgT3kCq7e7/GhHCreYifg3V8qyvO127HF796vyFql75n4TFF+5v1asOOWkV1Q==} - engines: {node: '>=v18'} - dev: true - - /@commitlint/format@18.4.3: - resolution: {integrity: sha512-8b+ItXYHxAhRAXFfYki5PpbuMMOmXYuzLxib65z2XTqki59YDQJGpJ/wB1kEE5MQDgSTQWtKUrA8n9zS/1uIDQ==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 18.4.3 - chalk: 4.1.2 - dev: true - - /@commitlint/is-ignored@18.4.3: - resolution: {integrity: sha512-ZseOY9UfuAI32h9w342Km4AIaTieeFskm2ZKdrG7r31+c6zGBzuny9KQhwI9puc0J3GkUquEgKJblCl7pMnjwg==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 18.4.3 - semver: 7.5.4 - dev: true - - /@commitlint/lint@18.4.3: - resolution: {integrity: sha512-18u3MRgEXNbnYkMOWoncvq6QB8/90m9TbERKgdPqVvS+zQ/MsuRhdvHYCIXGXZxUb0YI4DV2PC4bPneBV/fYuA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/is-ignored': 18.4.3 - '@commitlint/parse': 18.4.3 - '@commitlint/rules': 18.4.3 - '@commitlint/types': 18.4.3 - dev: true - - /@commitlint/load@18.4.3(typescript@5.3.2): - resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/config-validator': 18.4.3 - '@commitlint/execute-rule': 18.4.3 - '@commitlint/resolve-extends': 18.4.3 - '@commitlint/types': 18.4.3 - '@types/node': 18.18.13 - chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.3.2) - cosmiconfig-typescript-loader: 5.0.0(@types/node@18.18.13)(cosmiconfig@8.3.6)(typescript@5.3.2) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - resolve-from: 5.0.0 - transitivePeerDependencies: - - typescript - dev: true - - /@commitlint/message@18.4.3: - resolution: {integrity: sha512-ddJ7AztWUIoEMAXoewx45lKEYEOeOlBVWjk8hDMUGpprkuvWULpaXczqdjwVtjrKT3JhhN+gMs8pm5G3vB2how==} - engines: {node: '>=v18'} - dev: true - - /@commitlint/parse@18.4.3: - resolution: {integrity: sha512-eoH7CXM9L+/Me96KVcfJ27EIIbA5P9sqw3DqjJhRYuhaULIsPHFs5S5GBDCqT0vKZQDx0DgxhMpW6AQbnKrFtA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/types': 18.4.3 - conventional-changelog-angular: 7.0.0 - conventional-commits-parser: 5.0.0 - dev: true - - /@commitlint/read@18.4.3: - resolution: {integrity: sha512-H4HGxaYA6OBCimZAtghL+B+SWu8ep4X7BwgmedmqWZRHxRLcX2q0bWBtUm5FsMbluxbOfrJwOs/Z0ah4roP/GQ==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/top-level': 18.4.3 - '@commitlint/types': 18.4.3 - fs-extra: 11.1.1 - git-raw-commits: 2.0.11 - minimist: 1.2.8 - dev: true - - /@commitlint/resolve-extends@18.4.3: - resolution: {integrity: sha512-30sk04LZWf8+SDgJrbJCjM90gTg2LxsD9cykCFeFu+JFHvBFq5ugzp2eO/DJGylAdVaqxej3c7eTSE64hR/lnw==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/config-validator': 18.4.3 - '@commitlint/types': 18.4.3 - import-fresh: 3.3.0 - lodash.mergewith: 4.6.2 - resolve-from: 5.0.0 - resolve-global: 1.0.0 - dev: true - - /@commitlint/rules@18.4.3: - resolution: {integrity: sha512-8KIeukDf45BiY+Lul1T0imSNXF0sMrlLG6JpLLKolkmYVQ6PxxoNOriwyZ3UTFFpaVbPy0rcITaV7U9JCAfDTA==} - engines: {node: '>=v18'} - dependencies: - '@commitlint/ensure': 18.4.3 - '@commitlint/message': 18.4.3 - '@commitlint/to-lines': 18.4.3 - '@commitlint/types': 18.4.3 - execa: 5.1.1 - dev: true - - /@commitlint/to-lines@18.4.3: - resolution: {integrity: sha512-fy1TAleik4Zfru1RJ8ZU6cOSvgSVhUellxd3WZV1D5RwHZETt1sZdcA4mQN2y3VcIZsUNKkW0Mq8CM9/L9harQ==} - engines: {node: '>=v18'} - dev: true - - /@commitlint/top-level@18.4.3: - resolution: {integrity: sha512-E6fJPBLPFL5R8+XUNSYkj4HekIOuGMyJo3mIx2PkYc3clel+pcWQ7TConqXxNWW4x1ugigiIY2RGot55qUq1hw==} - engines: {node: '>=v18'} - dependencies: - find-up: 5.0.0 - dev: true - - /@commitlint/types@18.4.3: - resolution: {integrity: sha512-cvzx+vtY/I2hVBZHCLrpoh+sA0hfuzHwDc+BAFPimYLjJkpHnghQM+z8W/KyLGkygJh3BtI3xXXq+dKjnSWEmA==} - engines: {node: '>=v18'} - dependencies: - chalk: 4.1.2 - dev: true - - /@ctrl/tinycolor@3.6.1: - resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} - engines: {node: '>=10'} - dev: false - - /@emotion/hash@0.8.0: - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - dev: false - - /@emotion/unitless@0.7.5: - resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - dev: false - - /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.54.0 - eslint-visitor-keys: 3.4.3 - - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - /@eslint/eslintrc@2.1.3: - resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.23.0 - ignore: 5.3.0 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - /@eslint/js@8.54.0: - resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} - - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: registry.npmmirror.com/string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: registry.npmmirror.com/strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: registry.npmmirror.com/wrap-ansi@7.0.0 - dev: true - - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 - - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - - /@jridgewell/source-map@0.3.5: - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - - /@lezer/common@1.1.1: - resolution: {integrity: sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==} - dev: false - - /@lezer/highlight@1.2.0: - resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} - dependencies: - '@lezer/common': 1.1.1 - dev: false - - /@lezer/lr@1.3.14: - resolution: {integrity: sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==} - dependencies: - '@lezer/common': 1.1.1 - dev: false - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - - /@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: 7.0.3 - fast-glob: 3.3.2 - is-glob: 4.0.3 - open: 9.1.0 - picocolors: 1.0.0 - tslib: 2.6.2 - dev: true - - /@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@ctrl/tinycolor': 3.6.1 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@rc-component/mini-decimal@1.1.0: - resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==} - engines: {node: '>=8.x'} - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - dev: false - - /@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@reduxjs/toolkit@2.0.1(react-redux@8.1.3)(react@18.2.0): - resolution: {integrity: sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==} - peerDependencies: - react: ^16.9.0 || ^17.0.0 || ^18 - react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 - peerDependenciesMeta: - react: - optional: true - react-redux: - optional: true - dependencies: - immer: 10.0.3 - react: 18.2.0 - react-redux: 8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) - redux: 5.0.0 - redux-thunk: 3.1.0(redux@5.0.0) - reselect: 5.0.1 - dev: false - - /@remix-run/router@1.13.0: - resolution: {integrity: sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==} - engines: {node: '>=14.0.0'} - dev: false - - /@rollup/pluginutils@4.2.1: - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - - /@transloadit/prettier-bytes@0.0.7: - resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==} - dev: false - - /@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} - engines: {node: '>=10.13.0'} - dev: true - - /@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - dependencies: - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 - '@types/babel__generator': 7.6.7 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.4 - dev: true - - /@types/babel__generator@7.6.7: - resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==} - dependencies: - '@babel/types': 7.23.4 - dev: true - - /@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - dependencies: - '@babel/parser': 7.23.4 - '@babel/types': 7.23.4 - dev: true - - /@types/babel__traverse@7.20.4: - resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==} - dependencies: - '@babel/types': 7.23.4 - dev: true - - /@types/crypto-js@4.2.1: - resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==} - dev: true - - /@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - dependencies: - '@types/ms': 0.7.34 - dev: false - - /@types/eslint@8.44.7: - resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - dev: true - - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true - - /@types/event-emitter@0.3.5: - resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==} - dev: false - - /@types/file-saver@2.0.7: - resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} - dev: true - - /@types/hast@2.3.8: - resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==} - dependencies: - '@types/unist': 2.0.10 - dev: false - - /@types/hoist-non-react-statics@3.3.5: - resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==} - dependencies: - '@types/react': 18.2.38 - hoist-non-react-statics: 3.3.2 - dev: false - - /@types/js-cookie@2.2.7: - resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} - dev: false - - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - dev: true - - /@types/lodash-es@4.17.12: - resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} - dependencies: - '@types/lodash': 4.14.202 - dev: true - - /@types/lodash@4.14.202: - resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} - dev: true - - /@types/mdast@3.0.15: - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} - dependencies: - '@types/unist': 2.0.10 - dev: false - - /@types/minimist@1.2.5: - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - dev: true - - /@types/mockjs@1.0.10: - resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==} - dev: true - - /@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - dev: false - - /@types/node@18.18.13: - resolution: {integrity: sha512-vXYZGRrSCreZmq1rEjMRLXJhiy8MrIeVasx+PCVlP414N7CJLHnMf+juVvjdprHyH+XRy3zKZLHeNueOpJCn0g==} - dependencies: - undici-types: 5.26.5 - dev: true - - /@types/node@20.10.0: - resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==} - dependencies: - undici-types: 5.26.5 - - /@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - dev: true - - /@types/parse5@6.0.3: - resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} - dev: false - - /@types/prismjs@1.26.3: - resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==} - dev: false - - /@types/prop-types@15.7.11: - resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} - - /@types/react-dom@18.2.17: - resolution: {integrity: sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==} - dependencies: - '@types/react': 18.2.38 - - /@types/react@18.2.38: - resolution: {integrity: sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==} - dependencies: - '@types/prop-types': 15.7.11 - '@types/scheduler': 0.16.8 - csstype: 3.1.2 - - /@types/scheduler@0.16.8: - resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} - - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} - dev: true - - /@types/sortablejs@1.15.7: - resolution: {integrity: sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==} - - /@types/svgo@2.6.4: - resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==} - dependencies: - '@types/node': 20.10.0 - dev: true - - /@types/unist@2.0.10: - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} - dev: false - - /@types/use-sync-external-store@0.0.3: - resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==} - dev: false - - /@types/video-react@0.15.4: - resolution: {integrity: sha512-EbBgFiHRFnKrUK7EMpQdJGf9coEcosTyEf62YTsJlNSGSbfz4ZyGHhKGWD4MfGdGWNAw9CFlP+06rWXw1VDVoQ==} - dependencies: - '@types/react': 18.2.38 - dev: true - - /@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/type-utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.12.0 - debug: 4.3.4 - eslint: 8.54.0 - graphemer: 1.4.0 - ignore: 5.3.0 - natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) - '@typescript-eslint/visitor-keys': 6.12.0 - debug: 4.3.4 - eslint: 8.54.0 - typescript: 5.3.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/scope-manager@6.12.0: - resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/visitor-keys': 6.12.0 - dev: true - - /@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) - '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) - debug: 4.3.4 - eslint: 8.54.0 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/types@6.12.0: - resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} - engines: {node: ^16.0.0 || >=18.0.0} - dev: true - - /@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2): - resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/visitor-keys': 6.12.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.2) - typescript: 5.3.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==} - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) - '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.12.0 - '@typescript-eslint/types': 6.12.0 - '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) - eslint: 8.54.0 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - - /@typescript-eslint/visitor-keys@6.12.0: - resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': 6.12.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@uiw/codemirror-extensions-basic-setup@4.21.20(@codemirror/autocomplete@6.11.0)(@codemirror/commands@6.3.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0): - resolution: {integrity: sha512-Wyi9q4uw0xGYd/tJ6bULG7tkCLqcUsQT0AQBfCDtnkV3LdiLU0LceTrzJoHJyIKSHsKDJxFQxa1qg3QLt4gIUA==} - peerDependencies: - '@codemirror/autocomplete': '>=6.0.0' - '@codemirror/commands': '>=6.0.0' - '@codemirror/language': '>=6.0.0' - '@codemirror/lint': '>=6.0.0' - '@codemirror/search': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - dependencies: - '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.11.0(@codemirror/language@6.9.2)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0)(@lezer/common@1.1.1) - '@codemirror/commands': 6.3.0 - '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 - '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.4.2 - '@codemirror/search': registry.npmmirror.com/@codemirror/search@6.5.4 - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - '@codemirror/view': 6.22.0 - dev: false - - /@uiw/copy-to-clipboard@1.0.16: - resolution: {integrity: sha512-IXR+N363nLTR3ilklmM+B0nk774jVE/muOrBYt4Rdww/Pf3uP9XHyv2x6YZrbDh29F7w9BkzQyB8QF6WDShmJA==} - dev: false - - /@uiw/react-codemirror@4.21.20(@babel/runtime@7.23.4)(@codemirror/autocomplete@6.11.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.22.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PdyewPvNXnvT3JHj888yjpbWsAGw5qlxW6w1sMdsqJ0R6vPV++ob1iZXCGrM1FVpbqPK0DNfpXvjzp2gIr3lYw==} - peerDependencies: - '@babel/runtime': '>=7.11.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/theme-one-dark': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - codemirror: '>=6.0.0' - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@codemirror/commands': 6.3.0 - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - '@codemirror/theme-one-dark': registry.npmmirror.com/@codemirror/theme-one-dark@6.1.2 - '@codemirror/view': 6.22.0 - '@uiw/codemirror-extensions-basic-setup': 4.21.20(@codemirror/autocomplete@6.11.0)(@codemirror/commands@6.3.0)(@codemirror/language@6.9.2)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.4)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0) - codemirror: registry.npmmirror.com/codemirror@6.0.1(@lezer/common@1.1.1) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@codemirror/autocomplete' - - '@codemirror/language' - - '@codemirror/lint' - - '@codemirror/search' - dev: false - - /@uiw/react-markdown-preview@4.2.2(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Jy3GtAqcF2pKgvFtgLUEwR8u2t0Yk/DAnLTl6cf1RzhNYcAxm1auDs3KndZRBDP01xhmYLX4KiOcOg/qv+Jc0A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@babel/runtime': 7.23.4 - '@uiw/copy-to-clipboard': 1.0.16 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-markdown: 8.0.7(@types/react@18.2.38)(react@18.2.0) - rehype-attr: 2.1.4 - rehype-autolink-headings: 6.1.1 - rehype-ignore: 1.0.5 - rehype-prism-plus: 1.6.3 - rehype-raw: 6.1.1 - rehype-rewrite: 3.0.6 - rehype-slug: 5.1.0 - remark-gfm: 3.0.1 - unist-util-visit: 4.1.2 - transitivePeerDependencies: - - '@types/react' - - supports-color - dev: false - - /@uiw/react-md-editor@3.25.6(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-YuDv5KiM931WFYBDCyk9/HvtLdIWk9DXvzC6d1riaLufvchM7IUHkqTkSl3HqmTod1exSN+5ZsUtKZ+S+GAsug==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@babel/runtime': 7.23.4 - '@uiw/react-markdown-preview': 4.2.2(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - rehype: 12.0.1 - rehype-prism-plus: 1.6.3 - transitivePeerDependencies: - - '@types/react' - - supports-color - dev: false - - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - /@uppy/companion-client@2.2.2: - resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==} - dependencies: - '@uppy/utils': 4.1.3 - namespace-emitter: 2.0.1 - dev: false - - /@uppy/core@2.3.4: - resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==} - dependencies: - '@transloadit/prettier-bytes': 0.0.7 - '@uppy/store-default': 2.1.1 - '@uppy/utils': 4.1.3 - lodash.throttle: 4.1.1 - mime-match: 1.0.2 - namespace-emitter: 2.0.1 - nanoid: 3.3.7 - preact: 10.19.2 - dev: false - - /@uppy/store-default@2.1.1: - resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==} - dev: false - - /@uppy/utils@4.1.3: - resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==} - dependencies: - lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 - dev: false - - /@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4): - resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==} - peerDependencies: - '@uppy/core': ^2.3.3 - dependencies: - '@uppy/companion-client': 2.2.2 - '@uppy/core': 2.3.4 - '@uppy/utils': 4.1.3 - nanoid: 3.3.7 - dev: false - - /@vitejs/plugin-react@4.2.0(vite@4.5.0): - resolution: {integrity: sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.3) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) - transitivePeerDependencies: - - supports-color - dev: true - - /@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): - resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==} - peerDependencies: - '@wangeditor/core': 1.x - dom7: ^3.0.0 - lodash.throttle: ^4.1.1 - nanoid: ^3.2.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 - dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - dom7: 3.0.0 - is-url: 1.2.4 - lodash.throttle: 4.1.1 - nanoid: 3.3.7 - slate: 0.72.8 - snabbdom: 3.5.1 - dev: false - - /@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): - resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==} - peerDependencies: - '@wangeditor/core': 1.x - dom7: ^3.0.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 - dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - dom7: 3.0.0 - prismjs: 1.29.0 - slate: 0.72.8 - snabbdom: 3.5.1 - dev: false - - /@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): - resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==} - peerDependencies: - '@uppy/core': ^2.1.1 - '@uppy/xhr-upload': ^2.0.3 - dom7: ^3.0.0 - is-hotkey: ^0.2.0 - lodash.camelcase: ^4.3.0 - lodash.clonedeep: ^4.5.0 - lodash.debounce: ^4.0.8 - lodash.foreach: ^4.5.0 - lodash.isequal: ^4.5.0 - lodash.throttle: ^4.1.1 - lodash.toarray: ^4.4.0 - nanoid: ^3.2.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 - dependencies: - '@types/event-emitter': 0.3.5 - '@uppy/core': 2.3.4 - '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) - dom7: 3.0.0 - event-emitter: 0.3.5 - html-void-elements: 2.0.1 - i18next: 20.6.1 - is-hotkey: 0.2.0 - lodash.camelcase: 4.3.0 - lodash.clonedeep: 4.5.0 - lodash.debounce: 4.0.8 - lodash.foreach: 4.5.0 - lodash.isequal: 4.5.0 - lodash.throttle: 4.1.1 - lodash.toarray: 4.4.0 - nanoid: 3.3.7 - scroll-into-view-if-needed: 2.2.31 - slate: 0.72.8 - slate-history: 0.66.0(slate@0.72.8) - snabbdom: 3.5.1 - dev: false - - /@wangeditor/editor@5.1.23: - resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==} - dependencies: - '@uppy/core': 2.3.4 - '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) - '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) - '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1) - '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - dom7: 3.0.0 - is-hotkey: 0.2.0 - lodash.camelcase: 4.3.0 - lodash.clonedeep: 4.5.0 - lodash.debounce: 4.0.8 - lodash.foreach: 4.5.0 - lodash.isequal: 4.5.0 - lodash.throttle: 4.1.1 - lodash.toarray: 4.4.0 - nanoid: 3.3.7 - slate: 0.72.8 - snabbdom: 3.5.1 - dev: false - - /@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): - resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==} - peerDependencies: - '@wangeditor/core': 1.x - dom7: ^3.0.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 - dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - dom7: 3.0.0 - slate: 0.72.8 - snabbdom: 3.5.1 - dev: false - - /@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): - resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==} - peerDependencies: - '@wangeditor/core': 1.x - dom7: ^3.0.0 - lodash.isequal: ^4.5.0 - lodash.throttle: ^4.1.1 - nanoid: ^3.2.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 - dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - dom7: 3.0.0 - lodash.isequal: 4.5.0 - lodash.throttle: 4.1.1 - nanoid: 3.3.7 - slate: 0.72.8 - snabbdom: 3.5.1 - dev: false - - /@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1): - resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==} - peerDependencies: - '@uppy/core': ^2.0.3 - '@uppy/xhr-upload': ^2.0.3 - '@wangeditor/basic-modules': 1.x - '@wangeditor/core': 1.x - dom7: ^3.0.0 - lodash.foreach: ^4.5.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 - dependencies: - '@uppy/core': 2.3.4 - '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) - '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - dom7: 3.0.0 - lodash.foreach: 4.5.0 - slate: 0.72.8 - snabbdom: 3.5.1 - dev: false - - /@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): - resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==} - peerDependencies: - '@uppy/core': ^2.1.4 - '@uppy/xhr-upload': ^2.0.7 - '@wangeditor/core': 1.x - dom7: ^3.0.0 - nanoid: ^3.2.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 - dependencies: - '@uppy/core': 2.3.4 - '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) - dom7: 3.0.0 - nanoid: 3.3.7 - slate: 0.72.8 - snabbdom: 3.5.1 - dev: false - - /JSONStream@1.3.5: - resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} - hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: true - - /acorn-jsx@5.3.2(acorn@8.11.2): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.11.2 - - /acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} - engines: {node: '>=0.4.0'} - hasBin: true - - /adler-32@1.3.1: - resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} - engines: {node: '>=0.8'} - dev: false - - /ahooks-v3-count@1.0.0: - resolution: {integrity: sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==} - dev: false - - /ahooks@3.7.8(react@18.2.0): - resolution: {integrity: sha512-e/NMlQWoCjaUtncNFIZk3FG1ImSkV/JhScQSkTqnftakRwdfZWSw6zzoWSG9OMYqPNs2MguDYBUFFC6THelWXA==} - engines: {node: '>=8.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.23.4 - '@types/js-cookie': 2.2.7 - ahooks-v3-count: 1.0.0 - dayjs: 1.11.10 - intersection-observer: 0.12.2 - js-cookie: 2.2.1 - lodash: 4.17.21 - react: 18.2.0 - resize-observer-polyfill: 1.5.1 - screenfull: 5.2.0 - tslib: 2.6.2 - dev: false - - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true - - /ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - - /ansi-escapes@5.0.0: - resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} - engines: {node: '>=12'} - dependencies: - type-fest: 1.4.0 - dev: true - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true - - /ansi-styles@2.2.1: - resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==} - engines: {node: '>=0.10.0'} - dev: true - - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true - - /antd@5.11.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-FuaV/viyZiMlCL1JzdQpSlzPcWcBlGYDAbtj3FM4BgwAso+ge3d4tXkZZG4yZkktUoLvWrcaJObs3Nk32Oiwuw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@ant-design/colors': 7.0.0 - '@ant-design/cssinjs': 1.17.5(react-dom@18.2.0)(react@18.2.0) - '@ant-design/icons': 5.2.6(react-dom@18.2.0)(react@18.2.0) - '@ant-design/react-slick': 1.0.2(react@18.2.0) - '@babel/runtime': 7.23.4 - '@ctrl/tinycolor': 3.6.1 - '@rc-component/color-picker': 1.4.1(react-dom@18.2.0)(react@18.2.0) - '@rc-component/mutate-observer': 1.1.0(react-dom@18.2.0)(react@18.2.0) - '@rc-component/tour': 1.10.0(react-dom@18.2.0)(react@18.2.0) - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - copy-to-clipboard: 3.3.3 - dayjs: 1.11.10 - qrcode.react: 3.1.0(react@18.2.0) - rc-cascader: 3.20.0(react-dom@18.2.0)(react@18.2.0) - rc-checkbox: 3.1.0(react-dom@18.2.0)(react@18.2.0) - rc-collapse: 3.7.1(react-dom@18.2.0)(react@18.2.0) - rc-dialog: 9.3.4(react-dom@18.2.0)(react@18.2.0) - rc-drawer: 6.5.2(react-dom@18.2.0)(react@18.2.0) - rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) - rc-field-form: 1.40.0(react-dom@18.2.0)(react@18.2.0) - rc-image: 7.5.1(react-dom@18.2.0)(react@18.2.0) - rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) - rc-input-number: 8.4.0(react-dom@18.2.0)(react@18.2.0) - rc-mentions: 2.9.1(react-dom@18.2.0)(react@18.2.0) - rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-notification: 5.3.0(react-dom@18.2.0)(react@18.2.0) - rc-pagination: 3.7.0(react-dom@18.2.0)(react@18.2.0) - rc-picker: 3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) - rc-progress: 3.5.1(react-dom@18.2.0)(react@18.2.0) - rc-rate: 2.12.0(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-segmented: 2.2.2(react-dom@18.2.0)(react@18.2.0) - rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) - rc-slider: 10.4.0(react-dom@18.2.0)(react@18.2.0) - rc-steps: 6.0.1(react-dom@18.2.0)(react@18.2.0) - rc-switch: 4.1.0(react-dom@18.2.0)(react@18.2.0) - rc-table: 7.36.0(react-dom@18.2.0)(react@18.2.0) - rc-tabs: 12.13.1(react-dom@18.2.0)(react@18.2.0) - rc-textarea: 1.5.3(react-dom@18.2.0)(react@18.2.0) - rc-tooltip: 6.1.2(react-dom@18.2.0)(react@18.2.0) - rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) - rc-tree-select: 5.15.0(react-dom@18.2.0)(react@18.2.0) - rc-upload: 4.3.5(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - scroll-into-view-if-needed: 3.1.0 - throttle-debounce: 5.0.0 - transitivePeerDependencies: - - date-fns - - luxon - - moment - dev: false - - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - /arr-diff@4.0.0: - resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-flatten@1.1.0: - resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} - engines: {node: '>=0.10.0'} - dev: true - - /arr-union@3.1.0: - resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} - engines: {node: '>=0.10.0'} - dev: true - - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 - dev: true - - /array-ify@1.0.0: - resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - dev: true - - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-string: 1.0.7 - dev: true - - /array-tree-filter@2.1.0: - resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} - dev: false - - /array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - dev: true - - /array-unique@0.3.2: - resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} - engines: {node: '>=0.10.0'} - dev: true - - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - dev: true - - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - dev: true - - /array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.2 - get-intrinsic: 1.2.2 - dev: true - - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 - dev: true - - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true - - /assign-symbols@1.0.0: - resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} - engines: {node: '>=0.10.0'} - dev: true - - /async-validator@4.2.5: - resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} - dev: false - - /asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - dependencies: - has-symbols: 1.0.3 - dev: true - - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - - /at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - dev: true - - /atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} - engines: {node: '>= 4.5.0'} - hasBin: true - dev: true - - /autoprefixer@10.4.16(postcss@8.4.31): - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.22.1 - caniuse-lite: 1.0.30001564 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - dev: true - - /axios@1.6.2: - resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} - dependencies: - follow-redirects: 1.15.3 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: false - - /bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - dev: false - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: true - - /base@0.11.2: - resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} - engines: {node: '>=0.10.0'} - dependencies: - cache-base: 1.0.1 - class-utils: 0.3.6 - component-emitter: 1.3.1 - define-property: 1.0.0 - isobject: 3.0.1 - mixin-deep: 1.3.2 - pascalcase: 0.1.1 - dev: true - - /bcp-47-match@2.0.3: - resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==} - dev: false - - /big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} - engines: {node: '>=0.6'} - dev: true - - /big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} - dev: true - - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} - engines: {node: '>=8'} - dev: true - - /bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - - /bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - dev: true - - /boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - - /bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} - engines: {node: '>= 5.10.0'} - dependencies: - big-integer: 1.6.52 - dev: true - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces@2.3.2: - resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} - engines: {node: '>=0.10.0'} - dependencies: - arr-flatten: 1.1.0 - array-unique: 0.3.2 - extend-shallow: 2.0.1 - fill-range: 4.0.0 - isobject: 3.0.1 - repeat-element: 1.1.4 - snapdragon: 0.8.2 - snapdragon-node: 2.1.1 - split-string: 3.1.0 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001564 - electron-to-chromium: 1.4.594 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) - - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - - /buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - - /bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==} - engines: {node: '>=12'} - dependencies: - run-applescript: 5.0.0 - dev: true - - /cache-base@1.0.1: - resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} - engines: {node: '>=0.10.0'} - dependencies: - collection-visit: 1.0.0 - component-emitter: 1.3.1 - get-value: 2.0.6 - has-value: 1.0.0 - isobject: 3.0.1 - set-value: 2.0.1 - to-object-path: 0.3.0 - union-value: 1.0.1 - unset-value: 1.0.0 - dev: true - - /cachedir@2.3.0: - resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} - engines: {node: '>=6'} - dev: true - - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 - dev: true - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - - /camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: true - - /camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - dev: true - - /caniuse-api@3.0.0: - resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} - dependencies: - browserslist: 4.22.1 - caniuse-lite: 1.0.30001564 - lodash.memoize: 4.1.2 - lodash.uniq: 4.5.0 - dev: true - - /caniuse-lite@1.0.30001564: - resolution: {integrity: sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==} - - /ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - dev: false - - /cfb@1.2.2: - resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} - engines: {node: '>=0.8'} - dependencies: - adler-32: 1.3.1 - crc-32: 1.2.2 - dev: false - - /chalk@1.1.3: - resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-styles: 2.2.1 - escape-string-regexp: 1.0.5 - has-ansi: 2.0.0 - strip-ansi: 3.0.1 - supports-color: 2.0.0 - dev: true - - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - dev: true - - /character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - dev: false - - /character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - dev: false - - /character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - dev: false - - /character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - dev: false - - /chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true - - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: true - - /class-utils@0.3.6: - resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - define-property: 0.2.5 - isobject: 3.0.1 - static-extend: 0.1.2 - dev: true - - /classnames@2.3.1: - resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==} - dev: false - - /classnames@2.3.2: - resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==} - dev: false - - /cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - - /cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - restore-cursor: 4.0.0 - dev: true - - /cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - dev: true - - /cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - dev: true - - /cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} - dev: true - - /cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - - /clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} - dev: true - - /clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - dev: true - - /clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} - engines: {node: '>=6'} - dev: false - - /codepage@1.15.0: - resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==} - engines: {node: '>=0.8'} - dev: false - - /collection-visit@1.0.0: - resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} - engines: {node: '>=0.10.0'} - dependencies: - map-visit: 1.0.0 - object-visit: 1.0.1 - dev: true - - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - /colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - dev: true - - /colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} - dev: true - - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: false - - /comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - dev: false - - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - - /commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - - /commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} - dev: true - - /commitizen@4.3.0(typescript@5.3.2): - resolution: {integrity: sha512-H0iNtClNEhT0fotHvGV3E9tDejDeS04sN1veIebsKYGMuGscFaswRoYJKmT3eW85eIJAs0F28bG2+a/9wCOfPw==} - engines: {node: '>= 12'} - hasBin: true - dependencies: - cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(typescript@5.3.2) - dedent: 0.7.0 - detect-indent: 6.1.0 - find-node-modules: 2.1.3 - find-root: 1.1.0 - fs-extra: 9.1.0 - glob: 7.2.3 - inquirer: 8.2.5 - is-utf8: 0.2.1 - lodash: 4.17.21 - minimist: 1.2.7 - strip-bom: 4.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - typescript - dev: true - - /compare-func@2.0.0: - resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - dev: true - - /component-emitter@1.3.1: - resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} - dev: true - - /compute-scroll-into-view@1.0.20: - resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} - dev: false - - /compute-scroll-into-view@3.1.0: - resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} - dev: false - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - /connect@3.7.0: - resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} - engines: {node: '>= 0.10.0'} - dependencies: - debug: 2.6.9 - finalhandler: 1.1.2 - parseurl: 1.3.3 - utils-merge: 1.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /conventional-changelog-angular@7.0.0: - resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} - engines: {node: '>=16'} - dependencies: - compare-func: 2.0.0 - dev: true - - /conventional-changelog-conventionalcommits@7.0.2: - resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} - engines: {node: '>=16'} - dependencies: - compare-func: 2.0.0 - dev: true - - /conventional-commit-types@3.0.0: - resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} - dev: true - - /conventional-commits-parser@5.0.0: - resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} - engines: {node: '>=16'} - hasBin: true - dependencies: - JSONStream: 1.3.5 - is-text-path: 2.0.0 - meow: 12.1.1 - split2: 4.2.0 - dev: true - - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - - /copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} - dependencies: - is-what: 3.14.1 - dev: true - - /copy-descriptor@0.1.1: - resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} - engines: {node: '>=0.10.0'} - dev: true - - /copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} - dependencies: - toggle-selection: 1.0.6 - dev: false - - /cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - dev: true - - /cosmiconfig-typescript-loader@5.0.0(@types/node@18.18.13)(cosmiconfig@8.3.6)(typescript@5.3.2): - resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} - engines: {node: '>=v16'} - peerDependencies: - '@types/node': '*' - cosmiconfig: '>=8.2' - typescript: '>=4' - dependencies: - '@types/node': 18.18.13 - cosmiconfig: 8.3.6(typescript@5.3.2) - jiti: 1.21.0 - typescript: 5.3.2 - dev: true - - /cosmiconfig@8.3.6(typescript@5.3.2): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.3.2 - dev: true - - /countup.js@2.8.0: - resolution: {integrity: sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==} - dev: false - - /crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} - hasBin: true - dev: false - - /cropperjs@1.6.1: - resolution: {integrity: sha512-F4wsi+XkDHCOMrHMYjrTEE4QBOrsHHN5/2VsVAaRq8P7E5z7xQpT75S+f/9WikmBEailas3+yo+6zPIomW+NOA==} - dev: false - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - /crypto-js@4.2.0: - resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - dev: false - - /css-declaration-sorter@6.4.1(postcss@8.4.31): - resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} - engines: {node: ^10 || ^12 || >=14} - peerDependencies: - postcss: ^8.0.9 - dependencies: - postcss: 8.4.31 - dev: true - - /css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 4.3.1 - domutils: 2.8.0 - nth-check: 2.1.1 - dev: true - - /css-select@5.1.0: - resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} - dependencies: - boolbase: 1.0.0 - css-what: 6.1.0 - domhandler: 5.0.3 - domutils: 3.1.0 - nth-check: 2.1.1 - dev: true - - /css-selector-parser@1.4.1: - resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==} - dev: false - - /css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} - dependencies: - mdn-data: 2.0.14 - source-map: registry.npmmirror.com/source-map@0.6.1 - dev: true - - /css-tree@2.2.1: - resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - dependencies: - mdn-data: 2.0.28 - source-map-js: 1.0.2 - dev: true - - /css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.0.2 - dev: true - - /css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} - engines: {node: '>= 6'} - dev: true - - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /cssnano-preset-default@6.0.1(postcss@8.4.31): - resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - css-declaration-sorter: 6.4.1(postcss@8.4.31) - cssnano-utils: 4.0.0(postcss@8.4.31) - postcss: 8.4.31 - postcss-calc: 9.0.1(postcss@8.4.31) - postcss-colormin: 6.0.0(postcss@8.4.31) - postcss-convert-values: 6.0.0(postcss@8.4.31) - postcss-discard-comments: 6.0.0(postcss@8.4.31) - postcss-discard-duplicates: 6.0.0(postcss@8.4.31) - postcss-discard-empty: 6.0.0(postcss@8.4.31) - postcss-discard-overridden: 6.0.0(postcss@8.4.31) - postcss-merge-longhand: 6.0.0(postcss@8.4.31) - postcss-merge-rules: 6.0.1(postcss@8.4.31) - postcss-minify-font-values: 6.0.0(postcss@8.4.31) - postcss-minify-gradients: 6.0.0(postcss@8.4.31) - postcss-minify-params: 6.0.0(postcss@8.4.31) - postcss-minify-selectors: 6.0.0(postcss@8.4.31) - postcss-normalize-charset: 6.0.0(postcss@8.4.31) - postcss-normalize-display-values: 6.0.0(postcss@8.4.31) - postcss-normalize-positions: 6.0.0(postcss@8.4.31) - postcss-normalize-repeat-style: 6.0.0(postcss@8.4.31) - postcss-normalize-string: 6.0.0(postcss@8.4.31) - postcss-normalize-timing-functions: 6.0.0(postcss@8.4.31) - postcss-normalize-unicode: 6.0.0(postcss@8.4.31) - postcss-normalize-url: 6.0.0(postcss@8.4.31) - postcss-normalize-whitespace: 6.0.0(postcss@8.4.31) - postcss-ordered-values: 6.0.0(postcss@8.4.31) - postcss-reduce-initial: 6.0.0(postcss@8.4.31) - postcss-reduce-transforms: 6.0.0(postcss@8.4.31) - postcss-svgo: 6.0.0(postcss@8.4.31) - postcss-unique-selectors: 6.0.0(postcss@8.4.31) - dev: true - - /cssnano-utils@4.0.0(postcss@8.4.31): - resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - dev: true - - /cssnano@6.0.1(postcss@8.4.31): - resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-preset-default: 6.0.1(postcss@8.4.31) - lilconfig: 2.1.0 - postcss: 8.4.31 - dev: true - - /csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} - engines: {node: '>=8.0.0'} - dependencies: - css-tree: 1.1.3 - dev: true - - /csso@5.0.5: - resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - dependencies: - css-tree: 2.2.1 - dev: true - - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} - - /cz-conventional-changelog@3.3.0(typescript@5.3.2): - resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} - engines: {node: '>= 10'} - dependencies: - chalk: 2.4.2 - commitizen: 4.3.0(typescript@5.3.2) - conventional-commit-types: 3.0.0 - lodash.map: 4.6.0 - longest: 2.0.1 - word-wrap: 1.2.5 - optionalDependencies: - '@commitlint/load': registry.npmmirror.com/@commitlint/load@18.4.3(typescript@5.3.2) - transitivePeerDependencies: - - typescript - dev: true - - /cz-git@1.7.1: - resolution: {integrity: sha512-NMe4REukCS7op1YA1jixRXOgII8Um2/Ii8TeyFEOISgp2ZzeobzkMOP8dXSrTQ3bvmm7YpPOdr2301yJkOJcbA==} - engines: {node: '>=v12.20.0'} - dev: true - - /d@1.0.1: - resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} - dependencies: - es5-ext: 0.10.62 - type: 1.2.0 - dev: false - - /dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} - dev: true - - /dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} - dev: false - - /debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.0.0 - dev: true - - /debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - requiresBuild: true - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.3 - optional: true - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} - engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: true - - /decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - dev: true - - /decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - dependencies: - character-entities: 2.0.2 - dev: false - - /decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} - engines: {node: '>=0.10'} - dev: true - - /dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dev: true - - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - - /default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} - engines: {node: '>=12'} - dependencies: - bplist-parser: 0.2.0 - untildify: 4.0.0 - dev: true - - /default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==} - engines: {node: '>=14.16'} - dependencies: - bundle-name: 3.0.0 - default-browser-id: 3.0.0 - execa: 7.2.0 - titleize: 3.0.0 - dev: true - - /defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: true - - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - dev: true - - /define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} - engines: {node: '>=12'} - dev: true - - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.1 - object-keys: 1.1.1 - dev: true - - /define-property@0.2.5: - resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 0.1.7 - dev: true - - /define-property@1.0.0: - resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.3 - dev: true - - /define-property@2.0.2: - resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-descriptor: 1.0.3 - isobject: 3.0.1 - dev: true - - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false - - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: false - - /detect-file@1.0.0: - resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} - engines: {node: '>=0.10.0'} - dev: true - - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true - - /diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} - engines: {node: '>=0.3.1'} - dev: false - - /dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - - /direction@2.0.1: - resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==} - hasBin: true - dev: false - - /doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - - /dom-serializer@0.2.2: - resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} - dependencies: - domelementtype: 2.3.0 - entities: 2.2.0 - dev: true - - /dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} - dependencies: - domelementtype: 2.3.0 - domhandler: 4.3.1 - entities: 2.2.0 - dev: true - - /dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 - dev: true - - /dom7@3.0.0: - resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==} - dependencies: - ssr-window: 3.0.0 - dev: false - - /domelementtype@1.3.1: - resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==} - dev: true - - /domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - dev: true - - /domhandler@2.4.2: - resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==} - dependencies: - domelementtype: 1.3.1 - dev: true - - /domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - - /domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} - dependencies: - domelementtype: 2.3.0 - dev: true - - /domutils@1.7.0: - resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} - dependencies: - dom-serializer: 0.2.2 - domelementtype: 1.3.1 - dev: true - - /domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} - dependencies: - dom-serializer: 1.4.1 - domelementtype: 2.3.0 - domhandler: 4.3.1 - dev: true - - /domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} - dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - dev: true - - /dot-prop@5.3.0: - resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} - engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: true - - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - - /echarts@5.4.3: - resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==} - dependencies: - tslib: 2.3.0 - zrender: 5.4.4 - dev: false - - /ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - dev: true - - /electron-to-chromium@1.4.594: - resolution: {integrity: sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==} - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - - /emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} - engines: {node: '>= 4'} - dev: true - - /encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - dev: true - - /entities@1.1.2: - resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==} - dev: true - - /entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - dev: true - - /entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - dev: true - - /error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.2 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 - dev: true - - /es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} - dependencies: - asynciterator.prototype: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-set-tostringtag: 2.0.2 - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 - has-property-descriptors: 1.0.1 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.6 - iterator.prototype: 1.1.2 - safe-array-concat: 1.0.1 - dev: true - - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - has-tostringtag: 1.0.0 - hasown: 2.0.0 - dev: true - - /es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - dependencies: - hasown: 2.0.0 - dev: true - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} - engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - - /es5-ext@0.10.62: - resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==} - engines: {node: '>=0.10'} - requiresBuild: true - dependencies: - es6-iterator: 2.0.3 - es6-symbol: 3.1.3 - next-tick: 1.1.0 - dev: false - - /es6-iterator@2.0.3: - resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - es6-symbol: 3.1.3 - dev: false - - /es6-symbol@3.1.3: - resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==} - dependencies: - d: 1.0.1 - ext: 1.7.0 - dev: false - - /esbuild@0.14.54: - resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.14.54 - esbuild-android-64: registry.npmmirror.com/esbuild-android-64@0.14.54 - esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64@0.14.54 - esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64@0.14.54 - esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64@0.14.54 - esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64@0.14.54 - esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54 - esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32@0.14.54 - esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64@0.14.54 - esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm@0.14.54 - esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64@0.14.54 - esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le@0.14.54 - esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54 - esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64@0.14.54 - esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x@0.14.54 - esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64@0.14.54 - esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64@0.14.54 - esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64@0.14.54 - esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32@0.14.54 - esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64@0.14.54 - esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64@0.14.54 - dev: true - - /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.18.20 - '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.18.20 - '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.18.20 - '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20 - '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.18.20 - '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20 - '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20 - '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.18.20 - '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.18.20 - '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.18.20 - '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.18.20 - '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20 - '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20 - '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20 - '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.18.20 - '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.18.20 - '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.18.20 - '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.18.20 - '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.18.20 - '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.18.20 - '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.18.20 - '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.18.20 - dev: true - - /esbuild@0.19.7: - resolution: {integrity: sha512-6brbTZVqxhqgbpqBR5MzErImcpA0SQdoKOkcWK/U30HtQxnokIpG3TX2r0IJqbFUzqLjhU/zC1S5ndgakObVCQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.19.7 - '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.19.7 - '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.19.7 - '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.19.7 - '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.19.7 - '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.7 - '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.19.7 - '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.19.7 - '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.19.7 - '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.19.7 - '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.19.7 - '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.19.7 - '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.19.7 - '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.19.7 - '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.19.7 - '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.19.7 - '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.19.7 - '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.19.7 - '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.19.7 - '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.19.7 - '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.19.7 - '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.19.7 - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - - /escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - dev: true - - /escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - - /escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - dev: false - - /eslint-config-prettier@9.0.0(eslint@8.54.0): - resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.54.0 - dev: true - - /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0): - resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.54.0 - eslint-config-prettier: 9.0.0(eslint@8.54.0) - prettier: 3.1.0 - prettier-linter-helpers: 1.0.0 - synckit: 0.8.5 - dev: true - - /eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.54.0 - dev: true - - /eslint-plugin-react@7.33.2(eslint@8.54.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.7 - array.prototype.flatmap: 1.3.2 - array.prototype.tosorted: 1.1.2 - doctrine: 2.1.0 - es-iterator-helpers: 1.0.15 - eslint: 8.54.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 - object.hasown: 1.1.3 - object.values: 1.1.7 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.10 - dev: true - - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /eslint@8.54.0: - resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.3 - '@eslint/js': 8.54.0 - '@humanwhocodes/config-array': 0.11.13 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.23.0 - graphemer: 1.4.0 - ignore: 5.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) - eslint-visitor-keys: 3.4.3 - - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - - /etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - dev: true - - /event-emitter@0.3.5: - resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} - dependencies: - d: 1.0.1 - es5-ext: 0.10.62 - dev: false - - /eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - dev: true - - /execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - - /execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: true - - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: true - - /expand-brackets@2.1.4: - resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} - engines: {node: '>=0.10.0'} - dependencies: - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - posix-character-classes: 0.1.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /expand-tilde@2.0.2: - resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} - engines: {node: '>=0.10.0'} - dependencies: - homedir-polyfill: 1.0.3 - dev: true - - /ext@1.7.0: - resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} - dependencies: - type: 2.7.2 - dev: false - - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - dependencies: - is-extendable: 0.1.1 - dev: true - - /extend-shallow@3.0.2: - resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} - engines: {node: '>=0.10.0'} - dependencies: - assign-symbols: 1.0.0 - is-extendable: 1.0.1 - dev: true - - /extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - dev: false - - /external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true - - /extglob@2.0.4: - resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} - engines: {node: '>=0.10.0'} - dependencies: - array-unique: 0.3.2 - define-property: 1.0.0 - expand-brackets: 2.1.4 - extend-shallow: 2.0.1 - fragment-cache: 0.2.1 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - - /fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - dev: true - - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - - /fast-memoize@2.5.2: - resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==} - dev: false - - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - dependencies: - reusify: 1.0.4 - - /figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.2.0 - - /file-saver@2.0.5: - resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} - dev: false - - /fill-range@4.0.0: - resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-number: 3.0.0 - repeat-string: 1.6.1 - to-regex-range: 2.1.1 - dev: true - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /finalhandler@1.1.2: - resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} - engines: {node: '>= 0.8'} - dependencies: - debug: 2.6.9 - encodeurl: 1.0.2 - escape-html: 1.0.3 - on-finished: 2.3.0 - parseurl: 1.3.3 - statuses: 1.5.0 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /find-node-modules@2.1.3: - resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} - dependencies: - findup-sync: 4.0.0 - merge: 2.1.1 - dev: true - - /find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - dev: true - - /find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - dev: true - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - /findup-sync@4.0.0: - resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} - engines: {node: '>= 8'} - dependencies: - detect-file: 1.0.0 - is-glob: 4.0.3 - micromatch: 4.0.5 - resolve-dir: 1.0.1 - dev: true - - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.9 - keyv: 4.5.4 - rimraf: 3.0.2 - - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} - - /follow-redirects@1.15.3: - resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true - - /for-in@1.0.2: - resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} - engines: {node: '>=0.10.0'} - dev: true - - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: true - - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /frac@1.1.2: - resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==} - engines: {node: '>=0.8'} - dev: false - - /fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - dev: true - - /fragment-cache@0.2.1: - resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} - engines: {node: '>=0.10.0'} - dependencies: - map-cache: 0.2.2 - dev: true - - /fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: true - - /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: true - - /fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - dev: true - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true - - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - functions-have-names: 1.2.3 - dev: true - - /functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - - /gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} - - /get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - dev: true - - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} - dependencies: - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - dev: true - - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - dev: true - - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - dev: true - - /get-value@2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} - engines: {node: '>=0.10.0'} - dev: true - - /git-raw-commits@2.0.11: - resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==} - engines: {node: '>=10'} - hasBin: true - dependencies: - dargs: 7.0.0 - lodash: 4.17.21 - meow: 8.1.2 - split2: 3.2.2 - through2: 4.0.2 - dev: true - - /github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - dev: false - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 7.0.4 - path-scurry: 1.10.1 - dev: true - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - /global-dirs@0.1.1: - resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} - engines: {node: '>=4'} - dependencies: - ini: 1.3.8 - dev: true - - /global-modules@1.0.0: - resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} - engines: {node: '>=0.10.0'} - dependencies: - global-prefix: 1.0.2 - is-windows: 1.0.2 - resolve-dir: 1.0.1 - dev: true - - /global-prefix@1.0.2: - resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - homedir-polyfill: 1.0.3 - ini: 1.3.8 - is-windows: 1.0.2 - which: 1.3.1 - dev: true - - /globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - - /globals@13.23.0: - resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - dev: true - - /globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.0 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.2 - dev: true - - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - - /hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} - engines: {node: '>=6'} - dev: true - - /has-ansi@2.0.0: - resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 - dev: true - - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true - - /has-flag@1.0.0: - resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==} - engines: {node: '>=0.10.0'} - dev: true - - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - - /has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} - dependencies: - get-intrinsic: 1.2.2 - dev: true - - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - dev: true - - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: true - - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /has-value@0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 0.1.4 - isobject: 2.1.0 - dev: true - - /has-value@1.0.0: - resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} - engines: {node: '>=0.10.0'} - dependencies: - get-value: 2.0.6 - has-values: 1.0.0 - isobject: 3.0.1 - dev: true - - /has-values@0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} - engines: {node: '>=0.10.0'} - dev: true - - /has-values@1.0.0: - resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - kind-of: 4.0.0 - dev: true - - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: true - - /hast-util-from-parse5@7.1.2: - resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} - dependencies: - '@types/hast': 2.3.8 - '@types/unist': 2.0.10 - hastscript: 7.2.0 - property-information: 6.4.0 - vfile: 5.3.7 - vfile-location: 4.1.0 - web-namespaces: 2.0.1 - dev: false - - /hast-util-has-property@2.0.1: - resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==} - dev: false - - /hast-util-heading-rank@2.1.1: - resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==} - dependencies: - '@types/hast': 2.3.8 - dev: false - - /hast-util-is-element@2.1.3: - resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==} - dependencies: - '@types/hast': 2.3.8 - '@types/unist': 2.0.10 - dev: false - - /hast-util-parse-selector@3.1.1: - resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} - dependencies: - '@types/hast': 2.3.8 - dev: false - - /hast-util-raw@7.2.3: - resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} - dependencies: - '@types/hast': 2.3.8 - '@types/parse5': 6.0.3 - hast-util-from-parse5: 7.1.2 - hast-util-to-parse5: 7.1.0 - html-void-elements: 2.0.1 - parse5: 6.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - dev: false - - /hast-util-select@5.0.5: - resolution: {integrity: sha512-QQhWMhgTFRhCaQdgTKzZ5g31GLQ9qRb1hZtDPMqQaOhpLBziWcshUS0uCR5IJ0U1jrK/mxg35fmcq+Dp/Cy2Aw==} - dependencies: - '@types/hast': 2.3.8 - '@types/unist': 2.0.10 - bcp-47-match: 2.0.3 - comma-separated-tokens: 2.0.3 - css-selector-parser: 1.4.1 - direction: 2.0.1 - hast-util-has-property: 2.0.1 - hast-util-to-string: 2.0.0 - hast-util-whitespace: 2.0.1 - not: 0.1.0 - nth-check: 2.1.1 - property-information: 6.4.0 - space-separated-tokens: 2.0.2 - unist-util-visit: 4.1.2 - zwitch: 2.0.4 - dev: false - - /hast-util-to-html@8.0.4: - resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} - dependencies: - '@types/hast': 2.3.8 - '@types/unist': 2.0.10 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-raw: 7.2.3 - hast-util-whitespace: 2.0.1 - html-void-elements: 2.0.1 - property-information: 6.4.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.3 - zwitch: 2.0.4 - dev: false - - /hast-util-to-parse5@7.1.0: - resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} - dependencies: - '@types/hast': 2.3.8 - comma-separated-tokens: 2.0.3 - property-information: 6.4.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - dev: false - - /hast-util-to-string@2.0.0: - resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} - dependencies: - '@types/hast': 2.3.8 - dev: false - - /hast-util-whitespace@2.0.1: - resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} - dev: false - - /hastscript@7.2.0: - resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} - dependencies: - '@types/hast': 2.3.8 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 3.1.1 - property-information: 6.4.0 - space-separated-tokens: 2.0.2 - dev: false - - /he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} - hasBin: true - dev: true - - /hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} - dependencies: - react-is: 16.13.1 - dev: false - - /homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} - engines: {node: '>=0.10.0'} - dependencies: - parse-passwd: 1.0.0 - dev: true - - /hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true - - /hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - - /html-void-elements@2.0.1: - resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} - dev: false - - /htmlparser2@3.10.1: - resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==} - dependencies: - domelementtype: 1.3.1 - domhandler: 2.4.2 - domutils: 1.7.0 - entities: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - - /human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - - /human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} - dev: true - - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - dev: true - - /husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /i18next@20.6.1: - resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==} - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - dev: false - - /iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - dev: true - - /iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - safer-buffer: 2.1.2 - optional: true - - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: true - - /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} - engines: {node: '>= 4'} - - /image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} - hasBin: true - dev: true - - /immer@10.0.3: - resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} - dev: false - - /immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - dev: false - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - - /indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} - dev: true - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - /ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - dev: false - - /inquirer@8.2.5: - resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.1 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: true - - /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 - dev: true - - /intersection-observer@0.12.2: - resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==} - dev: false - - /is-accessor-descriptor@1.0.1: - resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} - engines: {node: '>= 0.10'} - dependencies: - hasown: 2.0.0 - dev: true - - /is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - dev: false - - /is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - dev: false - - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - dev: true - - /is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true - - /is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 - dev: true - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - dev: true - - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: true - - /is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} - dev: true - - /is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - dev: false - - /is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - dev: true - - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.0 - dev: true - - /is-data-descriptor@1.0.1: - resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} - engines: {node: '>= 0.4'} - dependencies: - hasown: 2.0.0 - dev: true - - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - dev: false - - /is-descriptor@0.1.7: - resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} - engines: {node: '>= 0.4'} - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - dev: true - - /is-descriptor@1.0.3: - resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} - engines: {node: '>= 0.4'} - dependencies: - is-accessor-descriptor: 1.0.1 - is-data-descriptor: 1.0.1 - dev: true - - /is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - dev: true - - /is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dev: true - - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - dev: true - - /is-extendable@1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} - dependencies: - is-plain-object: 2.0.4 - dev: true - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - - /is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - dependencies: - call-bind: 1.0.5 - dev: true - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - dev: true - - /is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - - /is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - dev: false - - /is-hotkey@0.2.0: - resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} - dev: false - - /is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: 3.0.0 - dev: true - - /is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} - dev: true - - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - dev: true - - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} - engines: {node: '>= 0.4'} - dev: true - - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-number@3.0.0: - resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-obj@2.0.0: - resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} - engines: {node: '>=8'} - dev: true - - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - /is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} - engines: {node: '>=0.10.0'} - dev: true - - /is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} - dev: false - - /is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - - /is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - dev: false - - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: true - - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - dev: true - - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - dependencies: - call-bind: 1.0.5 - dev: true - - /is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - - /is-text-path@2.0.0: - resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} - engines: {node: '>=8'} - dependencies: - text-extensions: 2.4.0 - dev: true - - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} - engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.13 - dev: true - - /is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} - dev: true - - /is-url@1.2.4: - resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} - dev: false - - /is-utf8@0.2.1: - resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} - dev: true - - /is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - dev: true - - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.5 - dev: true - - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - dev: true - - /is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} - dev: true - - /is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - dev: true - - /is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: true - - /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true - - /isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - - /isobject@2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} - engines: {node: '>=0.10.0'} - dependencies: - isarray: 1.0.0 - dev: true - - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - dev: true - - /iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} - dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.4 - set-function-name: 2.0.1 - dev: true - - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': registry.npmmirror.com/@pkgjs/parseargs@0.11.0 - dev: true - - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true - dev: true - - /js-base64@2.6.4: - resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} - dev: true - - /js-cookie@2.2.1: - resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} - dev: false - - /js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - - /jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - - /json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - - /json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - - /json2mq@0.2.0: - resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==} - dependencies: - string-convert: 0.2.1 - dev: false - - /json5@1.0.2: - resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true - - /jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.1 - optionalDependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - dev: true - - /jsonparse@1.3.1: - resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} - engines: {'0': node >= 0.2.0} - dev: true - - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - dependencies: - array-includes: 3.1.7 - array.prototype.flat: 1.3.2 - object.assign: 4.1.4 - object.values: 1.1.7 - dev: true - - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - - /kind-of@3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - - /kind-of@4.0.0: - resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: 1.1.6 - dev: true - - /kind-of@5.1.0: - resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==} - engines: {node: '>=0.10.0'} - dev: true - - /kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - dev: true - - /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - dev: false - - /less@4.2.0: - resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} - engines: {node: '>=6'} - hasBin: true - dependencies: - copy-anything: 2.0.6 - parse-node-version: 1.0.1 - tslib: 2.6.2 - optionalDependencies: - errno: registry.npmmirror.com/errno@0.1.8 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - image-size: registry.npmmirror.com/image-size@0.5.5 - make-dir: registry.npmmirror.com/make-dir@2.1.0 - mime: registry.npmmirror.com/mime@1.6.0 - needle: registry.npmmirror.com/needle@3.2.0 - source-map: registry.npmmirror.com/source-map@0.6.1 - transitivePeerDependencies: - - supports-color - dev: true - - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - dev: true - - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /lint-staged@15.1.0: - resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==} - engines: {node: '>=18.12.0'} - hasBin: true - dependencies: - chalk: 5.3.0 - commander: 11.1.0 - debug: 4.3.4 - execa: 8.0.1 - lilconfig: 2.1.0 - listr2: 7.0.2 - micromatch: 4.0.5 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /listr2@7.0.2: - resolution: {integrity: sha512-rJysbR9GKIalhTbVL2tYbF2hVyDnrf7pFUZBwjPaMIdadYHmeT+EVi/Bu3qd7ETQPahTotg2WRCatXwRBW554g==} - engines: {node: '>=16.0.0'} - dependencies: - cli-truncate: 3.1.0 - colorette: 2.0.20 - eventemitter3: 5.0.1 - log-update: 5.0.1 - rfdc: 1.3.0 - wrap-ansi: 8.1.0 - dev: true - - /loader-utils@1.4.2: - resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} - engines: {node: '>=4.0.0'} - dependencies: - big.js: 5.2.2 - emojis-list: 3.0.0 - json5: 1.0.2 - dev: true - - /locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - dev: true - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - - /lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - dev: false - - /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - /lodash.clonedeep@4.5.0: - resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} - dev: false - - /lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: false - - /lodash.foreach@4.5.0: - resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} - dev: false - - /lodash.isequal@4.5.0: - resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} - dev: false - - /lodash.isfunction@3.0.9: - resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} - dev: true - - /lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: true - - /lodash.kebabcase@4.1.1: - resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} - dev: true - - /lodash.map@4.6.0: - resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} - dev: true - - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: true - - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - - /lodash.mergewith@4.6.2: - resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} - dev: true - - /lodash.snakecase@4.1.1: - resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} - dev: true - - /lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - dev: true - - /lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - dev: false - - /lodash.toarray@4.4.0: - resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==} - dev: false - - /lodash.uniq@4.5.0: - resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} - dev: true - - /lodash.upperfirst@4.3.1: - resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - dev: true - - /lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - - /log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - - /log-update@5.0.1: - resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - ansi-escapes: 5.0.0 - cli-cursor: 4.0.0 - slice-ansi: 5.0.0 - strip-ansi: 7.1.0 - wrap-ansi: 8.1.0 - dev: true - - /longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - dev: false - - /longest@2.0.1: - resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} - engines: {node: '>=0.10.0'} - dev: true - - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} - dev: true - - /lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - - /lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} - engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - dev: true - - /map-cache@0.2.2: - resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} - engines: {node: '>=0.10.0'} - dev: true - - /map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} - engines: {node: '>=0.10.0'} - dev: true - - /map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} - engines: {node: '>=8'} - dev: true - - /map-visit@1.0.0: - resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} - engines: {node: '>=0.10.0'} - dependencies: - object-visit: 1.0.1 - dev: true - - /markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} - dev: false - - /mdast-util-definitions@5.1.2: - resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - unist-util-visit: 4.1.2 - dev: false - - /mdast-util-find-and-replace@2.2.2: - resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} - dependencies: - '@types/mdast': 3.0.15 - escape-string-regexp: 5.0.0 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - dev: false - - /mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - decode-named-character-reference: 1.0.2 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-gfm-autolink-literal@1.0.3: - resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} - dependencies: - '@types/mdast': 3.0.15 - ccount: 2.0.1 - mdast-util-find-and-replace: 2.2.2 - micromark-util-character: 1.2.0 - dev: false - - /mdast-util-gfm-footnote@1.0.2: - resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - micromark-util-normalize-identifier: 1.1.0 - dev: false - - /mdast-util-gfm-strikethrough@1.0.3: - resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - dev: false - - /mdast-util-gfm-table@1.0.7: - resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} - dependencies: - '@types/mdast': 3.0.15 - markdown-table: 3.0.3 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-gfm-task-list-item@1.0.2: - resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - dev: false - - /mdast-util-gfm@2.0.2: - resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} - dependencies: - mdast-util-from-markdown: 1.3.1 - mdast-util-gfm-autolink-literal: 1.0.3 - mdast-util-gfm-footnote: 1.0.2 - mdast-util-gfm-strikethrough: 1.0.3 - mdast-util-gfm-table: 1.0.7 - mdast-util-gfm-task-list-item: 1.0.2 - mdast-util-to-markdown: 1.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - /mdast-util-phrasing@3.0.1: - resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} - dependencies: - '@types/mdast': 3.0.15 - unist-util-is: 5.2.1 - dev: false - - /mdast-util-to-hast@12.3.0: - resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} - dependencies: - '@types/hast': 2.3.8 - '@types/mdast': 3.0.15 - mdast-util-definitions: 5.1.2 - micromark-util-sanitize-uri: 1.2.0 - trim-lines: 3.0.1 - unist-util-generated: 2.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - dev: false - - /mdast-util-to-markdown@1.5.0: - resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} - dependencies: - '@types/mdast': 3.0.15 - '@types/unist': 2.0.10 - longest-streak: 3.1.0 - mdast-util-phrasing: 3.0.1 - mdast-util-to-string: 3.2.0 - micromark-util-decode-string: 1.1.0 - unist-util-visit: 4.1.2 - zwitch: 2.0.4 - dev: false - - /mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} - dependencies: - '@types/mdast': 3.0.15 - dev: false - - /mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: true - - /mdn-data@2.0.28: - resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} - dev: true - - /mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true - - /meow@12.1.1: - resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} - engines: {node: '>=16.10'} - dev: true - - /meow@8.1.2: - resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} - engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.5 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: true - - /merge-options@1.0.1: - resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==} - engines: {node: '>=4'} - dependencies: - is-plain-obj: 1.1.0 - dev: true - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /merge@2.1.1: - resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} - dev: true - - /micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} - dependencies: - decode-named-character-reference: 1.0.2 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-extension-gfm-autolink-literal@1.0.5: - resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-extension-gfm-footnote@1.1.2: - resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} - dependencies: - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-extension-gfm-strikethrough@1.0.7: - resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-extension-gfm-table@1.0.7: - resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-extension-gfm-tagfilter@1.0.2: - resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} - dependencies: - micromark-util-types: 1.1.0 - dev: false - - /micromark-extension-gfm-task-list-item@1.0.5: - resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-extension-gfm@2.0.3: - resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} - dependencies: - micromark-extension-gfm-autolink-literal: 1.0.5 - micromark-extension-gfm-footnote: 1.1.2 - micromark-extension-gfm-strikethrough: 1.0.7 - micromark-extension-gfm-table: 1.0.7 - micromark-extension-gfm-tagfilter: 1.0.2 - micromark-extension-gfm-task-list-item: 1.0.5 - micromark-util-combine-extensions: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} - dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} - dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} - dependencies: - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} - dependencies: - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} - dev: false - - /micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} - dev: false - - /micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} - dependencies: - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} - dependencies: - micromark-util-types: 1.1.0 - dev: false - - /micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} - dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 - dev: false - - /micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} - dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - dev: false - - /micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} - dev: false - - /micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} - dev: false - - /micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} - dependencies: - '@types/debug': 4.1.12 - debug: 4.3.4 - decode-named-character-reference: 1.0.2 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 - transitivePeerDependencies: - - supports-color - dev: false - - /micromatch@3.1.0: - resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - braces: 2.3.2 - define-property: 1.0.0 - extend-shallow: 2.0.1 - extglob: 2.0.4 - fragment-cache: 0.2.1 - kind-of: 5.1.0 - nanomatch: 1.2.13 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false - - /mime-match@1.0.2: - resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} - dependencies: - wildcard: 1.1.2 - dev: false - - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - - /mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true - - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} - engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - - /minimist@1.2.7: - resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} - dev: true - - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true - - /mixin-deep@1.3.2: - resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} - engines: {node: '>=0.10.0'} - dependencies: - for-in: 1.0.2 - is-extendable: 1.0.1 - dev: true - - /mockjs@1.1.0: - resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==} - hasBin: true - dependencies: - commander: 11.1.0 - - /mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - dev: false - - /ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - dev: true - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - requiresBuild: true - optional: true - - /mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: true - - /namespace-emitter@2.0.1: - resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} - dev: false - - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - /nanomatch@1.2.13: - resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} - engines: {node: '>=0.10.0'} - dependencies: - arr-diff: 4.0.0 - array-unique: 0.3.2 - define-property: 2.0.2 - extend-shallow: 3.0.2 - fragment-cache: 0.2.1 - is-windows: 1.0.2 - kind-of: 6.0.3 - object.pick: 1.3.0 - regex-not: 1.0.2 - snapdragon: 0.8.2 - to-regex: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - /next-tick@1.1.0: - resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} - dev: false - - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - - /normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.2 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - dev: true - - /not@0.1.0: - resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==} - dev: false - - /npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - - /nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - dependencies: - boolbase: 1.0.0 - - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - /object-copy@0.1.0: - resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} - engines: {node: '>=0.10.0'} - dependencies: - copy-descriptor: 0.1.1 - define-property: 0.2.5 - kind-of: 3.2.2 - dev: true - - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true - - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: true - - /object-visit@1.0.1: - resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} - dependencies: - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /object.pick@1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /on-finished@2.3.0: - resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} - engines: {node: '>= 0.8'} - dependencies: - ee-first: 1.1.1 - dev: true - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - - /onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: true - - /open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==} - engines: {node: '>=14.16'} - dependencies: - default-browser: 4.0.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - is-wsl: 2.2.0 - dev: true - - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} - engines: {node: '>= 0.8.0'} - dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - - /ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.2 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - - /os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} - dev: true - - /p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - dev: true - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - - /p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - dev: true - - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - - /p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: true - - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - - /parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} - dependencies: - '@types/unist': 2.0.10 - character-entities: 2.0.2 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.0.2 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - dev: false - - /parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.23.4 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - - /parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} - engines: {node: '>= 0.10'} - dev: true - - /parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} - dev: false - - /parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} - engines: {node: '>=0.10.0'} - dev: true - - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: false - - /parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - dev: true - - /pascalcase@0.1.1: - resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} - engines: {node: '>=0.10.0'} - dev: true - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true - - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 10.1.0 - minipass: 7.0.4 - dev: true - - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - dev: true - - /path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - dev: true - - /pathe@0.2.0: - resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==} - dev: true - - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} - hasBin: true - dev: true - - /pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - requiresBuild: true - optional: true - - /posix-character-classes@0.1.1: - resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} - engines: {node: '>=0.10.0'} - dev: true - - /postcss-calc@9.0.1(postcss@8.4.31): - resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.2 - dependencies: - postcss: 8.4.31 - postcss-selector-parser: 6.0.13 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-colormin@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.22.1 - caniuse-api: 3.0.0 - colord: 2.9.3 - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-convert-values@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.22.1 - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-discard-comments@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - dev: true - - /postcss-discard-duplicates@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - dev: true - - /postcss-discard-empty@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - dev: true - - /postcss-discard-overridden@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - dev: true - - /postcss-merge-longhand@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - stylehacks: 6.0.0(postcss@8.4.31) - dev: true - - /postcss-merge-rules@6.0.1(postcss@8.4.31): - resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.22.1 - caniuse-api: 3.0.0 - cssnano-utils: 4.0.0(postcss@8.4.31) - postcss: 8.4.31 - postcss-selector-parser: 6.0.13 - dev: true - - /postcss-minify-font-values@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-minify-gradients@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - colord: 2.9.3 - cssnano-utils: 4.0.0(postcss@8.4.31) - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-minify-params@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.22.1 - cssnano-utils: 4.0.0(postcss@8.4.31) - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-minify-selectors@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-selector-parser: 6.0.13 - dev: true - - /postcss-normalize-charset@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - dev: true - - /postcss-normalize-display-values@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-normalize-positions@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-normalize-repeat-style@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-normalize-string@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-normalize-timing-functions@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-normalize-unicode@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.22.1 - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-normalize-url@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-normalize-whitespace@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-ordered-values@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - cssnano-utils: 4.0.0(postcss@8.4.31) - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-prefix-selector@1.16.0(postcss@5.2.18): - resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==} - peerDependencies: - postcss: '>4 <9' - dependencies: - postcss: 5.2.18 - dev: true - - /postcss-reduce-initial@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.22.1 - caniuse-api: 3.0.0 - postcss: 8.4.31 - dev: true - - /postcss-reduce-transforms@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - - /postcss-svgo@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} - engines: {node: ^14 || ^16 || >= 18} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-value-parser: 4.2.0 - svgo: 3.0.4 - dev: true - - /postcss-unique-selectors@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - postcss: 8.4.31 - postcss-selector-parser: 6.0.13 - dev: true - - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true - - /postcss@5.2.18: - resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==} - engines: {node: '>=0.12'} - dependencies: - chalk: 1.1.3 - js-base64: 2.6.4 - source-map: registry.npmmirror.com/source-map@0.5.7 - supports-color: 3.2.3 - dev: true - - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - - /posthtml-parser@0.2.1: - resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==} - dependencies: - htmlparser2: 3.10.1 - isobject: 2.1.0 - dev: true - - /posthtml-rename-id@1.0.12: - resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - - /posthtml-render@1.4.0: - resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==} - engines: {node: '>=10'} - dev: true - - /posthtml-svg-mode@1.0.3: - resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==} - dependencies: - merge-options: 1.0.1 - posthtml: 0.9.2 - posthtml-parser: 0.2.1 - posthtml-render: 1.4.0 - dev: true - - /posthtml@0.9.2: - resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==} - engines: {node: '>=0.10.0'} - dependencies: - posthtml-parser: 0.2.1 - posthtml-render: 1.4.0 - dev: true - - /preact@10.19.2: - resolution: {integrity: sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg==} - dev: false - - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - /prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - dependencies: - fast-diff: 1.3.0 - dev: true - - /prettier@3.1.0: - resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} - engines: {node: '>=14'} - hasBin: true - - /prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} - dev: false - - /prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - - /property-information@6.4.0: - resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} - dev: false - - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: false - - /prr@1.0.1: - resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} - requiresBuild: true - optional: true - - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - - /qrcode.react@3.1.0(react@18.2.0): - resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - - /query-string@4.3.4: - resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==} - engines: {node: '>=0.10.0'} - dependencies: - object-assign: 4.1.1 - strict-uri-encode: 1.1.0 - dev: true - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - /quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} - engines: {node: '>=8'} - dev: true - - /rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - array-tree-filter: 2.1.0 - classnames: 2.3.2 - rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) - rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==} - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-field-form@1.40.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OM3N01X2BYFGJDJcwpk9/BBtlwgveE7eh2SQAKIxVCt9KVWlODYJ9ypTHQdxchfDbeJKJKxMBFXlLAmyvlgPHg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - async-validator: 4.2.5 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/portal': 1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-dialog: 9.3.4(react-dom@18.2.0)(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/mini-decimal': 1.1.0 - classnames: 2.3.2 - rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-/HjTaKi8/Ts4zNbYaB5oWCquxFyFQO4Co1MnMgoCeGJlpe7k8Eir2HN0a0F9IHDmmo+GYiGgPpz7w/d/krzsJA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) - rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) - rc-textarea: 1.5.3(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-pagination@3.7.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-IxSzKapd13L91/195o1TPkKnCNw8gIR25UP1GCW/7c7n/slhld4npu2j2PB9IWjXm4SssaAaSAt2lscYog7wzg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==} - engines: {node: '>=8.x'} - peerDependencies: - date-fns: '>= 2.x' - dayjs: '>= 1.x' - luxon: '>= 3.x' - moment: '>= 2.x' - react: '>=16.9.0' - react-dom: '>=16.9.0' - peerDependenciesMeta: - date-fns: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - dayjs: 1.11.10 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - resize-observer-polyfill: 1.5.1 - dev: false - - /rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-overflow: 1.3.2(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-slider@10.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ZlpWjFhOlEf0w4Ng31avFBkXNNBj60NAcTPaIoiCxBkJ29wOtHSPMqv9PZeEoqmx64bpJkgK7kPa47HG4LPzww==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-3xVcdCC5OLeOOhaCg+5Lps2oPreM/GWXmUXWTSX4p6vF7F76ABM4dfPpMJ9Dnf5yGRyh+8pe7FRyhRVnWw2H/w==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/context': 1.4.0(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-83u3l2QkO0UznCzdBLEk9WnNcT+imtmDmMT993sUUEOGnNQAmqOdev0XjeqrcvsAMe9CDpAWDFd7L/RZw+LVJQ==} - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-dropdown: 4.1.0(react-dom@18.2.0)(react@18.2.0) - rc-menu: 9.12.2(react-dom@18.2.0)(react@18.2.0) - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-oH682ghHx++stFNYrosPRBfwsypywrTXpaD0/5Z8MPkUOnyOQUaY9ueL9tMu6BP1LfsuYQ1VLpg5OtshViLNgA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-input: 1.3.6(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - '@rc-component/trigger': 1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: 2.3.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-select: 14.10.0(react-dom@18.2.0)(react@18.2.0) - rc-tree: 5.8.2(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==} - engines: {node: '>=10.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-motion: 2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - rc-virtual-list: 3.11.3(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - rc-util: 5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': 7.23.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 - dev: false - - /rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==} - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-resize-observer: 1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /re-resizable@6.9.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-0xYKS5+Z0zk+vICQlcZW+g54CcJTTmHluA7JUUgvERDxnKAnytylcyPsA+BSFi759s5hPlHmBRegFrwXs2FuBQ==} - peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 - react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 - dependencies: - fast-memoize: 2.5.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /react-countup@6.5.0(react@18.2.0): - resolution: {integrity: sha512-26JFHbUHsHxu8SetkJwWVIUEkaNnrj4P9msxNGC8tS4hGr1bngRzbwtJYOgXD2G/ItjaKJ3JfYKd85sw7qRVeA==} - peerDependencies: - react: '>= 16.3.0' - dependencies: - countup.js: 2.8.0 - react: 18.2.0 - dev: false - - /react-cropper@2.3.3(react@18.2.0): - resolution: {integrity: sha512-zghiEYkUb41kqtu+2jpX2Ntigf+Jj1dF9ew4lAobPzI2adaPE31z0p+5TcWngK6TvmWQUwK3lj4G+NDh1PDQ1w==} - peerDependencies: - react: '>=17.0.2' - dependencies: - cropperjs: 1.6.1 - react: 18.2.0 - dev: false - - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} - peerDependencies: - react: ^18.2.0 - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 - dev: false - - /react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==} - peerDependencies: - react: '>= 16.3.0' - react-dom: '>= 16.3.0' - dependencies: - clsx: 1.2.1 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: false - - /react-markdown@8.0.7(@types/react@18.2.38)(react@18.2.0): - resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==} - peerDependencies: - '@types/react': '>=16' - react: '>=16' - dependencies: - '@types/hast': 2.3.8 - '@types/prop-types': 15.7.11 - '@types/react': 18.2.38 - '@types/unist': 2.0.10 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 2.0.1 - prop-types: 15.8.1 - property-information: 6.4.0 - react: 18.2.0 - react-is: 18.2.0 - remark-parse: 10.0.2 - remark-rehype: 10.1.0 - space-separated-tokens: 2.0.2 - style-to-object: 0.4.4 - unified: 10.1.2 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - transitivePeerDependencies: - - supports-color - dev: false - - /react-org-tree@1.0.1: - resolution: {integrity: sha512-NK1d8VIAzxJyMC/Rx9MupAusoFnokYr81Hw3oEpqxqBLQmpBVAexjvPSAJmhCmsom9Zymu+BMNrjRw5D54n7aw==} - dependencies: - classnames: 2.3.2 - dev: false - - /react-redux@8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.38)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1): - resolution: {integrity: sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==} - peerDependencies: - '@types/react': ^16.8 || ^17.0 || ^18.0 - '@types/react-dom': ^16.8 || ^17.0 || ^18.0 - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - react-native: '>=0.59' - redux: ^4 || ^5.0.0-beta.0 - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - react-dom: - optional: true - react-native: - optional: true - redux: - optional: true - dependencies: - '@babel/runtime': 7.23.4 - '@types/hoist-non-react-statics': 3.3.5 - '@types/react': 18.2.38 - '@types/react-dom': 18.2.17 - '@types/use-sync-external-store': 0.0.3 - hoist-non-react-statics: 3.3.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: 18.2.0 - redux: 4.2.1 - use-sync-external-store: 1.2.0(react@18.2.0) - dev: false - - /react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} - engines: {node: '>=0.10.0'} - dev: true - - /react-rnd@10.4.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-0m887AjQZr6p2ADLNnipquqsDq4XJu/uqVqI3zuoGD19tRm6uB83HmZWydtkilNp5EWsOHbLGF4IjWMdd5du8Q==} - peerDependencies: - react: '>=16.3.0' - react-dom: '>=16.3.0' - dependencies: - re-resizable: 6.9.6(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-draggable: 4.4.5(react-dom@18.2.0)(react@18.2.0) - tslib: 2.3.1 - dev: false - - /react-router-dom@6.20.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': 1.13.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: 6.20.0(react@18.2.0) - dev: false - - /react-router@6.20.0(react@18.2.0): - resolution: {integrity: sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==} - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - dependencies: - '@remix-run/router': 1.13.0 - react: 18.2.0 - dev: false - - /react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.0): - resolution: {integrity: sha512-fc7cBosfhnbh53Mbm6a45W+F735jwZ1UFIYSrIqcO/gRIFoDyZeMtgKlpV4DdyQfbCzdh5LoALLTDRxhMpTyXQ==} - peerDependencies: - '@types/sortablejs': '1' - react: '>=16.9.0' - react-dom: '>=16.9.0' - sortablejs: '1' - dependencies: - '@types/sortablejs': 1.15.7 - classnames: 2.3.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - sortablejs: 1.15.0 - tiny-invariant: 1.2.0 - dev: false - - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - dev: false - - /read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - dev: true - - /read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': 2.4.4 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - dev: true - - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: true - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: true - - /redux-persist@6.0.0(react@18.2.0)(redux@4.2.1): - resolution: {integrity: sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==} - peerDependencies: - react: '>=16' - redux: '>4.0.0' - peerDependenciesMeta: - react: - optional: true - dependencies: - react: 18.2.0 - redux: 4.2.1 - dev: false - - /redux-thunk@3.1.0(redux@5.0.0): - resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==} - peerDependencies: - redux: ^5.0.0 - dependencies: - redux: 5.0.0 - dev: false - - /redux@4.2.1: - resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==} - dependencies: - '@babel/runtime': 7.23.4 - dev: false - - /redux@5.0.0: - resolution: {integrity: sha512-blLIYmYetpZMET6Q6uCY7Jtl/Im5OBldy+vNPauA8vvsdqyt66oep4EUpAMWNHauTC6xa9JuRPhRB72rY82QGA==} - dev: false - - /reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - globalthis: 1.0.3 - which-builtin-type: 1.1.3 - dev: true - - /refractor@4.8.1: - resolution: {integrity: sha512-/fk5sI0iTgFYlmVGYVew90AoYnNMP6pooClx/XKqyeeCQXrL0Kvgn8V0VEht5ccdljbzzF1i3Q213gcntkRExg==} - dependencies: - '@types/hast': 2.3.8 - '@types/prismjs': 1.26.3 - hastscript: 7.2.0 - parse-entities: 4.0.1 - dev: false - - /regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} - dev: false - - /regex-not@1.0.2: - resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - safe-regex: 1.1.0 - dev: true - - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - set-function-name: 2.0.1 - dev: true - - /rehype-attr@2.1.4: - resolution: {integrity: sha512-iAeaL5JyF4XxkcvWzpi/0SAF7iV7qOTaHS56tJuEsXziQc3+PEmMn65kV8OFgbO9mRVY7J1fRC/aLvot1PsNkg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - unified: 10.1.2 - unist-util-visit: 4.1.2 - dev: false - - /rehype-autolink-headings@6.1.1: - resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==} - dependencies: - '@types/hast': 2.3.8 - extend: 3.0.2 - hast-util-has-property: 2.0.1 - hast-util-heading-rank: 2.1.1 - hast-util-is-element: 2.1.3 - unified: 10.1.2 - unist-util-visit: 4.1.2 - dev: false - - /rehype-ignore@1.0.5: - resolution: {integrity: sha512-JQXS5eDwXaYKwB8JEYFJJA/YvGi0sSNUOYuiURMtuPTg8tuWHFB91JMYLbImH1FyvyGQM4fIBqNMAPB50WR2Bw==} - engines: {node: ^14.13.1 || >=16.0.0} - dependencies: - hast-util-select: 5.0.5 - unified: 10.1.2 - unist-util-visit: 4.1.2 - dev: false - - /rehype-parse@8.0.5: - resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} - dependencies: - '@types/hast': 2.3.8 - hast-util-from-parse5: 7.1.2 - parse5: 6.0.1 - unified: 10.1.2 - dev: false - - /rehype-prism-plus@1.6.3: - resolution: {integrity: sha512-F6tn376zimnvy+xW0bSnryul+rvVL7NhDIkavc9kAuzDx5zIZW04A6jdXPkcFBhojcqZB8b6pHt6CLqiUx+Tbw==} - dependencies: - hast-util-to-string: 2.0.0 - parse-numeric-range: 1.3.0 - refractor: 4.8.1 - rehype-parse: 8.0.5 - unist-util-filter: 4.0.1 - unist-util-visit: 4.1.2 - dev: false - - /rehype-raw@6.1.1: - resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==} - dependencies: - '@types/hast': 2.3.8 - hast-util-raw: 7.2.3 - unified: 10.1.2 - dev: false - - /rehype-rewrite@3.0.6: - resolution: {integrity: sha512-REDTNCvsKcAazy8IQWzKp66AhSUDSOIKssSCqNqCcT9sN7JCwAAm3mWGTUdUzq80ABuy8d0D6RBwbnewu1aY1g==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - hast-util-select: 5.0.5 - unified: 10.1.2 - unist-util-visit: 4.1.2 - dev: false - - /rehype-slug@5.1.0: - resolution: {integrity: sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==} - dependencies: - '@types/hast': 2.3.8 - github-slugger: 2.0.0 - hast-util-has-property: 2.0.1 - hast-util-heading-rank: 2.1.1 - hast-util-to-string: 2.0.0 - unified: 10.1.2 - unist-util-visit: 4.1.2 - dev: false - - /rehype-stringify@9.0.4: - resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} - dependencies: - '@types/hast': 2.3.8 - hast-util-to-html: 8.0.4 - unified: 10.1.2 - dev: false - - /rehype@12.0.1: - resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==} - dependencies: - '@types/hast': 2.3.8 - rehype-parse: 8.0.5 - rehype-stringify: 9.0.4 - unified: 10.1.2 - dev: false - - /remark-gfm@3.0.1: - resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} - dependencies: - '@types/mdast': 3.0.15 - mdast-util-gfm: 2.0.2 - micromark-extension-gfm: 2.0.3 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-parse@10.0.2: - resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} - dependencies: - '@types/mdast': 3.0.15 - mdast-util-from-markdown: 1.3.1 - unified: 10.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - /remark-rehype@10.1.0: - resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} - dependencies: - '@types/hast': 2.3.8 - '@types/mdast': 3.0.15 - mdast-util-to-hast: 12.3.0 - unified: 10.1.2 - dev: false - - /repeat-element@1.1.4: - resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} - engines: {node: '>=0.10.0'} - dev: true - - /repeat-string@1.6.1: - resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} - engines: {node: '>=0.10'} - dev: true - - /require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - dev: true - - /require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} - dev: true - - /reselect@5.0.1: - resolution: {integrity: sha512-D72j2ubjgHpvuCiORWkOUxndHJrxDaSolheiz5CO+roz8ka97/4msh2E8F5qay4GawR5vzBt5MkbDHT+Rdy/Wg==} - dev: false - - /resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - dev: false - - /resolve-dir@1.0.1: - resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: 2.0.2 - global-modules: 1.0.0 - dev: true - - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - - /resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true - - /resolve-global@1.0.0: - resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} - engines: {node: '>=8'} - dependencies: - global-dirs: 0.1.1 - dev: true - - /resolve-url@0.2.1: - resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} - deprecated: https://github.com/lydell/resolve-url#deprecated - dev: true - - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /ret@0.1.15: - resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} - engines: {node: '>=0.12'} - dev: true - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - - /rfdc@1.3.0: - resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==} - dev: true - - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 - - /rimraf@5.0.5: - resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} - engines: {node: '>=14'} - hasBin: true - dependencies: - glob: 10.3.10 - dev: true - - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} - engines: {node: '>=10.0.0'} - hasBin: true - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: true - - /rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==} - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: true - - /rollup@4.5.2: - resolution: {integrity: sha512-CRK1uoROBfkcqrZKyaFcqCcZWNsvJ6yVYZkqTlRocZhO2s5yER6Z3f/QaYtO8RGyloPnmhwgzuPQpNGeK210xQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - '@rollup/rollup-android-arm-eabi': registry.npmmirror.com/@rollup/rollup-android-arm-eabi@4.5.2 - '@rollup/rollup-android-arm64': registry.npmmirror.com/@rollup/rollup-android-arm64@4.5.2 - '@rollup/rollup-darwin-arm64': registry.npmmirror.com/@rollup/rollup-darwin-arm64@4.5.2 - '@rollup/rollup-darwin-x64': registry.npmmirror.com/@rollup/rollup-darwin-x64@4.5.2 - '@rollup/rollup-linux-arm-gnueabihf': registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf@4.5.2 - '@rollup/rollup-linux-arm64-gnu': registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu@4.5.2 - '@rollup/rollup-linux-arm64-musl': registry.npmmirror.com/@rollup/rollup-linux-arm64-musl@4.5.2 - '@rollup/rollup-linux-x64-gnu': registry.npmmirror.com/@rollup/rollup-linux-x64-gnu@4.5.2 - '@rollup/rollup-linux-x64-musl': registry.npmmirror.com/@rollup/rollup-linux-x64-musl@4.5.2 - '@rollup/rollup-win32-arm64-msvc': registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc@4.5.2 - '@rollup/rollup-win32-ia32-msvc': registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.5.2 - '@rollup/rollup-win32-x64-msvc': registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.5.2 - fsevents: registry.npmmirror.com/fsevents@2.3.3 - - /run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==} - engines: {node: '>=12'} - dependencies: - execa: 5.1.1 - dev: true - - /run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} - dev: true - - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - - /rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - dependencies: - tslib: 2.6.2 - dev: true - - /sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - dev: false - - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} - engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - isarray: 2.0.5 - dev: true - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: true - - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-regex: 1.1.4 - dev: true - - /safe-regex@1.1.0: - resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} - dependencies: - ret: 0.1.15 - dev: true - - /safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - - /sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - requiresBuild: true - optional: true - - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - dependencies: - loose-envify: 1.4.0 - dev: false - - /screenfull@5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} - engines: {node: '>=0.10.0'} - dev: false - - /scroll-into-view-if-needed@2.2.31: - resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} - dependencies: - compute-scroll-into-view: 1.0.20 - dev: false - - /scroll-into-view-if-needed@3.1.0: - resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} - dependencies: - compute-scroll-into-view: 3.1.0 - dev: false - - /semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} - hasBin: true - - /semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} - hasBin: true - - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.1 - dev: true - - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.1 - dev: true - - /set-value@2.0.1: - resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 2.0.1 - is-extendable: 0.1.1 - is-plain-object: 2.0.4 - split-string: 3.1.0 - dev: true - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 - dev: true - - /signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - dev: true - - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true - - /slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - dev: true - - /slate-history@0.66.0(slate@0.72.8): - resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==} - peerDependencies: - slate: '>=0.65.3' - dependencies: - is-plain-object: 5.0.0 - slate: 0.72.8 - dev: false - - /slate@0.72.8: - resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==} - dependencies: - immer: 9.0.21 - is-plain-object: 5.0.0 - tiny-warning: 1.0.3 - dev: false - - /slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - dev: true - - /snabbdom@3.5.1: - resolution: {integrity: sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==} - engines: {node: '>=8.3.0'} - dev: false - - /snapdragon-node@2.1.1: - resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 1.0.0 - isobject: 3.0.1 - snapdragon-util: 3.0.1 - dev: true - - /snapdragon-util@3.0.1: - resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /snapdragon@0.8.2: - resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} - engines: {node: '>=0.10.0'} - dependencies: - base: 0.11.2 - debug: 2.6.9 - define-property: 0.2.5 - extend-shallow: 2.0.1 - map-cache: 0.2.2 - source-map: registry.npmmirror.com/source-map@0.5.7 - source-map-resolve: 0.5.3 - use: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /sortablejs@1.15.0: - resolution: {integrity: sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==} - dev: false - - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map-resolve@0.5.3: - resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - dependencies: - atob: 2.1.2 - decode-uri-component: 0.2.2 - resolve-url: 0.2.1 - source-map-url: 0.4.1 - urix: 0.1.0 - dev: true - - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - - /source-map-url@0.4.1: - resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} - deprecated: See https://github.com/lydell/source-map-url#deprecated - dev: true - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - - /space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - dev: false - - /spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.16 - dev: true - - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true - - /spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.16 - dev: true - - /spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==} - dev: true - - /split-string@3.1.0: - resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: 3.0.2 - dev: true - - /split2@3.2.2: - resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - dependencies: - readable-stream: 3.6.2 - dev: true - - /split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} - dev: true - - /ssf@0.11.2: - resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==} - engines: {node: '>=0.8'} - dependencies: - frac: 1.1.2 - dev: false - - /ssr-window@3.0.0: - resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==} - dev: false - - /stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - dev: true - - /static-extend@0.1.2: - resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 0.2.5 - object-copy: 0.1.0 - dev: true - - /statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - dev: true - - /strict-uri-encode@1.1.0: - resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==} - engines: {node: '>=0.10.0'} - dev: true - - /string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} - dev: true - - /string-convert@0.2.1: - resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==} - dev: false - - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - dev: true - - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 - side-channel: 1.0.4 - dev: true - - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: true - - /stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 - dev: false - - /strip-ansi@3.0.1: - resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==} - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 - dev: true - - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - dependencies: - ansi-regex: 6.0.1 - dev: true - - /strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - dev: true - - /strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true - - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: true - - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - - /style-mod@4.1.0: - resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} - dev: false - - /style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} - dependencies: - inline-style-parser: 0.1.1 - dev: false - - /stylehacks@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} - engines: {node: ^14 || ^16 || >=18.0} - peerDependencies: - postcss: ^8.2.15 - dependencies: - browserslist: 4.22.1 - postcss: 8.4.31 - postcss-selector-parser: 6.0.13 - dev: true - - /stylis@4.3.0: - resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} - dev: false - - /supports-color@2.0.0: - resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} - engines: {node: '>=0.8.0'} - dev: true - - /supports-color@3.2.3: - resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==} - engines: {node: '>=0.8.0'} - dependencies: - has-flag: 1.0.0 - dev: true - - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /svg-baker@1.7.0: - resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} - dependencies: - bluebird: 3.7.2 - clone: 2.1.2 - he: 1.2.0 - image-size: 0.5.5 - loader-utils: 1.4.2 - merge-options: 1.0.1 - micromatch: 3.1.0 - postcss: 5.2.18 - postcss-prefix-selector: 1.16.0(postcss@5.2.18) - posthtml-rename-id: 1.0.12 - posthtml-svg-mode: 1.0.3 - query-string: 4.3.4 - traverse: 0.6.7 - transitivePeerDependencies: - - supports-color - dev: true - - /svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} - engines: {node: '>=10.13.0'} - hasBin: true - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 4.3.0 - css-tree: 1.1.3 - csso: 4.2.0 - picocolors: 1.0.0 - stable: 0.1.8 - dev: true - - /svgo@3.0.4: - resolution: {integrity: sha512-T+Xul3JwuJ6VGXKo/p2ndqx1ibxNKnLTvRc1ZTWKCfyKS/GgNjRZcYsK84fxTsy/izr91g/Rwx6fGnVgaFSI5g==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - '@trysound/sax': 0.2.0 - commander: 7.2.0 - css-select: 5.1.0 - css-tree: 2.3.1 - css-what: 6.1.0 - csso: 5.0.5 - picocolors: 1.0.0 - dev: true - - /synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/utils': 2.4.2 - tslib: 2.6.2 - dev: true - - /terser@5.24.0: - resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==} - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.5 - acorn: 8.11.2 - commander: 2.20.3 - source-map-support: 0.5.21 - - /text-extensions@2.4.0: - resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} - engines: {node: '>=8'} - dev: true - - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - /throttle-debounce@5.0.0: - resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==} - engines: {node: '>=12.22'} - dev: false - - /through2@4.0.2: - resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} - dependencies: - readable-stream: 3.6.2 - dev: true - - /through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - - /tiny-invariant@1.2.0: - resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==} - dev: false - - /tiny-warning@1.0.3: - resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - dev: false - - /titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==} - engines: {node: '>=12'} - dev: true - - /tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: true - - /to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - - /to-object-path@0.3.0: - resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} - engines: {node: '>=0.10.0'} - dependencies: - kind-of: 3.2.2 - dev: true - - /to-regex-range@2.1.1: - resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} - engines: {node: '>=0.10.0'} - dependencies: - is-number: 3.0.0 - repeat-string: 1.6.1 - dev: true - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /to-regex@3.0.2: - resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} - engines: {node: '>=0.10.0'} - dependencies: - define-property: 2.0.2 - extend-shallow: 3.0.2 - regex-not: 1.0.2 - safe-regex: 1.1.0 - dev: true - - /toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - dev: false - - /traverse@0.6.7: - resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} - dev: true - - /trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - dev: false - - /trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} - engines: {node: '>=8'} - dev: true - - /trough@2.1.0: - resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} - dev: false - - /ts-api-utils@1.0.3(typescript@5.3.2): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' - dependencies: - typescript: 5.3.2 - dev: true - - /tslib@2.3.0: - resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} - dev: false - - /tslib@2.3.1: - resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} - dev: false - - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - - /type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} - engines: {node: '>=10'} - dev: true - - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - /type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - dev: true - - /type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} - dev: true - - /type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} - dev: true - - /type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} - dev: true - - /type@1.2.0: - resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==} - dev: false - - /type@2.7.2: - resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==} - dev: false - - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - dev: true - - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - is-typed-array: 1.1.12 - dev: true - - /typescript@5.3.2: - resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} - engines: {node: '>=14.17'} - hasBin: true - - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - dependencies: - call-bind: 1.0.5 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: true - - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - /unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - dependencies: - '@types/unist': 2.0.10 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.1.0 - trough: 2.1.0 - vfile: 5.3.7 - dev: false - - /union-value@1.0.1: - resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} - engines: {node: '>=0.10.0'} - dependencies: - arr-union: 3.1.0 - get-value: 2.0.6 - is-extendable: 0.1.1 - set-value: 2.0.1 - dev: true - - /unist-util-filter@4.0.1: - resolution: {integrity: sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==} - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - dev: false - - /unist-util-generated@2.0.1: - resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} - dev: false - - /unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} - dependencies: - '@types/unist': 2.0.10 - dev: false - - /unist-util-position@4.0.4: - resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} - dependencies: - '@types/unist': 2.0.10 - dev: false - - /unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - dependencies: - '@types/unist': 2.0.10 - dev: false - - /unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 5.2.1 - dev: false - - /unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - dependencies: - '@types/unist': 2.0.10 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - dev: false - - /universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} - dev: true - - /unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - dev: true - - /unset-value@1.0.0: - resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} - engines: {node: '>=0.10.0'} - dependencies: - has-value: 0.3.1 - isobject: 3.0.1 - dev: true - - /untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} - engines: {node: '>=8'} - dev: true - - /update-browserslist-db@1.0.13(browserslist@4.22.1): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.22.1 - escalade: 3.1.1 - picocolors: 1.0.0 - - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.1 - - /urix@0.1.0: - resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} - deprecated: Please see https://github.com/lydell/urix#deprecated - dev: true - - /use-immer@0.9.0(immer@10.0.3)(react@18.2.0): - resolution: {integrity: sha512-/L+enLi0nvuZ6j4WlyK0US9/ECUtV5v9RUbtxnn5+WbtaXYUaOBoKHDNL9I5AETdurQ4rIFIj/s+Z5X80ATyKw==} - peerDependencies: - immer: '>=2.0.0' - react: ^16.8.0 || ^17.0.1 || ^18.0.0 - dependencies: - immer: 10.0.3 - react: 18.2.0 - dev: false - - /use-sync-external-store@1.2.0(react@18.2.0): - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - - /use@3.1.1: - resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} - engines: {node: '>=0.10.0'} - dev: true - - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - dev: true - - /utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - dev: true - - /uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - dequal: 2.0.3 - diff: 5.1.0 - kleur: 4.1.5 - sade: 1.8.1 - dev: false - - /validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.2.0 - spdx-expression-parse: 3.0.1 - dev: true - - /vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - dev: true - - /vfile-location@4.1.0: - resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} - dependencies: - '@types/unist': 2.0.10 - vfile: 5.3.7 - dev: false - - /vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} - dependencies: - '@types/unist': 2.0.10 - unist-util-stringify-position: 3.0.3 - dev: false - - /vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} - dependencies: - '@types/unist': 2.0.10 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 - dev: false - - /video-react@0.16.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-138NHPS8bmgqCYVCdbv2GVFhXntemNHWGw9AN8iJSzr3jizXMmWJd2LTBppr4hZJUbyW1A1tPZ3CQXZUaexMVA==} - peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': 7.23.4 - classnames: 2.3.2 - lodash.throttle: 4.1.1 - prop-types: 15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - redux: 4.2.1 - dev: false - - /vite-plugin-eslint@1.8.1(eslint@8.54.0)(vite@4.5.0): - resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==} - peerDependencies: - eslint: '>=7' - vite: '>=2' - dependencies: - '@rollup/pluginutils': 4.2.1 - '@types/eslint': 8.44.7 - eslint: 8.54.0 - rollup: 2.79.1 - vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) - dev: true - - /vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.0): - resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==} - engines: {node: '>=12.0.0'} - peerDependencies: - mockjs: '>=1.1.0' - vite: '>=2.0.0' - dependencies: - '@types/mockjs': 1.0.10 - chalk: 4.1.2 - chokidar: 3.5.3 - connect: 3.7.0 - debug: 4.3.4 - esbuild: 0.14.54 - fast-glob: 3.3.2 - mockjs: 1.1.0 - path-to-regexp: 6.2.1 - vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) - transitivePeerDependencies: - - supports-color - dev: true - - /vite-plugin-svg-icons@2.0.1(vite@4.5.0): - resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==} - peerDependencies: - vite: '>=2.0.0' - dependencies: - '@types/svgo': 2.6.4 - cors: 2.8.5 - debug: 4.3.4 - etag: 1.8.1 - fs-extra: 10.1.0 - pathe: 0.2.0 - svg-baker: 1.7.0 - svgo: 2.8.0 - vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) - transitivePeerDependencies: - - supports-color - dev: true - - /vite@4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0): - resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.10.0 - esbuild: 0.18.20 - less: 4.2.0 - postcss: 8.4.31 - rollup: 3.29.4 - terser: 5.24.0 - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: true - - /w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} - dev: false - - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} - dependencies: - defaults: 1.0.4 - dev: true - - /web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} - dev: false - - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} - dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - dev: true - - /which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} - dependencies: - function.prototype.name: 1.1.6 - has-tostringtag: 1.0.0 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 - isarray: 2.0.5 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.13 - dev: true - - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} - dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 - dev: true - - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - dev: true - - /which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - - /wildcard@1.1.2: - resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} - dev: false - - /wmf@1.0.2: - resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==} - engines: {node: '>=0.8'} - dev: false - - /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - dev: true - - /word@0.3.0: - resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==} - engines: {node: '>=0.8'} - dev: false - - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - dev: true - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - - /xlsx@0.18.5: - resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==} - engines: {node: '>=0.8'} - hasBin: true - dependencies: - adler-32: 1.3.1 - cfb: 1.2.2 - codepage: 1.15.0 - crc-32: 1.2.2 - ssf: 0.11.2 - wmf: 1.0.2 - word: 0.3.0 - dev: false - - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true - - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - dev: true - - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - dev: true - - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true - - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - dev: true - - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - dependencies: - cliui: 8.0.1 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 - dev: true - - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - - /zrender@5.4.4: - resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==} - dependencies: - tslib: 2.3.0 - dev: false - - /zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - dev: false - - registry.npmmirror.com/@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.1.tgz} - name: '@ampproject/remapping' - version: 2.2.1 - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 - dev: false - - registry.npmmirror.com/@ant-design/colors@7.0.0: - resolution: {integrity: sha512-iVm/9PfGCbC0dSMBrz7oiEXZaaGH7ceU40OJEfKmyuzR9R5CRimJYPlRiFtMQGQcbNMea/ePcoIebi4ASGYXtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/colors/-/colors-7.0.0.tgz} - name: '@ant-design/colors' - version: 7.0.0 - dependencies: - '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 - dev: false - - registry.npmmirror.com/@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Ed2rruHMxZTVYGPec6QBZkrh00Df5K1FAufmBpONai5iGYxoxIkg1sRD8YdCw0NvPRAa4r1nJP5LbwICGHzGiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/cssinjs/-/cssinjs-1.17.5.tgz} - id: registry.npmmirror.com/@ant-design/cssinjs/1.17.5 - name: '@ant-design/cssinjs' - version: 1.17.5 - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.8.0 - '@emotion/unitless': registry.npmmirror.com/@emotion/unitless@0.7.5 - classnames: registry.npmmirror.com/classnames@2.3.2 - csstype: registry.npmmirror.com/csstype@3.1.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - stylis: registry.npmmirror.com/stylis@4.3.0 - dev: false - - registry.npmmirror.com/@ant-design/icons-svg@4.3.1: - resolution: {integrity: sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz} - name: '@ant-design/icons-svg' - version: 4.3.1 - dev: false - - registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/icons/-/icons-5.2.6.tgz} - id: registry.npmmirror.com/@ant-design/icons/5.2.6 - name: '@ant-design/icons' - version: 5.2.6 - engines: {node: '>=8'} - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 - '@ant-design/icons-svg': registry.npmmirror.com/@ant-design/icons-svg@4.3.1 - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0): - resolution: {integrity: sha512-Wj8onxL/T8KQLFFiCA4t8eIRGpRR+UPgOdac2sYzonv+i0n3kXHmvHLLiOYL655DQx2Umii9Y9nNgL7ssu5haQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ant-design/react-slick/-/react-slick-1.0.2.tgz} - id: registry.npmmirror.com/@ant-design/react-slick/1.0.2 - name: '@ant-design/react-slick' - version: 1.0.2 - peerDependencies: - react: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - json2mq: registry.npmmirror.com/json2mq@0.2.0 - react: 18.2.0 - resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 - throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 - dev: false - - registry.npmmirror.com/@antfu/install-pkg@0.1.1: - resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/install-pkg/-/install-pkg-0.1.1.tgz} - name: '@antfu/install-pkg' - version: 0.1.1 - dependencies: - execa: registry.npmmirror.com/execa@5.1.1 - find-up: registry.npmmirror.com/find-up@5.0.0 - dev: false - - registry.npmmirror.com/@antfu/utils@0.7.7: - resolution: {integrity: sha512-gFPqTG7otEJ8uP6wrhDv6mqwGWYZKNvAcCq6u9hOj0c+IKCEsY4L1oC9trPq2SaWIzAfHvqfBDxF591JkMf+kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.7.tgz} - name: '@antfu/utils' - version: 0.7.7 - dev: false - - registry.npmmirror.com/@babel/code-frame@7.23.4: - resolution: {integrity: sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.4.tgz} - name: '@babel/code-frame' - version: 7.23.4 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': registry.npmmirror.com/@babel/highlight@7.23.4 - chalk: registry.npmmirror.com/chalk@2.4.2 - dev: false - - registry.npmmirror.com/@babel/compat-data@7.23.3: - resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.23.3.tgz} - name: '@babel/compat-data' - version: 7.23.3 - engines: {node: '>=6.9.0'} - dev: false - - registry.npmmirror.com/@babel/core@7.23.2: - resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.23.2.tgz} - name: '@babel/core' - version: 7.23.2 - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping@2.2.1 - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 - '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.4 - '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.22.15 - '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.2) - '@babel/helpers': registry.npmmirror.com/@babel/helpers@7.23.4 - '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 - '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 - '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.4 - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 - debug: registry.npmmirror.com/debug@4.3.4 - gensync: registry.npmmirror.com/gensync@1.0.0-beta.2 - json5: registry.npmmirror.com/json5@2.2.3 - semver: registry.npmmirror.com/semver@6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@babel/core@7.23.3: - resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.23.3.tgz} - name: '@babel/core' - version: 7.23.3 - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping@2.2.1 - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 - '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.4 - '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets@7.22.15 - '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3) - '@babel/helpers': registry.npmmirror.com/@babel/helpers@7.23.4 - '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 - '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 - '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.4 - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 - debug: registry.npmmirror.com/debug@4.3.4 - gensync: registry.npmmirror.com/gensync@1.0.0-beta.2 - json5: registry.npmmirror.com/json5@2.2.3 - semver: registry.npmmirror.com/semver@6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.54.0): - resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz} - id: registry.npmmirror.com/@babel/eslint-parser/7.22.15 - name: '@babel/eslint-parser' - version: 7.22.15 - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 - '@nicolo-ribaudo/eslint-scope-5-internals': registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1 - eslint: 8.54.0 - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@2.1.0 - semver: registry.npmmirror.com/semver@6.3.1 - dev: false - - registry.npmmirror.com/@babel/generator@7.23.4: - resolution: {integrity: sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/generator/-/generator-7.23.4.tgz} - name: '@babel/generator' - version: 7.23.4 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 - jsesc: registry.npmmirror.com/jsesc@2.5.2 - dev: false - - registry.npmmirror.com/@babel/helper-compilation-targets@7.22.15: - resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz} - name: '@babel/helper-compilation-targets' - version: 7.22.15 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': registry.npmmirror.com/@babel/compat-data@7.23.3 - '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option@7.22.15 - browserslist: registry.npmmirror.com/browserslist@4.22.1 - lru-cache: registry.npmmirror.com/lru-cache@5.1.1 - semver: registry.npmmirror.com/semver@6.3.1 - dev: false - - registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz} - name: '@babel/helper-environment-visitor' - version: 7.22.20 - engines: {node: '>=6.9.0'} - dev: false - - registry.npmmirror.com/@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz} - name: '@babel/helper-function-name' - version: 7.23.0 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz} - name: '@babel/helper-hoist-variables' - version: 7.22.5 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz} - name: '@babel/helper-module-imports' - version: 7.22.15 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.2): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz} - id: registry.npmmirror.com/@babel/helper-module-transforms/7.23.3 - name: '@babel/helper-module-transforms' - version: 7.23.3 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 - '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 - '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 - '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 - '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 - dev: false - - registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz} - id: registry.npmmirror.com/@babel/helper-module-transforms/7.23.3 - name: '@babel/helper-module-transforms' - version: 7.23.3 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 - '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 - '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 - '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 - dev: false - - registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz} - name: '@babel/helper-plugin-utils' - version: 7.22.5 - engines: {node: '>=6.9.0'} - dev: false - - registry.npmmirror.com/@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz} - name: '@babel/helper-simple-access' - version: 7.22.5 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz} - name: '@babel/helper-split-export-declaration' - version: 7.22.6 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz} - name: '@babel/helper-string-parser' - version: 7.23.4 - engines: {node: '>=6.9.0'} - dev: false - - registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz} - name: '@babel/helper-validator-identifier' - version: 7.22.20 - engines: {node: '>=6.9.0'} - dev: false - - registry.npmmirror.com/@babel/helper-validator-option@7.22.15: - resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz} - name: '@babel/helper-validator-option' - version: 7.22.15 - engines: {node: '>=6.9.0'} - dev: false - - registry.npmmirror.com/@babel/helpers@7.23.4: - resolution: {integrity: sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helpers/-/helpers-7.23.4.tgz} - name: '@babel/helpers' - version: 7.23.4 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 - '@babel/traverse': registry.npmmirror.com/@babel/traverse@7.23.4 - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz} - name: '@babel/highlight' - version: 7.23.4 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 - chalk: registry.npmmirror.com/chalk@2.4.2 - js-tokens: registry.npmmirror.com/js-tokens@4.0.0 - dev: false - - registry.npmmirror.com/@babel/parser@7.23.4: - resolution: {integrity: sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.23.4.tgz} - name: '@babel/parser' - version: 7.23.4 - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-async-generators/7.8.4 - name: '@babel/plugin-syntax-async-generators' - version: 7.8.4 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-bigint/7.8.3 - name: '@babel/plugin-syntax-bigint' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-class-properties/7.12.13 - name: '@babel/plugin-syntax-class-properties' - version: 7.12.13 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-import-meta/7.10.4 - name: '@babel/plugin-syntax-import-meta' - version: 7.10.4 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-json-strings/7.8.3 - name: '@babel/plugin-syntax-json-strings' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/7.10.4 - name: '@babel/plugin-syntax-logical-assignment-operators' - version: 7.10.4 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3 - name: '@babel/plugin-syntax-nullish-coalescing-operator' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/7.10.4 - name: '@babel/plugin-syntax-numeric-separator' - version: 7.10.4 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/7.8.3 - name: '@babel/plugin-syntax-object-rest-spread' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/7.8.3 - name: '@babel/plugin-syntax-optional-catch-binding' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/7.8.3 - name: '@babel/plugin-syntax-optional-chaining' - version: 7.8.3 - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz} - id: registry.npmmirror.com/@babel/plugin-syntax-top-level-await/7.14.5 - name: '@babel/plugin-syntax-top-level-await' - version: 7.14.5 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.3): - resolution: {integrity: sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/7.23.0 - name: '@babel/plugin-transform-modules-commonjs' - version: 7.23.0 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.3 - '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3) - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/7.23.3 - name: '@babel/plugin-transform-react-jsx-self' - version: 7.23.3 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3): - resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz} - id: registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/7.23.3 - name: '@babel/plugin-transform-react-jsx-source' - version: 7.23.3 - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - dev: false - - registry.npmmirror.com/@babel/runtime@7.23.2: - resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.2.tgz} - name: '@babel/runtime' - version: 7.23.2 - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.0 - dev: false - - registry.npmmirror.com/@babel/runtime@7.23.4: - resolution: {integrity: sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.4.tgz} - name: '@babel/runtime' - version: 7.23.4 - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.0 - dev: false - - registry.npmmirror.com/@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz} - name: '@babel/template' - version: 7.22.15 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 - '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@babel/traverse@7.23.4: - resolution: {integrity: sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/traverse/-/traverse-7.23.4.tgz} - name: '@babel/traverse' - version: 7.23.4 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 - '@babel/generator': registry.npmmirror.com/@babel/generator@7.23.4 - '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor@7.22.20 - '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name@7.23.0 - '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables@7.22.5 - '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration@7.22.6 - '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - debug: registry.npmmirror.com/debug@4.3.4 - globals: registry.npmmirror.com/globals@11.12.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@babel/types@7.23.4: - resolution: {integrity: sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.23.4.tgz} - name: '@babel/types' - version: 7.23.4 - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser@7.23.4 - '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier@7.22.20 - to-fast-properties: registry.npmmirror.com/to-fast-properties@2.0.0 - dev: false - - registry.npmmirror.com/@bloomberg/record-tuple-polyfill@0.0.4: - resolution: {integrity: sha512-h0OYmPR3A5Dfbetra/GzxBAzQk8sH7LhRkRUTdagX6nrtlUgJGYCTv4bBK33jsTQw9HDd8PE2x1Ma+iRKEDUsw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@bloomberg/record-tuple-polyfill/-/record-tuple-polyfill-0.0.4.tgz} - name: '@bloomberg/record-tuple-polyfill' - version: 0.0.4 - dev: false - - registry.npmmirror.com/@codemirror/autocomplete@6.11.0(@codemirror/language@6.9.2)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0)(@lezer/common@1.1.1): - resolution: {integrity: sha512-LCPH3W+hl5vcO7OzEQgX6NpKuKVyiKFLGAy7FXROF6nUpsWUdQEgUb3fe/g7B0E1KZCRFfgzdKASt6Wly2UOBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.11.0.tgz} - id: registry.npmmirror.com/@codemirror/autocomplete/6.11.0 - name: '@codemirror/autocomplete' - version: 6.11.0 - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - dependencies: - '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - '@codemirror/view': 6.22.0 - '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 - dev: false - - registry.npmmirror.com/@codemirror/commands@6.3.0: - resolution: {integrity: sha512-tFfcxRIlOWiQDFhjBSWJ10MxcvbCIsRr6V64SgrcaY0MwNk32cUOcCuNlWo8VjV4qRQCgNgUAnIeo0svkk4R5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/commands/-/commands-6.3.0.tgz} - name: '@codemirror/commands' - version: 6.3.0 - dependencies: - '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 - '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 - dev: false - - registry.npmmirror.com/@codemirror/language@6.9.2: - resolution: {integrity: sha512-QGTQXSpAKDIzaSE96zNK1UfIUhPgkT1CLjh1N5qVzZuxgsEOhz5RqaN8QCIdyOQklGLx3MgHd9YrE3X3+Pl1ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/language/-/language-6.9.2.tgz} - name: '@codemirror/language' - version: 6.9.2 - dependencies: - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 - '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 - '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.2.0 - '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.14 - style-mod: registry.npmmirror.com/style-mod@4.1.0 - dev: false - - registry.npmmirror.com/@codemirror/lint@6.4.2: - resolution: {integrity: sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/lint/-/lint-6.4.2.tgz} - name: '@codemirror/lint' - version: 6.4.2 - dependencies: - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 - crelt: registry.npmmirror.com/crelt@1.0.6 - dev: false - - registry.npmmirror.com/@codemirror/search@6.5.4: - resolution: {integrity: sha512-YoTrvjv9e8EbPs58opjZKyJ3ewFrVSUzQ/4WXlULQLSDDr1nGPJ67mMXFNNVYwdFhybzhrzrtqgHmtpJwIF+8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/search/-/search-6.5.4.tgz} - name: '@codemirror/search' - version: 6.5.4 - dependencies: - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 - crelt: registry.npmmirror.com/crelt@1.0.6 - dev: false - - registry.npmmirror.com/@codemirror/state@6.3.1: - resolution: {integrity: sha512-88e4HhMtKJyw6fKprGaN/yZfiaoGYOi2nM45YCUC6R/kex9sxFWBDGatS1vk4lMgnWmdIIB9tk8Gj1LmL8YfvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/state/-/state-6.3.1.tgz} - name: '@codemirror/state' - version: 6.3.1 - dev: false - - registry.npmmirror.com/@codemirror/theme-one-dark@6.1.2: - resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz} - name: '@codemirror/theme-one-dark' - version: 6.1.2 - dependencies: - '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 - '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.2.0 - dev: false - - registry.npmmirror.com/@codemirror/view@6.22.0: - resolution: {integrity: sha512-6zLj4YIoIpfTGKrDMTbeZRpa8ih4EymMCKmddEDcJWrCdp/N1D46B38YEz4creTb4T177AVS9EyXkLeC/HL2jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/view/-/view-6.22.0.tgz} - name: '@codemirror/view' - version: 6.22.0 - dependencies: - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - style-mod: registry.npmmirror.com/style-mod@4.1.0 - w3c-keyname: registry.npmmirror.com/w3c-keyname@2.2.8 - dev: false - - registry.npmmirror.com/@commitlint/load@18.4.3(typescript@5.3.2): - resolution: {integrity: sha512-v6j2WhvRQJrcJaj5D+EyES2WKTxPpxENmNpNG3Ww8MZGik3jWRXtph0QTzia5ZJyPh2ib5aC/6BIDymkUUM58Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@commitlint/load/-/load-18.4.3.tgz} - id: registry.npmmirror.com/@commitlint/load/18.4.3 - name: '@commitlint/load' - version: 18.4.3 - engines: {node: '>=v18'} - requiresBuild: true - dependencies: - '@commitlint/config-validator': 18.4.3 - '@commitlint/execute-rule': 18.4.3 - '@commitlint/resolve-extends': 18.4.3 - '@commitlint/types': 18.4.3 - '@types/node': 18.18.13 - chalk: 4.1.2 - cosmiconfig: 8.3.6(typescript@5.3.2) - cosmiconfig-typescript-loader: 5.0.0(@types/node@18.18.13)(cosmiconfig@8.3.6)(typescript@5.3.2) - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - lodash.uniq: 4.5.0 - resolve-from: 5.0.0 - transitivePeerDependencies: - - typescript - dev: true - optional: true - - registry.npmmirror.com/@csstools/postcss-color-function@1.1.1(postcss@8.4.31): - resolution: {integrity: sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz} - id: registry.npmmirror.com/@csstools/postcss-color-function/1.1.1 - name: '@csstools/postcss-color-function' - version: 1.1.1 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/@csstools/postcss-font-format-keywords@1.0.1(postcss@8.4.31): - resolution: {integrity: sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz} - id: registry.npmmirror.com/@csstools/postcss-font-format-keywords/1.0.1 - name: '@csstools/postcss-font-format-keywords' - version: 1.0.1 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/@csstools/postcss-hwb-function@1.0.2(postcss@8.4.31): - resolution: {integrity: sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz} - id: registry.npmmirror.com/@csstools/postcss-hwb-function/1.0.2 - name: '@csstools/postcss-hwb-function' - version: 1.0.2 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/@csstools/postcss-ic-unit@1.0.1(postcss@8.4.31): - resolution: {integrity: sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz} - id: registry.npmmirror.com/@csstools/postcss-ic-unit/1.0.1 - name: '@csstools/postcss-ic-unit' - version: 1.0.1 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/@csstools/postcss-is-pseudo-class@2.0.7(postcss@8.4.31): - resolution: {integrity: sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz} - id: registry.npmmirror.com/@csstools/postcss-is-pseudo-class/2.0.7 - name: '@csstools/postcss-is-pseudo-class' - version: 2.0.7 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - '@csstools/selector-specificity': registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/@csstools/postcss-normalize-display-values@1.0.1(postcss@8.4.31): - resolution: {integrity: sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz} - id: registry.npmmirror.com/@csstools/postcss-normalize-display-values/1.0.1 - name: '@csstools/postcss-normalize-display-values' - version: 1.0.1 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/@csstools/postcss-oklab-function@1.1.1(postcss@8.4.31): - resolution: {integrity: sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz} - id: registry.npmmirror.com/@csstools/postcss-oklab-function/1.1.1 - name: '@csstools/postcss-oklab-function' - version: 1.1.1 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31): - resolution: {integrity: sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz} - id: registry.npmmirror.com/@csstools/postcss-progressive-custom-properties/1.3.0 - name: '@csstools/postcss-progressive-custom-properties' - version: 1.3.0 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.3 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/@csstools/postcss-stepped-value-functions@1.0.1(postcss@8.4.31): - resolution: {integrity: sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz} - id: registry.npmmirror.com/@csstools/postcss-stepped-value-functions/1.0.1 - name: '@csstools/postcss-stepped-value-functions' - version: 1.0.1 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/@csstools/postcss-unset-value@1.0.2(postcss@8.4.31): - resolution: {integrity: sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz} - id: registry.npmmirror.com/@csstools/postcss-unset-value/1.0.2 - name: '@csstools/postcss-unset-value' - version: 1.0.2 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13): - resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz} - id: registry.npmmirror.com/@csstools/selector-specificity/2.2.0 - name: '@csstools/selector-specificity' - version: 2.2.0 - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss-selector-parser: ^6.0.10 - dependencies: - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/@ctrl/tinycolor@3.6.1: - resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz} - name: '@ctrl/tinycolor' - version: 3.6.1 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/@emotion/babel-plugin@11.11.0: - resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz} - name: '@emotion/babel-plugin' - version: 11.11.0 - dependencies: - '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports@7.22.15 - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.9.1 - '@emotion/memoize': registry.npmmirror.com/@emotion/memoize@0.8.1 - '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 - babel-plugin-macros: registry.npmmirror.com/babel-plugin-macros@3.1.0 - convert-source-map: registry.npmmirror.com/convert-source-map@1.9.0 - escape-string-regexp: registry.npmmirror.com/escape-string-regexp@4.0.0 - find-root: registry.npmmirror.com/find-root@1.1.0 - source-map: registry.npmmirror.com/source-map@0.5.7 - stylis: registry.npmmirror.com/stylis@4.2.0 - dev: false - - registry.npmmirror.com/@emotion/cache@11.11.0: - resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/cache/-/cache-11.11.0.tgz} - name: '@emotion/cache' - version: 11.11.0 - dependencies: - '@emotion/memoize': registry.npmmirror.com/@emotion/memoize@0.8.1 - '@emotion/sheet': registry.npmmirror.com/@emotion/sheet@1.2.2 - '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 - '@emotion/weak-memoize': registry.npmmirror.com/@emotion/weak-memoize@0.3.1 - stylis: registry.npmmirror.com/stylis@4.2.0 - dev: false - - registry.npmmirror.com/@emotion/css@11.11.2: - resolution: {integrity: sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/css/-/css-11.11.2.tgz} - name: '@emotion/css' - version: 11.11.2 - dependencies: - '@emotion/babel-plugin': registry.npmmirror.com/@emotion/babel-plugin@11.11.0 - '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 - '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 - '@emotion/sheet': registry.npmmirror.com/@emotion/sheet@1.2.2 - '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 - dev: false - - registry.npmmirror.com/@emotion/hash@0.8.0: - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.8.0.tgz} - name: '@emotion/hash' - version: 0.8.0 - dev: false - - registry.npmmirror.com/@emotion/hash@0.9.1: - resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/hash/-/hash-0.9.1.tgz} - name: '@emotion/hash' - version: 0.9.1 - dev: false - - registry.npmmirror.com/@emotion/memoize@0.8.1: - resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/memoize/-/memoize-0.8.1.tgz} - name: '@emotion/memoize' - version: 0.8.1 - dev: false - - registry.npmmirror.com/@emotion/react@11.11.1(@types/react@18.2.38)(react@18.2.0): - resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/react/-/react-11.11.1.tgz} - id: registry.npmmirror.com/@emotion/react/11.11.1 - name: '@emotion/react' - version: 11.11.1 - peerDependencies: - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@emotion/babel-plugin': registry.npmmirror.com/@emotion/babel-plugin@11.11.0 - '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 - '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 - '@emotion/use-insertion-effect-with-fallbacks': registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0) - '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 - '@emotion/weak-memoize': registry.npmmirror.com/@emotion/weak-memoize@0.3.1 - '@types/react': 18.2.38 - hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 - react: 18.2.0 - dev: false - - registry.npmmirror.com/@emotion/serialize@1.1.2: - resolution: {integrity: sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/serialize/-/serialize-1.1.2.tgz} - name: '@emotion/serialize' - version: 1.1.2 - dependencies: - '@emotion/hash': registry.npmmirror.com/@emotion/hash@0.9.1 - '@emotion/memoize': registry.npmmirror.com/@emotion/memoize@0.8.1 - '@emotion/unitless': registry.npmmirror.com/@emotion/unitless@0.8.1 - '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 - csstype: registry.npmmirror.com/csstype@3.1.2 - dev: false - - registry.npmmirror.com/@emotion/server@11.11.0(@emotion/css@11.11.2): - resolution: {integrity: sha512-6q89fj2z8VBTx9w93kJ5n51hsmtYuFPtZgnc1L8VzRx9ti4EU6EyvF6Nn1H1x3vcCQCF7u2dB2lY4AYJwUW4PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/server/-/server-11.11.0.tgz} - id: registry.npmmirror.com/@emotion/server/11.11.0 - name: '@emotion/server' - version: 11.11.0 - peerDependencies: - '@emotion/css': ^11.0.0-rc.0 - peerDependenciesMeta: - '@emotion/css': - optional: true - dependencies: - '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 - '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 - html-tokenize: registry.npmmirror.com/html-tokenize@2.0.1 - multipipe: registry.npmmirror.com/multipipe@1.0.2 - through: registry.npmmirror.com/through@2.3.8 - dev: false - - registry.npmmirror.com/@emotion/sheet@1.2.2: - resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/sheet/-/sheet-1.2.2.tgz} - name: '@emotion/sheet' - version: 1.2.2 - dev: false - - registry.npmmirror.com/@emotion/unitless@0.7.5: - resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.7.5.tgz} - name: '@emotion/unitless' - version: 0.7.5 - dev: false - - registry.npmmirror.com/@emotion/unitless@0.8.1: - resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/unitless/-/unitless-0.8.1.tgz} - name: '@emotion/unitless' - version: 0.8.1 - dev: false - - registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): - resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz} - id: registry.npmmirror.com/@emotion/use-insertion-effect-with-fallbacks/1.0.1 - name: '@emotion/use-insertion-effect-with-fallbacks' - version: 1.0.1 - peerDependencies: - react: '>=16.8.0' - dependencies: - react: 18.2.0 - dev: false - - registry.npmmirror.com/@emotion/utils@1.2.1: - resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/utils/-/utils-1.2.1.tgz} - name: '@emotion/utils' - version: 1.2.1 - dev: false - - registry.npmmirror.com/@emotion/weak-memoize@0.3.1: - resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz} - name: '@emotion/weak-memoize' - version: 0.3.1 - dev: false - - registry.npmmirror.com/@esbuild/android-arm64@0.17.19: - resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz} - name: '@esbuild/android-arm64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/android-arm64@0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz} - name: '@esbuild/android-arm64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/android-arm64@0.19.7: - resolution: {integrity: sha512-YEDcw5IT7hW3sFKZBkCAQaOCJQLONVcD4bOyTXMZz5fr66pTHnAet46XAtbXAkJRfIn2YVhdC6R9g4xa27jQ1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.19.7.tgz} - name: '@esbuild/android-arm64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/android-arm@0.17.19: - resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz} - name: '@esbuild/android-arm' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/android-arm@0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz} - name: '@esbuild/android-arm' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/android-arm@0.19.7: - resolution: {integrity: sha512-YGSPnndkcLo4PmVl2tKatEn+0mlVMr3yEpOOT0BeMria87PhvoJb5dg5f5Ft9fbCVgtAz4pWMzZVgSEGpDAlww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.7.tgz} - name: '@esbuild/android-arm' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/android-x64@0.17.19: - resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz} - name: '@esbuild/android-x64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/android-x64@0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz} - name: '@esbuild/android-x64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/android-x64@0.19.7: - resolution: {integrity: sha512-jhINx8DEjz68cChFvM72YzrqfwJuFbfvSxZAk4bebpngGfNNRm+zRl4rtT9oAX6N9b6gBcFaJHFew5Blf6CvUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.19.7.tgz} - name: '@esbuild/android-x64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19: - resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz} - name: '@esbuild/darwin-arm64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz} - name: '@esbuild/darwin-arm64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/darwin-arm64@0.19.7: - resolution: {integrity: sha512-dr81gbmWN//3ZnBIm6YNCl4p3pjnabg1/ZVOgz2fJoUO1a3mq9WQ/1iuEluMs7mCL+Zwv7AY5e3g1hjXqQZ9Iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.7.tgz} - name: '@esbuild/darwin-arm64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/darwin-x64@0.17.19: - resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz} - name: '@esbuild/darwin-x64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/darwin-x64@0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz} - name: '@esbuild/darwin-x64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/darwin-x64@0.19.7: - resolution: {integrity: sha512-Lc0q5HouGlzQEwLkgEKnWcSazqr9l9OdV2HhVasWJzLKeOt0PLhHaUHuzb8s/UIya38DJDoUm74GToZ6Wc7NGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.7.tgz} - name: '@esbuild/darwin-x64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19: - resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz} - name: '@esbuild/freebsd-arm64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz} - name: '@esbuild/freebsd-arm64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.7: - resolution: {integrity: sha512-+y2YsUr0CxDFF7GWiegWjGtTUF6gac2zFasfFkRJPkMAuMy9O7+2EH550VlqVdpEEchWMynkdhC9ZjtnMiHImQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.7.tgz} - name: '@esbuild/freebsd-arm64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19: - resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz} - name: '@esbuild/freebsd-x64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz} - name: '@esbuild/freebsd-x64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/freebsd-x64@0.19.7: - resolution: {integrity: sha512-CdXOxIbIzPJmJhrpmJTLx+o35NoiKBIgOvmvT+jeSadYiWJn0vFKsl+0bSG/5lwjNHoIDEyMYc/GAPR9jxusTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.7.tgz} - name: '@esbuild/freebsd-x64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-arm64@0.17.19: - resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz} - name: '@esbuild/linux-arm64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/linux-arm64@0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz} - name: '@esbuild/linux-arm64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-arm64@0.19.7: - resolution: {integrity: sha512-inHqdOVCkUhHNvuQPT1oCB7cWz9qQ/Cz46xmVe0b7UXcuIJU3166aqSunsqkgSGMtUCWOZw3+KMwI6otINuC9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.19.7.tgz} - name: '@esbuild/linux-arm64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-arm@0.17.19: - resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz} - name: '@esbuild/linux-arm' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/linux-arm@0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz} - name: '@esbuild/linux-arm' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-arm@0.19.7: - resolution: {integrity: sha512-Y+SCmWxsJOdQtjcBxoacn/pGW9HDZpwsoof0ttL+2vGcHokFlfqV666JpfLCSP2xLxFpF1lj7T3Ox3sr95YXww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.19.7.tgz} - name: '@esbuild/linux-arm' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-ia32@0.17.19: - resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz} - name: '@esbuild/linux-ia32' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/linux-ia32@0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz} - name: '@esbuild/linux-ia32' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-ia32@0.19.7: - resolution: {integrity: sha512-2BbiL7nLS5ZO96bxTQkdO0euGZIUQEUXMTrqLxKUmk/Y5pmrWU84f+CMJpM8+EHaBPfFSPnomEaQiG/+Gmh61g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.19.7.tgz} - name: '@esbuild/linux-ia32' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-loong64@0.14.54: - resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz} - name: '@esbuild/linux-loong64' - version: 0.14.54 - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/@esbuild/linux-loong64@0.17.19: - resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz} - name: '@esbuild/linux-loong64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/linux-loong64@0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz} - name: '@esbuild/linux-loong64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-loong64@0.19.7: - resolution: {integrity: sha512-BVFQla72KXv3yyTFCQXF7MORvpTo4uTA8FVFgmwVrqbB/4DsBFWilUm1i2Oq6zN36DOZKSVUTb16jbjedhfSHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.19.7.tgz} - name: '@esbuild/linux-loong64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19: - resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz} - name: '@esbuild/linux-mips64el' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz} - name: '@esbuild/linux-mips64el' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-mips64el@0.19.7: - resolution: {integrity: sha512-DzAYckIaK+pS31Q/rGpvUKu7M+5/t+jI+cdleDgUwbU7KdG2eC3SUbZHlo6Q4P1CfVKZ1lUERRFP8+q0ob9i2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.7.tgz} - name: '@esbuild/linux-mips64el' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19: - resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz} - name: '@esbuild/linux-ppc64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz} - name: '@esbuild/linux-ppc64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-ppc64@0.19.7: - resolution: {integrity: sha512-JQ1p0SmUteNdUaaiRtyS59GkkfTW0Edo+e0O2sihnY4FoZLz5glpWUQEKMSzMhA430ctkylkS7+vn8ziuhUugQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.7.tgz} - name: '@esbuild/linux-ppc64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19: - resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz} - name: '@esbuild/linux-riscv64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz} - name: '@esbuild/linux-riscv64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-riscv64@0.19.7: - resolution: {integrity: sha512-xGwVJ7eGhkprY/nB7L7MXysHduqjpzUl40+XoYDGC4UPLbnG+gsyS1wQPJ9lFPcxYAaDXbdRXd1ACs9AE9lxuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.7.tgz} - name: '@esbuild/linux-riscv64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-s390x@0.17.19: - resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz} - name: '@esbuild/linux-s390x' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/linux-s390x@0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz} - name: '@esbuild/linux-s390x' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-s390x@0.19.7: - resolution: {integrity: sha512-U8Rhki5PVU0L0nvk+E8FjkV8r4Lh4hVEb9duR6Zl21eIEYEwXz8RScj4LZWA2i3V70V4UHVgiqMpszXvG0Yqhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.19.7.tgz} - name: '@esbuild/linux-s390x' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-x64@0.17.19: - resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz} - name: '@esbuild/linux-x64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/linux-x64@0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz} - name: '@esbuild/linux-x64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/linux-x64@0.19.7: - resolution: {integrity: sha512-ZYZopyLhm4mcoZXjFt25itRlocKlcazDVkB4AhioiL9hOWhDldU9n38g62fhOI4Pth6vp+Mrd5rFKxD0/S+7aQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.19.7.tgz} - name: '@esbuild/linux-x64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19: - resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz} - name: '@esbuild/netbsd-x64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/netbsd-x64@0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz} - name: '@esbuild/netbsd-x64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/netbsd-x64@0.19.7: - resolution: {integrity: sha512-/yfjlsYmT1O3cum3J6cmGG16Fd5tqKMcg5D+sBYLaOQExheAJhqr8xOAEIuLo8JYkevmjM5zFD9rVs3VBcsjtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.7.tgz} - name: '@esbuild/netbsd-x64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19: - resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz} - name: '@esbuild/openbsd-x64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/openbsd-x64@0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz} - name: '@esbuild/openbsd-x64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/openbsd-x64@0.19.7: - resolution: {integrity: sha512-MYDFyV0EW1cTP46IgUJ38OnEY5TaXxjoDmwiTXPjezahQgZd+j3T55Ht8/Q9YXBM0+T9HJygrSRGV5QNF/YVDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.7.tgz} - name: '@esbuild/openbsd-x64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/sunos-x64@0.17.19: - resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz} - name: '@esbuild/sunos-x64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/sunos-x64@0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz} - name: '@esbuild/sunos-x64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/sunos-x64@0.19.7: - resolution: {integrity: sha512-JcPvgzf2NN/y6X3UUSqP6jSS06V0DZAV/8q0PjsZyGSXsIGcG110XsdmuWiHM+pno7/mJF6fjH5/vhUz/vA9fw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.19.7.tgz} - name: '@esbuild/sunos-x64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/win32-arm64@0.17.19: - resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz} - name: '@esbuild/win32-arm64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/win32-arm64@0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz} - name: '@esbuild/win32-arm64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/win32-arm64@0.19.7: - resolution: {integrity: sha512-ZA0KSYti5w5toax5FpmfcAgu3ZNJxYSRm0AW/Dao5up0YV1hDVof1NvwLomjEN+3/GMtaWDI+CIyJOMTRSTdMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.19.7.tgz} - name: '@esbuild/win32-arm64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/win32-ia32@0.17.19: - resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz} - name: '@esbuild/win32-ia32' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/win32-ia32@0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz} - name: '@esbuild/win32-ia32' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/win32-ia32@0.19.7: - resolution: {integrity: sha512-CTOnijBKc5Jpk6/W9hQMMvJnsSYRYgveN6O75DTACCY18RA2nqka8dTZR+x/JqXCRiKk84+5+bRKXUSbbwsS0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.19.7.tgz} - name: '@esbuild/win32-ia32' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/win32-x64@0.17.19: - resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz} - name: '@esbuild/win32-x64' - version: 0.17.19 - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@esbuild/win32-x64@0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz} - name: '@esbuild/win32-x64' - version: 0.18.20 - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - registry.npmmirror.com/@esbuild/win32-x64@0.19.7: - resolution: {integrity: sha512-gRaP2sk6hc98N734luX4VpF318l3w+ofrtTu9j5L8EQXF+FzQKV6alCOHMVoJJHvVK/mGbwBXfOL1HETQu9IGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.7.tgz} - name: '@esbuild/win32-x64' - version: 0.19.7 - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} - id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 - name: '@eslint-community/eslint-utils' - version: 4.4.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.54.0 - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 - dev: false - - registry.npmmirror.com/@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz} - name: '@eslint-community/regexpp' - version: 4.10.0 - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: false - - registry.npmmirror.com/@floating-ui/core@0.6.2: - resolution: {integrity: sha512-jktYRmZwmau63adUG3GKOAVCofBXkk55S/zQ94XOorAHhwqFIOFAy1rSp2N0Wp6/tGbe9V3u/ExlGZypyY17rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/core/-/core-0.6.2.tgz} - name: '@floating-ui/core' - version: 0.6.2 - dev: false - - registry.npmmirror.com/@floating-ui/core@1.5.2: - resolution: {integrity: sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/core/-/core-1.5.2.tgz} - name: '@floating-ui/core' - version: 1.5.2 - dependencies: - '@floating-ui/utils': registry.npmmirror.com/@floating-ui/utils@0.1.6 - dev: false - - registry.npmmirror.com/@floating-ui/dom@0.4.5: - resolution: {integrity: sha512-b+prvQgJt8pieaKYMSJBXHxX/DYwdLsAWxKYqnO5dO2V4oo/TYBZJAUQCVNjTWWsrs6o4VDrNcP9+E70HAhJdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.4.5.tgz} - name: '@floating-ui/dom' - version: 0.4.5 - dependencies: - '@floating-ui/core': registry.npmmirror.com/@floating-ui/core@0.6.2 - dev: false - - registry.npmmirror.com/@floating-ui/dom@1.5.3: - resolution: {integrity: sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.5.3.tgz} - name: '@floating-ui/dom' - version: 1.5.3 - dependencies: - '@floating-ui/core': registry.npmmirror.com/@floating-ui/core@1.5.2 - '@floating-ui/utils': registry.npmmirror.com/@floating-ui/utils@0.1.6 - dev: false - - registry.npmmirror.com/@floating-ui/react-dom-interactions@0.3.1(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0): - resolution: {integrity: sha512-tP2KEh7EHJr5hokSBHcPGojb+AorDNUf0NYfZGg/M+FsMvCOOsSEeEF0O1NDfETIzDnpbHnCs0DuvCFhSMSStg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react-dom-interactions/-/react-dom-interactions-0.3.1.tgz} - id: registry.npmmirror.com/@floating-ui/react-dom-interactions/0.3.1 - name: '@floating-ui/react-dom-interactions' - version: 0.3.1 - deprecated: Package renamed to @floating-ui/react - dependencies: - '@floating-ui/react-dom': registry.npmmirror.com/@floating-ui/react-dom@0.6.3(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0) - aria-hidden: registry.npmmirror.com/aria-hidden@1.2.3 - point-in-polygon: registry.npmmirror.com/point-in-polygon@1.1.0 - use-isomorphic-layout-effect: registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.1.0) - transitivePeerDependencies: - - '@types/react' - - react - - react-dom - dev: false - - registry.npmmirror.com/@floating-ui/react-dom@0.6.3(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0): - resolution: {integrity: sha512-hC+pS5D6AgS2wWjbmSQ6UR6Kpy+drvWGJIri6e1EDGADTPsCaa4KzCgmCczHrQeInx9tqs81EyDmbKJYY2swKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-0.6.3.tgz} - id: registry.npmmirror.com/@floating-ui/react-dom/0.6.3 - name: '@floating-ui/react-dom' - version: 0.6.3 - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom@0.4.5 - react: registry.npmmirror.com/react@18.1.0 - react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) - use-isomorphic-layout-effect: registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.1.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - registry.npmmirror.com/@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react-dom/-/react-dom-2.0.4.tgz} - id: registry.npmmirror.com/@floating-ui/react-dom/2.0.4 - name: '@floating-ui/react-dom' - version: 2.0.4 - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom@1.5.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/@floating-ui/react@0.24.8(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-AuYeDoaR8jtUlUXtZ1IJ/6jtBkGnSpJXbGNzokBL87VDJ8opMq1Bgrc0szhK482ReQY6KZsMoZCVSb4xwalkBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/react/-/react-0.24.8.tgz} - id: registry.npmmirror.com/@floating-ui/react/0.24.8 - name: '@floating-ui/react' - version: 0.24.8 - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@floating-ui/react-dom': registry.npmmirror.com/@floating-ui/react-dom@2.0.4(react-dom@18.2.0)(react@18.2.0) - aria-hidden: registry.npmmirror.com/aria-hidden@1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - tabbable: registry.npmmirror.com/tabbable@6.2.0 - dev: false - - registry.npmmirror.com/@floating-ui/utils@0.1.6: - resolution: {integrity: sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.1.6.tgz} - name: '@floating-ui/utils' - version: 0.1.6 - dev: false - - registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0: - resolution: {integrity: sha512-PEVLoa3zBevWSCZzPIM/lvPCi8P5l4G+NXQMc/CjEiaCWgyHieUoo0nM7Bs0n/NbuQ6JpXEolivQ9pKSBHaDlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/ecma402-abstract/-/ecma402-abstract-1.18.0.tgz} - name: '@formatjs/ecma402-abstract' - version: 1.18.0 - dependencies: - '@formatjs/intl-localematcher': registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/@formatjs/fast-memoize@2.2.0: - resolution: {integrity: sha512-hnk/nY8FyrL5YxwP9e4r9dqeM6cAbo8PeU9UjyXojZMNvVad2Z06FAVHyR3Ecw6fza+0GH7vdJgiKIVXTMbSBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/fast-memoize/-/fast-memoize-2.2.0.tgz} - name: '@formatjs/fast-memoize' - version: 2.2.0 - dependencies: - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3: - resolution: {integrity: sha512-X/jy10V9S/vW+qlplqhMUxR8wErQ0mmIYSq4mrjpjDl9mbuGcCILcI1SUYkL5nlM4PJqpc0KOS0bFkkJNPxYRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.7.3.tgz} - name: '@formatjs/icu-messageformat-parser' - version: 2.7.3 - dependencies: - '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 - '@formatjs/icu-skeleton-parser': registry.npmmirror.com/@formatjs/icu-skeleton-parser@1.7.0 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/@formatjs/icu-skeleton-parser@1.7.0: - resolution: {integrity: sha512-Cfdo/fgbZzpN/jlN/ptQVe0lRHora+8ezrEeg2RfrNjyp+YStwBy7cqDY8k5/z2LzXg6O0AdzAV91XS0zIWv+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.7.0.tgz} - name: '@formatjs/icu-skeleton-parser' - version: 1.7.0 - dependencies: - '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4: - resolution: {integrity: sha512-ET8KQ+L9Q0K8x1SnJQa4DNssUcbATlMopWqYvGGR8yAvw5qwAQc1fv+DshCoZNIE9pbcue0IGC4kWNAkWqlFag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl-displaynames/-/intl-displaynames-6.6.4.tgz} - name: '@formatjs/intl-displaynames' - version: 6.6.4 - dependencies: - '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 - '@formatjs/intl-localematcher': registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/@formatjs/intl-listformat@7.5.3: - resolution: {integrity: sha512-l7EOr0Yh1m8KagytukB90yw81uyzrM7amKFrgxXqphz4KeSIL0KPa68lPsdtZ+JmQB73GaDQRwLOwUKFZ1VZPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl-listformat/-/intl-listformat-7.5.3.tgz} - name: '@formatjs/intl-listformat' - version: 7.5.3 - dependencies: - '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 - '@formatjs/intl-localematcher': registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/@formatjs/intl-localematcher@0.5.2: - resolution: {integrity: sha512-txaaE2fiBMagLrR4jYhxzFO6wEdEG4TPMqrzBAcbr4HFUYzH/YC+lg6OIzKCHm8WgDdyQevxbAAV1OgcXctuGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl-localematcher/-/intl-localematcher-0.5.2.tgz} - name: '@formatjs/intl-localematcher' - version: 0.5.2 - dependencies: - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/@formatjs/intl@2.9.9(typescript@5.3.2): - resolution: {integrity: sha512-JI3CNgL2Zdg5lv9ncT2sYKqbAj2RGrCbdzaCckIxMPxn4QuHuOVvYUGmBAXVusBmfG/0sxLmMrnwnBioz+QKdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@formatjs/intl/-/intl-2.9.9.tgz} - id: registry.npmmirror.com/@formatjs/intl/2.9.9 - name: '@formatjs/intl' - version: 2.9.9 - peerDependencies: - typescript: '5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 - '@formatjs/fast-memoize': registry.npmmirror.com/@formatjs/fast-memoize@2.2.0 - '@formatjs/icu-messageformat-parser': registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3 - '@formatjs/intl-displaynames': registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4 - '@formatjs/intl-listformat': registry.npmmirror.com/@formatjs/intl-listformat@7.5.3 - intl-messageformat: registry.npmmirror.com/intl-messageformat@10.5.8 - tslib: registry.npmmirror.com/tslib@2.6.2 - typescript: 5.3.2 - dev: false - - registry.npmmirror.com/@iconify/types@2.0.0: - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/types/-/types-2.0.0.tgz} - name: '@iconify/types' - version: 2.0.0 - dev: false - - registry.npmmirror.com/@iconify/utils@2.1.1: - resolution: {integrity: sha512-H8xz74JDzDw8f0qLxwIaxFMnFkbXTZNWEufOk3WxaLFHV4h0A2FjIDgNk5LzC0am4jssnjdeJJdRs3UFu3582Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.1.tgz} - name: '@iconify/utils' - version: 2.1.1 - dependencies: - '@antfu/install-pkg': registry.npmmirror.com/@antfu/install-pkg@0.1.1 - '@antfu/utils': registry.npmmirror.com/@antfu/utils@0.7.7 - '@iconify/types': registry.npmmirror.com/@iconify/types@2.0.0 - debug: registry.npmmirror.com/debug@4.3.4 - kolorist: registry.npmmirror.com/kolorist@1.8.0 - local-pkg: registry.npmmirror.com/local-pkg@0.4.3 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@istanbuljs/load-nyc-config@1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz} - name: '@istanbuljs/load-nyc-config' - version: 1.1.0 - engines: {node: '>=8'} - dependencies: - camelcase: registry.npmmirror.com/camelcase@5.3.1 - find-up: registry.npmmirror.com/find-up@4.1.0 - get-package-type: registry.npmmirror.com/get-package-type@0.1.0 - js-yaml: registry.npmmirror.com/js-yaml@3.14.1 - resolve-from: registry.npmmirror.com/resolve-from@5.0.0 - dev: false - - registry.npmmirror.com/@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@istanbuljs/schema/-/schema-0.1.3.tgz} - name: '@istanbuljs/schema' - version: 0.1.3 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/schemas/-/schemas-29.6.3.tgz} - name: '@jest/schemas' - version: 29.6.3 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': registry.npmmirror.com/@sinclair/typebox@0.27.8 - dev: false - - registry.npmmirror.com/@jest/transform@29.7.0: - resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/transform/-/transform-29.7.0.tgz} - name: '@jest/transform' - version: 29.7.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 - babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul@6.1.1 - chalk: registry.npmmirror.com/chalk@4.1.2 - convert-source-map: registry.npmmirror.com/convert-source-map@2.0.0 - fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - jest-haste-map: registry.npmmirror.com/jest-haste-map@29.7.0 - jest-regex-util: registry.npmmirror.com/jest-regex-util@29.6.3 - jest-util: registry.npmmirror.com/jest-util@29.7.0 - micromatch: registry.npmmirror.com/micromatch@4.0.5 - pirates: registry.npmmirror.com/pirates@4.0.6 - slash: registry.npmmirror.com/slash@3.0.0 - write-file-atomic: registry.npmmirror.com/write-file-atomic@4.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@jest/types@27.5.1: - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/types/-/types-27.5.1.tgz} - name: '@jest/types' - version: 27.5.1 - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 - '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports@3.0.4 - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - '@types/yargs': registry.npmmirror.com/@types/yargs@16.0.9 - chalk: registry.npmmirror.com/chalk@4.1.2 - dev: false - - registry.npmmirror.com/@jest/types@29.6.3: - resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jest/types/-/types-29.6.3.tgz} - name: '@jest/types' - version: 29.6.3 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': registry.npmmirror.com/@jest/schemas@29.6.3 - '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 - '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports@3.0.4 - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - '@types/yargs': registry.npmmirror.com/@types/yargs@17.0.32 - chalk: registry.npmmirror.com/chalk@4.1.2 - dev: false - - registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz} - name: '@jridgewell/gen-mapping' - version: 0.3.3 - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array@1.1.2 - '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 - dev: false - - registry.npmmirror.com/@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz} - name: '@jridgewell/resolve-uri' - version: 3.1.1 - engines: {node: '>=6.0.0'} - dev: false - - registry.npmmirror.com/@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} - name: '@jridgewell/set-array' - version: 1.1.2 - engines: {node: '>=6.0.0'} - dev: false - - registry.npmmirror.com/@jridgewell/source-map@0.3.5: - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.5.tgz} - name: '@jridgewell/source-map' - version: 0.3.5 - dependencies: - '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping@0.3.3 - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 - dev: false - - registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz} - name: '@jridgewell/sourcemap-codec' - version: 1.4.15 - dev: false - - registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz} - name: '@jridgewell/trace-mapping' - version: 0.3.20 - dependencies: - '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri@3.1.1 - '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 - dev: false - - registry.npmmirror.com/@lezer/common@1.1.1: - resolution: {integrity: sha512-aAPB9YbvZHqAW+bIwiuuTDGB4DG0sYNRObGLxud8cW7osw1ZQxfDuTZ8KQiqfZ0QJGcR34CvpTMDXEyo/+Htgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/common/-/common-1.1.1.tgz} - name: '@lezer/common' - version: 1.1.1 - dev: false - - registry.npmmirror.com/@lezer/highlight@1.2.0: - resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/highlight/-/highlight-1.2.0.tgz} - name: '@lezer/highlight' - version: 1.2.0 - dependencies: - '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 - dev: false - - registry.npmmirror.com/@lezer/lr@1.3.14: - resolution: {integrity: sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/lr/-/lr-1.3.14.tgz} - name: '@lezer/lr' - version: 1.3.14 - dependencies: - '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.1 - dev: false - - registry.npmmirror.com/@loadable/component@5.15.2(react@18.1.0): - resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.15.2.tgz} - id: registry.npmmirror.com/@loadable/component/5.15.2 - name: '@loadable/component' - version: 5.15.2 - engines: {node: '>=8'} - peerDependencies: - react: '>=16.3.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 - react: registry.npmmirror.com/react@18.1.0 - react-is: registry.npmmirror.com/react-is@16.13.1 - dev: false - - registry.npmmirror.com/@loadable/component@5.15.2(react@18.2.0): - resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.15.2.tgz} - id: registry.npmmirror.com/@loadable/component/5.15.2 - name: '@loadable/component' - version: 5.15.2 - engines: {node: '>=8'} - peerDependencies: - react: '>=16.3.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 - react: 18.2.0 - react-is: registry.npmmirror.com/react-is@16.13.1 - dev: false - - registry.npmmirror.com/@makotot/ghostui@2.0.0(react@18.2.0): - resolution: {integrity: sha512-LD6OeMv+yGjpYZNjh34yDTCIE1NegqOtJq5gm4wX6op3QL7K5psTVzMjkWzseBoYj0XOD4g+UJVIZTprfoOPGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@makotot/ghostui/-/ghostui-2.0.0.tgz} - id: registry.npmmirror.com/@makotot/ghostui/2.0.0 - name: '@makotot/ghostui' - version: 2.0.0 - engines: {node: '>=10'} - peerDependencies: - react: '>=16' - dependencies: - react: 18.2.0 - dev: false - - registry.npmmirror.com/@minko-fe/use-antd-resizable-header@2.9.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-LH/J5QTQMcZjwzWHd4bP3aI6IkRZ9753Y5ZTWTg9vJgyGQ1fxd0m1+P/2bqxoZji8Y5ZlZqwt2+O8YFK9k58dA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@minko-fe/use-antd-resizable-header/-/use-antd-resizable-header-2.9.0.tgz} - id: registry.npmmirror.com/@minko-fe/use-antd-resizable-header/2.9.0 - name: '@minko-fe/use-antd-resizable-header' - version: 2.9.0 - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - lodash.debounce: registry.npmmirror.com/lodash.debounce@4.0.8 - lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 - react: 18.2.0 - react-detectable-overflow: registry.npmmirror.com/react-detectable-overflow@0.7.1(react-dom@18.2.0)(react@18.2.0) - react-dom: 18.2.0(react@18.2.0) - react-resizable: registry.npmmirror.com/react-resizable@3.0.5(react-dom@18.2.0)(react@18.2.0) - dev: false - - registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz} - name: '@nicolo-ribaudo/eslint-scope-5-internals' - version: 5.1.1-v1 - dependencies: - eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 - dev: false - - registry.npmmirror.com/@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} - name: '@nodelib/fs.scandir' - version: 2.1.5 - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 - run-parallel: registry.npmmirror.com/run-parallel@1.2.0 - dev: false - - registry.npmmirror.com/@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz} - name: '@nodelib/fs.stat' - version: 2.0.5 - engines: {node: '>= 8'} - dev: false - - registry.npmmirror.com/@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} - name: '@nodelib/fs.walk' - version: 1.2.8 - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': registry.npmmirror.com/@nodelib/fs.scandir@2.1.5 - fastq: registry.npmmirror.com/fastq@1.15.0 - dev: false - - registry.npmmirror.com/@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz} - name: '@pkgjs/parseargs' - version: 0.11.0 - engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/@pkgr/utils@2.4.2: - resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@pkgr/utils/-/utils-2.4.2.tgz} - name: '@pkgr/utils' - version: 2.4.2 - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - dependencies: - cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 - fast-glob: registry.npmmirror.com/fast-glob@3.3.2 - is-glob: registry.npmmirror.com/is-glob@4.0.3 - open: registry.npmmirror.com/open@9.1.0 - picocolors: registry.npmmirror.com/picocolors@1.0.0 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-vh5EWqnsayZa/JwUznqDaPJz39jznx/YDbyBuVJntv735tKXKwEUZZb2jYEldOg+NKWZwtALjGMrNeGBmqFoEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/color-picker/-/color-picker-1.4.1.tgz} - id: registry.npmmirror.com/@rc-component/color-picker/1.4.1 - name: '@rc-component/color-picker' - version: 1.4.1 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-kFcNxg9oLRMoL3qki0OMxK+7g5mypjgaaJp/pkOis/6rVxma9nJBF/8kCIuTYHUQNr0ii7MxqE33wirPZLJQ2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/context/-/context-1.4.0.tgz} - id: registry.npmmirror.com/@rc-component/context/1.4.0 - name: '@rc-component/context' - version: 1.4.0 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/@rc-component/mini-decimal@1.1.0: - resolution: {integrity: sha512-jS4E7T9Li2GuYwI6PyiVXmxTiM6b07rlD9Ge8uGZSCz3WlzcG5ZK7g5bbuKNeZ9pgUuPK/5guV781ujdVpm4HQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/mini-decimal/-/mini-decimal-1.1.0.tgz} - name: '@rc-component/mini-decimal' - version: 1.1.0 - engines: {node: '>=8.x'} - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - dev: false - - registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QjrOsDXQusNwGZPf4/qRQasg7UFEj06XiCJ8iuiq/Io7CrHrgVi6Uuetw60WAMG1799v+aM8kyc+1L/GBbHSlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/mutate-observer/-/mutate-observer-1.1.0.tgz} - id: registry.npmmirror.com/@rc-component/mutate-observer/1.1.0 - name: '@rc-component/mutate-observer' - version: 1.1.0 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-6f813C0IsasTZms08kfA8kPAGxbbkYToa8ALaiDIGGECU4i9hj8Plgbx0sNJDrey3EtHO30hmdaxtT0138xZcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/portal/-/portal-1.1.2.tgz} - id: registry.npmmirror.com/@rc-component/portal/1.1.2 - name: '@rc-component/portal' - version: 1.1.2 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-voV0BKaTJbewB9LLgAHQ7tAGG7rgDkKQkZo82xw2gIk542hY+o7zwoqdN16oHhIKk7eG/xi+mdXrONT62Dt57A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/tour/-/tour-1.10.0.tgz} - id: registry.npmmirror.com/@rc-component/tour/1.10.0 - name: '@rc-component/tour' - version: 1.10.0 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) - '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-jRLYgFgjLEPq3MvS87fIhcfuywFSRDaDrYw1FLku7Cm4esszvzTbA0JBsyacAyLrK9rF3TiHFcvoEDMzoD3CTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rc-component/trigger/-/trigger-1.18.2.tgz} - id: registry.npmmirror.com/@rc-component/trigger/1.18.2 - name: '@rc-component/trigger' - version: 1.18.2 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/@rollup/rollup-android-arm-eabi@4.5.2: - resolution: {integrity: sha512-ee7BudTwwrglFYSc3UnqInDDjCLWHKrFmGNi4aK7jlEyg4CyPa1DCMrZfsN1O13YT76UFEqXz2CoN7BCGpUlJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.5.2.tgz} - name: '@rollup/rollup-android-arm-eabi' - version: 4.5.2 - cpu: [arm] - os: [android] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-android-arm64@4.5.2: - resolution: {integrity: sha512-xOuhj9HHtn8128ir8veoQsBbAUBasDbHIBniYTEx02pAmu9EXL+ZjJqngnNEy6ZgZ4h1JwL33GMNu3yJL5Mzow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.5.2.tgz} - name: '@rollup/rollup-android-arm64' - version: 4.5.2 - cpu: [arm64] - os: [android] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-darwin-arm64@4.5.2: - resolution: {integrity: sha512-NTGJWoL8bKyqyWFn9/RzSv4hQ4wTbaAv0lHHRwf4OnpiiP4P8W0jiXbm8Nc5BCXKmWAwuvJY82mcIU2TayC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.5.2.tgz} - name: '@rollup/rollup-darwin-arm64' - version: 4.5.2 - cpu: [arm64] - os: [darwin] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-darwin-x64@4.5.2: - resolution: {integrity: sha512-hlKqj7bpPvU15sZo4za14u185lpMzdwWLMc9raMqPK4wywt0wR23y1CaVQ4oAFXat3b5/gmRntyfpwWTKl+vvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.5.2.tgz} - name: '@rollup/rollup-darwin-x64' - version: 4.5.2 - cpu: [x64] - os: [darwin] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf@4.5.2: - resolution: {integrity: sha512-7ZIZx8c3u+pfI0ohQsft/GywrXez0uR6dUP0JhBuCK3sFO5TfdLn/YApnVkvPxuTv3+YKPIZend9Mt7Cz6sS3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.5.2.tgz} - name: '@rollup/rollup-linux-arm-gnueabihf' - version: 4.5.2 - cpu: [arm] - os: [linux] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu@4.5.2: - resolution: {integrity: sha512-7Pk/5mO11JW/cH+a8lL/i0ZxmRGrbpYqN0VwO2DHhU+SJWWOH2zE1RAcPaj8KqiwC8DCDIJOSxjV9+9lLb6aeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.5.2.tgz} - name: '@rollup/rollup-linux-arm64-gnu' - version: 4.5.2 - cpu: [arm64] - os: [linux] - libc: [glibc] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-linux-arm64-musl@4.5.2: - resolution: {integrity: sha512-KrRnuG5phJx756e62wxvWH2e+TK84MP2IVuPwfge+GBvWqIUfVzFRn09TKruuQBXzZp52Vyma7FjMDkwlA9xpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.5.2.tgz} - name: '@rollup/rollup-linux-arm64-musl' - version: 4.5.2 - cpu: [arm64] - os: [linux] - libc: [musl] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-linux-x64-gnu@4.5.2: - resolution: {integrity: sha512-My+53GasPa2D2tU5dXiyHYwrELAUouSfkNlZ3bUKpI7btaztO5vpALEs3mvFjM7aKTvEbc7GQckuXeXIDKQ0fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.5.2.tgz} - name: '@rollup/rollup-linux-x64-gnu' - version: 4.5.2 - cpu: [x64] - os: [linux] - libc: [glibc] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-linux-x64-musl@4.5.2: - resolution: {integrity: sha512-/f0Q6Sc+Vw54Ws6N8fxaEe4R7at3b8pFyv+O/F2VaQ4hODUJcRUcCBJh6zuqtgQQt7w845VTkGLFgWZkP3tUoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.5.2.tgz} - name: '@rollup/rollup-linux-x64-musl' - version: 4.5.2 - cpu: [x64] - os: [linux] - libc: [musl] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc@4.5.2: - resolution: {integrity: sha512-NCKuuZWLht6zj7s6EIFef4BxCRX1GMr83S2W4HPCA0RnJ4iHE4FS1695q6Ewoa6A9nFjJe1//yUu0kgBU07Edw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.5.2.tgz} - name: '@rollup/rollup-win32-arm64-msvc' - version: 4.5.2 - cpu: [arm64] - os: [win32] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.5.2: - resolution: {integrity: sha512-J5zL3riR4AOyU/J3M/i4k/zZ8eP1yT+nTmAKztCXJtnI36jYH0eepvob22mAQ/kLwfsK2TB6dbyVY1F8c/0H5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.5.2.tgz} - name: '@rollup/rollup-win32-ia32-msvc' - version: 4.5.2 - cpu: [ia32] - os: [win32] - requiresBuild: true - optional: true - - registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.5.2: - resolution: {integrity: sha512-pL0RXRHuuGLhvs7ayX/SAHph1hrDPXOM5anyYUQXWJEENxw3nfHkzv8FfVlEVcLyKPAEgDRkd6RKZq2SMqS/yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.5.2.tgz} - name: '@rollup/rollup-win32-x64-msvc' - version: 4.5.2 - cpu: [x64] - os: [win32] - requiresBuild: true - optional: true - - registry.npmmirror.com/@selderee/plugin-htmlparser2@0.11.0: - resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz} - name: '@selderee/plugin-htmlparser2' - version: 0.11.0 - dependencies: - domhandler: registry.npmmirror.com/domhandler@5.0.3 - selderee: registry.npmmirror.com/selderee@0.11.0 - dev: false - - registry.npmmirror.com/@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sinclair/typebox/-/typebox-0.27.8.tgz} - name: '@sinclair/typebox' - version: 0.27.8 - dev: false - - registry.npmmirror.com/@sketch-hq/sketch-file-format-ts@6.5.0: - resolution: {integrity: sha512-shaGl4ttFDpHjYBoMaZpciOtsi/lKvJ3VfcBYk6+PjjbFs6H5GxPAyhbiSqy3Vmx30aos284pd88QzD3rE6iag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sketch-hq/sketch-file-format-ts/-/sketch-file-format-ts-6.5.0.tgz} - name: '@sketch-hq/sketch-file-format-ts' - version: 6.5.0 - dev: false - - registry.npmmirror.com/@stackblitz/sdk@1.9.0: - resolution: {integrity: sha512-3m6C7f8pnR5KXys/Hqx2x6ylnpqOak6HtnZI6T5keEO0yT+E4Spkw37VEbdwuC+2oxmjdgq6YZEgiKX7hM1GmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@stackblitz/sdk/-/sdk-1.9.0.tgz} - name: '@stackblitz/sdk' - version: 1.9.0 - dev: false - - registry.npmmirror.com/@stylelint/postcss-css-in-js@0.38.0(postcss-syntax@0.36.2)(postcss@8.4.31): - resolution: {integrity: sha512-XOz5CAe49kS95p5yRd+DAIWDojTjfmyAQ4bbDlXMdbZTQ5t0ThjSLvWI6JI2uiS7MFurVBkZ6zUqcimzcLTBoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.38.0.tgz} - id: registry.npmmirror.com/@stylelint/postcss-css-in-js/0.38.0 - name: '@stylelint/postcss-css-in-js' - version: 0.38.0 - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - peerDependencies: - postcss: '>=7.0.0' - postcss-syntax: '>=0.36.2' - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-syntax: registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.31) - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.23.3): - resolution: {integrity: sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz} - id: registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/6.5.1 - name: '@svgr/babel-plugin-add-jsx-attribute' - version: 6.5.1 - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - dev: false - - registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.3): - resolution: {integrity: sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz} - id: registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/8.0.0 - name: '@svgr/babel-plugin-remove-jsx-attribute' - version: 8.0.0 - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - dev: false - - registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.3): - resolution: {integrity: sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz} - id: registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/8.0.0 - name: '@svgr/babel-plugin-remove-jsx-empty-expression' - version: 8.0.0 - engines: {node: '>=14'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - dev: false - - registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.23.3): - resolution: {integrity: sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz} - id: registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/6.5.1 - name: '@svgr/babel-plugin-replace-jsx-attribute-value' - version: 6.5.1 - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - dev: false - - registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.23.3): - resolution: {integrity: sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz} - id: registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/6.5.1 - name: '@svgr/babel-plugin-svg-dynamic-title' - version: 6.5.1 - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - dev: false - - registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.23.3): - resolution: {integrity: sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz} - id: registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/6.5.1 - name: '@svgr/babel-plugin-svg-em-dimensions' - version: 6.5.1 - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - dev: false - - registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.23.3): - resolution: {integrity: sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz} - id: registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/6.5.1 - name: '@svgr/babel-plugin-transform-react-native-svg' - version: 6.5.1 - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - dev: false - - registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.23.3): - resolution: {integrity: sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz} - id: registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/6.5.1 - name: '@svgr/babel-plugin-transform-svg-component' - version: 6.5.1 - engines: {node: '>=12'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - dev: false - - registry.npmmirror.com/@svgr/babel-preset@6.5.1(@babel/core@7.23.3): - resolution: {integrity: sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/babel-preset/-/babel-preset-6.5.1.tgz} - id: registry.npmmirror.com/@svgr/babel-preset/6.5.1 - name: '@svgr/babel-preset' - version: 6.5.1 - engines: {node: '>=10'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - '@svgr/babel-plugin-add-jsx-attribute': registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute@6.5.1(@babel/core@7.23.3) - '@svgr/babel-plugin-remove-jsx-attribute': registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.23.3) - '@svgr/babel-plugin-remove-jsx-empty-expression': registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.23.3) - '@svgr/babel-plugin-replace-jsx-attribute-value': registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value@6.5.1(@babel/core@7.23.3) - '@svgr/babel-plugin-svg-dynamic-title': registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title@6.5.1(@babel/core@7.23.3) - '@svgr/babel-plugin-svg-em-dimensions': registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions@6.5.1(@babel/core@7.23.3) - '@svgr/babel-plugin-transform-react-native-svg': registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg@6.5.1(@babel/core@7.23.3) - '@svgr/babel-plugin-transform-svg-component': registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component@6.5.1(@babel/core@7.23.3) - dev: false - - registry.npmmirror.com/@svgr/core@6.5.1: - resolution: {integrity: sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/core/-/core-6.5.1.tgz} - name: '@svgr/core' - version: 6.5.1 - engines: {node: '>=10'} - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - '@svgr/babel-preset': registry.npmmirror.com/@svgr/babel-preset@6.5.1(@babel/core@7.23.3) - '@svgr/plugin-jsx': registry.npmmirror.com/@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1) - camelcase: registry.npmmirror.com/camelcase@6.3.0 - cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@svgr/hast-util-to-babel-ast@6.5.1: - resolution: {integrity: sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz} - name: '@svgr/hast-util-to-babel-ast' - version: 6.5.1 - engines: {node: '>=10'} - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - entities: registry.npmmirror.com/entities@4.5.0 - dev: false - - registry.npmmirror.com/@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz} - id: registry.npmmirror.com/@svgr/plugin-jsx/6.5.1 - name: '@svgr/plugin-jsx' - version: 6.5.1 - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': ^6.0.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - '@svgr/babel-preset': registry.npmmirror.com/@svgr/babel-preset@6.5.1(@babel/core@7.23.3) - '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 - '@svgr/hast-util-to-babel-ast': registry.npmmirror.com/@svgr/hast-util-to-babel-ast@6.5.1 - svg-parser: registry.npmmirror.com/svg-parser@2.0.4 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1): - resolution: {integrity: sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz} - id: registry.npmmirror.com/@svgr/plugin-svgo/6.5.1 - name: '@svgr/plugin-svgo' - version: 6.5.1 - engines: {node: '>=10'} - peerDependencies: - '@svgr/core': '*' - dependencies: - '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 - cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 - deepmerge: registry.npmmirror.com/deepmerge@4.3.1 - svgo: registry.npmmirror.com/svgo@2.8.0 - dev: false - - registry.npmmirror.com/@swc/core-darwin-arm64@1.3.72: - resolution: {integrity: sha512-oNSI5hVfZ+1xpj+dH1g4kQqA0VsGtqd8S9S+cDqkHZiOOVOevw9KN6dzVtmLOcPtlULVypVc0TVvsB55KdVZhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.72.tgz} - name: '@swc/core-darwin-arm64' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core-darwin-x64@1.3.72: - resolution: {integrity: sha512-y5O/WQ1g0/VfTgeNahWIOutbdD5U2Gi703jaefdcoJo3FUx8WU108QQdbVGwGMgaqapo3iQB6Qs9paixYQAYsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.72.tgz} - name: '@swc/core-darwin-x64' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core-linux-arm-gnueabihf@1.3.72: - resolution: {integrity: sha512-05JdWcso0OomHF+7bk5MBDgI8MZ9skcQ/4nhSv5gboSgSiuBmKM15Bg3lZ5iAUwGByNj7pGkSmmd3YwTrXEB+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.72.tgz} - name: '@swc/core-linux-arm-gnueabihf' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core-linux-arm64-gnu@1.3.72: - resolution: {integrity: sha512-8qRELJaeYshhJgqvyOeXCKqBOpai+JYdWuouMbvvDUL85j3OcZhzR+bipexEbbJKcOCdRnoYB7Qg6mjqZ0t7VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.72.tgz} - name: '@swc/core-linux-arm64-gnu' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - libc: [glibc] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core-linux-arm64-musl@1.3.72: - resolution: {integrity: sha512-tOqAGZw+Pe7YrBHFrwFVyRiKqjgjzwYbJmY+UDxLrzWrZSVtC3eO2TPrp7kWmhirg40Og81BbdfRAl8ds48w0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.72.tgz} - name: '@swc/core-linux-arm64-musl' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - libc: [musl] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core-linux-x64-gnu@1.3.72: - resolution: {integrity: sha512-U2W2xWR3s9nplGVWz376GiBlcLTgxyYKlpZPBNZk0w3OvTcjKC62gW1Pe7PUkk4NgJUnaQDBa/mb4V4Zl+GZPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.72.tgz} - name: '@swc/core-linux-x64-gnu' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - libc: [glibc] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core-linux-x64-musl@1.3.72: - resolution: {integrity: sha512-3+2dUiZBsifKgvnFEHWdysXjInK8K+BfPBw2tTZJmq1+fZLt0rvuErYDVMLfIJnVWLCcJMnDtTXrvkFV1y/6iA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.72.tgz} - name: '@swc/core-linux-x64-musl' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - libc: [musl] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core-win32-arm64-msvc@1.3.72: - resolution: {integrity: sha512-ndI8xZ2AId806D25xgqw2SFJ9gc/jhg21+5hA8XPq9ZL+oDiaYDztaP3ijVmZ1G5xXKD9DpgB7xmylv/f6o6GA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.72.tgz} - name: '@swc/core-win32-arm64-msvc' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.72: - resolution: {integrity: sha512-F3TK8JHP3SRFjLRlzcRVZPnvvGm2CQ5/cwbIkaEq0Dla3kyctU8SiRqvtYwWCW4JuY10cUygIg93Ec/C9Lkk4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.72.tgz} - name: '@swc/core-win32-ia32-msvc' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.72: - resolution: {integrity: sha512-FXMnIUtLl0yEmGkw+xbUg/uUPExvUxUlLSHbX7CnbSuOIHqMHzvEd9skIueLAst4bvmJ8kT1hDyAIWQcTIAJYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.72.tgz} - name: '@swc/core-win32-x64-msvc' - version: 1.3.72 - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@swc/core@1.3.72: - resolution: {integrity: sha512-+AKjwLH3/STfPrd7CHzB9+NG1FVT0UKJMUChuWq9sQ8b9xlV8vUeRgZXgh/EHYvNQgl/OUTQKtL6xU2yOLuEuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@swc/core/-/core-1.3.72.tgz} - name: '@swc/core' - version: 1.3.72 - engines: {node: '>=10'} - requiresBuild: true - peerDependencies: - '@swc/helpers': ^0.5.0 - peerDependenciesMeta: - '@swc/helpers': - optional: true - optionalDependencies: - '@swc/core-darwin-arm64': registry.npmmirror.com/@swc/core-darwin-arm64@1.3.72 - '@swc/core-darwin-x64': registry.npmmirror.com/@swc/core-darwin-x64@1.3.72 - '@swc/core-linux-arm-gnueabihf': registry.npmmirror.com/@swc/core-linux-arm-gnueabihf@1.3.72 - '@swc/core-linux-arm64-gnu': registry.npmmirror.com/@swc/core-linux-arm64-gnu@1.3.72 - '@swc/core-linux-arm64-musl': registry.npmmirror.com/@swc/core-linux-arm64-musl@1.3.72 - '@swc/core-linux-x64-gnu': registry.npmmirror.com/@swc/core-linux-x64-gnu@1.3.72 - '@swc/core-linux-x64-musl': registry.npmmirror.com/@swc/core-linux-x64-musl@1.3.72 - '@swc/core-win32-arm64-msvc': registry.npmmirror.com/@swc/core-win32-arm64-msvc@1.3.72 - '@swc/core-win32-ia32-msvc': registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.72 - '@swc/core-win32-x64-msvc': registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.72 - dev: false - - registry.npmmirror.com/@trysound/sax@0.2.0: - resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz} - name: '@trysound/sax' - version: 0.2.0 - engines: {node: '>=10.13.0'} - dev: false - - registry.npmmirror.com/@types/babel__core@7.20.5: - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__core/-/babel__core-7.20.5.tgz} - name: '@types/babel__core' - version: 7.20.5 - dependencies: - '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - '@types/babel__generator': registry.npmmirror.com/@types/babel__generator@7.6.7 - '@types/babel__template': registry.npmmirror.com/@types/babel__template@7.4.4 - '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse@7.20.4 - dev: false - - registry.npmmirror.com/@types/babel__generator@7.6.7: - resolution: {integrity: sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__generator/-/babel__generator-7.6.7.tgz} - name: '@types/babel__generator' - version: 7.6.7 - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@types/babel__template@7.4.4: - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__template/-/babel__template-7.4.4.tgz} - name: '@types/babel__template' - version: 7.4.4 - dependencies: - '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@types/babel__traverse@7.20.4: - resolution: {integrity: sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz} - name: '@types/babel__traverse' - version: 7.20.4 - dependencies: - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - dev: false - - registry.npmmirror.com/@types/debug@4.1.12: - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz} - name: '@types/debug' - version: 4.1.12 - dependencies: - '@types/ms': registry.npmmirror.com/@types/ms@0.7.34 - dev: false - - registry.npmmirror.com/@types/eslint-scope@3.7.7: - resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz} - name: '@types/eslint-scope' - version: 3.7.7 - dependencies: - '@types/eslint': registry.npmmirror.com/@types/eslint@8.44.7 - '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 - dev: false - - registry.npmmirror.com/@types/eslint@8.44.7: - resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/eslint/-/eslint-8.44.7.tgz} - name: '@types/eslint' - version: 8.44.7 - dependencies: - '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 - '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 - dev: false - - registry.npmmirror.com/@types/estree-jsx@1.0.3: - resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree-jsx/-/estree-jsx-1.0.3.tgz} - name: '@types/estree-jsx' - version: 1.0.3 - dependencies: - '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 - dev: false - - registry.npmmirror.com/@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz} - name: '@types/estree' - version: 1.0.5 - dev: false - - registry.npmmirror.com/@types/fs-extra@11.0.1: - resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.1.tgz} - name: '@types/fs-extra' - version: 11.0.1 - dependencies: - '@types/jsonfile': registry.npmmirror.com/@types/jsonfile@6.1.4 - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - dev: false - - registry.npmmirror.com/@types/graceful-fs@4.1.9: - resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz} - name: '@types/graceful-fs' - version: 4.1.9 - dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - dev: false - - registry.npmmirror.com/@types/hapi__joi@17.1.9: - resolution: {integrity: sha512-oOMFT8vmCTFncsF1engrs04jatz8/Anwx3De9uxnOK4chgSEgWBvFtpSoJo8u3784JNO+ql5tzRR6phHoRnscQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hapi__joi/-/hapi__joi-17.1.9.tgz} - name: '@types/hapi__joi' - version: 17.1.9 - dev: false - - registry.npmmirror.com/@types/hast@2.3.8: - resolution: {integrity: sha512-aMIqAlFd2wTIDZuvLbhUT+TGvMxrNC8ECUIVtH6xxy0sQLs3iu6NO8Kp/VT5je7i5ufnebXzdV1dNDMnvaH6IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hast/-/hast-2.3.8.tgz} - name: '@types/hast' - version: 2.3.8 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - dev: false - - registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5: - resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz} - name: '@types/hoist-non-react-statics' - version: 3.3.5 - dependencies: - '@types/react': registry.npmmirror.com/@types/react@18.2.38 - hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 - dev: false - - registry.npmmirror.com/@types/html-minifier-terser@6.1.0: - resolution: {integrity: sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz} - name: '@types/html-minifier-terser' - version: 6.1.0 - dev: false - - registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6: - resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz} - name: '@types/istanbul-lib-coverage' - version: 2.0.6 - dev: false - - registry.npmmirror.com/@types/istanbul-lib-report@3.0.3: - resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz} - name: '@types/istanbul-lib-report' - version: 3.0.3 - dependencies: - '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage@2.0.6 - dev: false - - registry.npmmirror.com/@types/istanbul-reports@3.0.4: - resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz} - name: '@types/istanbul-reports' - version: 3.0.4 - dependencies: - '@types/istanbul-lib-report': registry.npmmirror.com/@types/istanbul-lib-report@3.0.3 - dev: false - - registry.npmmirror.com/@types/js-cookie@2.2.7: - resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/js-cookie/-/js-cookie-2.2.7.tgz} - name: '@types/js-cookie' - version: 2.2.7 - dev: false - - registry.npmmirror.com/@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz} - name: '@types/json-schema' - version: 7.0.15 - dev: false - - registry.npmmirror.com/@types/jsonfile@6.1.4: - resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/jsonfile/-/jsonfile-6.1.4.tgz} - name: '@types/jsonfile' - version: 6.1.4 - dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - dev: false - - registry.npmmirror.com/@types/keyv@3.1.4: - resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/keyv/-/keyv-3.1.4.tgz} - name: '@types/keyv' - version: 3.1.4 - dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - dev: false - - registry.npmmirror.com/@types/mdast@3.0.15: - resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz} - name: '@types/mdast' - version: 3.0.15 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - dev: false - - registry.npmmirror.com/@types/minimist@1.2.5: - resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/minimist/-/minimist-1.2.5.tgz} - name: '@types/minimist' - version: 1.2.5 - dev: false - - registry.npmmirror.com/@types/ms@0.7.34: - resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz} - name: '@types/ms' - version: 0.7.34 - dev: false - - registry.npmmirror.com/@types/node@17.0.45: - resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz} - name: '@types/node' - version: 17.0.45 - dev: false - - registry.npmmirror.com/@types/node@20.10.0: - resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-20.10.0.tgz} - name: '@types/node' - version: 20.10.0 - dependencies: - undici-types: registry.npmmirror.com/undici-types@5.26.5 - dev: false - - registry.npmmirror.com/@types/normalize-package-data@2.4.4: - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz} - name: '@types/normalize-package-data' - version: 2.4.4 - dev: false - - registry.npmmirror.com/@types/parse-json@4.0.2: - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.2.tgz} - name: '@types/parse-json' - version: 4.0.2 - dev: false - - registry.npmmirror.com/@types/parse5@6.0.3: - resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/parse5/-/parse5-6.0.3.tgz} - name: '@types/parse5' - version: 6.0.3 - dev: false - - registry.npmmirror.com/@types/prop-types@15.7.11: - resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.11.tgz} - name: '@types/prop-types' - version: 15.7.11 - dev: false - - registry.npmmirror.com/@types/q@1.5.8: - resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/q/-/q-1.5.8.tgz} - name: '@types/q' - version: 1.5.8 - dev: false - - registry.npmmirror.com/@types/ramda@0.29.3: - resolution: {integrity: sha512-Yh/RHkjN0ru6LVhSQtTkCRo6HXkfL9trot/2elzM/yXLJmbLm2v6kJc8yftTnwv1zvUob6TEtqI2cYjdqG3U0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ramda/-/ramda-0.29.3.tgz} - name: '@types/ramda' - version: 0.29.3 - dependencies: - types-ramda: registry.npmmirror.com/types-ramda@0.29.6 - dev: false - - registry.npmmirror.com/@types/react@18.2.38: - resolution: {integrity: sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react/-/react-18.2.38.tgz} - name: '@types/react' - version: 18.2.38 - dependencies: - '@types/prop-types': registry.npmmirror.com/@types/prop-types@15.7.11 - '@types/scheduler': registry.npmmirror.com/@types/scheduler@0.16.8 - csstype: registry.npmmirror.com/csstype@3.1.2 - dev: false - - registry.npmmirror.com/@types/responselike@1.0.3: - resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz} - name: '@types/responselike' - version: 1.0.3 - dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - dev: false - - registry.npmmirror.com/@types/sax@1.2.7: - resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/sax/-/sax-1.2.7.tgz} - name: '@types/sax' - version: 1.2.7 - dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - dev: false - - registry.npmmirror.com/@types/scheduler@0.16.8: - resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.8.tgz} - name: '@types/scheduler' - version: 0.16.8 - dev: false - - registry.npmmirror.com/@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz} - name: '@types/semver' - version: 7.5.6 - dev: false - - registry.npmmirror.com/@types/unist@2.0.10: - resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/unist/-/unist-2.0.10.tgz} - name: '@types/unist' - version: 2.0.10 - dev: false - - registry.npmmirror.com/@types/yargs-parser@21.0.3: - resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz} - name: '@types/yargs-parser' - version: 21.0.3 - dev: false - - registry.npmmirror.com/@types/yargs@16.0.9: - resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs/-/yargs-16.0.9.tgz} - name: '@types/yargs' - version: 16.0.9 - dependencies: - '@types/yargs-parser': registry.npmmirror.com/@types/yargs-parser@21.0.3 - dev: false - - registry.npmmirror.com/@types/yargs@17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.32.tgz} - name: '@types/yargs' - version: 17.0.32 - dependencies: - '@types/yargs-parser': registry.npmmirror.com/@types/yargs-parser@21.0.3 - dev: false - - registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.62.0 - name: '@typescript-eslint/eslint-plugin' - version: 5.62.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp@4.10.0 - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 - '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) - debug: registry.npmmirror.com/debug@4.3.4 - eslint: 8.54.0 - graphemer: registry.npmmirror.com/graphemer@1.4.0 - ignore: registry.npmmirror.com/ignore@5.3.0 - natural-compare-lite: registry.npmmirror.com/natural-compare-lite@1.4.0 - semver: registry.npmmirror.com/semver@7.5.4 - tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2) - typescript: 5.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.62.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/parser/5.62.0 - name: '@typescript-eslint/parser' - version: 5.62.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 - '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2) - debug: registry.npmmirror.com/debug@4.3.4 - eslint: 8.54.0 - typescript: 5.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0: - resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz} - name: '@typescript-eslint/scope-manager' - version: 5.62.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 - '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0 - dev: false - - registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/type-utils/5.62.0 - name: '@typescript-eslint/type-utils' - version: 5.62.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '*' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2) - '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) - debug: registry.npmmirror.com/debug@4.3.4 - eslint: 8.54.0 - tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2) - typescript: 5.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.62.0.tgz} - name: '@typescript-eslint/types' - version: 5.62.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - - registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/typescript-estree/5.62.0 - name: '@typescript-eslint/typescript-estree' - version: 5.62.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 - '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0 - debug: registry.npmmirror.com/debug@4.3.4 - globby: registry.npmmirror.com/globby@11.1.0 - is-glob: registry.npmmirror.com/is-glob@4.0.3 - semver: registry.npmmirror.com/semver@7.5.4 - tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2) - typescript: 5.3.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.62.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/utils/5.62.0 - name: '@typescript-eslint/utils' - version: 5.62.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.54.0) - '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 - '@types/semver': registry.npmmirror.com/@types/semver@7.5.6 - '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 - '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.2) - eslint: 8.54.0 - eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 - semver: registry.npmmirror.com/semver@7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: false - - registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz} - name: '@typescript-eslint/visitor-keys' - version: 5.62.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 - dev: false - - registry.npmmirror.com/@umijs/ast@4.0.89: - resolution: {integrity: sha512-19J5oQubKa/TiAFuQIEp9AZXN0WcGLtWxDdLyVS0ja8T8q0/74yUDTIdbz6zb/i3dX3qeySoi5lQwHc9i/i3Aw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/ast/-/ast-4.0.89.tgz} - name: '@umijs/ast' - version: 4.0.89 - dependencies: - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89: - resolution: {integrity: sha512-Q9/SaEU3K9q+aNMmwIxcfkqtYdhE4n/J0BRx0XUo71rN0mN+4EOuOPLNMD8hKtJw5CZeASeS3qQbQKd44SjOow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/babel-preset-umi/-/babel-preset-umi-4.0.89.tgz} - name: '@umijs/babel-preset-umi' - version: 4.0.89 - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 - '@bloomberg/record-tuple-polyfill': registry.npmmirror.com/@bloomberg/record-tuple-polyfill@0.0.4 - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - core-js: registry.npmmirror.com/core-js@3.28.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89: - resolution: {integrity: sha512-VF/67qtDmSnTZLTK6tIPUb3meKhkzha0kalSYlrvYLkOxGVIfKrxgDZB3hqi2pmwPdNiDxP16Cp1OewCZed4Gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-esbuild/-/bundler-esbuild-4.0.89.tgz} - name: '@umijs/bundler-esbuild' - version: 4.0.89 - hasBin: true - dependencies: - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.9.3 - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-flexbugs-fixes: registry.npmmirror.com/postcss-flexbugs-fixes@5.0.2(postcss@8.4.31) - postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31) - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@umijs/bundler-utils@4.0.89: - resolution: {integrity: sha512-/nKdEj0ku9MX5RYYLzDObuvDBb1sd89XD2Opldk7kgLbLw1iePksrWtP8gR5X2UGjqtEZYvcfrYFt0jV0LCcQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-utils/-/bundler-utils-4.0.89.tgz} - name: '@umijs/bundler-utils' - version: 4.0.89 - dependencies: - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - esbuild: registry.npmmirror.com/esbuild@0.17.19 - regenerate: registry.npmmirror.com/regenerate@1.4.2 - regenerate-unicode-properties: registry.npmmirror.com/regenerate-unicode-properties@10.1.1 - spdy: registry.npmmirror.com/spdy@4.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.10.0)(postcss@8.4.31)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0): - resolution: {integrity: sha512-4dfBmVK44AqsJm1+YhFijKXcrHoM26vO9Ju5Us4+J0Ca3rDUtWQZJ9xFEkqsNsf7AMaJ7B8zDd422sThvvSXGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-vite/-/bundler-vite-4.0.89.tgz} - id: registry.npmmirror.com/@umijs/bundler-vite/4.0.89 - name: '@umijs/bundler-vite' - version: 4.0.89 - hasBin: true - dependencies: - '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - '@vitejs/plugin-react': registry.npmmirror.com/@vitejs/plugin-react@4.0.0(vite@4.3.1) - core-js: registry.npmmirror.com/core-js@3.28.0 - less: registry.npmmirror.com/less@4.1.3 - postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31) - rollup-plugin-visualizer: registry.npmmirror.com/rollup-plugin-visualizer@5.9.0(rollup@4.5.2) - systemjs: registry.npmmirror.com/systemjs@6.14.2 - vite: registry.npmmirror.com/vite@4.3.1(@types/node@20.10.0)(less@4.1.3)(sass@1.69.5)(terser@5.24.0) - transitivePeerDependencies: - - '@types/node' - - postcss - - rollup - - sass - - stylus - - sugarss - - supports-color - - terser - dev: false - - registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.2)(webpack@5.89.0): - resolution: {integrity: sha512-BfCpmxDIzhRa7wnEAODOj5auHXd/n954qt0QUkUUlGJYa5GrtgRiKsGtnwew+8uVX1vm0y7XDqnCU+trWAq0nQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/bundler-webpack/-/bundler-webpack-4.0.89.tgz} - id: registry.npmmirror.com/@umijs/bundler-webpack/4.0.89 - name: '@umijs/bundler-webpack' - version: 4.0.89 - hasBin: true - dependencies: - '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 - '@svgr/plugin-jsx': registry.npmmirror.com/@svgr/plugin-jsx@6.5.1(@svgr/core@6.5.1) - '@svgr/plugin-svgo': registry.npmmirror.com/@svgr/plugin-svgo@6.5.1(@svgr/core@6.5.1) - '@types/hapi__joi': registry.npmmirror.com/@types/hapi__joi@17.1.9 - '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/case-sensitive-paths-webpack-plugin': registry.npmmirror.com/@umijs/case-sensitive-paths-webpack-plugin@1.0.1 - '@umijs/mfsu': registry.npmmirror.com/@umijs/mfsu@4.0.89 - '@umijs/react-refresh-webpack-plugin': registry.npmmirror.com/@umijs/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack@5.89.0) - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - cors: registry.npmmirror.com/cors@2.8.5 - css-loader: registry.npmmirror.com/css-loader@6.7.1(webpack@5.89.0) - es5-imcompatible-versions: registry.npmmirror.com/es5-imcompatible-versions@0.1.88 - fork-ts-checker-webpack-plugin: registry.npmmirror.com/fork-ts-checker-webpack-plugin@8.0.0(typescript@5.3.2)(webpack@5.89.0) - jest-worker: registry.npmmirror.com/jest-worker@29.4.3 - lightningcss: registry.npmmirror.com/lightningcss@1.22.1 - node-libs-browser: registry.npmmirror.com/node-libs-browser@2.2.1 - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-preset-env: registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31) - react-error-overlay: registry.npmmirror.com/react-error-overlay@6.0.9 - react-refresh: registry.npmmirror.com/react-refresh@0.14.0 - transitivePeerDependencies: - - '@types/webpack' - - sockjs-client - - supports-color - - type-fest - - typescript - - webpack - - webpack-dev-server - - webpack-hot-middleware - - webpack-plugin-serve - dev: false - - registry.npmmirror.com/@umijs/case-sensitive-paths-webpack-plugin@1.0.1: - resolution: {integrity: sha512-kDKJ8yTarxwxGJDInG33hOpaQRZ//XpNuuznQ/1Mscypw6kappzFmrBr2dOYave++K7JHouoANF354UpbEQw0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-1.0.1.tgz} - name: '@umijs/case-sensitive-paths-webpack-plugin' - version: 1.0.1 - dev: false - - registry.npmmirror.com/@umijs/core@4.0.89: - resolution: {integrity: sha512-S6K2Y8h6DyRoPP0EVrYgDs3iO7B2hHcd9QN+n6v0JHzhkHMVvsPnGlPx66yAptACBlBirR/ICIm0Pr1CrDADbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/core/-/core-4.0.89.tgz} - name: '@umijs/core' - version: 4.0.89 - dependencies: - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@umijs/did-you-know@1.0.3: - resolution: {integrity: sha512-9EZ+rgY9+2HEaE+Z9dGkal2ccw8L4uuz77tCB5WpskW7NBZX5nOj82sqF/shEtA5tU3SWO/Mi4n35K3iONvDtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/did-you-know/-/did-you-know-1.0.3.tgz} - name: '@umijs/did-you-know' - version: 1.0.3 - dev: false - - registry.npmmirror.com/@umijs/es-module-parser-darwin-arm64@0.0.7: - resolution: {integrity: sha512-1QeNupekuVYVvL4UHyCRq4ISP2PNk4rDd9UOPONW+KpqTyP9p7RfgGpwB0VLPaFSu2ADtm0XZyIaYEGPY6zuDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-darwin-arm64/-/es-module-parser-darwin-arm64-0.0.7.tgz} - name: '@umijs/es-module-parser-darwin-arm64' - version: 0.0.7 - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@umijs/es-module-parser-darwin-x64@0.0.7: - resolution: {integrity: sha512-FBFmfigmToPc9qBCW7wHiTYpqnLdPbAvoMGOydzAu2NspdPEF7TfILcr8vCPNbNe3vCobS+T/YM1dP+SagERlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-darwin-x64/-/es-module-parser-darwin-x64-0.0.7.tgz} - name: '@umijs/es-module-parser-darwin-x64' - version: 0.0.7 - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@umijs/es-module-parser-linux-arm-gnueabihf@0.0.7: - resolution: {integrity: sha512-AXfmg3htkadLGsXUyiyrTig4omGCWIN4l+HS7Qapqv0wlfFYSpC0KPemjyBQgzXO70tDcT+1FNhGjIy+yr2pIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-arm-gnueabihf/-/es-module-parser-linux-arm-gnueabihf-0.0.7.tgz} - name: '@umijs/es-module-parser-linux-arm-gnueabihf' - version: 0.0.7 - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-gnu@0.0.7: - resolution: {integrity: sha512-2wSdChFc39fPJwvS8tRq+jx8qNlIwrjRk1hb3N5o0rJR+rqt+ceAyNPbYwpNBmUHW7xtmDQvJUeinvr7hIBP+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-gnu/-/es-module-parser-linux-arm64-gnu-0.0.7.tgz} - name: '@umijs/es-module-parser-linux-arm64-gnu' - version: 0.0.7 - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - libc: [glibc] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-musl@0.0.7: - resolution: {integrity: sha512-cqQffARWkmQ3n1RYNKZR3aD6X8YaP6u1maASjDgPQOpZMAlv/OSDrM/7iGujWTs0PD0haockNG9/DcP6lgPHMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-musl/-/es-module-parser-linux-arm64-musl-0.0.7.tgz} - name: '@umijs/es-module-parser-linux-arm64-musl' - version: 0.0.7 - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - libc: [musl] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@umijs/es-module-parser-linux-x64-gnu@0.0.7: - resolution: {integrity: sha512-PHrKHtT665Za0Ydjch4ACrNpRU+WIIden12YyF1CtMdhuLDSoU6UfdhF3NoDbgEUcXVDX/ftOqmj0SbH3R1uew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-x64-gnu/-/es-module-parser-linux-x64-gnu-0.0.7.tgz} - name: '@umijs/es-module-parser-linux-x64-gnu' - version: 0.0.7 - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - libc: [glibc] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@umijs/es-module-parser-linux-x64-musl@0.0.7: - resolution: {integrity: sha512-cyZvUK5lcECLWzLp/eU1lFlCETcz+LEb+wrdARQSST1dgoIGZsT4cqM1WzYmdZNk3o883tiZizLt58SieEiHBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-linux-x64-musl/-/es-module-parser-linux-x64-musl-0.0.7.tgz} - name: '@umijs/es-module-parser-linux-x64-musl' - version: 0.0.7 - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - libc: [musl] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@umijs/es-module-parser-win32-arm64-msvc@0.0.7: - resolution: {integrity: sha512-V7WxnUI88RboSl0RWLNQeKBT7EDW35fW6Tn92zqtoHHxrhAIL9DtDyvC8REP4qTxeZ6Oej/Ax5I6IjsLx3yTOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-win32-arm64-msvc/-/es-module-parser-win32-arm64-msvc-0.0.7.tgz} - name: '@umijs/es-module-parser-win32-arm64-msvc' - version: 0.0.7 - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@umijs/es-module-parser-win32-x64-msvc@0.0.7: - resolution: {integrity: sha512-X3Pqy0l38hg6wMPquPeMHuoHU+Cx+wzyz32SVYCta+RPJQ7n9PjrEBiIuVAw5+GJZjSABN7LVr8u/n0RZT9EQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser-win32-x64-msvc/-/es-module-parser-win32-x64-msvc-0.0.7.tgz} - name: '@umijs/es-module-parser-win32-x64-msvc' - version: 0.0.7 - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/@umijs/es-module-parser@0.0.7: - resolution: {integrity: sha512-x47CMi/Hw7Nkz3RXTUqlldH/UM+Tcmw2PziV3k+itJqTFJc8oVx3lzdUgCnG+eL3ZtmLPbOEBhPb30V0NytNDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/es-module-parser/-/es-module-parser-0.0.7.tgz} - name: '@umijs/es-module-parser' - version: 0.0.7 - engines: {node: '>= 10'} - optionalDependencies: - '@umijs/es-module-parser-darwin-arm64': registry.npmmirror.com/@umijs/es-module-parser-darwin-arm64@0.0.7 - '@umijs/es-module-parser-darwin-x64': registry.npmmirror.com/@umijs/es-module-parser-darwin-x64@0.0.7 - '@umijs/es-module-parser-linux-arm-gnueabihf': registry.npmmirror.com/@umijs/es-module-parser-linux-arm-gnueabihf@0.0.7 - '@umijs/es-module-parser-linux-arm64-gnu': registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-gnu@0.0.7 - '@umijs/es-module-parser-linux-arm64-musl': registry.npmmirror.com/@umijs/es-module-parser-linux-arm64-musl@0.0.7 - '@umijs/es-module-parser-linux-x64-gnu': registry.npmmirror.com/@umijs/es-module-parser-linux-x64-gnu@0.0.7 - '@umijs/es-module-parser-linux-x64-musl': registry.npmmirror.com/@umijs/es-module-parser-linux-x64-musl@0.0.7 - '@umijs/es-module-parser-win32-arm64-msvc': registry.npmmirror.com/@umijs/es-module-parser-win32-arm64-msvc@0.0.7 - '@umijs/es-module-parser-win32-x64-msvc': registry.npmmirror.com/@umijs/es-module-parser-win32-x64-msvc@0.0.7 - dev: false - - registry.npmmirror.com/@umijs/history@5.3.1: - resolution: {integrity: sha512-/e0cEGrR2bIWQD7pRl3dl9dcyRGeC9hoW0OCvUTT/hjY0EfUrkd6G8ZanVghPMpDuY5usxq9GVcvrT8KNXLWvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/history/-/history-5.3.1.tgz} - name: '@umijs/history' - version: 5.3.1 - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - query-string: registry.npmmirror.com/query-string@6.14.1 - dev: false - - registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.54.0)(stylelint@14.16.1)(typescript@5.3.2): - resolution: {integrity: sha512-z7pSpZoAecTltLwBEiyyzZYY3wPlg7DA5U4llWJbkfz/U0TdKgeDAzH6cq1SpvuRBsLTO3aiD6+6DP0NDuU82g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/lint/-/lint-4.0.89.tgz} - id: registry.npmmirror.com/@umijs/lint/4.0.89 - name: '@umijs/lint' - version: 4.0.89 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 - '@babel/eslint-parser': registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.54.0) - '@stylelint/postcss-css-in-js': registry.npmmirror.com/@stylelint/postcss-css-in-js@0.38.0(postcss-syntax@0.36.2)(postcss@8.4.31) - '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.54.0)(typescript@5.3.2) - '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 - eslint-plugin-jest: registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.54.0)(typescript@5.3.2) - eslint-plugin-react: registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.54.0) - eslint-plugin-react-hooks: registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.54.0) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-syntax: registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.31) - stylelint-config-standard: registry.npmmirror.com/stylelint-config-standard@25.0.0(stylelint@14.16.1) - transitivePeerDependencies: - - eslint - - jest - - postcss-html - - postcss-jsx - - postcss-less - - postcss-markdown - - postcss-scss - - stylelint - - supports-color - - typescript - dev: false - - registry.npmmirror.com/@umijs/mfsu@4.0.89: - resolution: {integrity: sha512-CcpIh88r5JaiYtPkr/Dnch6Pm8e02wHPy7BWW3A6ina0SZS4o5K2BPr/fbWoFRrfWLHQT4BGvwIkz1LavDieZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/mfsu/-/mfsu-4.0.89.tgz} - name: '@umijs/mfsu' - version: 4.0.89 - dependencies: - '@umijs/bundler-esbuild': registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89 - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.9.3 - is-equal: registry.npmmirror.com/is-equal@1.7.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@umijs/plugin-run@4.0.89: - resolution: {integrity: sha512-YsqaZz8ee3jHIsiLj43I/rtz7cy6tVhB3dUJ6zQH6a4b8u2fl7MYQcccj5gqjuRGQK5HcUScyYIJftR3cSUGKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/plugin-run/-/plugin-run-4.0.89.tgz} - name: '@umijs/plugin-run' - version: 4.0.89 - dependencies: - tsx: registry.npmmirror.com/tsx@3.14.0 - dev: false - - registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.10.0)(@types/react@18.2.38)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0): - resolution: {integrity: sha512-S0dn0e9C5eD2IX8bGGrNEDd0EaQVGuAwyJw2ruIU/FCO9B1HwdjCdRMuEADCBOuXMzBRt4+wKToFgId5tz3gAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/preset-umi/-/preset-umi-4.0.89.tgz} - id: registry.npmmirror.com/@umijs/preset-umi/4.0.89 - name: '@umijs/preset-umi' - version: 4.0.89 - dependencies: - '@iconify/utils': registry.npmmirror.com/@iconify/utils@2.1.1 - '@svgr/core': registry.npmmirror.com/@svgr/core@6.5.1 - '@umijs/ast': registry.npmmirror.com/@umijs/ast@4.0.89 - '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 - '@umijs/bundler-esbuild': registry.npmmirror.com/@umijs/bundler-esbuild@4.0.89 - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/bundler-vite': registry.npmmirror.com/@umijs/bundler-vite@4.0.89(@types/node@20.10.0)(postcss@8.4.31)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0) - '@umijs/bundler-webpack': registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.2)(webpack@5.89.0) - '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 - '@umijs/did-you-know': registry.npmmirror.com/@umijs/did-you-know@1.0.3 - '@umijs/es-module-parser': registry.npmmirror.com/@umijs/es-module-parser@0.0.7 - '@umijs/history': registry.npmmirror.com/@umijs/history@5.3.1 - '@umijs/mfsu': registry.npmmirror.com/@umijs/mfsu@4.0.89 - '@umijs/plugin-run': registry.npmmirror.com/@umijs/plugin-run@4.0.89 - '@umijs/renderer-react': registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.1.0)(react@18.1.0) - '@umijs/server': registry.npmmirror.com/@umijs/server@4.0.89 - '@umijs/ui': registry.npmmirror.com/@umijs/ui@3.0.1 - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - '@umijs/zod2ts': registry.npmmirror.com/@umijs/zod2ts@4.0.89 - babel-plugin-dynamic-import-node: registry.npmmirror.com/babel-plugin-dynamic-import-node@2.3.3 - click-to-react-component: registry.npmmirror.com/click-to-react-component@1.1.0(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0) - core-js: registry.npmmirror.com/core-js@3.28.0 - current-script-polyfill: registry.npmmirror.com/current-script-polyfill@1.0.0 - enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.9.3 - fast-glob: registry.npmmirror.com/fast-glob@3.2.12 - html-webpack-plugin: registry.npmmirror.com/html-webpack-plugin@5.5.0(webpack@5.89.0) - less-plugin-resolve: registry.npmmirror.com/less-plugin-resolve@1.0.2 - path-to-regexp: registry.npmmirror.com/path-to-regexp@1.7.0 - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-prefix-selector: registry.npmmirror.com/postcss-prefix-selector@1.16.0(postcss@8.4.31) - react: registry.npmmirror.com/react@18.1.0 - react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) - react-router: registry.npmmirror.com/react-router@6.3.0(react@18.1.0) - react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0) - regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.13.11 - transitivePeerDependencies: - - '@types/node' - - '@types/react' - - '@types/webpack' - - rollup - - sass - - sockjs-client - - stylus - - sugarss - - supports-color - - terser - - type-fest - - typescript - - webpack - - webpack-dev-server - - webpack-hot-middleware - - webpack-plugin-serve - dev: false - - registry.npmmirror.com/@umijs/react-refresh-webpack-plugin@0.5.11(react-refresh@0.14.0)(webpack@5.89.0): - resolution: {integrity: sha512-RtFvB+/GmjRhpHcqNgnw8iWZpTlxOnmNxi8eDcecxMmxmSgeDj25LV0jr4Q6rOhv3GTIfVGBhkwz+khGT5tfmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz} - id: registry.npmmirror.com/@umijs/react-refresh-webpack-plugin/0.5.11 - name: '@umijs/react-refresh-webpack-plugin' - version: 0.5.11 - engines: {node: '>= 10.13'} - peerDependencies: - '@types/webpack': 4.x || 5.x - react-refresh: '>=0.10.0 <1.0.0' - sockjs-client: ^1.4.0 - type-fest: '>=0.17.0 <5.0.0' - webpack: '>=4.43.0 <6.0.0' - webpack-dev-server: 3.x || 4.x - webpack-hot-middleware: 2.x - webpack-plugin-serve: 0.x || 1.x - peerDependenciesMeta: - '@types/webpack': - optional: true - sockjs-client: - optional: true - type-fest: - optional: true - webpack-dev-server: - optional: true - webpack-hot-middleware: - optional: true - webpack-plugin-serve: - optional: true - dependencies: - ansi-html-community: registry.npmmirror.com/ansi-html-community@0.0.8 - common-path-prefix: registry.npmmirror.com/common-path-prefix@3.0.0 - core-js-pure: registry.npmmirror.com/core-js-pure@3.34.0 - error-stack-parser: registry.npmmirror.com/error-stack-parser@2.1.4 - find-up: registry.npmmirror.com/find-up@5.0.0 - html-entities: registry.npmmirror.com/html-entities@2.4.0 - loader-utils: registry.npmmirror.com/loader-utils@2.0.4 - react-refresh: registry.npmmirror.com/react-refresh@0.14.0 - schema-utils: registry.npmmirror.com/schema-utils@3.3.0 - source-map: registry.npmmirror.com/source-map@0.7.4 - webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) - dev: false - - registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.1.0)(react@18.1.0): - resolution: {integrity: sha512-GDnUHzWzndT52gA8FnsHUOvO6wl6rQfrc9Q5O/cmWXtt1xMMk8H9bwR0rMYWE66ToKPTusP87YwSOtlGRtIPWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/renderer-react/-/renderer-react-4.0.89.tgz} - id: registry.npmmirror.com/@umijs/renderer-react/4.0.89 - name: '@umijs/renderer-react' - version: 4.0.89 - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 - '@loadable/component': registry.npmmirror.com/@loadable/component@5.15.2(react@18.1.0) - history: registry.npmmirror.com/history@5.3.0 - react: registry.npmmirror.com/react@18.1.0 - react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) - react-helmet-async: registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.1.0)(react@18.1.0) - react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0) - dev: false - - registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-GDnUHzWzndT52gA8FnsHUOvO6wl6rQfrc9Q5O/cmWXtt1xMMk8H9bwR0rMYWE66ToKPTusP87YwSOtlGRtIPWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/renderer-react/-/renderer-react-4.0.89.tgz} - id: registry.npmmirror.com/@umijs/renderer-react/4.0.89 - name: '@umijs/renderer-react' - version: 4.0.89 - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 - '@loadable/component': registry.npmmirror.com/@loadable/component@5.15.2(react@18.2.0) - history: registry.npmmirror.com/history@5.3.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-helmet-async: registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0) - react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.2.0)(react@18.2.0) - dev: false - - registry.npmmirror.com/@umijs/server@4.0.89: - resolution: {integrity: sha512-k+3KXt6vyYpnFQXrzm6JTyIaepW4uKkMNu4AQJBSpbC0FZVJw43mYIjVEoTlFUcXzR3IeP3ghny6J2Q2KLkF0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/server/-/server-4.0.89.tgz} - name: '@umijs/server' - version: 4.0.89 - dependencies: - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - history: registry.npmmirror.com/history@5.3.0 - react: registry.npmmirror.com/react@18.1.0 - react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) - react-router-dom: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0) - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@umijs/test@4.0.89(@babel/core@7.23.3): - resolution: {integrity: sha512-eOVyk1zkCypEC0AtrnM1Kfp0+6DQK8FImXMTd3t3w8eSXTkh2v4Njy27qRC7soQeQhC/RieP3qpcs+k15rZYvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/test/-/test-4.0.89.tgz} - id: registry.npmmirror.com/@umijs/test/4.0.89 - name: '@umijs/test' - version: 4.0.89 - dependencies: - '@babel/plugin-transform-modules-commonjs': registry.npmmirror.com/@babel/plugin-transform-modules-commonjs@7.23.0(@babel/core@7.23.3) - '@jest/types': registry.npmmirror.com/@jest/types@27.5.1 - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - babel-jest: registry.npmmirror.com/babel-jest@29.7.0(@babel/core@7.23.3) - esbuild: registry.npmmirror.com/esbuild@0.17.19 - identity-obj-proxy: registry.npmmirror.com/identity-obj-proxy@3.0.0 - isomorphic-unfetch: registry.npmmirror.com/isomorphic-unfetch@4.0.2 - transitivePeerDependencies: - - '@babel/core' - - supports-color - dev: false - - registry.npmmirror.com/@umijs/ui@3.0.1: - resolution: {integrity: sha512-zcz37AJH0xt/6XVVbyO/hmsK9Hq4vH23HZ4KYVi5A8rbM9KeJkJigTS7ELOdArawZhVNGe+h3a5Oixs4a2QsWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/ui/-/ui-3.0.1.tgz} - name: '@umijs/ui' - version: 3.0.1 - dev: false - - registry.npmmirror.com/@umijs/utils@4.0.89: - resolution: {integrity: sha512-Gq2yyuhp4m17DfU9VE59MkJGQrnbSsFp9/pfOFhbArV6AWzSo+EUY6UwLPmuQdJbJzVacZlN6N8t6cb794sVNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/utils/-/utils-4.0.89.tgz} - name: '@umijs/utils' - version: 4.0.89 - dependencies: - chokidar: registry.npmmirror.com/chokidar@3.5.3 - pino: registry.npmmirror.com/pino@7.11.0 - dev: false - - registry.npmmirror.com/@umijs/zod2ts@4.0.89: - resolution: {integrity: sha512-LjPmRHutjqtFATIYbcF+yR/I6pxDaES1J0CCHRnap5oV9VTUu/acgVpFEX/Op8G0oT4ioHA2FaFxgAGF9OwMPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/zod2ts/-/zod2ts-4.0.89.tgz} - name: '@umijs/zod2ts' - version: 4.0.89 - dev: false - - registry.npmmirror.com/@vitejs/plugin-react@4.0.0(vite@4.3.1): - resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.0.0.tgz} - id: registry.npmmirror.com/@vitejs/plugin-react/4.0.0 - name: '@vitejs/plugin-react' - version: 4.0.0 - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - vite: ^4.2.0 - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - '@babel/plugin-transform-react-jsx-self': registry.npmmirror.com/@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.3) - '@babel/plugin-transform-react-jsx-source': registry.npmmirror.com/@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.3) - react-refresh: registry.npmmirror.com/react-refresh@0.14.0 - vite: registry.npmmirror.com/vite@4.3.1(@types/node@20.10.0)(less@4.1.3)(sass@1.69.5)(terser@5.24.0) - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/@webassemblyjs/ast@1.11.6: - resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz} - name: '@webassemblyjs/ast' - version: 1.11.6 - dependencies: - '@webassemblyjs/helper-numbers': registry.npmmirror.com/@webassemblyjs/helper-numbers@1.11.6 - '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser@1.11.6: - resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz} - name: '@webassemblyjs/floating-point-hex-parser' - version: 1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6: - resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz} - name: '@webassemblyjs/helper-api-error' - version: 1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6: - resolution: {integrity: sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz} - name: '@webassemblyjs/helper-buffer' - version: 1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/helper-numbers@1.11.6: - resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz} - name: '@webassemblyjs/helper-numbers' - version: 1.11.6 - dependencies: - '@webassemblyjs/floating-point-hex-parser': registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser@1.11.6 - '@webassemblyjs/helper-api-error': registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6 - '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 - dev: false - - registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6: - resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz} - name: '@webassemblyjs/helper-wasm-bytecode' - version: 1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/helper-wasm-section@1.11.6: - resolution: {integrity: sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz} - name: '@webassemblyjs/helper-wasm-section' - version: 1.11.6 - dependencies: - '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 - '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 - '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 - '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6: - resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz} - name: '@webassemblyjs/ieee754' - version: 1.11.6 - dependencies: - '@xtuc/ieee754': registry.npmmirror.com/@xtuc/ieee754@1.2.0 - dev: false - - registry.npmmirror.com/@webassemblyjs/leb128@1.11.6: - resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz} - name: '@webassemblyjs/leb128' - version: 1.11.6 - dependencies: - '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 - dev: false - - registry.npmmirror.com/@webassemblyjs/utf8@1.11.6: - resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz} - name: '@webassemblyjs/utf8' - version: 1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/wasm-edit@1.11.6: - resolution: {integrity: sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz} - name: '@webassemblyjs/wasm-edit' - version: 1.11.6 - dependencies: - '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 - '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 - '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 - '@webassemblyjs/helper-wasm-section': registry.npmmirror.com/@webassemblyjs/helper-wasm-section@1.11.6 - '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 - '@webassemblyjs/wasm-opt': registry.npmmirror.com/@webassemblyjs/wasm-opt@1.11.6 - '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 - '@webassemblyjs/wast-printer': registry.npmmirror.com/@webassemblyjs/wast-printer@1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6: - resolution: {integrity: sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz} - name: '@webassemblyjs/wasm-gen' - version: 1.11.6 - dependencies: - '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 - '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 - '@webassemblyjs/ieee754': registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6 - '@webassemblyjs/leb128': registry.npmmirror.com/@webassemblyjs/leb128@1.11.6 - '@webassemblyjs/utf8': registry.npmmirror.com/@webassemblyjs/utf8@1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/wasm-opt@1.11.6: - resolution: {integrity: sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz} - name: '@webassemblyjs/wasm-opt' - version: 1.11.6 - dependencies: - '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 - '@webassemblyjs/helper-buffer': registry.npmmirror.com/@webassemblyjs/helper-buffer@1.11.6 - '@webassemblyjs/wasm-gen': registry.npmmirror.com/@webassemblyjs/wasm-gen@1.11.6 - '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6: - resolution: {integrity: sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz} - name: '@webassemblyjs/wasm-parser' - version: 1.11.6 - dependencies: - '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 - '@webassemblyjs/helper-api-error': registry.npmmirror.com/@webassemblyjs/helper-api-error@1.11.6 - '@webassemblyjs/helper-wasm-bytecode': registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode@1.11.6 - '@webassemblyjs/ieee754': registry.npmmirror.com/@webassemblyjs/ieee754@1.11.6 - '@webassemblyjs/leb128': registry.npmmirror.com/@webassemblyjs/leb128@1.11.6 - '@webassemblyjs/utf8': registry.npmmirror.com/@webassemblyjs/utf8@1.11.6 - dev: false - - registry.npmmirror.com/@webassemblyjs/wast-printer@1.11.6: - resolution: {integrity: sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz} - name: '@webassemblyjs/wast-printer' - version: 1.11.6 - dependencies: - '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 - '@xtuc/long': registry.npmmirror.com/@xtuc/long@4.2.2 - dev: false - - registry.npmmirror.com/@xtuc/ieee754@1.2.0: - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz} - name: '@xtuc/ieee754' - version: 1.2.0 - dev: false - - registry.npmmirror.com/@xtuc/long@4.2.2: - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz} - name: '@xtuc/long' - version: 4.2.2 - dev: false - - registry.npmmirror.com/acorn-import-assertions@1.9.0(acorn@8.11.2): - resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz} - id: registry.npmmirror.com/acorn-import-assertions/1.9.0 - name: acorn-import-assertions - version: 1.9.0 - peerDependencies: - acorn: ^8 - dependencies: - acorn: registry.npmmirror.com/acorn@8.11.2 - dev: false - - registry.npmmirror.com/acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/-/acorn-8.11.2.tgz} - name: acorn - version: 8.11.2 - engines: {node: '>=0.4.0'} - hasBin: true - dev: false - - registry.npmmirror.com/agent-base@4.3.0: - resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/agent-base/-/agent-base-4.3.0.tgz} - name: agent-base - version: 4.3.0 - engines: {node: '>= 4.0.0'} - dependencies: - es6-promisify: registry.npmmirror.com/es6-promisify@5.0.0 - dev: false - - registry.npmmirror.com/agentkeepalive@3.5.2: - resolution: {integrity: sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/agentkeepalive/-/agentkeepalive-3.5.2.tgz} - name: agentkeepalive - version: 3.5.2 - engines: {node: '>= 4.0.0'} - dependencies: - humanize-ms: registry.npmmirror.com/humanize-ms@1.2.1 - dev: false - - registry.npmmirror.com/ahooks-v3-count@1.0.0: - resolution: {integrity: sha512-V7uUvAwnimu6eh/PED4mCDjE7tokeZQLKlxg9lCTMPhN+NjsSbtdacByVlR1oluXQzD3MOw55wylDmQo4+S9ZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ahooks-v3-count/-/ahooks-v3-count-1.0.0.tgz} - name: ahooks-v3-count - version: 1.0.0 - dev: false - - registry.npmmirror.com/ahooks@3.7.8(react@18.2.0): - resolution: {integrity: sha512-e/NMlQWoCjaUtncNFIZk3FG1ImSkV/JhScQSkTqnftakRwdfZWSw6zzoWSG9OMYqPNs2MguDYBUFFC6THelWXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ahooks/-/ahooks-3.7.8.tgz} - id: registry.npmmirror.com/ahooks/3.7.8 - name: ahooks - version: 3.7.8 - engines: {node: '>=8.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@types/js-cookie': registry.npmmirror.com/@types/js-cookie@2.2.7 - ahooks-v3-count: registry.npmmirror.com/ahooks-v3-count@1.0.0 - dayjs: registry.npmmirror.com/dayjs@1.11.10 - intersection-observer: registry.npmmirror.com/intersection-observer@0.12.2 - js-cookie: registry.npmmirror.com/js-cookie@2.2.1 - lodash: registry.npmmirror.com/lodash@4.17.21 - react: 18.2.0 - resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 - screenfull: registry.npmmirror.com/screenfull@5.2.0 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6): - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz} - id: registry.npmmirror.com/ajv-keywords/3.5.2 - name: ajv-keywords - version: 3.5.2 - peerDependencies: - ajv: ^6.9.1 - dependencies: - ajv: registry.npmmirror.com/ajv@6.12.6 - dev: false - - registry.npmmirror.com/ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz} - name: ajv - version: 6.12.6 - dependencies: - fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 - fast-json-stable-stringify: registry.npmmirror.com/fast-json-stable-stringify@2.1.0 - json-schema-traverse: registry.npmmirror.com/json-schema-traverse@0.4.1 - uri-js: registry.npmmirror.com/uri-js@4.4.1 - dev: false - - registry.npmmirror.com/ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ajv/-/ajv-8.12.0.tgz} - name: ajv - version: 8.12.0 - dependencies: - fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 - json-schema-traverse: registry.npmmirror.com/json-schema-traverse@1.0.0 - require-from-string: registry.npmmirror.com/require-from-string@2.0.2 - uri-js: registry.npmmirror.com/uri-js@4.4.1 - dev: false - - registry.npmmirror.com/animated-scroll-to@2.3.0: - resolution: {integrity: sha512-PT/5MSKCWQaK2kuOl2HT2KJMuJEvUS4/TgMhWy82c2EmF74/CIkvPBPKOvd8nMYP6Higo7xCn49/iSW9BccMoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/animated-scroll-to/-/animated-scroll-to-2.3.0.tgz} - name: animated-scroll-to - version: 2.3.0 - dev: false - - registry.npmmirror.com/ansi-align@2.0.0: - resolution: {integrity: sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-align/-/ansi-align-2.0.0.tgz} - name: ansi-align - version: 2.0.0 - dependencies: - string-width: registry.npmmirror.com/string-width@2.1.1 - dev: false - - registry.npmmirror.com/ansi-escapes@3.2.0: - resolution: {integrity: sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz} - name: ansi-escapes - version: 3.2.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/ansi-html-community@0.0.8: - resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz} - name: ansi-html-community - version: 0.0.8 - engines: {'0': node >= 0.8.0} - hasBin: true - dev: false - - registry.npmmirror.com/ansi-regex@2.1.1: - resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz} - name: ansi-regex - version: 2.1.1 - engines: {node: '>=0.10.0'} - dev: true - - registry.npmmirror.com/ansi-regex@3.0.1: - resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz} - name: ansi-regex - version: 3.0.1 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/ansi-regex@4.1.1: - resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-4.1.1.tgz} - name: ansi-regex - version: 4.1.1 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz} - name: ansi-regex - version: 5.0.1 - engines: {node: '>=8'} - - registry.npmmirror.com/ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} - name: ansi-styles - version: 3.2.1 - engines: {node: '>=4'} - dependencies: - color-convert: registry.npmmirror.com/color-convert@1.9.3 - dev: false - - registry.npmmirror.com/ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} - name: ansi-styles - version: 4.3.0 - engines: {node: '>=8'} - dependencies: - color-convert: registry.npmmirror.com/color-convert@2.0.1 - - registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.38)(antd@5.11.4)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-KpKXiAIV3CAe6TfSh/m6ET2vGuhAof7qfqeaouh5WZ0JDl5jDXXSFPeEfqvZuHAckTl+A0NzArvIHKgKt/NZ9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd-style/-/antd-style-3.6.1.tgz} - id: registry.npmmirror.com/antd-style/3.6.1 - name: antd-style - version: 3.6.1 - peerDependencies: - antd: '>=5.8.1' - react: '>=18' - dependencies: - '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0) - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@emotion/cache': registry.npmmirror.com/@emotion/cache@11.11.0 - '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 - '@emotion/react': registry.npmmirror.com/@emotion/react@11.11.1(@types/react@18.2.38)(react@18.2.0) - '@emotion/serialize': registry.npmmirror.com/@emotion/serialize@1.1.2 - '@emotion/server': registry.npmmirror.com/@emotion/server@11.11.0(@emotion/css@11.11.2) - '@emotion/utils': registry.npmmirror.com/@emotion/utils@1.2.1 - antd: 5.11.4(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - use-merge-value: registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - - react-dom - dev: false - - registry.npmmirror.com/antd@5.11.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-FuaV/viyZiMlCL1JzdQpSlzPcWcBlGYDAbtj3FM4BgwAso+ge3d4tXkZZG4yZkktUoLvWrcaJObs3Nk32Oiwuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd/-/antd-5.11.4.tgz} - id: registry.npmmirror.com/antd/5.11.4 - name: antd - version: 5.11.4 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 - '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.17.5(react-dom@18.2.0)(react@18.2.0) - '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) - '@ant-design/react-slick': registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0) - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 - '@rc-component/color-picker': registry.npmmirror.com/@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0) - '@rc-component/mutate-observer': registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0) - '@rc-component/tour': registry.npmmirror.com/@rc-component/tour@1.10.0(react-dom@18.2.0)(react@18.2.0) - '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 - dayjs: registry.npmmirror.com/dayjs@1.11.10 - qrcode.react: registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0) - rc-cascader: registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0) - rc-checkbox: registry.npmmirror.com/rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0) - rc-collapse: registry.npmmirror.com/rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0) - rc-dialog: registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0) - rc-drawer: registry.npmmirror.com/rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0) - rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) - rc-field-form: registry.npmmirror.com/rc-field-form@1.40.0(react-dom@18.2.0)(react@18.2.0) - rc-image: registry.npmmirror.com/rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0) - rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) - rc-input-number: registry.npmmirror.com/rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0) - rc-mentions: registry.npmmirror.com/rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0) - rc-menu: registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0) - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-notification: registry.npmmirror.com/rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0) - rc-pagination: registry.npmmirror.com/rc-pagination@3.7.0(react-dom@18.2.0)(react@18.2.0) - rc-picker: registry.npmmirror.com/rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) - rc-progress: registry.npmmirror.com/rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0) - rc-rate: registry.npmmirror.com/rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-segmented: registry.npmmirror.com/rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0) - rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) - rc-slider: registry.npmmirror.com/rc-slider@10.4.0(react-dom@18.2.0)(react@18.2.0) - rc-steps: registry.npmmirror.com/rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0) - rc-switch: registry.npmmirror.com/rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0) - rc-table: registry.npmmirror.com/rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0) - rc-tabs: registry.npmmirror.com/rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0) - rc-textarea: registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0) - rc-tooltip: registry.npmmirror.com/rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0) - rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) - rc-tree-select: registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0) - rc-upload: registry.npmmirror.com/rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - scroll-into-view-if-needed: registry.npmmirror.com/scroll-into-view-if-needed@3.1.0 - throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 - transitivePeerDependencies: - - date-fns - - luxon - - moment - dev: false - - registry.npmmirror.com/anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} - name: anymatch - version: 3.1.3 - engines: {node: '>= 8'} - dependencies: - normalize-path: registry.npmmirror.com/normalize-path@3.0.0 - picomatch: registry.npmmirror.com/picomatch@2.3.1 - dev: false - - registry.npmmirror.com/aproba@1.2.0: - resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aproba/-/aproba-1.2.0.tgz} - name: aproba - version: 1.2.0 - dev: false - - registry.npmmirror.com/arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz} - name: arg - version: 5.0.2 - dev: false - - registry.npmmirror.com/argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz} - name: argparse - version: 1.0.10 - dependencies: - sprintf-js: registry.npmmirror.com/sprintf-js@1.0.3 - dev: false - - registry.npmmirror.com/argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz} - name: argparse - version: 2.0.1 - dev: false - - registry.npmmirror.com/aria-hidden@1.2.3: - resolution: {integrity: sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.2.3.tgz} - name: aria-hidden - version: 1.2.3 - engines: {node: '>=10'} - dependencies: - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz} - name: array-buffer-byte-length - version: 1.0.0 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 - dev: false - - registry.npmmirror.com/array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-includes/-/array-includes-3.1.7.tgz} - name: array-includes - version: 3.1.7 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - is-string: registry.npmmirror.com/is-string@1.0.7 - dev: false - - registry.npmmirror.com/array-tree-filter@2.1.0: - resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-tree-filter/-/array-tree-filter-2.1.0.tgz} - name: array-tree-filter - version: 2.1.0 - dev: false - - registry.npmmirror.com/array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz} - name: array-union - version: 2.1.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz} - name: array.prototype.flat - version: 1.3.2 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 - dev: false - - registry.npmmirror.com/array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz} - name: array.prototype.flatmap - version: 1.3.2 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 - dev: false - - registry.npmmirror.com/array.prototype.reduce@1.0.6: - resolution: {integrity: sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz} - name: array.prototype.reduce - version: 1.0.6 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - es-array-method-boxes-properly: registry.npmmirror.com/es-array-method-boxes-properly@1.0.0 - is-string: registry.npmmirror.com/is-string@1.0.7 - dev: false - - registry.npmmirror.com/array.prototype.tosorted@1.1.2: - resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz} - name: array.prototype.tosorted - version: 1.1.2 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - dev: false - - registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz} - name: arraybuffer.prototype.slice - version: 1.0.2 - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 - is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 - dev: false - - registry.npmmirror.com/arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arrify/-/arrify-1.0.1.tgz} - name: arrify - version: 1.0.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/asn1.js@5.4.1: - resolution: {integrity: sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asn1.js/-/asn1.js-5.4.1.tgz} - name: asn1.js - version: 5.4.1 - dependencies: - bn.js: registry.npmmirror.com/bn.js@4.12.0 - inherits: registry.npmmirror.com/inherits@2.0.4 - minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 - safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 - dev: false - - registry.npmmirror.com/assert@1.5.1: - resolution: {integrity: sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/assert/-/assert-1.5.1.tgz} - name: assert - version: 1.5.1 - dependencies: - object.assign: registry.npmmirror.com/object.assign@4.1.4 - util: registry.npmmirror.com/util@0.10.4 - dev: false - - registry.npmmirror.com/astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz} - name: astral-regex - version: 2.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/astring@1.8.6: - resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/astring/-/astring-1.8.6.tgz} - name: astring - version: 1.8.6 - hasBin: true - dev: false - - registry.npmmirror.com/async-validator@4.2.5: - resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz} - name: async-validator - version: 4.2.5 - dev: false - - registry.npmmirror.com/asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz} - name: asynciterator.prototype - version: 1.0.0 - dependencies: - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - dev: false - - registry.npmmirror.com/atob@2.1.2: - resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz} - name: atob - version: 2.1.2 - engines: {node: '>= 4.5.0'} - hasBin: true - dev: false - - registry.npmmirror.com/atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz} - name: atomic-sleep - version: 1.0.0 - engines: {node: '>=8.0.0'} - dev: false - - registry.npmmirror.com/autoprefixer@10.4.16(postcss@8.4.31): - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.16.tgz} - id: registry.npmmirror.com/autoprefixer/10.4.16 - name: autoprefixer - version: 10.4.16 - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: registry.npmmirror.com/browserslist@4.22.1 - caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001564 - fraction.js: registry.npmmirror.com/fraction.js@4.3.7 - normalize-range: registry.npmmirror.com/normalize-range@0.1.2 - picocolors: registry.npmmirror.com/picocolors@1.0.0 - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz} - name: available-typed-arrays - version: 1.0.5 - engines: {node: '>= 0.4'} - dev: false - - registry.npmmirror.com/axios@0.18.1: - resolution: {integrity: sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/-/axios-0.18.1.tgz} - name: axios - version: 0.18.1 - deprecated: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 - dependencies: - follow-redirects: registry.npmmirror.com/follow-redirects@1.5.10 - is-buffer: registry.npmmirror.com/is-buffer@2.0.5 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/babel-jest@29.7.0(@babel/core@7.23.3): - resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-jest/-/babel-jest-29.7.0.tgz} - id: registry.npmmirror.com/babel-jest/29.7.0 - name: babel-jest - version: 29.7.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.23.3 - '@jest/transform': registry.npmmirror.com/@jest/transform@29.7.0 - '@types/babel__core': registry.npmmirror.com/@types/babel__core@7.20.5 - babel-plugin-istanbul: registry.npmmirror.com/babel-plugin-istanbul@6.1.1 - babel-preset-jest: registry.npmmirror.com/babel-preset-jest@29.6.3(@babel/core@7.23.3) - chalk: registry.npmmirror.com/chalk@4.1.2 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - slash: registry.npmmirror.com/slash@3.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/babel-plugin-dynamic-import-node@2.3.3: - resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz} - name: babel-plugin-dynamic-import-node - version: 2.3.3 - dependencies: - object.assign: registry.npmmirror.com/object.assign@4.1.4 - dev: false - - registry.npmmirror.com/babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz} - name: babel-plugin-istanbul - version: 6.1.1 - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils@7.22.5 - '@istanbuljs/load-nyc-config': registry.npmmirror.com/@istanbuljs/load-nyc-config@1.1.0 - '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema@0.1.3 - istanbul-lib-instrument: registry.npmmirror.com/istanbul-lib-instrument@5.2.1 - test-exclude: registry.npmmirror.com/test-exclude@6.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/babel-plugin-jest-hoist@29.6.3: - resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz} - name: babel-plugin-jest-hoist - version: 29.6.3 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/template': registry.npmmirror.com/@babel/template@7.22.15 - '@babel/types': registry.npmmirror.com/@babel/types@7.23.4 - '@types/babel__core': registry.npmmirror.com/@types/babel__core@7.20.5 - '@types/babel__traverse': registry.npmmirror.com/@types/babel__traverse@7.20.4 - dev: false - - registry.npmmirror.com/babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz} - name: babel-plugin-macros - version: 3.1.0 - engines: {node: '>=10', npm: '>=6'} - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 - resolve: registry.npmmirror.com/resolve@1.22.8 - dev: false - - registry.npmmirror.com/babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3): - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz} - id: registry.npmmirror.com/babel-preset-current-node-syntax/1.0.1 - name: babel-preset-current-node-syntax - version: 1.0.1 - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - '@babel/plugin-syntax-async-generators': registry.npmmirror.com/@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.3) - '@babel/plugin-syntax-bigint': registry.npmmirror.com/@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-class-properties': registry.npmmirror.com/@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.3) - '@babel/plugin-syntax-import-meta': registry.npmmirror.com/@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-json-strings': registry.npmmirror.com/@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-logical-assignment-operators': registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-nullish-coalescing-operator': registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-numeric-separator': registry.npmmirror.com/@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.3) - '@babel/plugin-syntax-object-rest-spread': registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-catch-binding': registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-optional-chaining': registry.npmmirror.com/@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.3) - '@babel/plugin-syntax-top-level-await': registry.npmmirror.com/@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.3) - dev: false - - registry.npmmirror.com/babel-preset-jest@29.6.3(@babel/core@7.23.3): - resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz} - id: registry.npmmirror.com/babel-preset-jest/29.6.3 - name: babel-preset-jest - version: 29.6.3 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.3 - babel-plugin-jest-hoist: registry.npmmirror.com/babel-plugin-jest-hoist@29.6.3 - babel-preset-current-node-syntax: registry.npmmirror.com/babel-preset-current-node-syntax@1.0.1(@babel/core@7.23.3) - dev: false - - registry.npmmirror.com/bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bail/-/bail-2.0.2.tgz} - name: bail - version: 2.0.2 - dev: false - - registry.npmmirror.com/balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz} - name: balanced-match - version: 1.0.2 - dev: false - - registry.npmmirror.com/balanced-match@2.0.0: - resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/balanced-match/-/balanced-match-2.0.0.tgz} - name: balanced-match - version: 2.0.0 - dev: false - - registry.npmmirror.com/base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz} - name: base64-js - version: 1.5.1 - dev: false - - registry.npmmirror.com/big-integer@1.6.52: - resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz} - name: big-integer - version: 1.6.52 - engines: {node: '>=0.6'} - dev: false - - registry.npmmirror.com/big.js@5.2.2: - resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz} - name: big.js - version: 5.2.2 - dev: false - - registry.npmmirror.com/binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz} - name: binary-extensions - version: 2.2.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/binaryextensions@2.3.0: - resolution: {integrity: sha512-nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/binaryextensions/-/binaryextensions-2.3.0.tgz} - name: binaryextensions - version: 2.3.0 - engines: {node: '>=0.8'} - dev: false - - registry.npmmirror.com/bl@1.2.3: - resolution: {integrity: sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bl/-/bl-1.2.3.tgz} - name: bl - version: 1.2.3 - dependencies: - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/bluebird@3.7.2: - resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bluebird/-/bluebird-3.7.2.tgz} - name: bluebird - version: 3.7.2 - dev: false - - registry.npmmirror.com/bn.js@4.12.0: - resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bn.js/-/bn.js-4.12.0.tgz} - name: bn.js - version: 4.12.0 - dev: false - - registry.npmmirror.com/bn.js@5.2.1: - resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bn.js/-/bn.js-5.2.1.tgz} - name: bn.js - version: 5.2.1 - dev: false - - registry.npmmirror.com/boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz} - name: boolbase - version: 1.0.0 - dev: false - - registry.npmmirror.com/boxen@1.3.0: - resolution: {integrity: sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/boxen/-/boxen-1.3.0.tgz} - name: boxen - version: 1.3.0 - engines: {node: '>=4'} - dependencies: - ansi-align: registry.npmmirror.com/ansi-align@2.0.0 - camelcase: registry.npmmirror.com/camelcase@4.1.0 - chalk: registry.npmmirror.com/chalk@2.4.2 - cli-boxes: registry.npmmirror.com/cli-boxes@1.0.0 - string-width: registry.npmmirror.com/string-width@2.1.1 - term-size: registry.npmmirror.com/term-size@1.2.0 - widest-line: registry.npmmirror.com/widest-line@2.0.1 - dev: false - - registry.npmmirror.com/bplist-parser@0.2.0: - resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bplist-parser/-/bplist-parser-0.2.0.tgz} - name: bplist-parser - version: 0.2.0 - engines: {node: '>= 5.10.0'} - dependencies: - big-integer: registry.npmmirror.com/big-integer@1.6.52 - dev: false - - registry.npmmirror.com/brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz} - name: brace-expansion - version: 1.1.11 - dependencies: - balanced-match: registry.npmmirror.com/balanced-match@1.0.2 - concat-map: registry.npmmirror.com/concat-map@0.0.1 - dev: false - - registry.npmmirror.com/braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} - name: braces - version: 3.0.2 - engines: {node: '>=8'} - dependencies: - fill-range: registry.npmmirror.com/fill-range@7.0.1 - dev: false - - registry.npmmirror.com/brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brorand/-/brorand-1.1.0.tgz} - name: brorand - version: 1.1.0 - dev: false - - registry.npmmirror.com/browserify-aes@1.2.0: - resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-aes/-/browserify-aes-1.2.0.tgz} - name: browserify-aes - version: 1.2.0 - dependencies: - buffer-xor: registry.npmmirror.com/buffer-xor@1.0.3 - cipher-base: registry.npmmirror.com/cipher-base@1.0.4 - create-hash: registry.npmmirror.com/create-hash@1.2.0 - evp_bytestokey: registry.npmmirror.com/evp_bytestokey@1.0.3 - inherits: registry.npmmirror.com/inherits@2.0.4 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/browserify-cipher@1.0.1: - resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz} - name: browserify-cipher - version: 1.0.1 - dependencies: - browserify-aes: registry.npmmirror.com/browserify-aes@1.2.0 - browserify-des: registry.npmmirror.com/browserify-des@1.0.2 - evp_bytestokey: registry.npmmirror.com/evp_bytestokey@1.0.3 - dev: false - - registry.npmmirror.com/browserify-des@1.0.2: - resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-des/-/browserify-des-1.0.2.tgz} - name: browserify-des - version: 1.0.2 - dependencies: - cipher-base: registry.npmmirror.com/cipher-base@1.0.4 - des.js: registry.npmmirror.com/des.js@1.1.0 - inherits: registry.npmmirror.com/inherits@2.0.4 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/browserify-rsa@4.1.0: - resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz} - name: browserify-rsa - version: 4.1.0 - dependencies: - bn.js: registry.npmmirror.com/bn.js@5.2.1 - randombytes: registry.npmmirror.com/randombytes@2.1.0 - dev: false - - registry.npmmirror.com/browserify-sign@4.2.2: - resolution: {integrity: sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-sign/-/browserify-sign-4.2.2.tgz} - name: browserify-sign - version: 4.2.2 - engines: {node: '>= 4'} - dependencies: - bn.js: registry.npmmirror.com/bn.js@5.2.1 - browserify-rsa: registry.npmmirror.com/browserify-rsa@4.1.0 - create-hash: registry.npmmirror.com/create-hash@1.2.0 - create-hmac: registry.npmmirror.com/create-hmac@1.1.7 - elliptic: registry.npmmirror.com/elliptic@6.5.4 - inherits: registry.npmmirror.com/inherits@2.0.4 - parse-asn1: registry.npmmirror.com/parse-asn1@5.1.6 - readable-stream: registry.npmmirror.com/readable-stream@3.6.2 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/browserify-zlib@0.2.0: - resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz} - name: browserify-zlib - version: 0.2.0 - dependencies: - pako: registry.npmmirror.com/pako@1.0.11 - dev: false - - registry.npmmirror.com/browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserslist/-/browserslist-4.22.1.tgz} - name: browserslist - version: 4.22.1 - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001564 - electron-to-chromium: registry.npmmirror.com/electron-to-chromium@1.4.594 - node-releases: registry.npmmirror.com/node-releases@2.0.13 - update-browserslist-db: registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.1) - dev: false - - registry.npmmirror.com/bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bser/-/bser-2.1.1.tgz} - name: bser - version: 2.1.1 - dependencies: - node-int64: registry.npmmirror.com/node-int64@0.4.0 - dev: false - - registry.npmmirror.com/buffer-alloc-unsafe@1.1.0: - resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz} - name: buffer-alloc-unsafe - version: 1.1.0 - dev: false - - registry.npmmirror.com/buffer-alloc@1.2.0: - resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz} - name: buffer-alloc - version: 1.2.0 - dependencies: - buffer-alloc-unsafe: registry.npmmirror.com/buffer-alloc-unsafe@1.1.0 - buffer-fill: registry.npmmirror.com/buffer-fill@1.0.0 - dev: false - - registry.npmmirror.com/buffer-fill@1.0.0: - resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-fill/-/buffer-fill-1.0.0.tgz} - name: buffer-fill - version: 1.0.0 - dev: false - - registry.npmmirror.com/buffer-from@0.1.2: - resolution: {integrity: sha512-RiWIenusJsmI2KcvqQABB83tLxCByE3upSP8QU3rJDMVFGPWLvPQJt/O1Su9moRWeH7d+Q2HYb68f6+v+tw2vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-from/-/buffer-from-0.1.2.tgz} - name: buffer-from - version: 0.1.2 - dev: false - - registry.npmmirror.com/buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz} - name: buffer-from - version: 1.1.2 - dev: false - - registry.npmmirror.com/buffer-xor@1.0.3: - resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer-xor/-/buffer-xor-1.0.3.tgz} - name: buffer-xor - version: 1.0.3 - dev: false - - registry.npmmirror.com/buffer@4.9.2: - resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/buffer/-/buffer-4.9.2.tgz} - name: buffer - version: 4.9.2 - dependencies: - base64-js: registry.npmmirror.com/base64-js@1.5.1 - ieee754: registry.npmmirror.com/ieee754@1.2.1 - isarray: registry.npmmirror.com/isarray@1.0.0 - dev: false - - registry.npmmirror.com/builtin-status-codes@3.0.0: - resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz} - name: builtin-status-codes - version: 3.0.0 - dev: false - - registry.npmmirror.com/builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtins/-/builtins-1.0.3.tgz} - name: builtins - version: 1.0.3 - dev: false - - registry.npmmirror.com/bundle-name@3.0.0: - resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bundle-name/-/bundle-name-3.0.0.tgz} - name: bundle-name - version: 3.0.0 - engines: {node: '>=12'} - dependencies: - run-applescript: registry.npmmirror.com/run-applescript@5.0.0 - dev: false - - registry.npmmirror.com/cacache@10.0.4: - resolution: {integrity: sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cacache/-/cacache-10.0.4.tgz} - name: cacache - version: 10.0.4 - dependencies: - bluebird: registry.npmmirror.com/bluebird@3.7.2 - chownr: registry.npmmirror.com/chownr@1.1.4 - glob: registry.npmmirror.com/glob@7.2.3 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - lru-cache: registry.npmmirror.com/lru-cache@4.1.5 - mississippi: registry.npmmirror.com/mississippi@2.0.0 - mkdirp: registry.npmmirror.com/mkdirp@0.5.6 - move-concurrently: registry.npmmirror.com/move-concurrently@1.0.1 - promise-inflight: registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2) - rimraf: registry.npmmirror.com/rimraf@2.7.1 - ssri: registry.npmmirror.com/ssri@5.3.0 - unique-filename: registry.npmmirror.com/unique-filename@1.1.1 - y18n: registry.npmmirror.com/y18n@4.0.3 - dev: false - - registry.npmmirror.com/cacache@9.3.0: - resolution: {integrity: sha512-Vbi8J1XfC8v+FbQ6QkOtKXsHpPnB0i9uMeYFJoj40EbdOsEqWB3DPpNjfsnYBkqOPYA8UvrqH6FZPpBP0zdN7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cacache/-/cacache-9.3.0.tgz} - name: cacache - version: 9.3.0 - dependencies: - bluebird: registry.npmmirror.com/bluebird@3.7.2 - chownr: registry.npmmirror.com/chownr@1.1.4 - glob: registry.npmmirror.com/glob@7.2.3 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - lru-cache: registry.npmmirror.com/lru-cache@4.1.5 - mississippi: registry.npmmirror.com/mississippi@1.3.1 - mkdirp: registry.npmmirror.com/mkdirp@0.5.6 - move-concurrently: registry.npmmirror.com/move-concurrently@1.0.1 - promise-inflight: registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2) - rimraf: registry.npmmirror.com/rimraf@2.7.1 - ssri: registry.npmmirror.com/ssri@4.1.6 - unique-filename: registry.npmmirror.com/unique-filename@1.1.1 - y18n: registry.npmmirror.com/y18n@3.2.2 - dev: false - - registry.npmmirror.com/call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz} - name: call-bind - version: 1.0.5 - dependencies: - function-bind: registry.npmmirror.com/function-bind@1.1.2 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - set-function-length: registry.npmmirror.com/set-function-length@1.1.1 - dev: false - - registry.npmmirror.com/callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz} - name: callsites - version: 3.1.0 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/camel-case@4.1.2: - resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz} - name: camel-case - version: 4.1.2 - dependencies: - pascal-case: registry.npmmirror.com/pascal-case@3.1.2 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/camelcase-keys@6.2.2: - resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz} - name: camelcase-keys - version: 6.2.2 - engines: {node: '>=8'} - dependencies: - camelcase: registry.npmmirror.com/camelcase@5.3.1 - map-obj: registry.npmmirror.com/map-obj@4.3.0 - quick-lru: registry.npmmirror.com/quick-lru@4.0.1 - dev: false - - registry.npmmirror.com/camelcase@4.1.0: - resolution: {integrity: sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-4.1.0.tgz} - name: camelcase - version: 4.1.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz} - name: camelcase - version: 5.3.1 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/camelcase@6.3.0: - resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz} - name: camelcase - version: 6.3.0 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/caniuse-lite@1.0.30001564: - resolution: {integrity: sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001564.tgz} - name: caniuse-lite - version: 1.0.30001564 - dev: false - - registry.npmmirror.com/capture-stack-trace@1.0.2: - resolution: {integrity: sha512-X/WM2UQs6VMHUtjUDnZTRI+i1crWteJySFzr9UpGoQa4WQffXVTTXuekjl7TjZRlcF2XfjgITT0HxZ9RnxeT0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/capture-stack-trace/-/capture-stack-trace-1.0.2.tgz} - name: capture-stack-trace - version: 1.0.2 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ccount/-/ccount-2.0.1.tgz} - name: ccount - version: 2.0.1 - dev: false - - registry.npmmirror.com/chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} - name: chalk - version: 2.4.2 - engines: {node: '>=4'} - dependencies: - ansi-styles: registry.npmmirror.com/ansi-styles@3.2.1 - escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 - supports-color: registry.npmmirror.com/supports-color@5.5.0 - dev: false - - registry.npmmirror.com/chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz} - name: chalk - version: 4.1.2 - engines: {node: '>=10'} - dependencies: - ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 - supports-color: registry.npmmirror.com/supports-color@7.2.0 - dev: false - - registry.npmmirror.com/character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz} - name: character-entities-html4 - version: 2.1.0 - dev: false - - registry.npmmirror.com/character-entities-legacy@1.1.4: - resolution: {integrity: sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz} - name: character-entities-legacy - version: 1.1.4 - dev: false - - registry.npmmirror.com/character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz} - name: character-entities-legacy - version: 3.0.0 - dev: false - - registry.npmmirror.com/character-entities@1.2.4: - resolution: {integrity: sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities/-/character-entities-1.2.4.tgz} - name: character-entities - version: 1.2.4 - dev: false - - registry.npmmirror.com/character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-entities/-/character-entities-2.0.2.tgz} - name: character-entities - version: 2.0.2 - dev: false - - registry.npmmirror.com/character-reference-invalid@1.1.4: - resolution: {integrity: sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz} - name: character-reference-invalid - version: 1.1.4 - dev: false - - registry.npmmirror.com/character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz} - name: character-reference-invalid - version: 2.0.1 - dev: false - - registry.npmmirror.com/chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chardet/-/chardet-0.7.0.tgz} - name: chardet - version: 0.7.0 - dev: false - - registry.npmmirror.com/chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz} - name: chokidar - version: 3.5.3 - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: registry.npmmirror.com/anymatch@3.1.3 - braces: registry.npmmirror.com/braces@3.0.2 - glob-parent: registry.npmmirror.com/glob-parent@5.1.2 - is-binary-path: registry.npmmirror.com/is-binary-path@2.1.0 - is-glob: registry.npmmirror.com/is-glob@4.0.3 - normalize-path: registry.npmmirror.com/normalize-path@3.0.0 - readdirp: registry.npmmirror.com/readdirp@3.6.0 - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: false - - registry.npmmirror.com/chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz} - name: chownr - version: 1.1.4 - dev: false - - registry.npmmirror.com/chroma-js@2.4.2: - resolution: {integrity: sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chroma-js/-/chroma-js-2.4.2.tgz} - name: chroma-js - version: 2.4.2 - dev: false - - registry.npmmirror.com/chrome-trace-event@1.0.3: - resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz} - name: chrome-trace-event - version: 1.0.3 - engines: {node: '>=6.0'} - dev: false - - registry.npmmirror.com/ci-info@1.6.0: - resolution: {integrity: sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ci-info/-/ci-info-1.6.0.tgz} - name: ci-info - version: 1.6.0 - dev: false - - registry.npmmirror.com/ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ci-info/-/ci-info-3.9.0.tgz} - name: ci-info - version: 3.9.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/cipher-base@1.0.4: - resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cipher-base/-/cipher-base-1.0.4.tgz} - name: cipher-base - version: 1.0.4 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/classnames@2.3.2: - resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz} - name: classnames - version: 2.3.2 - dev: false - - registry.npmmirror.com/clean-css@5.3.3: - resolution: {integrity: sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clean-css/-/clean-css-5.3.3.tgz} - name: clean-css - version: 5.3.3 - engines: {node: '>= 10.0'} - dependencies: - source-map: registry.npmmirror.com/source-map@0.6.1 - dev: false - - registry.npmmirror.com/cli-boxes@1.0.0: - resolution: {integrity: sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-boxes/-/cli-boxes-1.0.0.tgz} - name: cli-boxes - version: 1.0.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/cli-cursor@2.1.0: - resolution: {integrity: sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-cursor/-/cli-cursor-2.1.0.tgz} - name: cli-cursor - version: 2.1.0 - engines: {node: '>=4'} - dependencies: - restore-cursor: registry.npmmirror.com/restore-cursor@2.0.0 - dev: false - - registry.npmmirror.com/cli-spinners@1.3.1: - resolution: {integrity: sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-spinners/-/cli-spinners-1.3.1.tgz} - name: cli-spinners - version: 1.3.1 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/cli-width@2.2.1: - resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-width/-/cli-width-2.2.1.tgz} - name: cli-width - version: 2.2.1 - dev: false - - registry.npmmirror.com/click-to-react-component@1.1.0(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0): - resolution: {integrity: sha512-/DjZemufS1BkxyRgZL3r7HXVVOFRWVQi5Xd4EBnjxZMwrHEh0OlUVA2N9CjXkZ0x8zMf8dL1cKnnx+xUWUg4VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/click-to-react-component/-/click-to-react-component-1.1.0.tgz} - id: registry.npmmirror.com/click-to-react-component/1.1.0 - name: click-to-react-component - version: 1.1.0 - peerDependencies: - react: '>=16.8.0' - dependencies: - '@floating-ui/react-dom-interactions': registry.npmmirror.com/@floating-ui/react-dom-interactions@0.3.1(@types/react@18.2.38)(react-dom@18.1.0)(react@18.1.0) - htm: registry.npmmirror.com/htm@3.1.1 - react: registry.npmmirror.com/react@18.1.0 - react-merge-refs: registry.npmmirror.com/react-merge-refs@1.1.0 - transitivePeerDependencies: - - '@types/react' - - react-dom - dev: false - - registry.npmmirror.com/cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cliui/-/cliui-8.0.1.tgz} - name: cliui - version: 8.0.1 - engines: {node: '>=12'} - dependencies: - string-width: registry.npmmirror.com/string-width@4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - wrap-ansi: registry.npmmirror.com/wrap-ansi@7.0.0 - dev: false - - registry.npmmirror.com/clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz} - name: clsx - version: 1.2.1 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/coa@2.0.2: - resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz} - name: coa - version: 2.0.2 - engines: {node: '>= 4.0'} - dependencies: - '@types/q': registry.npmmirror.com/@types/q@1.5.8 - chalk: registry.npmmirror.com/chalk@2.4.2 - q: registry.npmmirror.com/q@1.5.1 - dev: false - - registry.npmmirror.com/codemirror@6.0.1(@lezer/common@1.1.1): - resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz} - id: registry.npmmirror.com/codemirror/6.0.1 - name: codemirror - version: 6.0.1 - dependencies: - '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.11.0(@codemirror/language@6.9.2)(@codemirror/state@6.3.1)(@codemirror/view@6.22.0)(@lezer/common@1.1.1) - '@codemirror/commands': registry.npmmirror.com/@codemirror/commands@6.3.0 - '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.2 - '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.4.2 - '@codemirror/search': registry.npmmirror.com/@codemirror/search@6.5.4 - '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.1 - '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.0 - transitivePeerDependencies: - - '@lezer/common' - dev: false - - registry.npmmirror.com/codesandbox-import-util-types@2.2.3: - resolution: {integrity: sha512-Qj00p60oNExthP2oR3vvXmUGjukij+rxJGuiaKM6tyUmSyimdZsqHI/TUvFFClAffk9s7hxGnQgWQ8KCce27qQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox-import-util-types/-/codesandbox-import-util-types-2.2.3.tgz} - name: codesandbox-import-util-types - version: 2.2.3 - dev: false - - registry.npmmirror.com/codesandbox-import-utils@2.2.3: - resolution: {integrity: sha512-ymtmcgZKU27U+nM2qUb21aO8Ut/u2S9s6KorOgG81weP+NA0UZkaHKlaRqbLJ9h4i/4FLvwmEXYAnTjNmp6ogg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox-import-utils/-/codesandbox-import-utils-2.2.3.tgz} - name: codesandbox-import-utils - version: 2.2.3 - dependencies: - codesandbox-import-util-types: registry.npmmirror.com/codesandbox-import-util-types@2.2.3 - istextorbinary: registry.npmmirror.com/istextorbinary@2.6.0 - lz-string: registry.npmmirror.com/lz-string@1.5.0 - dev: false - - registry.npmmirror.com/codesandbox@2.2.3: - resolution: {integrity: sha512-IAkWFk6UUglOhSemI7UFgNNL/jgg+1YjVEIllFULLgsaHhFnY51pCqAifMNuAd5d9Zp4Nk/xMgrEaGNV0L4Xlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox/-/codesandbox-2.2.3.tgz} - name: codesandbox - version: 2.2.3 - hasBin: true - dependencies: - axios: registry.npmmirror.com/axios@0.18.1 - chalk: registry.npmmirror.com/chalk@2.4.2 - codesandbox-import-util-types: registry.npmmirror.com/codesandbox-import-util-types@2.2.3 - codesandbox-import-utils: registry.npmmirror.com/codesandbox-import-utils@2.2.3 - commander: registry.npmmirror.com/commander@2.20.3 - datauri: registry.npmmirror.com/datauri@3.0.0 - filesize: registry.npmmirror.com/filesize@3.6.1 - fs-extra: registry.npmmirror.com/fs-extra@3.0.1 - git-branch: registry.npmmirror.com/git-branch@1.0.0 - git-repo-name: registry.npmmirror.com/git-repo-name@0.6.0 - git-username: registry.npmmirror.com/git-username@0.5.1 - humps: registry.npmmirror.com/humps@2.0.1 - inquirer: registry.npmmirror.com/inquirer@6.5.2 - lodash: registry.npmmirror.com/lodash@4.17.21 - lz-string: registry.npmmirror.com/lz-string@1.5.0 - ms: registry.npmmirror.com/ms@2.1.3 - open: registry.npmmirror.com/open@6.4.0 - ora: registry.npmmirror.com/ora@1.4.0 - pacote: registry.npmmirror.com/pacote@2.7.38 - shortid: registry.npmmirror.com/shortid@2.2.16 - update-notifier: registry.npmmirror.com/update-notifier@2.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} - name: color-convert - version: 1.9.3 - dependencies: - color-name: registry.npmmirror.com/color-name@1.1.3 - dev: false - - registry.npmmirror.com/color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} - name: color-convert - version: 2.0.1 - engines: {node: '>=7.0.0'} - dependencies: - color-name: registry.npmmirror.com/color-name@1.1.4 - - registry.npmmirror.com/color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} - name: color-name - version: 1.1.3 - dev: false - - registry.npmmirror.com/color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} - name: color-name - version: 1.1.4 - - registry.npmmirror.com/color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz} - name: color-string - version: 1.9.1 - dependencies: - color-name: registry.npmmirror.com/color-name@1.1.4 - simple-swizzle: registry.npmmirror.com/simple-swizzle@0.2.2 - dev: false - - registry.npmmirror.com/color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color/-/color-3.2.1.tgz} - name: color - version: 3.2.1 - dependencies: - color-convert: registry.npmmirror.com/color-convert@1.9.3 - color-string: registry.npmmirror.com/color-string@1.9.1 - dev: false - - registry.npmmirror.com/colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz} - name: colord - version: 2.9.3 - dev: false - - registry.npmmirror.com/comma-separated-tokens@1.0.8: - resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz} - name: comma-separated-tokens - version: 1.0.8 - dev: false - - registry.npmmirror.com/comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz} - name: comma-separated-tokens - version: 2.0.3 - dev: false - - registry.npmmirror.com/commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} - name: commander - version: 2.20.3 - dev: false - - registry.npmmirror.com/commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz} - name: commander - version: 7.2.0 - engines: {node: '>= 10'} - dev: false - - registry.npmmirror.com/commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz} - name: commander - version: 8.3.0 - engines: {node: '>= 12'} - dev: false - - registry.npmmirror.com/common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/common-path-prefix/-/common-path-prefix-3.0.0.tgz} - name: common-path-prefix - version: 3.0.0 - dev: false - - registry.npmmirror.com/compute-scroll-into-view@3.1.0: - resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz} - name: compute-scroll-into-view - version: 3.1.0 - dev: false - - registry.npmmirror.com/concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz} - name: concat-map - version: 0.0.1 - dev: false - - registry.npmmirror.com/concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/concat-stream/-/concat-stream-1.6.2.tgz} - name: concat-stream - version: 1.6.2 - engines: {'0': node >= 0.8} - dependencies: - buffer-from: registry.npmmirror.com/buffer-from@1.1.2 - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - typedarray: registry.npmmirror.com/typedarray@0.0.6 - dev: false - - registry.npmmirror.com/configstore@3.1.5: - resolution: {integrity: sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/configstore/-/configstore-3.1.5.tgz} - name: configstore - version: 3.1.5 - engines: {node: '>=4'} - dependencies: - dot-prop: registry.npmmirror.com/dot-prop@4.2.1 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - make-dir: registry.npmmirror.com/make-dir@1.3.0 - unique-string: registry.npmmirror.com/unique-string@1.0.0 - write-file-atomic: registry.npmmirror.com/write-file-atomic@2.4.3 - xdg-basedir: registry.npmmirror.com/xdg-basedir@3.0.0 - dev: false - - registry.npmmirror.com/console-browserify@1.2.0: - resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz} - name: console-browserify - version: 1.2.0 - dev: false - - registry.npmmirror.com/constants-browserify@1.0.0: - resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/constants-browserify/-/constants-browserify-1.0.0.tgz} - name: constants-browserify - version: 1.0.0 - dev: false - - registry.npmmirror.com/convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz} - name: convert-source-map - version: 1.9.0 - dev: false - - registry.npmmirror.com/convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz} - name: convert-source-map - version: 2.0.0 - dev: false - - registry.npmmirror.com/copy-anything@2.0.6: - resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz} - name: copy-anything - version: 2.0.6 - dependencies: - is-what: registry.npmmirror.com/is-what@3.14.1 - dev: false - - registry.npmmirror.com/copy-concurrently@1.0.5: - resolution: {integrity: sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz} - name: copy-concurrently - version: 1.0.5 - dependencies: - aproba: registry.npmmirror.com/aproba@1.2.0 - fs-write-stream-atomic: registry.npmmirror.com/fs-write-stream-atomic@1.0.10 - iferr: registry.npmmirror.com/iferr@0.1.5 - mkdirp: registry.npmmirror.com/mkdirp@0.5.6 - rimraf: registry.npmmirror.com/rimraf@2.7.1 - run-queue: registry.npmmirror.com/run-queue@1.0.3 - dev: false - - registry.npmmirror.com/copy-to-clipboard@3.3.3: - resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz} - name: copy-to-clipboard - version: 3.3.3 - dependencies: - toggle-selection: registry.npmmirror.com/toggle-selection@1.0.6 - dev: false - - registry.npmmirror.com/core-js-pure@3.34.0: - resolution: {integrity: sha512-pmhivkYXkymswFfbXsANmBAewXx86UBfmagP+w0wkK06kLsLlTK5oQmsURPivzMkIBQiYq2cjamcZExIwlFQIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.34.0.tgz} - name: core-js-pure - version: 3.34.0 - requiresBuild: true - dev: false - - registry.npmmirror.com/core-js@3.28.0: - resolution: {integrity: sha512-GiZn9D4Z/rSYvTeg1ljAIsEqFm0LaN9gVtwDCrKL80zHtS31p9BAjmTxVqTQDMpwlMolJZOFntUG2uwyj7DAqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js/-/core-js-3.28.0.tgz} - name: core-js - version: 3.28.0 - requiresBuild: true - dev: false - - registry.npmmirror.com/core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz} - name: core-util-is - version: 1.0.3 - dev: false - - registry.npmmirror.com/cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cors/-/cors-2.8.5.tgz} - name: cors - version: 2.8.5 - engines: {node: '>= 0.10'} - dependencies: - object-assign: registry.npmmirror.com/object-assign@4.1.1 - vary: registry.npmmirror.com/vary@1.1.2 - dev: false - - registry.npmmirror.com/cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz} - name: cosmiconfig - version: 7.1.0 - engines: {node: '>=10'} - dependencies: - '@types/parse-json': registry.npmmirror.com/@types/parse-json@4.0.2 - import-fresh: registry.npmmirror.com/import-fresh@3.3.0 - parse-json: registry.npmmirror.com/parse-json@5.2.0 - path-type: registry.npmmirror.com/path-type@4.0.0 - yaml: registry.npmmirror.com/yaml@1.10.2 - dev: false - - registry.npmmirror.com/create-ecdh@4.0.4: - resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz} - name: create-ecdh - version: 4.0.4 - dependencies: - bn.js: registry.npmmirror.com/bn.js@4.12.0 - elliptic: registry.npmmirror.com/elliptic@6.5.4 - dev: false - - registry.npmmirror.com/create-error-class@3.0.2: - resolution: {integrity: sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-error-class/-/create-error-class-3.0.2.tgz} - name: create-error-class - version: 3.0.2 - engines: {node: '>=0.10.0'} - dependencies: - capture-stack-trace: registry.npmmirror.com/capture-stack-trace@1.0.2 - dev: false - - registry.npmmirror.com/create-hash@1.2.0: - resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-hash/-/create-hash-1.2.0.tgz} - name: create-hash - version: 1.2.0 - dependencies: - cipher-base: registry.npmmirror.com/cipher-base@1.0.4 - inherits: registry.npmmirror.com/inherits@2.0.4 - md5.js: registry.npmmirror.com/md5.js@1.3.5 - ripemd160: registry.npmmirror.com/ripemd160@2.0.2 - sha.js: registry.npmmirror.com/sha.js@2.4.11 - dev: false - - registry.npmmirror.com/create-hmac@1.1.7: - resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-hmac/-/create-hmac-1.1.7.tgz} - name: create-hmac - version: 1.1.7 - dependencies: - cipher-base: registry.npmmirror.com/cipher-base@1.0.4 - create-hash: registry.npmmirror.com/create-hash@1.2.0 - inherits: registry.npmmirror.com/inherits@2.0.4 - ripemd160: registry.npmmirror.com/ripemd160@2.0.2 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - sha.js: registry.npmmirror.com/sha.js@2.4.11 - dev: false - - registry.npmmirror.com/crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz} - name: crelt - version: 1.0.6 - dev: false - - registry.npmmirror.com/cross-spawn@5.1.0: - resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz} - name: cross-spawn - version: 5.1.0 - dependencies: - lru-cache: registry.npmmirror.com/lru-cache@4.1.5 - shebang-command: registry.npmmirror.com/shebang-command@1.2.0 - which: registry.npmmirror.com/which@1.3.1 - dev: false - - registry.npmmirror.com/cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz} - name: cross-spawn - version: 7.0.3 - engines: {node: '>= 8'} - dependencies: - path-key: registry.npmmirror.com/path-key@3.1.1 - shebang-command: registry.npmmirror.com/shebang-command@2.0.0 - which: registry.npmmirror.com/which@2.0.2 - dev: false - - registry.npmmirror.com/crypto-browserify@3.12.0: - resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz} - name: crypto-browserify - version: 3.12.0 - dependencies: - browserify-cipher: registry.npmmirror.com/browserify-cipher@1.0.1 - browserify-sign: registry.npmmirror.com/browserify-sign@4.2.2 - create-ecdh: registry.npmmirror.com/create-ecdh@4.0.4 - create-hash: registry.npmmirror.com/create-hash@1.2.0 - create-hmac: registry.npmmirror.com/create-hmac@1.1.7 - diffie-hellman: registry.npmmirror.com/diffie-hellman@5.0.3 - inherits: registry.npmmirror.com/inherits@2.0.4 - pbkdf2: registry.npmmirror.com/pbkdf2@3.1.2 - public-encrypt: registry.npmmirror.com/public-encrypt@4.0.3 - randombytes: registry.npmmirror.com/randombytes@2.1.0 - randomfill: registry.npmmirror.com/randomfill@1.0.4 - dev: false - - registry.npmmirror.com/crypto-random-string@1.0.0: - resolution: {integrity: sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz} - name: crypto-random-string - version: 1.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/css-blank-pseudo@3.0.3(postcss@8.4.31): - resolution: {integrity: sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz} - id: registry.npmmirror.com/css-blank-pseudo/3.0.3 - name: css-blank-pseudo - version: 3.0.3 - engines: {node: ^12 || ^14 || >=16} - hasBin: true - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/css-functions-list@3.2.1: - resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-functions-list/-/css-functions-list-3.2.1.tgz} - name: css-functions-list - version: 3.2.1 - engines: {node: '>=12 || >=16'} - dev: false - - registry.npmmirror.com/css-has-pseudo@3.0.4(postcss@8.4.31): - resolution: {integrity: sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz} - id: registry.npmmirror.com/css-has-pseudo/3.0.4 - name: css-has-pseudo - version: 3.0.4 - engines: {node: ^12 || ^14 || >=16} - hasBin: true - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/css-loader@6.7.1(webpack@5.89.0): - resolution: {integrity: sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz} - id: registry.npmmirror.com/css-loader/6.7.1 - name: css-loader - version: 6.7.1 - engines: {node: '>= 12.13.0'} - peerDependencies: - webpack: ^5.0.0 - dependencies: - icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-modules-extract-imports: registry.npmmirror.com/postcss-modules-extract-imports@3.0.0(postcss@8.4.31) - postcss-modules-local-by-default: registry.npmmirror.com/postcss-modules-local-by-default@4.0.3(postcss@8.4.31) - postcss-modules-scope: registry.npmmirror.com/postcss-modules-scope@3.0.0(postcss@8.4.31) - postcss-modules-values: registry.npmmirror.com/postcss-modules-values@4.0.0(postcss@8.4.31) - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - semver: registry.npmmirror.com/semver@7.5.4 - webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) - dev: false - - registry.npmmirror.com/css-prefers-color-scheme@6.0.3(postcss@8.4.31): - resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz} - id: registry.npmmirror.com/css-prefers-color-scheme/6.0.3 - name: css-prefers-color-scheme - version: 6.0.3 - engines: {node: ^12 || ^14 || >=16} - hasBin: true - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/css-select-base-adapter@0.1.1: - resolution: {integrity: sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz} - name: css-select-base-adapter - version: 0.1.1 - dev: false - - registry.npmmirror.com/css-select@2.1.0: - resolution: {integrity: sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select/-/css-select-2.1.0.tgz} - name: css-select - version: 2.1.0 - dependencies: - boolbase: registry.npmmirror.com/boolbase@1.0.0 - css-what: registry.npmmirror.com/css-what@3.4.2 - domutils: registry.npmmirror.com/domutils@1.7.0 - nth-check: registry.npmmirror.com/nth-check@1.0.2 - dev: false - - registry.npmmirror.com/css-select@4.3.0: - resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz} - name: css-select - version: 4.3.0 - dependencies: - boolbase: registry.npmmirror.com/boolbase@1.0.0 - css-what: registry.npmmirror.com/css-what@6.1.0 - domhandler: registry.npmmirror.com/domhandler@4.3.1 - domutils: registry.npmmirror.com/domutils@2.8.0 - nth-check: registry.npmmirror.com/nth-check@2.1.1 - dev: false - - registry.npmmirror.com/css-tree@1.0.0-alpha.37: - resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz} - name: css-tree - version: 1.0.0-alpha.37 - engines: {node: '>=8.0.0'} - dependencies: - mdn-data: registry.npmmirror.com/mdn-data@2.0.4 - source-map: registry.npmmirror.com/source-map@0.6.1 - dev: false - - registry.npmmirror.com/css-tree@1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz} - name: css-tree - version: 1.1.3 - engines: {node: '>=8.0.0'} - dependencies: - mdn-data: registry.npmmirror.com/mdn-data@2.0.14 - source-map: registry.npmmirror.com/source-map@0.6.1 - dev: false - - registry.npmmirror.com/css-what@3.4.2: - resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-what/-/css-what-3.4.2.tgz} - name: css-what - version: 3.4.2 - engines: {node: '>= 6'} - dev: false - - registry.npmmirror.com/css-what@6.1.0: - resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz} - name: css-what - version: 6.1.0 - engines: {node: '>= 6'} - dev: false - - registry.npmmirror.com/css@3.0.0: - resolution: {integrity: sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css/-/css-3.0.0.tgz} - name: css - version: 3.0.0 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - source-map: registry.npmmirror.com/source-map@0.6.1 - source-map-resolve: registry.npmmirror.com/source-map-resolve@0.6.0 - dev: false - - registry.npmmirror.com/cssdb@6.6.3: - resolution: {integrity: sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssdb/-/cssdb-6.6.3.tgz} - name: cssdb - version: 6.6.3 - dev: false - - registry.npmmirror.com/cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz} - name: cssesc - version: 3.0.0 - engines: {node: '>=4'} - hasBin: true - dev: false - - registry.npmmirror.com/csso@4.2.0: - resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz} - name: csso - version: 4.2.0 - engines: {node: '>=8.0.0'} - dependencies: - css-tree: registry.npmmirror.com/css-tree@1.1.3 - dev: false - - registry.npmmirror.com/csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz} - name: csstype - version: 3.1.2 - dev: false - - registry.npmmirror.com/current-script-polyfill@1.0.0: - resolution: {integrity: sha512-qv8s+G47V6Hq+g2kRE5th+ASzzrL7b6l+tap1DHKK25ZQJv3yIFhH96XaQ7NGL+zRW3t/RDbweJf/dJDe5Z5KA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/current-script-polyfill/-/current-script-polyfill-1.0.0.tgz} - name: current-script-polyfill - version: 1.0.0 - dev: false - - registry.npmmirror.com/cwd@0.9.1: - resolution: {integrity: sha512-4+0D+ojEasdLndYX4Cqff057I/Jp6ysXpwKkdLQLnZxV8f6IYZmZtTP5uqD91a/kWqejoc0sSqK4u8wpTKCh8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cwd/-/cwd-0.9.1.tgz} - name: cwd - version: 0.9.1 - engines: {node: '>=0.8'} - dependencies: - find-pkg: registry.npmmirror.com/find-pkg@0.1.2 - dev: false - - registry.npmmirror.com/cyclist@1.0.2: - resolution: {integrity: sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cyclist/-/cyclist-1.0.2.tgz} - name: cyclist - version: 1.0.2 - dev: false - - registry.npmmirror.com/data-uri-to-buffer@4.0.1: - resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz} - name: data-uri-to-buffer - version: 4.0.1 - engines: {node: '>= 12'} - dev: false - - registry.npmmirror.com/datauri@3.0.0: - resolution: {integrity: sha512-NeDFuUPV1YCpCn8MUIcDk1QnuyenUHs7f4Q5P0n9FFA0neKFrfEH9esR+YMW95BplbYfdmjbs0Pl/ZGAaM2QHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/datauri/-/datauri-3.0.0.tgz} - name: datauri - version: 3.0.0 - engines: {node: '>= 8'} - dependencies: - image-size: registry.npmmirror.com/image-size@0.8.3 - mimer: registry.npmmirror.com/mimer@1.1.0 - dev: false - - registry.npmmirror.com/dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz} - name: dayjs - version: 1.11.10 - dev: false - - registry.npmmirror.com/debug@3.1.0: - resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz} - name: debug - version: 3.1.0 - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: registry.npmmirror.com/ms@2.0.0 - dev: false - - registry.npmmirror.com/debug@3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.2.7.tgz} - name: debug - version: 3.2.7 - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: registry.npmmirror.com/ms@2.1.3 - dev: false - - registry.npmmirror.com/debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} - name: debug - version: 4.3.4 - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: registry.npmmirror.com/ms@2.1.2 - dev: false - - registry.npmmirror.com/decamelize-keys@1.1.1: - resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz} - name: decamelize-keys - version: 1.1.1 - engines: {node: '>=0.10.0'} - dependencies: - decamelize: registry.npmmirror.com/decamelize@1.2.0 - map-obj: registry.npmmirror.com/map-obj@1.0.1 - dev: false - - registry.npmmirror.com/decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decamelize/-/decamelize-1.2.0.tgz} - name: decamelize - version: 1.2.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/decode-named-character-reference@1.0.2: - resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz} - name: decode-named-character-reference - version: 1.0.2 - dependencies: - character-entities: registry.npmmirror.com/character-entities@2.0.2 - dev: false - - registry.npmmirror.com/decode-uri-component@0.2.2: - resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz} - name: decode-uri-component - version: 0.2.2 - engines: {node: '>=0.10'} - dev: false - - registry.npmmirror.com/deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz} - name: deep-extend - version: 0.6.0 - engines: {node: '>=4.0.0'} - dev: false - - registry.npmmirror.com/deep-rename-keys@0.2.1: - resolution: {integrity: sha512-RHd9ABw4Fvk+gYDWqwOftG849x0bYOySl/RgX0tLI9i27ZIeSO91mLZJEp7oPHOMFqHvpgu21YptmDt0FYD/0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz} - name: deep-rename-keys - version: 0.2.1 - engines: {node: '>=0.10.0'} - dependencies: - kind-of: registry.npmmirror.com/kind-of@3.2.2 - rename-keys: registry.npmmirror.com/rename-keys@1.2.0 - dev: false - - registry.npmmirror.com/deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deepmerge/-/deepmerge-4.3.1.tgz} - name: deepmerge - version: 4.3.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/default-browser-id@3.0.0: - resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/default-browser-id/-/default-browser-id-3.0.0.tgz} - name: default-browser-id - version: 3.0.0 - engines: {node: '>=12'} - dependencies: - bplist-parser: registry.npmmirror.com/bplist-parser@0.2.0 - untildify: registry.npmmirror.com/untildify@4.0.0 - dev: false - - registry.npmmirror.com/default-browser@4.0.0: - resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/default-browser/-/default-browser-4.0.0.tgz} - name: default-browser - version: 4.0.0 - engines: {node: '>=14.16'} - dependencies: - bundle-name: registry.npmmirror.com/bundle-name@3.0.0 - default-browser-id: registry.npmmirror.com/default-browser-id@3.0.0 - execa: registry.npmmirror.com/execa@7.2.0 - titleize: registry.npmmirror.com/titleize@3.0.0 - dev: false - - registry.npmmirror.com/define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz} - name: define-data-property - version: 1.1.1 - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - gopd: registry.npmmirror.com/gopd@1.0.1 - has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 - dev: false - - registry.npmmirror.com/define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz} - name: define-lazy-prop - version: 2.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/define-lazy-prop@3.0.0: - resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz} - name: define-lazy-prop - version: 3.0.0 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-properties/-/define-properties-1.2.1.tgz} - name: define-properties - version: 1.2.1 - engines: {node: '>= 0.4'} - dependencies: - define-data-property: registry.npmmirror.com/define-data-property@1.1.1 - has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 - object-keys: registry.npmmirror.com/object-keys@1.1.1 - dev: false - - registry.npmmirror.com/dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz} - name: dequal - version: 2.0.3 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/des.js@1.1.0: - resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/des.js/-/des.js-1.1.0.tgz} - name: des.js - version: 1.1.0 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 - dev: false - - registry.npmmirror.com/detect-indent@7.0.1: - resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-indent/-/detect-indent-7.0.1.tgz} - name: detect-indent - version: 7.0.1 - engines: {node: '>=12.20'} - dev: false - - registry.npmmirror.com/detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz} - name: detect-libc - version: 1.0.3 - engines: {node: '>=0.10'} - hasBin: true - dev: false - - registry.npmmirror.com/detect-newline@4.0.1: - resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-newline/-/detect-newline-4.0.1.tgz} - name: detect-newline - version: 4.0.1 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false - - registry.npmmirror.com/detect-node@2.1.0: - resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz} - name: detect-node - version: 2.1.0 - dev: false - - registry.npmmirror.com/diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/diff/-/diff-5.1.0.tgz} - name: diff - version: 5.1.0 - engines: {node: '>=0.3.1'} - dev: false - - registry.npmmirror.com/diffie-hellman@5.0.3: - resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz} - name: diffie-hellman - version: 5.0.3 - dependencies: - bn.js: registry.npmmirror.com/bn.js@4.12.0 - miller-rabin: registry.npmmirror.com/miller-rabin@4.0.1 - randombytes: registry.npmmirror.com/randombytes@2.1.0 - dev: false - - registry.npmmirror.com/dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz} - name: dir-glob - version: 3.0.1 - engines: {node: '>=8'} - dependencies: - path-type: registry.npmmirror.com/path-type@4.0.0 - dev: false - - registry.npmmirror.com/doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz} - name: doctrine - version: 2.1.0 - engines: {node: '>=0.10.0'} - dependencies: - esutils: registry.npmmirror.com/esutils@2.0.3 - dev: false - - registry.npmmirror.com/dom-converter@0.2.0: - resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz} - name: dom-converter - version: 0.2.0 - dependencies: - utila: registry.npmmirror.com/utila@0.4.0 - dev: false - - registry.npmmirror.com/dom-serializer@0.2.2: - resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-0.2.2.tgz} - name: dom-serializer - version: 0.2.2 - dependencies: - domelementtype: registry.npmmirror.com/domelementtype@2.3.0 - entities: registry.npmmirror.com/entities@2.2.0 - dev: false - - registry.npmmirror.com/dom-serializer@1.4.1: - resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz} - name: dom-serializer - version: 1.4.1 - dependencies: - domelementtype: registry.npmmirror.com/domelementtype@2.3.0 - domhandler: registry.npmmirror.com/domhandler@4.3.1 - entities: registry.npmmirror.com/entities@2.2.0 - dev: false - - registry.npmmirror.com/dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz} - name: dom-serializer - version: 2.0.0 - dependencies: - domelementtype: registry.npmmirror.com/domelementtype@2.3.0 - domhandler: registry.npmmirror.com/domhandler@5.0.3 - entities: registry.npmmirror.com/entities@4.5.0 - dev: false - - registry.npmmirror.com/domain-browser@1.2.0: - resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz} - name: domain-browser - version: 1.2.0 - engines: {node: '>=0.4', npm: '>=1.2'} - dev: false - - registry.npmmirror.com/domelementtype@1.3.1: - resolution: {integrity: sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-1.3.1.tgz} - name: domelementtype - version: 1.3.1 - dev: false - - registry.npmmirror.com/domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz} - name: domelementtype - version: 2.3.0 - dev: false - - registry.npmmirror.com/domhandler@4.3.1: - resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz} - name: domhandler - version: 4.3.1 - engines: {node: '>= 4'} - dependencies: - domelementtype: registry.npmmirror.com/domelementtype@2.3.0 - dev: false - - registry.npmmirror.com/domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz} - name: domhandler - version: 5.0.3 - engines: {node: '>= 4'} - dependencies: - domelementtype: registry.npmmirror.com/domelementtype@2.3.0 - dev: false - - registry.npmmirror.com/domutils@1.7.0: - resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-1.7.0.tgz} - name: domutils - version: 1.7.0 - dependencies: - dom-serializer: registry.npmmirror.com/dom-serializer@0.2.2 - domelementtype: registry.npmmirror.com/domelementtype@1.3.1 - dev: false - - registry.npmmirror.com/domutils@2.8.0: - resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz} - name: domutils - version: 2.8.0 - dependencies: - dom-serializer: registry.npmmirror.com/dom-serializer@1.4.1 - domelementtype: registry.npmmirror.com/domelementtype@2.3.0 - domhandler: registry.npmmirror.com/domhandler@4.3.1 - dev: false - - registry.npmmirror.com/domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domutils/-/domutils-3.1.0.tgz} - name: domutils - version: 3.1.0 - dependencies: - dom-serializer: registry.npmmirror.com/dom-serializer@2.0.0 - domelementtype: registry.npmmirror.com/domelementtype@2.3.0 - domhandler: registry.npmmirror.com/domhandler@5.0.3 - dev: false - - registry.npmmirror.com/dot-case@3.0.4: - resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz} - name: dot-case - version: 3.0.4 - dependencies: - no-case: registry.npmmirror.com/no-case@3.0.4 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/dot-prop@4.2.1: - resolution: {integrity: sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dot-prop/-/dot-prop-4.2.1.tgz} - name: dot-prop - version: 4.2.1 - engines: {node: '>=4'} - dependencies: - is-obj: registry.npmmirror.com/is-obj@1.0.1 - dev: false - - registry.npmmirror.com/dumi-afx-deps@1.0.0-alpha.20: - resolution: {integrity: sha512-PRSJlHuJkyHDET7Hukykx/hLULkgUBX5q2CutMG5EDI3eJLzJlX634wNll10m3at1uomcDAVudL7Dgh5UOJ7IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-afx-deps/-/dumi-afx-deps-1.0.0-alpha.20.tgz} - name: dumi-afx-deps - version: 1.0.0-alpha.20 - dev: false - - registry.npmmirror.com/dumi-assets-types@2.0.0-alpha.0: - resolution: {integrity: sha512-a/Y5lf0G6gwsEQ9hop/n03CcjmHsGBk384Cz/AEX6mRYrfSpUx/lQvP9HLoXkCzScl9PL1sSmLPnMkgaXDCZLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-assets-types/-/dumi-assets-types-2.0.0-alpha.0.tgz} - name: dumi-assets-types - version: 2.0.0-alpha.0 - dev: false - - registry.npmmirror.com/dumi-theme-antd-style@0.29.7(@types/react@18.2.38)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-SQODA/EeveBKcDP6I0fUqUsNg2qRIpOR8t+Jt3GIAhycj6Ddu5WKaUuv5hKnSj75i5j9JdyBT+OneCZcQUxR6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi-theme-antd-style/-/dumi-theme-antd-style-0.29.7.tgz} - id: registry.npmmirror.com/dumi-theme-antd-style/0.29.7 - name: dumi-theme-antd-style - version: 0.29.7 - peerDependencies: - dumi: ^2.0.0 - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@floating-ui/react': registry.npmmirror.com/@floating-ui/react@0.24.8(react-dom@18.2.0)(react@18.2.0) - ahooks: registry.npmmirror.com/ahooks@3.7.8(react@18.2.0) - antd: registry.npmmirror.com/antd@5.11.4(react-dom@18.2.0)(react@18.2.0) - antd-style: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.38)(antd@5.11.4)(react-dom@18.2.0)(react@18.2.0) - chalk: registry.npmmirror.com/chalk@4.1.2 - chroma-js: registry.npmmirror.com/chroma-js@2.4.2 - copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 - dumi: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0) - fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 - lodash: registry.npmmirror.com/lodash@4.17.21 - polished: registry.npmmirror.com/polished@4.2.2 - rc-footer: registry.npmmirror.com/rc-footer@0.6.8(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-layout-kit: registry.npmmirror.com/react-layout-kit@1.7.4(react@18.2.0) - react-syntax-highlighter: registry.npmmirror.com/react-syntax-highlighter@15.5.0(react@18.2.0) - shiki-es: registry.npmmirror.com/shiki-es@0.2.0 - use-merge-value: registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0) - zustand: registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.38)(immer@10.0.3)(react@18.2.0) - zustand-utils: registry.npmmirror.com/zustand-utils@1.3.1(react@18.2.0)(zustand@4.4.7) - transitivePeerDependencies: - - '@types/react' - - date-fns - - immer - - luxon - - moment - dev: false - - registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0): - resolution: {integrity: sha512-r2x/CY0fR8/YZOwEnG4JsLEpn8jOg94Qyd1u+7pRD9SCx7dF9It+GwkGbdNEsyenGsO/ZU9wD+Kz7KO+HU7/EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi/-/dumi-2.2.16.tgz} - id: registry.npmmirror.com/dumi/2.2.16 - name: dumi - version: 2.2.16 - hasBin: true - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@ant-design/icons-svg': registry.npmmirror.com/@ant-design/icons-svg@4.3.1 - '@makotot/ghostui': registry.npmmirror.com/@makotot/ghostui@2.0.0(react@18.2.0) - '@stackblitz/sdk': registry.npmmirror.com/@stackblitz/sdk@1.9.0 - '@swc/core': registry.npmmirror.com/@swc/core@1.3.72 - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - animated-scroll-to: registry.npmmirror.com/animated-scroll-to@2.3.0 - classnames: registry.npmmirror.com/classnames@2.3.2 - codesandbox: registry.npmmirror.com/codesandbox@2.2.3 - copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 - deepmerge: registry.npmmirror.com/deepmerge@4.3.1 - dumi-afx-deps: registry.npmmirror.com/dumi-afx-deps@1.0.0-alpha.20 - dumi-assets-types: registry.npmmirror.com/dumi-assets-types@2.0.0-alpha.0 - enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 - estree-util-to-js: registry.npmmirror.com/estree-util-to-js@1.2.0 - estree-util-visit: registry.npmmirror.com/estree-util-visit@1.2.1 - file-system-cache: registry.npmmirror.com/file-system-cache@2.4.4 - github-slugger: registry.npmmirror.com/github-slugger@1.5.0 - hast-util-is-element: registry.npmmirror.com/hast-util-is-element@2.1.3 - hast-util-raw: registry.npmmirror.com/hast-util-raw@8.0.0 - hast-util-to-estree: registry.npmmirror.com/hast-util-to-estree@2.3.3 - hast-util-to-string: registry.npmmirror.com/hast-util-to-string@2.0.0 - heti: registry.npmmirror.com/heti@0.9.4 - hosted-git-info: registry.npmmirror.com/hosted-git-info@6.1.1 - html-to-text: registry.npmmirror.com/html-to-text@9.0.5 - html2sketch: registry.npmmirror.com/html2sketch@1.0.2 - js-yaml: registry.npmmirror.com/js-yaml@4.1.0 - lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 - mdast-util-find-and-replace: registry.npmmirror.com/mdast-util-find-and-replace@2.2.2 - mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string@3.2.0 - nprogress: registry.npmmirror.com/nprogress@0.2.0 - pluralize: registry.npmmirror.com/pluralize@8.0.0 - prism-react-renderer: registry.npmmirror.com/prism-react-renderer@1.3.5(react@18.2.0) - prism-themes: registry.npmmirror.com/prism-themes@1.9.0 - prismjs: registry.npmmirror.com/prismjs@1.29.0 - raw-loader: registry.npmmirror.com/raw-loader@4.0.2(webpack@5.89.0) - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-tabs: registry.npmmirror.com/rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0) - rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-copy-to-clipboard: registry.npmmirror.com/react-copy-to-clipboard@5.1.0(react@18.2.0) - react-dom: 18.2.0(react@18.2.0) - react-error-boundary: registry.npmmirror.com/react-error-boundary@4.0.11(react@18.2.0) - react-intl: registry.npmmirror.com/react-intl@6.5.5(react@18.2.0)(typescript@5.3.2) - rehype-autolink-headings: registry.npmmirror.com/rehype-autolink-headings@6.1.1 - rehype-remove-comments: registry.npmmirror.com/rehype-remove-comments@5.0.0 - rehype-stringify: registry.npmmirror.com/rehype-stringify@9.0.4 - remark-directive: registry.npmmirror.com/remark-directive@2.0.1 - remark-frontmatter: registry.npmmirror.com/remark-frontmatter@4.0.1 - remark-gfm: registry.npmmirror.com/remark-gfm@3.0.1 - remark-parse: registry.npmmirror.com/remark-parse@10.0.2 - remark-rehype: registry.npmmirror.com/remark-rehype@10.1.0 - sass: registry.npmmirror.com/sass@1.69.5 - sitemap: registry.npmmirror.com/sitemap@7.1.1 - umi: registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(sass@1.69.5)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0) - unified: registry.npmmirror.com/unified@10.1.2 - unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 - unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 - url: registry.npmmirror.com/url@0.11.3 - v8-compile-cache: registry.npmmirror.com/v8-compile-cache@2.3.0 - vfile: registry.npmmirror.com/vfile@5.3.7 - transitivePeerDependencies: - - '@babel/core' - - '@swc/helpers' - - '@types/node' - - '@types/react' - - '@types/webpack' - - '@volar/vue-language-plugin-pug' - - '@volar/vue-typescript' - - eslint - - jest - - postcss-html - - postcss-jsx - - postcss-less - - postcss-markdown - - postcss-scss - - prettier - - rollup - - sockjs-client - - stylelint - - stylus - - sugarss - - supports-color - - terser - - type-fest - - typescript - - webpack - - webpack-dev-server - - webpack-hot-middleware - - webpack-plugin-serve - dev: false - - registry.npmmirror.com/duplexer2@0.1.4: - resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz} - name: duplexer2 - version: 0.1.4 - dependencies: - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - dev: false - - registry.npmmirror.com/duplexer3@0.1.5: - resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz} - name: duplexer3 - version: 0.1.5 - dev: false - - registry.npmmirror.com/duplexify@3.7.1: - resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexify/-/duplexify-3.7.1.tgz} - name: duplexify - version: 3.7.1 - dependencies: - end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - stream-shift: registry.npmmirror.com/stream-shift@1.0.1 - dev: false - - registry.npmmirror.com/duplexify@4.1.2: - resolution: {integrity: sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/duplexify/-/duplexify-4.1.2.tgz} - name: duplexify - version: 4.1.2 - dependencies: - end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@3.6.2 - stream-shift: registry.npmmirror.com/stream-shift@1.0.1 - dev: false - - registry.npmmirror.com/editions@2.3.1: - resolution: {integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/editions/-/editions-2.3.1.tgz} - name: editions - version: 2.3.1 - engines: {node: '>=0.8'} - dependencies: - errlop: registry.npmmirror.com/errlop@2.2.0 - semver: registry.npmmirror.com/semver@6.3.1 - dev: false - - registry.npmmirror.com/electron-to-chromium@1.4.594: - resolution: {integrity: sha512-xT1HVAu5xFn7bDfkjGQi9dNpMqGchUkebwf1GL7cZN32NSwwlHRPMSDJ1KN6HkS0bWUtndbSQZqvpQftKG2uFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.594.tgz} - name: electron-to-chromium - version: 1.4.594 - dev: false - - registry.npmmirror.com/elliptic@6.5.4: - resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz} - name: elliptic - version: 6.5.4 - dependencies: - bn.js: registry.npmmirror.com/bn.js@4.12.0 - brorand: registry.npmmirror.com/brorand@1.1.0 - hash.js: registry.npmmirror.com/hash.js@1.1.7 - hmac-drbg: registry.npmmirror.com/hmac-drbg@1.0.1 - inherits: registry.npmmirror.com/inherits@2.0.4 - minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 - minimalistic-crypto-utils: registry.npmmirror.com/minimalistic-crypto-utils@1.0.1 - dev: false - - registry.npmmirror.com/emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} - name: emoji-regex - version: 8.0.0 - - registry.npmmirror.com/emojis-list@3.0.0: - resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz} - name: emojis-list - version: 3.0.0 - engines: {node: '>= 4'} - dev: false - - registry.npmmirror.com/encoding@0.1.13: - resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz} - name: encoding - version: 0.1.13 - dependencies: - iconv-lite: registry.npmmirror.com/iconv-lite@0.6.3 - dev: false - - registry.npmmirror.com/end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz} - name: end-of-stream - version: 1.4.4 - dependencies: - once: registry.npmmirror.com/once@1.4.0 - dev: false - - registry.npmmirror.com/enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz} - name: enhanced-resolve - version: 5.15.0 - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - tapable: registry.npmmirror.com/tapable@2.2.1 - dev: false - - registry.npmmirror.com/enhanced-resolve@5.9.3: - resolution: {integrity: sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz} - name: enhanced-resolve - version: 5.9.3 - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - tapable: registry.npmmirror.com/tapable@2.2.1 - dev: false - - registry.npmmirror.com/entities@2.2.0: - resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} - name: entities - version: 2.2.0 - dev: false - - registry.npmmirror.com/entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz} - name: entities - version: 4.5.0 - engines: {node: '>=0.12'} - dev: false - - registry.npmmirror.com/err-code@1.1.2: - resolution: {integrity: sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/err-code/-/err-code-1.1.2.tgz} - name: err-code - version: 1.1.2 - dev: false - - registry.npmmirror.com/errlop@2.2.0: - resolution: {integrity: sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/errlop/-/errlop-2.2.0.tgz} - name: errlop - version: 2.2.0 - engines: {node: '>=0.8'} - dev: false - - registry.npmmirror.com/errno@0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz} - name: errno - version: 0.1.8 - hasBin: true - requiresBuild: true - dependencies: - prr: 1.0.1 - optional: true - - registry.npmmirror.com/error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz} - name: error-ex - version: 1.3.2 - dependencies: - is-arrayish: registry.npmmirror.com/is-arrayish@0.2.1 - dev: false - - registry.npmmirror.com/error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz} - name: error-stack-parser - version: 2.1.4 - dependencies: - stackframe: registry.npmmirror.com/stackframe@1.3.4 - dev: false - - registry.npmmirror.com/es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-abstract/-/es-abstract-1.22.3.tgz} - name: es-abstract - version: 1.22.3 - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: registry.npmmirror.com/array-buffer-byte-length@1.0.0 - arraybuffer.prototype.slice: registry.npmmirror.com/arraybuffer.prototype.slice@1.0.2 - available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 - call-bind: registry.npmmirror.com/call-bind@1.0.5 - es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.2 - es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 - function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.6 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - get-symbol-description: registry.npmmirror.com/get-symbol-description@1.0.0 - globalthis: registry.npmmirror.com/globalthis@1.0.3 - gopd: registry.npmmirror.com/gopd@1.0.1 - has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 - has-proto: registry.npmmirror.com/has-proto@1.0.1 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - hasown: registry.npmmirror.com/hasown@2.0.0 - internal-slot: registry.npmmirror.com/internal-slot@1.0.6 - is-array-buffer: registry.npmmirror.com/is-array-buffer@3.0.2 - is-callable: registry.npmmirror.com/is-callable@1.2.7 - is-negative-zero: registry.npmmirror.com/is-negative-zero@2.0.2 - is-regex: registry.npmmirror.com/is-regex@1.1.4 - is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer@1.0.2 - is-string: registry.npmmirror.com/is-string@1.0.7 - is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 - is-weakref: registry.npmmirror.com/is-weakref@1.0.2 - object-inspect: registry.npmmirror.com/object-inspect@1.13.1 - object-keys: registry.npmmirror.com/object-keys@1.1.1 - object.assign: registry.npmmirror.com/object.assign@4.1.4 - regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 - safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 - safe-regex-test: registry.npmmirror.com/safe-regex-test@1.0.0 - string.prototype.trim: registry.npmmirror.com/string.prototype.trim@1.2.8 - string.prototype.trimend: registry.npmmirror.com/string.prototype.trimend@1.0.7 - string.prototype.trimstart: registry.npmmirror.com/string.prototype.trimstart@1.0.7 - typed-array-buffer: registry.npmmirror.com/typed-array-buffer@1.0.0 - typed-array-byte-length: registry.npmmirror.com/typed-array-byte-length@1.0.0 - typed-array-byte-offset: registry.npmmirror.com/typed-array-byte-offset@1.0.0 - typed-array-length: registry.npmmirror.com/typed-array-length@1.0.4 - unbox-primitive: registry.npmmirror.com/unbox-primitive@1.0.2 - which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 - dev: false - - registry.npmmirror.com/es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz} - name: es-array-method-boxes-properly - version: 1.0.0 - dev: false - - registry.npmmirror.com/es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz} - name: es-get-iterator - version: 1.1.3 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - is-arguments: registry.npmmirror.com/is-arguments@1.1.1 - is-map: registry.npmmirror.com/is-map@2.0.2 - is-set: registry.npmmirror.com/is-set@2.0.2 - is-string: registry.npmmirror.com/is-string@1.0.7 - isarray: registry.npmmirror.com/isarray@2.0.5 - stop-iteration-iterator: registry.npmmirror.com/stop-iteration-iterator@1.0.0 - dev: false - - registry.npmmirror.com/es-iterator-helpers@1.0.15: - resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz} - name: es-iterator-helpers - version: 1.0.15 - dependencies: - asynciterator.prototype: registry.npmmirror.com/asynciterator.prototype@1.0.0 - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - es-set-tostringtag: registry.npmmirror.com/es-set-tostringtag@2.0.2 - function-bind: registry.npmmirror.com/function-bind@1.1.2 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - globalthis: registry.npmmirror.com/globalthis@1.0.3 - has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 - has-proto: registry.npmmirror.com/has-proto@1.0.1 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - internal-slot: registry.npmmirror.com/internal-slot@1.0.6 - iterator.prototype: registry.npmmirror.com/iterator.prototype@1.1.2 - safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 - dev: false - - registry.npmmirror.com/es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-1.4.1.tgz} - name: es-module-lexer - version: 1.4.1 - dev: false - - registry.npmmirror.com/es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz} - name: es-set-tostringtag - version: 2.0.2 - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - hasown: registry.npmmirror.com/hasown@2.0.0 - dev: false - - registry.npmmirror.com/es-shim-unscopables@1.0.2: - resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz} - name: es-shim-unscopables - version: 1.0.2 - dependencies: - hasown: registry.npmmirror.com/hasown@2.0.0 - dev: false - - registry.npmmirror.com/es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz} - name: es-to-primitive - version: 1.2.1 - engines: {node: '>= 0.4'} - dependencies: - is-callable: registry.npmmirror.com/is-callable@1.2.7 - is-date-object: registry.npmmirror.com/is-date-object@1.0.5 - is-symbol: registry.npmmirror.com/is-symbol@1.0.4 - dev: false - - registry.npmmirror.com/es5-imcompatible-versions@0.1.88: - resolution: {integrity: sha512-GDJTmDGd65qyDk9fGClO+MOUgHuBuGMCL6EawvLH8Ob+HN8ui1OJwa4fEK0qh3fg2ieT2/pdZj41yrxnmOrK8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es5-imcompatible-versions/-/es5-imcompatible-versions-0.1.88.tgz} - name: es5-imcompatible-versions - version: 0.1.88 - dev: false - - registry.npmmirror.com/es6-promise@4.2.8: - resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz} - name: es6-promise - version: 4.2.8 - dev: false - - registry.npmmirror.com/es6-promisify@5.0.0: - resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es6-promisify/-/es6-promisify-5.0.0.tgz} - name: es6-promisify - version: 5.0.0 - dependencies: - es6-promise: registry.npmmirror.com/es6-promise@4.2.8 - dev: false - - registry.npmmirror.com/esbuild-android-64@0.14.54: - resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz} - name: esbuild-android-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-android-arm64@0.14.54: - resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz} - name: esbuild-android-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-darwin-64@0.14.54: - resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz} - name: esbuild-darwin-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-darwin-arm64@0.14.54: - resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz} - name: esbuild-darwin-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-freebsd-64@0.14.54: - resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz} - name: esbuild-freebsd-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54: - resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz} - name: esbuild-freebsd-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-32@0.14.54: - resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz} - name: esbuild-linux-32 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-64@0.14.54: - resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz} - name: esbuild-linux-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-arm64@0.14.54: - resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz} - name: esbuild-linux-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-arm@0.14.54: - resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz} - name: esbuild-linux-arm - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-mips64le@0.14.54: - resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz} - name: esbuild-linux-mips64le - version: 0.14.54 - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54: - resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz} - name: esbuild-linux-ppc64le - version: 0.14.54 - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-riscv64@0.14.54: - resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz} - name: esbuild-linux-riscv64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-s390x@0.14.54: - resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz} - name: esbuild-linux-s390x - version: 0.14.54 - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-netbsd-64@0.14.54: - resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz} - name: esbuild-netbsd-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-openbsd-64@0.14.54: - resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz} - name: esbuild-openbsd-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-sunos-64@0.14.54: - resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz} - name: esbuild-sunos-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-windows-32@0.14.54: - resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz} - name: esbuild-windows-32 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-windows-64@0.14.54: - resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz} - name: esbuild-windows-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-windows-arm64@0.14.54: - resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz} - name: esbuild-windows-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz} - name: esbuild - version: 0.17.19 - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.17.19 - '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.17.19 - '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.17.19 - '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19 - '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.17.19 - '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19 - '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19 - '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.17.19 - '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.17.19 - '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.17.19 - '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.17.19 - '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19 - '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19 - '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19 - '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.17.19 - '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.17.19 - '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19 - '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19 - '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.17.19 - '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.17.19 - '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.17.19 - '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.17.19 - dev: false - - registry.npmmirror.com/esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz} - name: esbuild - version: 0.18.20 - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.18.20 - '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.18.20 - '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.18.20 - '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20 - '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.18.20 - '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20 - '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20 - '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.18.20 - '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.18.20 - '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.18.20 - '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.18.20 - '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20 - '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20 - '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20 - '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.18.20 - '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.18.20 - '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.18.20 - '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.18.20 - '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.18.20 - '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.18.20 - '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.18.20 - '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.18.20 - dev: false - - registry.npmmirror.com/escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} - name: escalade - version: 3.1.1 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} - name: escape-string-regexp - version: 1.0.5 - engines: {node: '>=0.8.0'} - dev: false - - registry.npmmirror.com/escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz} - name: escape-string-regexp - version: 4.0.0 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz} - name: escape-string-regexp - version: 5.0.0 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.54.0)(typescript@5.3.2): - resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz} - id: registry.npmmirror.com/eslint-plugin-jest/27.2.3 - name: eslint-plugin-jest - version: 27.2.3 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0 - eslint: ^7.0.0 || ^8.0.0 - jest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - jest: - optional: true - dependencies: - '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.54.0)(typescript@5.3.2) - '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.54.0)(typescript@5.3.2) - eslint: 8.54.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: false - - registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.54.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz} - id: registry.npmmirror.com/eslint-plugin-react-hooks/4.6.0 - name: eslint-plugin-react-hooks - version: 4.6.0 - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.54.0 - dev: false - - registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.54.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz} - id: registry.npmmirror.com/eslint-plugin-react/7.33.2 - name: eslint-plugin-react - version: 7.33.2 - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: registry.npmmirror.com/array-includes@3.1.7 - array.prototype.flatmap: registry.npmmirror.com/array.prototype.flatmap@1.3.2 - array.prototype.tosorted: registry.npmmirror.com/array.prototype.tosorted@1.1.2 - doctrine: registry.npmmirror.com/doctrine@2.1.0 - es-iterator-helpers: registry.npmmirror.com/es-iterator-helpers@1.0.15 - eslint: 8.54.0 - estraverse: registry.npmmirror.com/estraverse@5.3.0 - jsx-ast-utils: registry.npmmirror.com/jsx-ast-utils@3.3.5 - minimatch: registry.npmmirror.com/minimatch@3.1.2 - object.entries: registry.npmmirror.com/object.entries@1.1.7 - object.fromentries: registry.npmmirror.com/object.fromentries@2.0.7 - object.hasown: registry.npmmirror.com/object.hasown@1.1.3 - object.values: registry.npmmirror.com/object.values@1.1.7 - prop-types: registry.npmmirror.com/prop-types@15.8.1 - resolve: registry.npmmirror.com/resolve@2.0.0-next.5 - semver: registry.npmmirror.com/semver@6.3.1 - string.prototype.matchall: registry.npmmirror.com/string.prototype.matchall@4.0.10 - dev: false - - registry.npmmirror.com/eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} - name: eslint-scope - version: 5.1.1 - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: registry.npmmirror.com/esrecurse@4.3.0 - estraverse: registry.npmmirror.com/estraverse@4.3.0 - dev: false - - registry.npmmirror.com/eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz} - name: eslint-visitor-keys - version: 2.1.0 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz} - name: eslint-visitor-keys - version: 3.4.3 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - - registry.npmmirror.com/esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz} - name: esprima - version: 4.0.1 - engines: {node: '>=4'} - hasBin: true - dev: false - - registry.npmmirror.com/esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz} - name: esrecurse - version: 4.3.0 - engines: {node: '>=4.0'} - dependencies: - estraverse: registry.npmmirror.com/estraverse@5.3.0 - dev: false - - registry.npmmirror.com/estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz} - name: estraverse - version: 4.3.0 - engines: {node: '>=4.0'} - dev: false - - registry.npmmirror.com/estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz} - name: estraverse - version: 5.3.0 - engines: {node: '>=4.0'} - dev: false - - registry.npmmirror.com/estree-util-attach-comments@2.1.1: - resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz} - name: estree-util-attach-comments - version: 2.1.1 - dependencies: - '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 - dev: false - - registry.npmmirror.com/estree-util-is-identifier-name@2.1.0: - resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz} - name: estree-util-is-identifier-name - version: 2.1.0 - dev: false - - registry.npmmirror.com/estree-util-to-js@1.2.0: - resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz} - name: estree-util-to-js - version: 1.2.0 - dependencies: - '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 - astring: registry.npmmirror.com/astring@1.8.6 - source-map: registry.npmmirror.com/source-map@0.7.4 - dev: false - - registry.npmmirror.com/estree-util-visit@1.2.1: - resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-util-visit/-/estree-util-visit-1.2.1.tgz} - name: estree-util-visit - version: 1.2.1 - dependencies: - '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - dev: false - - registry.npmmirror.com/esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} - name: esutils - version: 2.0.3 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/eventemitter3@2.0.3: - resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-2.0.3.tgz} - name: eventemitter3 - version: 2.0.3 - dev: false - - registry.npmmirror.com/events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/events/-/events-3.3.0.tgz} - name: events - version: 3.3.0 - engines: {node: '>=0.8.x'} - dev: false - - registry.npmmirror.com/evp_bytestokey@1.0.3: - resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz} - name: evp_bytestokey - version: 1.0.3 - dependencies: - md5.js: registry.npmmirror.com/md5.js@1.3.5 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/execa@0.7.0: - resolution: {integrity: sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-0.7.0.tgz} - name: execa - version: 0.7.0 - engines: {node: '>=4'} - dependencies: - cross-spawn: registry.npmmirror.com/cross-spawn@5.1.0 - get-stream: registry.npmmirror.com/get-stream@3.0.0 - is-stream: registry.npmmirror.com/is-stream@1.1.0 - npm-run-path: registry.npmmirror.com/npm-run-path@2.0.2 - p-finally: registry.npmmirror.com/p-finally@1.0.0 - signal-exit: registry.npmmirror.com/signal-exit@3.0.7 - strip-eof: registry.npmmirror.com/strip-eof@1.0.0 - dev: false - - registry.npmmirror.com/execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz} - name: execa - version: 5.1.1 - engines: {node: '>=10'} - dependencies: - cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 - get-stream: registry.npmmirror.com/get-stream@6.0.1 - human-signals: registry.npmmirror.com/human-signals@2.1.0 - is-stream: registry.npmmirror.com/is-stream@2.0.1 - merge-stream: registry.npmmirror.com/merge-stream@2.0.0 - npm-run-path: registry.npmmirror.com/npm-run-path@4.0.1 - onetime: registry.npmmirror.com/onetime@5.1.2 - signal-exit: registry.npmmirror.com/signal-exit@3.0.7 - strip-final-newline: registry.npmmirror.com/strip-final-newline@2.0.0 - dev: false - - registry.npmmirror.com/execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/-/execa-7.2.0.tgz} - name: execa - version: 7.2.0 - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} - dependencies: - cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 - get-stream: registry.npmmirror.com/get-stream@6.0.1 - human-signals: registry.npmmirror.com/human-signals@4.3.1 - is-stream: registry.npmmirror.com/is-stream@3.0.0 - merge-stream: registry.npmmirror.com/merge-stream@2.0.0 - npm-run-path: registry.npmmirror.com/npm-run-path@5.1.0 - onetime: registry.npmmirror.com/onetime@6.0.0 - signal-exit: registry.npmmirror.com/signal-exit@3.0.7 - strip-final-newline: registry.npmmirror.com/strip-final-newline@3.0.0 - dev: false - - registry.npmmirror.com/expand-tilde@1.2.2: - resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/expand-tilde/-/expand-tilde-1.2.2.tgz} - name: expand-tilde - version: 1.2.2 - engines: {node: '>=0.10.0'} - dependencies: - os-homedir: registry.npmmirror.com/os-homedir@1.0.2 - dev: false - - registry.npmmirror.com/extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz} - name: extend-shallow - version: 2.0.1 - engines: {node: '>=0.10.0'} - dependencies: - is-extendable: registry.npmmirror.com/is-extendable@0.1.1 - dev: false - - registry.npmmirror.com/extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz} - name: extend - version: 3.0.2 - dev: false - - registry.npmmirror.com/external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/external-editor/-/external-editor-3.1.0.tgz} - name: external-editor - version: 3.1.0 - engines: {node: '>=4'} - dependencies: - chardet: registry.npmmirror.com/chardet@0.7.0 - iconv-lite: registry.npmmirror.com/iconv-lite@0.4.24 - tmp: registry.npmmirror.com/tmp@0.0.33 - dev: false - - registry.npmmirror.com/fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} - name: fast-deep-equal - version: 3.1.3 - dev: false - - registry.npmmirror.com/fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.12.tgz} - name: fast-glob - version: 3.2.12 - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 - '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 - glob-parent: registry.npmmirror.com/glob-parent@5.1.2 - merge2: registry.npmmirror.com/merge2@1.4.1 - micromatch: registry.npmmirror.com/micromatch@4.0.5 - dev: false - - registry.npmmirror.com/fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz} - name: fast-glob - version: 3.3.2 - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': registry.npmmirror.com/@nodelib/fs.stat@2.0.5 - '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 - glob-parent: registry.npmmirror.com/glob-parent@5.1.2 - merge2: registry.npmmirror.com/merge2@1.4.1 - micromatch: registry.npmmirror.com/micromatch@4.0.5 - dev: false - - registry.npmmirror.com/fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} - name: fast-json-stable-stringify - version: 2.1.0 - dev: false - - registry.npmmirror.com/fast-redact@3.3.0: - resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-redact/-/fast-redact-3.3.0.tgz} - name: fast-redact - version: 3.3.0 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz} - name: fastest-levenshtein - version: 1.0.16 - engines: {node: '>= 4.9.1'} - dev: false - - registry.npmmirror.com/fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz} - name: fastq - version: 1.15.0 - dependencies: - reusify: registry.npmmirror.com/reusify@1.0.4 - dev: false - - registry.npmmirror.com/fault@1.0.4: - resolution: {integrity: sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fault/-/fault-1.0.4.tgz} - name: fault - version: 1.0.4 - dependencies: - format: registry.npmmirror.com/format@0.2.2 - dev: false - - registry.npmmirror.com/fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fault/-/fault-2.0.1.tgz} - name: fault - version: 2.0.1 - dependencies: - format: registry.npmmirror.com/format@0.2.2 - dev: false - - registry.npmmirror.com/fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fb-watchman/-/fb-watchman-2.0.2.tgz} - name: fb-watchman - version: 2.0.2 - dependencies: - bser: registry.npmmirror.com/bser@2.1.1 - dev: false - - registry.npmmirror.com/fetch-blob@3.2.0: - resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fetch-blob/-/fetch-blob-3.2.0.tgz} - name: fetch-blob - version: 3.2.0 - engines: {node: ^12.20 || >= 14.13} - dependencies: - node-domexception: registry.npmmirror.com/node-domexception@1.0.0 - web-streams-polyfill: registry.npmmirror.com/web-streams-polyfill@3.2.1 - dev: false - - registry.npmmirror.com/figures@2.0.0: - resolution: {integrity: sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/figures/-/figures-2.0.0.tgz} - name: figures - version: 2.0.0 - engines: {node: '>=4'} - dependencies: - escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 - dev: false - - registry.npmmirror.com/file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz} - name: file-entry-cache - version: 6.0.1 - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: registry.npmmirror.com/flat-cache@3.2.0 - dev: false - - registry.npmmirror.com/file-name@0.1.0: - resolution: {integrity: sha512-Q8SskhjF4eUk/xoQkmubwLkoHwOTv6Jj/WGtOVLKkZ0vvM+LipkSXugkn1F/+mjWXU32AXLZB3qaz0arUzgtRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-name/-/file-name-0.1.0.tgz} - name: file-name - version: 0.1.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/file-system-cache@2.4.4: - resolution: {integrity: sha512-vCYhn8pb5nlC3Gs2FFCOkmf4NEg2Ym3ulJwkmS9o6p9oRShGj6CwTMFvpgZihBlsh373NaM0XgAgDHXQIlS4LQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-system-cache/-/file-system-cache-2.4.4.tgz} - name: file-system-cache - version: 2.4.4 - dependencies: - '@types/fs-extra': registry.npmmirror.com/@types/fs-extra@11.0.1 - '@types/ramda': registry.npmmirror.com/@types/ramda@0.29.3 - fs-extra: registry.npmmirror.com/fs-extra@11.1.1 - ramda: registry.npmmirror.com/ramda@0.29.0 - dev: false - - registry.npmmirror.com/filesize@3.6.1: - resolution: {integrity: sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/filesize/-/filesize-3.6.1.tgz} - name: filesize - version: 3.6.1 - engines: {node: '>= 0.4.0'} - dev: false - - registry.npmmirror.com/fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} - name: fill-range - version: 7.0.1 - engines: {node: '>=8'} - dependencies: - to-regex-range: registry.npmmirror.com/to-regex-range@5.0.1 - dev: false - - registry.npmmirror.com/filter-obj@1.1.0: - resolution: {integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/filter-obj/-/filter-obj-1.1.0.tgz} - name: filter-obj - version: 1.1.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/find-file-up@0.1.3: - resolution: {integrity: sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-file-up/-/find-file-up-0.1.3.tgz} - name: find-file-up - version: 0.1.3 - engines: {node: '>=0.10.0'} - dependencies: - fs-exists-sync: registry.npmmirror.com/fs-exists-sync@0.1.0 - resolve-dir: registry.npmmirror.com/resolve-dir@0.1.1 - dev: false - - registry.npmmirror.com/find-pkg@0.1.2: - resolution: {integrity: sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-pkg/-/find-pkg-0.1.2.tgz} - name: find-pkg - version: 0.1.2 - engines: {node: '>=0.10.0'} - dependencies: - find-file-up: registry.npmmirror.com/find-file-up@0.1.3 - dev: false - - registry.npmmirror.com/find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-root/-/find-root-1.1.0.tgz} - name: find-root - version: 1.1.0 - dev: false - - registry.npmmirror.com/find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz} - name: find-up - version: 4.1.0 - engines: {node: '>=8'} - dependencies: - locate-path: registry.npmmirror.com/locate-path@5.0.0 - path-exists: registry.npmmirror.com/path-exists@4.0.0 - dev: false - - registry.npmmirror.com/find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz} - name: find-up - version: 5.0.0 - engines: {node: '>=10'} - dependencies: - locate-path: registry.npmmirror.com/locate-path@6.0.0 - path-exists: registry.npmmirror.com/path-exists@4.0.0 - dev: false - - registry.npmmirror.com/flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flat-cache/-/flat-cache-3.2.0.tgz} - name: flat-cache - version: 3.2.0 - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: registry.npmmirror.com/flatted@3.2.9 - keyv: registry.npmmirror.com/keyv@4.5.4 - rimraf: registry.npmmirror.com/rimraf@3.0.2 - dev: false - - registry.npmmirror.com/flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flatted/-/flatted-3.2.9.tgz} - name: flatted - version: 3.2.9 - dev: false - - registry.npmmirror.com/flush-write-stream@1.1.1: - resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz} - name: flush-write-stream - version: 1.1.1 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - dev: false - - registry.npmmirror.com/follow-redirects@1.5.10: - resolution: {integrity: sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz} - name: follow-redirects - version: 1.5.10 - engines: {node: '>=4.0'} - dependencies: - debug: registry.npmmirror.com/debug@3.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz} - name: for-each - version: 0.3.3 - dependencies: - is-callable: registry.npmmirror.com/is-callable@1.2.7 - dev: false - - registry.npmmirror.com/fork-ts-checker-webpack-plugin@8.0.0(typescript@5.3.2)(webpack@5.89.0): - resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz} - id: registry.npmmirror.com/fork-ts-checker-webpack-plugin/8.0.0 - name: fork-ts-checker-webpack-plugin - version: 8.0.0 - engines: {node: '>=12.13.0', yarn: '>=1.0.0'} - peerDependencies: - typescript: '>3.6.0' - webpack: ^5.11.0 - dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 - chalk: registry.npmmirror.com/chalk@4.1.2 - chokidar: registry.npmmirror.com/chokidar@3.5.3 - cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 - deepmerge: registry.npmmirror.com/deepmerge@4.3.1 - fs-extra: registry.npmmirror.com/fs-extra@10.1.0 - memfs: registry.npmmirror.com/memfs@3.5.3 - minimatch: registry.npmmirror.com/minimatch@3.1.2 - node-abort-controller: registry.npmmirror.com/node-abort-controller@3.1.1 - schema-utils: registry.npmmirror.com/schema-utils@3.3.0 - semver: registry.npmmirror.com/semver@7.5.4 - tapable: registry.npmmirror.com/tapable@2.2.1 - typescript: 5.3.2 - webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) - dev: false - - registry.npmmirror.com/format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/format/-/format-0.2.2.tgz} - name: format - version: 0.2.2 - engines: {node: '>=0.4.x'} - dev: false - - registry.npmmirror.com/formdata-polyfill@4.0.10: - resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz} - name: formdata-polyfill - version: 4.0.10 - engines: {node: '>=12.20.0'} - dependencies: - fetch-blob: registry.npmmirror.com/fetch-blob@3.2.0 - dev: false - - registry.npmmirror.com/fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz} - name: fraction.js - version: 4.3.7 - dev: false - - registry.npmmirror.com/from2@2.3.0: - resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz} - name: from2 - version: 2.3.0 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - dev: false - - registry.npmmirror.com/fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz} - name: fs-constants - version: 1.0.0 - dev: false - - registry.npmmirror.com/fs-exists-sync@0.1.0: - resolution: {integrity: sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz} - name: fs-exists-sync - version: 0.1.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz} - name: fs-extra - version: 10.1.0 - engines: {node: '>=12'} - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - jsonfile: registry.npmmirror.com/jsonfile@6.1.0 - universalify: registry.npmmirror.com/universalify@2.0.1 - dev: false - - registry.npmmirror.com/fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-11.1.1.tgz} - name: fs-extra - version: 11.1.1 - engines: {node: '>=14.14'} - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - jsonfile: registry.npmmirror.com/jsonfile@6.1.0 - universalify: registry.npmmirror.com/universalify@2.0.1 - dev: false - - registry.npmmirror.com/fs-extra@3.0.1: - resolution: {integrity: sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-extra/-/fs-extra-3.0.1.tgz} - name: fs-extra - version: 3.0.1 - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - jsonfile: registry.npmmirror.com/jsonfile@3.0.1 - universalify: registry.npmmirror.com/universalify@0.1.2 - dev: false - - registry.npmmirror.com/fs-monkey@1.0.5: - resolution: {integrity: sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.5.tgz} - name: fs-monkey - version: 1.0.5 - dev: false - - registry.npmmirror.com/fs-write-stream-atomic@1.0.10: - resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz} - name: fs-write-stream-atomic - version: 1.0.10 - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - iferr: registry.npmmirror.com/iferr@0.1.5 - imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - dev: false - - registry.npmmirror.com/fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz} - name: fs.realpath - version: 1.0.0 - dev: false - - registry.npmmirror.com/fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz} - name: fsevents - version: 2.3.3 - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true - - registry.npmmirror.com/function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz} - name: function-bind - version: 1.1.2 - dev: false - - registry.npmmirror.com/function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz} - name: function.prototype.name - version: 1.1.6 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 - dev: false - - registry.npmmirror.com/functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz} - name: functions-have-names - version: 1.2.3 - dev: false - - registry.npmmirror.com/gbeata@1.2.5(@types/react@18.2.38)(antd-style@3.6.1)(antd@5.11.4)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-mnRtFtUJbWrlSYD1wEbnaBgTTi/gmooJiLIvYWxFcKl0sPPAjOcSADWNa0LJm497Ob0aqhyYHYEKwgpFGdeZ3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gbeata/-/gbeata-1.2.5.tgz} - id: registry.npmmirror.com/gbeata/1.2.5 - name: gbeata - version: 1.2.5 - peerDependencies: - antd: ^5.12.1 - antd-style: ^3.6.1 - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) - '@minko-fe/use-antd-resizable-header': registry.npmmirror.com/@minko-fe/use-antd-resizable-header@2.9.0(react-dom@18.2.0)(react@18.2.0) - antd: 5.11.4(react-dom@18.2.0)(react@18.2.0) - antd-style: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.38)(antd@5.11.4)(react-dom@18.2.0)(react@18.2.0) - dayjs: registry.npmmirror.com/dayjs@1.11.10 - dumi-theme-antd-style: registry.npmmirror.com/dumi-theme-antd-style@0.29.7(@types/react@18.2.38)(dumi@2.2.16)(immer@10.0.3)(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - - date-fns - - dumi - - immer - - luxon - - moment - dev: false - - registry.npmmirror.com/genfun@4.0.1: - resolution: {integrity: sha512-48yv1eDS5Qrz6cbSDBBik0u7jCgC/eA9eZrl9MIN1LfKzFTuGt6EHgr31YM8yT9cjb5BplXb4Iz3VtOYmgt8Jg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/genfun/-/genfun-4.0.1.tgz} - name: genfun - version: 4.0.1 - dev: false - - registry.npmmirror.com/gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} - name: gensync - version: 1.0.0-beta.2 - engines: {node: '>=6.9.0'} - dev: false - - registry.npmmirror.com/get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-caller-file/-/get-caller-file-2.0.5.tgz} - name: get-caller-file - version: 2.0.5 - engines: {node: 6.* || 8.* || >= 10.*} - dev: false - - registry.npmmirror.com/get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz} - name: get-intrinsic - version: 1.2.2 - dependencies: - function-bind: registry.npmmirror.com/function-bind@1.1.2 - has-proto: registry.npmmirror.com/has-proto@1.0.1 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - hasown: registry.npmmirror.com/hasown@2.0.0 - dev: false - - registry.npmmirror.com/get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-package-type/-/get-package-type-0.1.0.tgz} - name: get-package-type - version: 0.1.0 - engines: {node: '>=8.0.0'} - dev: false - - registry.npmmirror.com/get-stream@3.0.0: - resolution: {integrity: sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-3.0.0.tgz} - name: get-stream - version: 3.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz} - name: get-stream - version: 6.0.1 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz} - name: get-symbol-description - version: 1.0.0 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - dev: false - - registry.npmmirror.com/get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz} - name: get-tsconfig - version: 4.7.2 - dependencies: - resolve-pkg-maps: registry.npmmirror.com/resolve-pkg-maps@1.0.0 - dev: false - - registry.npmmirror.com/get-value@2.0.6: - resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-value/-/get-value-2.0.6.tgz} - name: get-value - version: 2.0.6 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/git-branch@1.0.0: - resolution: {integrity: sha512-ZTzuqw5Df8fyLXQWrX6hK+4FpNCdKzMcERlxENEGO5aKcLmG7MAszhrMhluUKNKmOS/JAGijDMQDXDCDw1mE/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-branch/-/git-branch-1.0.0.tgz} - name: git-branch - version: 1.0.0 - engines: {node: '>=0.8'} - dev: false - - registry.npmmirror.com/git-config-path@1.0.1: - resolution: {integrity: sha512-KcJ2dlrrP5DbBnYIZ2nlikALfRhKzNSX0stvv3ImJ+fvC4hXKoV+U+74SV0upg+jlQZbrtQzc0bu6/Zh+7aQbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-config-path/-/git-config-path-1.0.1.tgz} - name: git-config-path - version: 1.0.1 - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 - fs-exists-sync: registry.npmmirror.com/fs-exists-sync@0.1.0 - homedir-polyfill: registry.npmmirror.com/homedir-polyfill@1.0.3 - dev: false - - registry.npmmirror.com/git-hooks-list@3.1.0: - resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-hooks-list/-/git-hooks-list-3.1.0.tgz} - name: git-hooks-list - version: 3.1.0 - dev: false - - registry.npmmirror.com/git-repo-name@0.6.0: - resolution: {integrity: sha512-DF4XxB6H+Te79JA08/QF/IjIv+j+0gF990WlgAX3SXXU2irfqvBc/xxlAIh6eJWYaKz45MrrGVBFS0Qc4bBz5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-repo-name/-/git-repo-name-0.6.0.tgz} - name: git-repo-name - version: 0.6.0 - engines: {node: '>=0.8'} - dependencies: - cwd: registry.npmmirror.com/cwd@0.9.1 - file-name: registry.npmmirror.com/file-name@0.1.0 - lazy-cache: registry.npmmirror.com/lazy-cache@1.0.4 - remote-origin-url: registry.npmmirror.com/remote-origin-url@0.5.3 - dev: false - - registry.npmmirror.com/git-username@0.5.1: - resolution: {integrity: sha512-xjUjrj3i4kup2A3a/ZVZB1Nt0PUX7SU7KeVqIbXPdslT7NbNfyO04JMxBv4gar77JePdS+A6f05jG1Viy6+U1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-username/-/git-username-0.5.1.tgz} - name: git-username - version: 0.5.1 - engines: {node: '>=0.8'} - dependencies: - remote-origin-url: registry.npmmirror.com/remote-origin-url@0.4.0 - dev: false - - registry.npmmirror.com/github-slugger@1.5.0: - resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/github-slugger/-/github-slugger-1.5.0.tgz} - name: github-slugger - version: 1.5.0 - dev: false - - registry.npmmirror.com/glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} - name: glob-parent - version: 5.1.2 - engines: {node: '>= 6'} - dependencies: - is-glob: registry.npmmirror.com/is-glob@4.0.3 - dev: false - - registry.npmmirror.com/glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz} - name: glob-to-regexp - version: 0.4.1 - dev: false - - registry.npmmirror.com/glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} - name: glob - version: 7.2.3 - dependencies: - fs.realpath: registry.npmmirror.com/fs.realpath@1.0.0 - inflight: registry.npmmirror.com/inflight@1.0.6 - inherits: registry.npmmirror.com/inherits@2.0.4 - minimatch: registry.npmmirror.com/minimatch@3.1.2 - once: registry.npmmirror.com/once@1.4.0 - path-is-absolute: registry.npmmirror.com/path-is-absolute@1.0.1 - dev: false - - registry.npmmirror.com/global-dirs@0.1.1: - resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-dirs/-/global-dirs-0.1.1.tgz} - name: global-dirs - version: 0.1.1 - engines: {node: '>=4'} - dependencies: - ini: registry.npmmirror.com/ini@1.3.8 - dev: false - - registry.npmmirror.com/global-modules@0.2.3: - resolution: {integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-modules/-/global-modules-0.2.3.tgz} - name: global-modules - version: 0.2.3 - engines: {node: '>=0.10.0'} - dependencies: - global-prefix: registry.npmmirror.com/global-prefix@0.1.5 - is-windows: registry.npmmirror.com/is-windows@0.2.0 - dev: false - - registry.npmmirror.com/global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-modules/-/global-modules-2.0.0.tgz} - name: global-modules - version: 2.0.0 - engines: {node: '>=6'} - dependencies: - global-prefix: registry.npmmirror.com/global-prefix@3.0.0 - dev: false - - registry.npmmirror.com/global-prefix@0.1.5: - resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-0.1.5.tgz} - name: global-prefix - version: 0.1.5 - engines: {node: '>=0.10.0'} - dependencies: - homedir-polyfill: registry.npmmirror.com/homedir-polyfill@1.0.3 - ini: registry.npmmirror.com/ini@1.3.8 - is-windows: registry.npmmirror.com/is-windows@0.2.0 - which: registry.npmmirror.com/which@1.3.1 - dev: false - - registry.npmmirror.com/global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz} - name: global-prefix - version: 3.0.0 - engines: {node: '>=6'} - dependencies: - ini: registry.npmmirror.com/ini@1.3.8 - kind-of: registry.npmmirror.com/kind-of@6.0.3 - which: registry.npmmirror.com/which@1.3.1 - dev: false - - registry.npmmirror.com/globals@11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} - name: globals - version: 11.12.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globalthis/-/globalthis-1.0.3.tgz} - name: globalthis - version: 1.0.3 - engines: {node: '>= 0.4'} - dependencies: - define-properties: registry.npmmirror.com/define-properties@1.2.1 - dev: false - - registry.npmmirror.com/globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz} - name: globby - version: 11.1.0 - engines: {node: '>=10'} - dependencies: - array-union: registry.npmmirror.com/array-union@2.1.0 - dir-glob: registry.npmmirror.com/dir-glob@3.0.1 - fast-glob: registry.npmmirror.com/fast-glob@3.3.2 - ignore: registry.npmmirror.com/ignore@5.3.0 - merge2: registry.npmmirror.com/merge2@1.4.1 - slash: registry.npmmirror.com/slash@3.0.0 - dev: false - - registry.npmmirror.com/globby@13.2.2: - resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globby/-/globby-13.2.2.tgz} - name: globby - version: 13.2.2 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - dir-glob: registry.npmmirror.com/dir-glob@3.0.1 - fast-glob: registry.npmmirror.com/fast-glob@3.3.2 - ignore: registry.npmmirror.com/ignore@5.3.0 - merge2: registry.npmmirror.com/merge2@1.4.1 - slash: registry.npmmirror.com/slash@4.0.0 - dev: false - - registry.npmmirror.com/globjoin@0.1.4: - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globjoin/-/globjoin-0.1.4.tgz} - name: globjoin - version: 0.1.4 - dev: false - - registry.npmmirror.com/gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz} - name: gopd - version: 1.0.1 - dependencies: - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - dev: false - - registry.npmmirror.com/got@6.7.1: - resolution: {integrity: sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/got/-/got-6.7.1.tgz} - name: got - version: 6.7.1 - engines: {node: '>=4'} - dependencies: - '@types/keyv': registry.npmmirror.com/@types/keyv@3.1.4 - '@types/responselike': registry.npmmirror.com/@types/responselike@1.0.3 - create-error-class: registry.npmmirror.com/create-error-class@3.0.2 - duplexer3: registry.npmmirror.com/duplexer3@0.1.5 - get-stream: registry.npmmirror.com/get-stream@3.0.0 - is-redirect: registry.npmmirror.com/is-redirect@1.0.0 - is-retry-allowed: registry.npmmirror.com/is-retry-allowed@1.2.0 - is-stream: registry.npmmirror.com/is-stream@1.1.0 - lowercase-keys: registry.npmmirror.com/lowercase-keys@1.0.1 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - timed-out: registry.npmmirror.com/timed-out@4.0.1 - unzip-response: registry.npmmirror.com/unzip-response@2.0.1 - url-parse-lax: registry.npmmirror.com/url-parse-lax@1.0.0 - dev: false - - registry.npmmirror.com/graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz} - name: graceful-fs - version: 4.2.11 - - registry.npmmirror.com/graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz} - name: graphemer - version: 1.4.0 - dev: false - - registry.npmmirror.com/handle-thing@2.0.1: - resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz} - name: handle-thing - version: 2.0.1 - dev: false - - registry.npmmirror.com/hard-rejection@2.1.0: - resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hard-rejection/-/hard-rejection-2.1.0.tgz} - name: hard-rejection - version: 2.1.0 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/harmony-reflect@1.6.2: - resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/harmony-reflect/-/harmony-reflect-1.6.2.tgz} - name: harmony-reflect - version: 1.6.2 - dev: false - - registry.npmmirror.com/has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} - name: has-bigints - version: 1.0.2 - dev: false - - registry.npmmirror.com/has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} - name: has-flag - version: 3.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} - name: has-flag - version: 4.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/has-property-descriptors@1.0.1: - resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz} - name: has-property-descriptors - version: 1.0.1 - dependencies: - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - dev: false - - registry.npmmirror.com/has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz} - name: has-proto - version: 1.0.1 - engines: {node: '>= 0.4'} - dev: false - - registry.npmmirror.com/has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz} - name: has-symbols - version: 1.0.3 - engines: {node: '>= 0.4'} - dev: false - - registry.npmmirror.com/has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz} - name: has-tostringtag - version: 1.0.0 - engines: {node: '>= 0.4'} - dependencies: - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - dev: false - - registry.npmmirror.com/has-value@0.3.1: - resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-value/-/has-value-0.3.1.tgz} - name: has-value - version: 0.3.1 - engines: {node: '>=0.10.0'} - dependencies: - get-value: registry.npmmirror.com/get-value@2.0.6 - has-values: registry.npmmirror.com/has-values@0.1.4 - isobject: registry.npmmirror.com/isobject@2.1.0 - dev: false - - registry.npmmirror.com/has-values@0.1.4: - resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz} - name: has-values - version: 0.1.4 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/hash-base@3.1.0: - resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hash-base/-/hash-base-3.1.0.tgz} - name: hash-base - version: 3.1.0 - engines: {node: '>=4'} - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@3.6.2 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hash.js/-/hash.js-1.1.7.tgz} - name: hash.js - version: 1.1.7 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 - dev: false - - registry.npmmirror.com/hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz} - name: hasown - version: 2.0.0 - engines: {node: '>= 0.4'} - dependencies: - function-bind: registry.npmmirror.com/function-bind@1.1.2 - dev: false - - registry.npmmirror.com/hast-util-from-parse5@7.1.2: - resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz} - name: hast-util-from-parse5 - version: 7.1.2 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - hastscript: registry.npmmirror.com/hastscript@7.2.0 - property-information: registry.npmmirror.com/property-information@6.4.0 - vfile: registry.npmmirror.com/vfile@5.3.7 - vfile-location: registry.npmmirror.com/vfile-location@4.1.0 - web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 - dev: false - - registry.npmmirror.com/hast-util-has-property@2.0.1: - resolution: {integrity: sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-has-property/-/hast-util-has-property-2.0.1.tgz} - name: hast-util-has-property - version: 2.0.1 - dev: false - - registry.npmmirror.com/hast-util-heading-rank@2.1.1: - resolution: {integrity: sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-heading-rank/-/hast-util-heading-rank-2.1.1.tgz} - name: hast-util-heading-rank - version: 2.1.1 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - dev: false - - registry.npmmirror.com/hast-util-is-conditional-comment@2.0.0: - resolution: {integrity: sha512-U66gW8ZWQdxP4ZjTEZ3xZT72y6rIKJqV4At5QmC1ItBbQyZyVkuTp8QkQwhxsbkHdzpifiZdQWrDipc9ByqhRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-is-conditional-comment/-/hast-util-is-conditional-comment-2.0.0.tgz} - name: hast-util-is-conditional-comment - version: 2.0.0 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - dev: false - - registry.npmmirror.com/hast-util-is-element@2.1.3: - resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz} - name: hast-util-is-element - version: 2.1.3 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - dev: false - - registry.npmmirror.com/hast-util-parse-selector@2.2.5: - resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz} - name: hast-util-parse-selector - version: 2.2.5 - dev: false - - registry.npmmirror.com/hast-util-parse-selector@3.1.1: - resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz} - name: hast-util-parse-selector - version: 3.1.1 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - dev: false - - registry.npmmirror.com/hast-util-raw@7.2.3: - resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-7.2.3.tgz} - name: hast-util-raw - version: 7.2.3 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/parse5': registry.npmmirror.com/@types/parse5@6.0.3 - hast-util-from-parse5: registry.npmmirror.com/hast-util-from-parse5@7.1.2 - hast-util-to-parse5: registry.npmmirror.com/hast-util-to-parse5@7.1.0 - html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 - parse5: registry.npmmirror.com/parse5@6.0.1 - unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 - unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 - vfile: registry.npmmirror.com/vfile@5.3.7 - web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 - zwitch: registry.npmmirror.com/zwitch@2.0.4 - dev: false - - registry.npmmirror.com/hast-util-raw@8.0.0: - resolution: {integrity: sha512-bKbaUxMNLjZMMowgcrc4l3aQSPiMLiceZD+mp+AKF8Si0mtyR2DYVdxzS2XBxXYDeW/VvfZy40lNxHRiY6MMTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-raw/-/hast-util-raw-8.0.0.tgz} - name: hast-util-raw - version: 8.0.0 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - extend: registry.npmmirror.com/extend@3.0.2 - hast-util-from-parse5: registry.npmmirror.com/hast-util-from-parse5@7.1.2 - hast-util-to-parse5: registry.npmmirror.com/hast-util-to-parse5@7.1.0 - html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 - mdast-util-to-hast: registry.npmmirror.com/mdast-util-to-hast@12.3.0 - parse5: registry.npmmirror.com/parse5@7.1.2 - unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 - unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 - vfile: registry.npmmirror.com/vfile@5.3.7 - web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 - zwitch: registry.npmmirror.com/zwitch@2.0.4 - dev: false - - registry.npmmirror.com/hast-util-to-estree@2.3.3: - resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz} - name: hast-util-to-estree - version: 2.3.3 - dependencies: - '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 - '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 - estree-util-attach-comments: registry.npmmirror.com/estree-util-attach-comments@2.1.1 - estree-util-is-identifier-name: registry.npmmirror.com/estree-util-is-identifier-name@2.1.0 - hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace@2.0.1 - mdast-util-mdx-expression: registry.npmmirror.com/mdast-util-mdx-expression@1.3.2 - mdast-util-mdxjs-esm: registry.npmmirror.com/mdast-util-mdxjs-esm@1.3.1 - property-information: registry.npmmirror.com/property-information@6.4.0 - space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 - style-to-object: registry.npmmirror.com/style-to-object@0.4.4 - unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 - zwitch: registry.npmmirror.com/zwitch@2.0.4 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/hast-util-to-html@8.0.4: - resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-html/-/hast-util-to-html-8.0.4.tgz} - name: hast-util-to-html - version: 8.0.4 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - ccount: registry.npmmirror.com/ccount@2.0.1 - comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 - hast-util-raw: registry.npmmirror.com/hast-util-raw@7.2.3 - hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace@2.0.1 - html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 - property-information: registry.npmmirror.com/property-information@6.4.0 - space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 - stringify-entities: registry.npmmirror.com/stringify-entities@4.0.3 - zwitch: registry.npmmirror.com/zwitch@2.0.4 - dev: false - - registry.npmmirror.com/hast-util-to-parse5@7.1.0: - resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz} - name: hast-util-to-parse5 - version: 7.1.0 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 - property-information: registry.npmmirror.com/property-information@6.4.0 - space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 - web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 - zwitch: registry.npmmirror.com/zwitch@2.0.4 - dev: false - - registry.npmmirror.com/hast-util-to-string@2.0.0: - resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-string/-/hast-util-to-string-2.0.0.tgz} - name: hast-util-to-string - version: 2.0.0 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - dev: false - - registry.npmmirror.com/hast-util-whitespace@2.0.1: - resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz} - name: hast-util-whitespace - version: 2.0.1 - dev: false - - registry.npmmirror.com/hastscript@6.0.0: - resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hastscript/-/hastscript-6.0.0.tgz} - name: hastscript - version: 6.0.0 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@1.0.8 - hast-util-parse-selector: registry.npmmirror.com/hast-util-parse-selector@2.2.5 - property-information: registry.npmmirror.com/property-information@5.6.0 - space-separated-tokens: registry.npmmirror.com/space-separated-tokens@1.1.5 - dev: false - - registry.npmmirror.com/hastscript@7.2.0: - resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hastscript/-/hastscript-7.2.0.tgz} - name: hastscript - version: 7.2.0 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 - hast-util-parse-selector: registry.npmmirror.com/hast-util-parse-selector@3.1.1 - property-information: registry.npmmirror.com/property-information@6.4.0 - space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 - dev: false - - registry.npmmirror.com/he@1.2.0: - resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/he/-/he-1.2.0.tgz} - name: he - version: 1.2.0 - hasBin: true - dev: false - - registry.npmmirror.com/heti-findandreplacedomtext@0.5.0: - resolution: {integrity: sha512-GFZjqU8LAdu1uR72GqrReI+lzNLMlcWtvdz1TKNJiofyo1mfTecFYSZEoEbcLcRMl+KwEldnNQoS4BwO8wtg0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/heti-findandreplacedomtext/-/heti-findandreplacedomtext-0.5.0.tgz} - name: heti-findandreplacedomtext - version: 0.5.0 - dev: false - - registry.npmmirror.com/heti@0.9.4: - resolution: {integrity: sha512-DI1A/R6VabM8wulXrGVbeHZNZ8jJUm+Pwn+PEYZcNBxAO+4mXWPEX+Xu9R/YrHETGcevNrLO34m/99ZCnFnlhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/heti/-/heti-0.9.4.tgz} - name: heti - version: 0.9.4 - dependencies: - heti-findandreplacedomtext: registry.npmmirror.com/heti-findandreplacedomtext@0.5.0 - dev: false - - registry.npmmirror.com/highlight.js@10.7.3: - resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/highlight.js/-/highlight.js-10.7.3.tgz} - name: highlight.js - version: 10.7.3 - dev: false - - registry.npmmirror.com/history@5.3.0: - resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/history/-/history-5.3.0.tgz} - name: history - version: 5.3.0 - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - dev: false - - registry.npmmirror.com/hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz} - name: hmac-drbg - version: 1.0.1 - dependencies: - hash.js: registry.npmmirror.com/hash.js@1.1.7 - minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 - minimalistic-crypto-utils: registry.npmmirror.com/minimalistic-crypto-utils@1.0.1 - dev: false - - registry.npmmirror.com/hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz} - name: hoist-non-react-statics - version: 3.3.2 - dependencies: - react-is: registry.npmmirror.com/react-is@16.13.1 - dev: false - - registry.npmmirror.com/homedir-polyfill@1.0.3: - resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz} - name: homedir-polyfill - version: 1.0.3 - engines: {node: '>=0.10.0'} - dependencies: - parse-passwd: registry.npmmirror.com/parse-passwd@1.0.0 - dev: false - - registry.npmmirror.com/hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz} - name: hosted-git-info - version: 2.8.9 - dev: false - - registry.npmmirror.com/hosted-git-info@4.1.0: - resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz} - name: hosted-git-info - version: 4.1.0 - engines: {node: '>=10'} - dependencies: - lru-cache: registry.npmmirror.com/lru-cache@6.0.0 - dev: false - - registry.npmmirror.com/hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz} - name: hosted-git-info - version: 6.1.1 - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - lru-cache: registry.npmmirror.com/lru-cache@7.18.3 - dev: false - - registry.npmmirror.com/hpack.js@2.1.6: - resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz} - name: hpack.js - version: 2.1.6 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - obuf: registry.npmmirror.com/obuf@1.1.2 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - wbuf: registry.npmmirror.com/wbuf@1.7.3 - dev: false - - registry.npmmirror.com/htm@3.1.1: - resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htm/-/htm-3.1.1.tgz} - name: htm - version: 3.1.1 - dev: false - - registry.npmmirror.com/html-entities@2.4.0: - resolution: {integrity: sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-entities/-/html-entities-2.4.0.tgz} - name: html-entities - version: 2.4.0 - dev: false - - registry.npmmirror.com/html-minifier-terser@6.1.0: - resolution: {integrity: sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz} - name: html-minifier-terser - version: 6.1.0 - engines: {node: '>=12'} - hasBin: true - dependencies: - camel-case: registry.npmmirror.com/camel-case@4.1.2 - clean-css: registry.npmmirror.com/clean-css@5.3.3 - commander: registry.npmmirror.com/commander@8.3.0 - he: registry.npmmirror.com/he@1.2.0 - param-case: registry.npmmirror.com/param-case@3.0.4 - relateurl: registry.npmmirror.com/relateurl@0.2.7 - terser: registry.npmmirror.com/terser@5.24.0 - dev: false - - registry.npmmirror.com/html-tags@3.3.1: - resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-tags/-/html-tags-3.3.1.tgz} - name: html-tags - version: 3.3.1 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/html-to-text@9.0.5: - resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-to-text/-/html-to-text-9.0.5.tgz} - name: html-to-text - version: 9.0.5 - engines: {node: '>=14'} - dependencies: - '@selderee/plugin-htmlparser2': registry.npmmirror.com/@selderee/plugin-htmlparser2@0.11.0 - deepmerge: registry.npmmirror.com/deepmerge@4.3.1 - dom-serializer: registry.npmmirror.com/dom-serializer@2.0.0 - htmlparser2: registry.npmmirror.com/htmlparser2@8.0.2 - selderee: registry.npmmirror.com/selderee@0.11.0 - dev: false - - registry.npmmirror.com/html-tokenize@2.0.1: - resolution: {integrity: sha512-QY6S+hZ0f5m1WT8WffYN+Hg+xm/w5I8XeUcAq/ZYP5wVC8xbKi4Whhru3FtrAebD5EhBW8rmFzkDI6eCAuFe2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-tokenize/-/html-tokenize-2.0.1.tgz} - name: html-tokenize - version: 2.0.1 - hasBin: true - dependencies: - buffer-from: registry.npmmirror.com/buffer-from@0.1.2 - inherits: registry.npmmirror.com/inherits@2.0.4 - minimist: registry.npmmirror.com/minimist@1.2.8 - readable-stream: registry.npmmirror.com/readable-stream@1.0.34 - through2: registry.npmmirror.com/through2@0.4.2 - dev: false - - registry.npmmirror.com/html-void-elements@2.0.1: - resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz} - name: html-void-elements - version: 2.0.1 - dev: false - - registry.npmmirror.com/html-webpack-plugin@5.5.0(webpack@5.89.0): - resolution: {integrity: sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz} - id: registry.npmmirror.com/html-webpack-plugin/5.5.0 - name: html-webpack-plugin - version: 5.5.0 - engines: {node: '>=10.13.0'} - peerDependencies: - webpack: ^5.20.0 - dependencies: - '@types/html-minifier-terser': registry.npmmirror.com/@types/html-minifier-terser@6.1.0 - html-minifier-terser: registry.npmmirror.com/html-minifier-terser@6.1.0 - lodash: registry.npmmirror.com/lodash@4.17.21 - pretty-error: registry.npmmirror.com/pretty-error@4.0.0 - tapable: registry.npmmirror.com/tapable@2.2.1 - webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) - dev: false - - registry.npmmirror.com/html2sketch@1.0.2: - resolution: {integrity: sha512-/P9NcVH9yBhrOkcnaFkAbWJifDO8Ii+CTIxy9gE6trSQvo2OH++TKQIP5MICEoWvgXpVhZ6botj7P63Krl1/gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html2sketch/-/html2sketch-1.0.2.tgz} - name: html2sketch - version: 1.0.2 - engines: {node: '>=14.0.0'} - dependencies: - '@sketch-hq/sketch-file-format-ts': registry.npmmirror.com/@sketch-hq/sketch-file-format-ts@6.5.0 - color: registry.npmmirror.com/color@3.2.1 - css: registry.npmmirror.com/css@3.0.0 - svg-pathdata: registry.npmmirror.com/svg-pathdata@5.0.5 - svgo-browser: registry.npmmirror.com/svgo-browser@1.3.8 - svgson: registry.npmmirror.com/svgson@4.1.0 - transformation-matrix: registry.npmmirror.com/transformation-matrix@2.15.0 - uuid: registry.npmmirror.com/uuid@8.3.2 - dev: false - - registry.npmmirror.com/htmlparser2@6.1.0: - resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz} - name: htmlparser2 - version: 6.1.0 - dependencies: - domelementtype: registry.npmmirror.com/domelementtype@2.3.0 - domhandler: registry.npmmirror.com/domhandler@4.3.1 - domutils: registry.npmmirror.com/domutils@2.8.0 - entities: registry.npmmirror.com/entities@2.2.0 - dev: false - - registry.npmmirror.com/htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz} - name: htmlparser2 - version: 8.0.2 - dependencies: - domelementtype: registry.npmmirror.com/domelementtype@2.3.0 - domhandler: registry.npmmirror.com/domhandler@5.0.3 - domutils: registry.npmmirror.com/domutils@3.1.0 - entities: registry.npmmirror.com/entities@4.5.0 - dev: false - - registry.npmmirror.com/http-cache-semantics@3.8.1: - resolution: {integrity: sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz} - name: http-cache-semantics - version: 3.8.1 - dev: false - - registry.npmmirror.com/http-deceiver@1.2.7: - resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz} - name: http-deceiver - version: 1.2.7 - dev: false - - registry.npmmirror.com/http-proxy-agent@2.1.0: - resolution: {integrity: sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz} - name: http-proxy-agent - version: 2.1.0 - engines: {node: '>= 4.5.0'} - dependencies: - agent-base: registry.npmmirror.com/agent-base@4.3.0 - debug: registry.npmmirror.com/debug@3.1.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/https-browserify@1.0.0: - resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/https-browserify/-/https-browserify-1.0.0.tgz} - name: https-browserify - version: 1.0.0 - dev: false - - registry.npmmirror.com/https-proxy-agent@2.2.4: - resolution: {integrity: sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz} - name: https-proxy-agent - version: 2.2.4 - engines: {node: '>= 4.5.0'} - dependencies: - agent-base: registry.npmmirror.com/agent-base@4.3.0 - debug: registry.npmmirror.com/debug@3.2.7 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz} - name: human-signals - version: 2.1.0 - engines: {node: '>=10.17.0'} - dev: false - - registry.npmmirror.com/human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/human-signals/-/human-signals-4.3.1.tgz} - name: human-signals - version: 4.3.1 - engines: {node: '>=14.18.0'} - dev: false - - registry.npmmirror.com/humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/humanize-ms/-/humanize-ms-1.2.1.tgz} - name: humanize-ms - version: 1.2.1 - dependencies: - ms: registry.npmmirror.com/ms@2.1.3 - dev: false - - registry.npmmirror.com/humps@2.0.1: - resolution: {integrity: sha512-E0eIbrFWUhwfXJmsbdjRQFQPrl5pTEoKlz163j1mTqqUnU9PgR4AgB8AIITzuB3vLBdxZXyZ9TDIrwB2OASz4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/humps/-/humps-2.0.1.tgz} - name: humps - version: 2.0.1 - dev: false - - registry.npmmirror.com/iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz} - name: iconv-lite - version: 0.4.24 - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 - dev: false - - registry.npmmirror.com/iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz} - name: iconv-lite - version: 0.6.3 - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: registry.npmmirror.com/safer-buffer@2.1.2 - dev: false - - registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31): - resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz} - id: registry.npmmirror.com/icss-utils/5.1.0 - name: icss-utils - version: 5.1.0 - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/identity-obj-proxy@3.0.0: - resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz} - name: identity-obj-proxy - version: 3.0.0 - engines: {node: '>=4'} - dependencies: - harmony-reflect: registry.npmmirror.com/harmony-reflect@1.6.2 - dev: false - - registry.npmmirror.com/ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz} - name: ieee754 - version: 1.2.1 - dev: false - - registry.npmmirror.com/iferr@0.1.5: - resolution: {integrity: sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iferr/-/iferr-0.1.5.tgz} - name: iferr - version: 0.1.5 - dev: false - - registry.npmmirror.com/ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ignore/-/ignore-5.3.0.tgz} - name: ignore - version: 5.3.0 - engines: {node: '>= 4'} - dev: false - - registry.npmmirror.com/image-size@0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz} - name: image-size - version: 0.5.5 - engines: {node: '>=0.10.0'} - hasBin: true - requiresBuild: true - optional: true - - registry.npmmirror.com/image-size@0.8.3: - resolution: {integrity: sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.8.3.tgz} - name: image-size - version: 0.8.3 - engines: {node: '>=6.9.0'} - hasBin: true - dependencies: - queue: registry.npmmirror.com/queue@6.0.1 - dev: false - - registry.npmmirror.com/immutable@4.3.4: - resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz} - name: immutable - version: 4.3.4 - dev: false - - registry.npmmirror.com/import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz} - name: import-fresh - version: 3.3.0 - engines: {node: '>=6'} - dependencies: - parent-module: registry.npmmirror.com/parent-module@1.0.1 - resolve-from: registry.npmmirror.com/resolve-from@4.0.0 - dev: false - - registry.npmmirror.com/import-lazy@2.1.0: - resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-lazy/-/import-lazy-2.1.0.tgz} - name: import-lazy - version: 2.1.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/import-lazy@4.0.0: - resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/import-lazy/-/import-lazy-4.0.0.tgz} - name: import-lazy - version: 4.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz} - name: imurmurhash - version: 0.1.4 - engines: {node: '>=0.8.19'} - dev: false - - registry.npmmirror.com/indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz} - name: indent-string - version: 4.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz} - name: inflight - version: 1.0.6 - dependencies: - once: registry.npmmirror.com/once@1.4.0 - wrappy: registry.npmmirror.com/wrappy@1.0.2 - dev: false - - registry.npmmirror.com/inherits@2.0.3: - resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz} - name: inherits - version: 2.0.3 - dev: false - - registry.npmmirror.com/inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz} - name: inherits - version: 2.0.4 - dev: false - - registry.npmmirror.com/ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz} - name: ini - version: 1.3.8 - dev: false - - registry.npmmirror.com/inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz} - name: inline-style-parser - version: 0.1.1 - dev: false - - registry.npmmirror.com/inquirer@6.5.2: - resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inquirer/-/inquirer-6.5.2.tgz} - name: inquirer - version: 6.5.2 - engines: {node: '>=6.0.0'} - dependencies: - ansi-escapes: registry.npmmirror.com/ansi-escapes@3.2.0 - chalk: registry.npmmirror.com/chalk@2.4.2 - cli-cursor: registry.npmmirror.com/cli-cursor@2.1.0 - cli-width: registry.npmmirror.com/cli-width@2.2.1 - external-editor: registry.npmmirror.com/external-editor@3.1.0 - figures: registry.npmmirror.com/figures@2.0.0 - lodash: registry.npmmirror.com/lodash@4.17.21 - mute-stream: registry.npmmirror.com/mute-stream@0.0.7 - run-async: registry.npmmirror.com/run-async@2.4.1 - rxjs: registry.npmmirror.com/rxjs@6.6.7 - string-width: registry.npmmirror.com/string-width@2.1.1 - strip-ansi: registry.npmmirror.com/strip-ansi@5.2.0 - through: registry.npmmirror.com/through@2.3.8 - dev: false - - registry.npmmirror.com/internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/internal-slot/-/internal-slot-1.0.6.tgz} - name: internal-slot - version: 1.0.6 - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - hasown: registry.npmmirror.com/hasown@2.0.0 - side-channel: registry.npmmirror.com/side-channel@1.0.4 - dev: false - - registry.npmmirror.com/intersection-observer@0.12.2: - resolution: {integrity: sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/intersection-observer/-/intersection-observer-0.12.2.tgz} - name: intersection-observer - version: 0.12.2 - dev: false - - registry.npmmirror.com/intl-messageformat@10.5.8: - resolution: {integrity: sha512-NRf0jpBWV0vd671G5b06wNofAN8tp7WWDogMZyaU8GUAsmbouyvgwmFJI7zLjfAMpm3zK+vSwRP3jzaoIcMbaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/intl-messageformat/-/intl-messageformat-10.5.8.tgz} - name: intl-messageformat - version: 10.5.8 - dependencies: - '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 - '@formatjs/fast-memoize': registry.npmmirror.com/@formatjs/fast-memoize@2.2.0 - '@formatjs/icu-messageformat-parser': registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/invariant@2.2.4: - resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz} - name: invariant - version: 2.2.4 - dependencies: - loose-envify: registry.npmmirror.com/loose-envify@1.4.0 - dev: false - - registry.npmmirror.com/ip@1.1.8: - resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ip/-/ip-1.1.8.tgz} - name: ip - version: 1.1.8 - dev: false - - registry.npmmirror.com/is-alphabetical@1.0.4: - resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz} - name: is-alphabetical - version: 1.0.4 - dev: false - - registry.npmmirror.com/is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz} - name: is-alphabetical - version: 2.0.1 - dev: false - - registry.npmmirror.com/is-alphanumerical@1.0.4: - resolution: {integrity: sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz} - name: is-alphanumerical - version: 1.0.4 - dependencies: - is-alphabetical: registry.npmmirror.com/is-alphabetical@1.0.4 - is-decimal: registry.npmmirror.com/is-decimal@1.0.4 - dev: false - - registry.npmmirror.com/is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz} - name: is-alphanumerical - version: 2.0.1 - dependencies: - is-alphabetical: registry.npmmirror.com/is-alphabetical@2.0.1 - is-decimal: registry.npmmirror.com/is-decimal@2.0.1 - dev: false - - registry.npmmirror.com/is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz} - name: is-arguments - version: 1.1.1 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - dev: false - - registry.npmmirror.com/is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz} - name: is-array-buffer - version: 3.0.2 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 - dev: false - - registry.npmmirror.com/is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz} - name: is-arrayish - version: 0.2.1 - dev: false - - registry.npmmirror.com/is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz} - name: is-arrayish - version: 0.3.2 - dev: false - - registry.npmmirror.com/is-arrow-function@2.0.3: - resolution: {integrity: sha512-iDStzcT1FJMzx+TjCOK//uDugSe/Mif/8a+T0htydQ3qkJGvSweTZpVYz4hpJH0baloSPiAFQdA8WslAgJphvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrow-function/-/is-arrow-function-2.0.3.tgz} - name: is-arrow-function - version: 2.0.3 - engines: {node: '>= 0.4'} - dependencies: - is-callable: registry.npmmirror.com/is-callable@1.2.7 - dev: false - - registry.npmmirror.com/is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-async-function/-/is-async-function-2.0.0.tgz} - name: is-async-function - version: 2.0.0 - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - dev: false - - registry.npmmirror.com/is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz} - name: is-bigint - version: 1.0.4 - dependencies: - has-bigints: registry.npmmirror.com/has-bigints@1.0.2 - dev: false - - registry.npmmirror.com/is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz} - name: is-binary-path - version: 2.1.0 - engines: {node: '>=8'} - dependencies: - binary-extensions: registry.npmmirror.com/binary-extensions@2.2.0 - dev: false - - registry.npmmirror.com/is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz} - name: is-boolean-object - version: 1.1.2 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - dev: false - - registry.npmmirror.com/is-buffer@1.1.6: - resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz} - name: is-buffer - version: 1.1.6 - dev: false - - registry.npmmirror.com/is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/-/is-buffer-2.0.5.tgz} - name: is-buffer - version: 2.0.5 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} - name: is-callable - version: 1.2.7 - engines: {node: '>= 0.4'} - dev: false - - registry.npmmirror.com/is-ci@1.2.1: - resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-ci/-/is-ci-1.2.1.tgz} - name: is-ci - version: 1.2.1 - hasBin: true - dependencies: - ci-info: registry.npmmirror.com/ci-info@1.6.0 - dev: false - - registry.npmmirror.com/is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz} - name: is-core-module - version: 2.13.1 - dependencies: - hasown: registry.npmmirror.com/hasown@2.0.0 - dev: false - - registry.npmmirror.com/is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} - name: is-date-object - version: 1.0.5 - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - dev: false - - registry.npmmirror.com/is-decimal@1.0.4: - resolution: {integrity: sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-decimal/-/is-decimal-1.0.4.tgz} - name: is-decimal - version: 1.0.4 - dev: false - - registry.npmmirror.com/is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-decimal/-/is-decimal-2.0.1.tgz} - name: is-decimal - version: 2.0.1 - dev: false - - registry.npmmirror.com/is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz} - name: is-docker - version: 2.2.1 - engines: {node: '>=8'} - hasBin: true - dev: false - - registry.npmmirror.com/is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-3.0.0.tgz} - name: is-docker - version: 3.0.0 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dev: false - - registry.npmmirror.com/is-equal@1.7.0: - resolution: {integrity: sha512-hErktGR9jmoYXNWlbrwGjc8eHh09mbY6TWSTTFtnMcKaCuSMN8z+Ni5ma/8mkbVpe4CbB7V6kN1MkCg9bCx5bA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-equal/-/is-equal-1.7.0.tgz} - name: is-equal - version: 1.7.0 - engines: {node: '>= 0.4'} - dependencies: - es-get-iterator: registry.npmmirror.com/es-get-iterator@1.1.3 - es-to-primitive: registry.npmmirror.com/es-to-primitive@1.2.1 - functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 - has-bigints: registry.npmmirror.com/has-bigints@1.0.2 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - hasown: registry.npmmirror.com/hasown@2.0.0 - is-arrow-function: registry.npmmirror.com/is-arrow-function@2.0.3 - is-bigint: registry.npmmirror.com/is-bigint@1.0.4 - is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 - is-callable: registry.npmmirror.com/is-callable@1.2.7 - is-date-object: registry.npmmirror.com/is-date-object@1.0.5 - is-generator-function: registry.npmmirror.com/is-generator-function@1.0.10 - is-number-object: registry.npmmirror.com/is-number-object@1.0.7 - is-regex: registry.npmmirror.com/is-regex@1.1.4 - is-string: registry.npmmirror.com/is-string@1.0.7 - is-symbol: registry.npmmirror.com/is-symbol@1.0.4 - isarray: registry.npmmirror.com/isarray@2.0.5 - object-inspect: registry.npmmirror.com/object-inspect@1.13.1 - object.entries: registry.npmmirror.com/object.entries@1.1.7 - object.getprototypeof: registry.npmmirror.com/object.getprototypeof@1.0.5 - which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 - which-collection: registry.npmmirror.com/which-collection@1.0.1 - dev: false - - registry.npmmirror.com/is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz} - name: is-extendable - version: 0.1.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} - name: is-extglob - version: 2.1.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz} - name: is-finalizationregistry - version: 1.0.2 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - dev: false - - registry.npmmirror.com/is-fullwidth-code-point@2.0.0: - resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz} - name: is-fullwidth-code-point - version: 2.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz} - name: is-fullwidth-code-point - version: 3.0.0 - engines: {node: '>=8'} - - registry.npmmirror.com/is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz} - name: is-generator-function - version: 1.0.10 - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - dev: false - - registry.npmmirror.com/is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz} - name: is-glob - version: 4.0.3 - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: registry.npmmirror.com/is-extglob@2.1.1 - dev: false - - registry.npmmirror.com/is-hexadecimal@1.0.4: - resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz} - name: is-hexadecimal - version: 1.0.4 - dev: false - - registry.npmmirror.com/is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz} - name: is-hexadecimal - version: 2.0.1 - dev: false - - registry.npmmirror.com/is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz} - name: is-inside-container - version: 1.0.0 - engines: {node: '>=14.16'} - hasBin: true - dependencies: - is-docker: registry.npmmirror.com/is-docker@3.0.0 - dev: false - - registry.npmmirror.com/is-installed-globally@0.1.0: - resolution: {integrity: sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz} - name: is-installed-globally - version: 0.1.0 - engines: {node: '>=4'} - dependencies: - global-dirs: registry.npmmirror.com/global-dirs@0.1.1 - is-path-inside: registry.npmmirror.com/is-path-inside@1.0.1 - dev: false - - registry.npmmirror.com/is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-map/-/is-map-2.0.2.tgz} - name: is-map - version: 2.0.2 - dev: false - - registry.npmmirror.com/is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} - name: is-negative-zero - version: 2.0.2 - engines: {node: '>= 0.4'} - dev: false - - registry.npmmirror.com/is-npm@1.0.0: - resolution: {integrity: sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-npm/-/is-npm-1.0.0.tgz} - name: is-npm - version: 1.0.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number-object/-/is-number-object-1.0.7.tgz} - name: is-number-object - version: 1.0.7 - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - dev: false - - registry.npmmirror.com/is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} - name: is-number - version: 7.0.0 - engines: {node: '>=0.12.0'} - dev: false - - registry.npmmirror.com/is-obj@1.0.1: - resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-obj/-/is-obj-1.0.1.tgz} - name: is-obj - version: 1.0.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-path-inside@1.0.1: - resolution: {integrity: sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-path-inside/-/is-path-inside-1.0.1.tgz} - name: is-path-inside - version: 1.0.1 - engines: {node: '>=0.10.0'} - dependencies: - path-is-inside: registry.npmmirror.com/path-is-inside@1.0.2 - dev: false - - registry.npmmirror.com/is-plain-obj@1.1.0: - resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz} - name: is-plain-obj - version: 1.1.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz} - name: is-plain-obj - version: 4.1.0 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz} - name: is-plain-object - version: 2.0.4 - engines: {node: '>=0.10.0'} - dependencies: - isobject: registry.npmmirror.com/isobject@3.0.1 - dev: false - - registry.npmmirror.com/is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz} - name: is-plain-object - version: 5.0.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-redirect@1.0.0: - resolution: {integrity: sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-redirect/-/is-redirect-1.0.0.tgz} - name: is-redirect - version: 1.0.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz} - name: is-regex - version: 1.1.4 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - dev: false - - registry.npmmirror.com/is-retry-allowed@1.2.0: - resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz} - name: is-retry-allowed - version: 1.2.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-set/-/is-set-2.0.2.tgz} - name: is-set - version: 2.0.2 - dev: false - - registry.npmmirror.com/is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz} - name: is-shared-array-buffer - version: 1.0.2 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - dev: false - - registry.npmmirror.com/is-stream@1.1.0: - resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-1.1.0.tgz} - name: is-stream - version: 1.1.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz} - name: is-stream - version: 2.0.1 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz} - name: is-stream - version: 3.0.0 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: false - - registry.npmmirror.com/is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-string/-/is-string-1.0.7.tgz} - name: is-string - version: 1.0.7 - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - dev: false - - registry.npmmirror.com/is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-symbol/-/is-symbol-1.0.4.tgz} - name: is-symbol - version: 1.0.4 - engines: {node: '>= 0.4'} - dependencies: - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - dev: false - - registry.npmmirror.com/is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz} - name: is-typed-array - version: 1.1.12 - engines: {node: '>= 0.4'} - dependencies: - which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 - dev: false - - registry.npmmirror.com/is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.1.tgz} - name: is-weakmap - version: 2.0.1 - dev: false - - registry.npmmirror.com/is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz} - name: is-weakref - version: 1.0.2 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - dev: false - - registry.npmmirror.com/is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.2.tgz} - name: is-weakset - version: 2.0.2 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - dev: false - - registry.npmmirror.com/is-what@3.14.1: - resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-what/-/is-what-3.14.1.tgz} - name: is-what - version: 3.14.1 - dev: false - - registry.npmmirror.com/is-windows@0.2.0: - resolution: {integrity: sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-windows/-/is-windows-0.2.0.tgz} - name: is-windows - version: 0.2.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/is-wsl@1.1.0: - resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-1.1.0.tgz} - name: is-wsl - version: 1.1.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz} - name: is-wsl - version: 2.2.0 - engines: {node: '>=8'} - dependencies: - is-docker: registry.npmmirror.com/is-docker@2.2.1 - dev: false - - registry.npmmirror.com/isarray@0.0.1: - resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz} - name: isarray - version: 0.0.1 - dev: false - - registry.npmmirror.com/isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz} - name: isarray - version: 1.0.0 - dev: false - - registry.npmmirror.com/isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz} - name: isarray - version: 2.0.5 - dev: false - - registry.npmmirror.com/isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz} - name: isexe - version: 2.0.0 - dev: false - - registry.npmmirror.com/isobject@2.1.0: - resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isobject/-/isobject-2.1.0.tgz} - name: isobject - version: 2.1.0 - engines: {node: '>=0.10.0'} - dependencies: - isarray: registry.npmmirror.com/isarray@1.0.0 - dev: false - - registry.npmmirror.com/isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz} - name: isobject - version: 3.0.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/isomorphic-unfetch@4.0.2: - resolution: {integrity: sha512-1Yd+CF/7al18/N2BDbsLBcp6RO3tucSW+jcLq24dqdX5MNbCNTw1z4BsGsp4zNmjr/Izm2cs/cEqZPp4kvWSCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isomorphic-unfetch/-/isomorphic-unfetch-4.0.2.tgz} - name: isomorphic-unfetch - version: 4.0.2 - dependencies: - node-fetch: registry.npmmirror.com/node-fetch@3.3.2 - unfetch: registry.npmmirror.com/unfetch@5.0.0 - dev: false - - registry.npmmirror.com/istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz} - name: istanbul-lib-coverage - version: 3.2.2 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz} - name: istanbul-lib-instrument - version: 5.2.1 - engines: {node: '>=8'} - dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.3 - '@babel/parser': registry.npmmirror.com/@babel/parser@7.23.4 - '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema@0.1.3 - istanbul-lib-coverage: registry.npmmirror.com/istanbul-lib-coverage@3.2.2 - semver: registry.npmmirror.com/semver@6.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/istextorbinary@2.6.0: - resolution: {integrity: sha512-+XRlFseT8B3L9KyjxxLjfXSLMuErKDsd8DBNrsaxoViABMEZlOSCstwmw0qpoFX3+U6yWU1yhLudAe6/lETGGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/istextorbinary/-/istextorbinary-2.6.0.tgz} - name: istextorbinary - version: 2.6.0 - engines: {node: '>=0.12'} - dependencies: - binaryextensions: registry.npmmirror.com/binaryextensions@2.3.0 - editions: registry.npmmirror.com/editions@2.3.1 - textextensions: registry.npmmirror.com/textextensions@2.6.0 - dev: false - - registry.npmmirror.com/iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz} - name: iterator.prototype - version: 1.1.2 - dependencies: - define-properties: registry.npmmirror.com/define-properties@1.2.1 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - reflect.getprototypeof: registry.npmmirror.com/reflect.getprototypeof@1.0.4 - set-function-name: registry.npmmirror.com/set-function-name@2.0.1 - dev: false - - registry.npmmirror.com/jest-haste-map@29.7.0: - resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz} - name: jest-haste-map - version: 29.7.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 - '@types/graceful-fs': registry.npmmirror.com/@types/graceful-fs@4.1.9 - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - anymatch: registry.npmmirror.com/anymatch@3.1.3 - fb-watchman: registry.npmmirror.com/fb-watchman@2.0.2 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - jest-regex-util: registry.npmmirror.com/jest-regex-util@29.6.3 - jest-util: registry.npmmirror.com/jest-util@29.7.0 - jest-worker: registry.npmmirror.com/jest-worker@29.7.0 - micromatch: registry.npmmirror.com/micromatch@4.0.5 - walker: registry.npmmirror.com/walker@1.0.8 - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: false - - registry.npmmirror.com/jest-regex-util@29.6.3: - resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz} - name: jest-regex-util - version: 29.6.3 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: false - - registry.npmmirror.com/jest-util@29.7.0: - resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-util/-/jest-util-29.7.0.tgz} - name: jest-util - version: 29.7.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': registry.npmmirror.com/@jest/types@29.6.3 - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - chalk: registry.npmmirror.com/chalk@4.1.2 - ci-info: registry.npmmirror.com/ci-info@3.9.0 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - picomatch: registry.npmmirror.com/picomatch@2.3.1 - dev: false - - registry.npmmirror.com/jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz} - name: jest-worker - version: 27.5.1 - engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - merge-stream: registry.npmmirror.com/merge-stream@2.0.0 - supports-color: registry.npmmirror.com/supports-color@8.1.1 - dev: false - - registry.npmmirror.com/jest-worker@29.4.3: - resolution: {integrity: sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-29.4.3.tgz} - name: jest-worker - version: 29.4.3 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - jest-util: registry.npmmirror.com/jest-util@29.7.0 - merge-stream: registry.npmmirror.com/merge-stream@2.0.0 - supports-color: registry.npmmirror.com/supports-color@8.1.1 - dev: false - - registry.npmmirror.com/jest-worker@29.7.0: - resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-worker/-/jest-worker-29.7.0.tgz} - name: jest-worker - version: 29.7.0 - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': registry.npmmirror.com/@types/node@20.10.0 - jest-util: registry.npmmirror.com/jest-util@29.7.0 - merge-stream: registry.npmmirror.com/merge-stream@2.0.0 - supports-color: registry.npmmirror.com/supports-color@8.1.1 - dev: false - - registry.npmmirror.com/js-cookie@2.2.1: - resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz} - name: js-cookie - version: 2.2.1 - dev: false - - registry.npmmirror.com/js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} - name: js-tokens - version: 4.0.0 - dev: false - - registry.npmmirror.com/js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz} - name: js-yaml - version: 3.14.1 - hasBin: true - dependencies: - argparse: registry.npmmirror.com/argparse@1.0.10 - esprima: registry.npmmirror.com/esprima@4.0.1 - dev: false - - registry.npmmirror.com/js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz} - name: js-yaml - version: 4.1.0 - hasBin: true - dependencies: - argparse: registry.npmmirror.com/argparse@2.0.1 - dev: false - - registry.npmmirror.com/jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz} - name: jsesc - version: 2.5.2 - engines: {node: '>=4'} - hasBin: true - dev: false - - registry.npmmirror.com/json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.1.tgz} - name: json-buffer - version: 3.0.1 - dev: false - - registry.npmmirror.com/json-parse-better-errors@1.0.2: - resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz} - name: json-parse-better-errors - version: 1.0.2 - dev: false - - registry.npmmirror.com/json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz} - name: json-parse-even-better-errors - version: 2.3.1 - dev: false - - registry.npmmirror.com/json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz} - name: json-schema-traverse - version: 0.4.1 - dev: false - - registry.npmmirror.com/json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} - name: json-schema-traverse - version: 1.0.0 - dev: false - - registry.npmmirror.com/json2mq@0.2.0: - resolution: {integrity: sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json2mq/-/json2mq-0.2.0.tgz} - name: json2mq - version: 0.2.0 - dependencies: - string-convert: registry.npmmirror.com/string-convert@0.2.1 - dev: false - - registry.npmmirror.com/json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} - name: json5 - version: 2.2.3 - engines: {node: '>=6'} - hasBin: true - dev: false - - registry.npmmirror.com/jsonfile@3.0.1: - resolution: {integrity: sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-3.0.1.tgz} - name: jsonfile - version: 3.0.1 - optionalDependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - dev: false - - registry.npmmirror.com/jsonfile@6.1.0: - resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz} - name: jsonfile - version: 6.1.0 - dependencies: - universalify: registry.npmmirror.com/universalify@2.0.1 - optionalDependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - dev: false - - registry.npmmirror.com/jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz} - name: jsx-ast-utils - version: 3.3.5 - engines: {node: '>=4.0'} - dependencies: - array-includes: registry.npmmirror.com/array-includes@3.1.7 - array.prototype.flat: registry.npmmirror.com/array.prototype.flat@1.3.2 - object.assign: registry.npmmirror.com/object.assign@4.1.4 - object.values: registry.npmmirror.com/object.values@1.1.7 - dev: false - - registry.npmmirror.com/keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/keyv/-/keyv-4.5.4.tgz} - name: keyv - version: 4.5.4 - dependencies: - json-buffer: registry.npmmirror.com/json-buffer@3.0.1 - dev: false - - registry.npmmirror.com/kind-of@3.2.2: - resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-3.2.2.tgz} - name: kind-of - version: 3.2.2 - engines: {node: '>=0.10.0'} - dependencies: - is-buffer: registry.npmmirror.com/is-buffer@1.1.6 - dev: false - - registry.npmmirror.com/kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz} - name: kind-of - version: 6.0.3 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kleur/-/kleur-4.1.5.tgz} - name: kleur - version: 4.1.5 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/known-css-properties@0.26.0: - resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/known-css-properties/-/known-css-properties-0.26.0.tgz} - name: known-css-properties - version: 0.26.0 - dev: false - - registry.npmmirror.com/kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz} - name: kolorist - version: 1.8.0 - dev: false - - registry.npmmirror.com/latest-version@3.1.0: - resolution: {integrity: sha512-Be1YRHWWlZaSsrz2U+VInk+tO0EwLIyV+23RhWLINJYwg/UIikxjlj3MhH37/6/EDCAusjajvMkMMUXRaMWl/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/latest-version/-/latest-version-3.1.0.tgz} - name: latest-version - version: 3.1.0 - engines: {node: '>=4'} - dependencies: - package-json: registry.npmmirror.com/package-json@4.0.1 - dev: false - - registry.npmmirror.com/lazy-cache@1.0.4: - resolution: {integrity: sha512-RE2g0b5VGZsOCFOCgP7omTRYFqydmZkBwl5oNnQ1lDYC57uyO9KqNnNVxT7COSHTxrRCWVcAVOcbjk+tvh/rgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lazy-cache/-/lazy-cache-1.0.4.tgz} - name: lazy-cache - version: 1.0.4 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/leac@0.6.0: - resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/leac/-/leac-0.6.0.tgz} - name: leac - version: 0.6.0 - dev: false - - registry.npmmirror.com/less-plugin-resolve@1.0.2: - resolution: {integrity: sha512-e1AHq0XNTU8S3d9JCc8CFYajoUBr0EK3pcuLT5PogyBBeE0knzZJL105kKKSZWfq2lQLq3/uEDrMK3JPq+fHaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/less-plugin-resolve/-/less-plugin-resolve-1.0.2.tgz} - name: less-plugin-resolve - version: 1.0.2 - dependencies: - enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 - dev: false - - registry.npmmirror.com/less@4.1.3: - resolution: {integrity: sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/less/-/less-4.1.3.tgz} - name: less - version: 4.1.3 - engines: {node: '>=6'} - hasBin: true - dependencies: - copy-anything: registry.npmmirror.com/copy-anything@2.0.6 - parse-node-version: registry.npmmirror.com/parse-node-version@1.0.1 - tslib: registry.npmmirror.com/tslib@2.6.2 - optionalDependencies: - errno: registry.npmmirror.com/errno@0.1.8 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - image-size: registry.npmmirror.com/image-size@0.5.5 - make-dir: registry.npmmirror.com/make-dir@2.1.0 - mime: registry.npmmirror.com/mime@1.6.0 - needle: registry.npmmirror.com/needle@3.2.0 - source-map: registry.npmmirror.com/source-map@0.6.1 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/lightningcss-darwin-arm64@1.22.1: - resolution: {integrity: sha512-ldvElu+R0QimNTjsKpaZkUv3zf+uefzLy/R1R19jtgOfSRM+zjUCUgDhfEDRmVqJtMwYsdhMI2aJtJChPC6Osg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.22.1.tgz} - name: lightningcss-darwin-arm64 - version: 1.22.1 - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/lightningcss-darwin-x64@1.22.1: - resolution: {integrity: sha512-5p2rnlVTv6Gpw4PlTLq925nTVh+HFh4MpegX8dPDYJae+NFVjQ67gY7O6iHIzQjLipDiYejFF0yHrhjU3XgLBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.22.1.tgz} - name: lightningcss-darwin-x64 - version: 1.22.1 - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/lightningcss-freebsd-x64@1.22.1: - resolution: {integrity: sha512-1FaBtcFrZqB2hkFbAxY//Pnp8koThvyB6AhjbdVqKD4/pu13Rl91fKt2N9qyeQPUt3xy7ORUvSO+dPk3J6EjXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.22.1.tgz} - name: lightningcss-freebsd-x64 - version: 1.22.1 - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/lightningcss-linux-arm-gnueabihf@1.22.1: - resolution: {integrity: sha512-6rub98tYGfE5I5j0BP8t/2d4BZyu1S7Iz9vUkm0H26snAFHYxLfj3RbQn0xHHIePSetjLnhcg3QlfwUAkD/FYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.22.1.tgz} - name: lightningcss-linux-arm-gnueabihf - version: 1.22.1 - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/lightningcss-linux-arm64-gnu@1.22.1: - resolution: {integrity: sha512-nYO5qGtb/1kkTZu3FeTiM+2B2TAb7m2DkLCTgQIs2bk2o9aEs7I96fwySKcoHWQAiQDGR9sMux9vkV4KQXqPaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.22.1.tgz} - name: lightningcss-linux-arm64-gnu - version: 1.22.1 - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [glibc] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/lightningcss-linux-arm64-musl@1.22.1: - resolution: {integrity: sha512-MCV6RuRpzXbunvzwY644iz8cw4oQxvW7oer9xPkdadYqlEyiJJ6wl7FyJOH7Q6ZYH4yjGAUCvxDBxPbnDu9ZVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.22.1.tgz} - name: lightningcss-linux-arm64-musl - version: 1.22.1 - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - libc: [musl] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/lightningcss-linux-x64-gnu@1.22.1: - resolution: {integrity: sha512-RjNgpdM20VUXgV7us/VmlO3Vn2ZRiDnc3/bUxCVvySZWPiVPprpqW/QDWuzkGa+NCUf6saAM5CLsZLSxncXJwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.22.1.tgz} - name: lightningcss-linux-x64-gnu - version: 1.22.1 - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [glibc] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/lightningcss-linux-x64-musl@1.22.1: - resolution: {integrity: sha512-ZgO4C7Rd6Hv/5MnyY2KxOYmIlzk4rplVolDt3NbkNR8DndnyX0Q5IR4acJWNTBICQ21j3zySzKbcJaiJpk/4YA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.22.1.tgz} - name: lightningcss-linux-x64-musl - version: 1.22.1 - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - libc: [musl] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/lightningcss-win32-x64-msvc@1.22.1: - resolution: {integrity: sha512-4pozV4eyD0MDET41ZLHAeBo+H04Nm2UEYIk5w/ts40231dRFV7E0cjwbnZvSoc1DXFgecAhiC0L16ruv/ZDCpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.22.1.tgz} - name: lightningcss-win32-x64-msvc - version: 1.22.1 - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - registry.npmmirror.com/lightningcss@1.22.1: - resolution: {integrity: sha512-Fy45PhibiNXkm0cK5FJCbfO8Y6jUpD/YcHf/BtuI+jvYYqSXKF4muk61jjE8YxCR9y+hDYIWSzHTc+bwhDE6rQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lightningcss/-/lightningcss-1.22.1.tgz} - name: lightningcss - version: 1.22.1 - engines: {node: '>= 12.0.0'} - dependencies: - detect-libc: registry.npmmirror.com/detect-libc@1.0.3 - optionalDependencies: - lightningcss-darwin-arm64: registry.npmmirror.com/lightningcss-darwin-arm64@1.22.1 - lightningcss-darwin-x64: registry.npmmirror.com/lightningcss-darwin-x64@1.22.1 - lightningcss-freebsd-x64: registry.npmmirror.com/lightningcss-freebsd-x64@1.22.1 - lightningcss-linux-arm-gnueabihf: registry.npmmirror.com/lightningcss-linux-arm-gnueabihf@1.22.1 - lightningcss-linux-arm64-gnu: registry.npmmirror.com/lightningcss-linux-arm64-gnu@1.22.1 - lightningcss-linux-arm64-musl: registry.npmmirror.com/lightningcss-linux-arm64-musl@1.22.1 - lightningcss-linux-x64-gnu: registry.npmmirror.com/lightningcss-linux-x64-gnu@1.22.1 - lightningcss-linux-x64-musl: registry.npmmirror.com/lightningcss-linux-x64-musl@1.22.1 - lightningcss-win32-x64-msvc: registry.npmmirror.com/lightningcss-win32-x64-msvc@1.22.1 - dev: false - - registry.npmmirror.com/lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} - name: lines-and-columns - version: 1.2.4 - dev: false - - registry.npmmirror.com/loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz} - name: loader-runner - version: 4.3.0 - engines: {node: '>=6.11.5'} - dev: false - - registry.npmmirror.com/loader-utils@2.0.4: - resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz} - name: loader-utils - version: 2.0.4 - engines: {node: '>=8.9.0'} - dependencies: - big.js: registry.npmmirror.com/big.js@5.2.2 - emojis-list: registry.npmmirror.com/emojis-list@3.0.0 - json5: registry.npmmirror.com/json5@2.2.3 - dev: false - - registry.npmmirror.com/local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/local-pkg/-/local-pkg-0.4.3.tgz} - name: local-pkg - version: 0.4.3 - engines: {node: '>=14'} - dev: false - - registry.npmmirror.com/locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz} - name: locate-path - version: 5.0.0 - engines: {node: '>=8'} - dependencies: - p-locate: registry.npmmirror.com/p-locate@4.1.0 - dev: false - - registry.npmmirror.com/locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz} - name: locate-path - version: 6.0.0 - engines: {node: '>=10'} - dependencies: - p-locate: registry.npmmirror.com/p-locate@5.0.0 - dev: false - - registry.npmmirror.com/lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz} - name: lodash.debounce - version: 4.0.8 - dev: false - - registry.npmmirror.com/lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz} - name: lodash.throttle - version: 4.1.1 - dev: false - - registry.npmmirror.com/lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz} - name: lodash.truncate - version: 4.4.2 - dev: false - - registry.npmmirror.com/lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz} - name: lodash - version: 4.17.21 - dev: false - - registry.npmmirror.com/log-symbols@2.2.0: - resolution: {integrity: sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-symbols/-/log-symbols-2.2.0.tgz} - name: log-symbols - version: 2.2.0 - engines: {node: '>=4'} - dependencies: - chalk: registry.npmmirror.com/chalk@2.4.2 - dev: false - - registry.npmmirror.com/longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz} - name: longest-streak - version: 3.1.0 - dev: false - - registry.npmmirror.com/loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz} - name: loose-envify - version: 1.4.0 - hasBin: true - dependencies: - js-tokens: registry.npmmirror.com/js-tokens@4.0.0 - dev: false - - registry.npmmirror.com/lower-case@2.0.2: - resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz} - name: lower-case - version: 2.0.2 - dependencies: - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/lowercase-keys@1.0.1: - resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz} - name: lowercase-keys - version: 1.0.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/lowlight@1.20.0: - resolution: {integrity: sha512-8Ktj+prEb1RoCPkEOrPMYUN/nCggB7qAWe3a7OpMjWQkh3l2RD5wKRQ+o8Q8YuI9RG/xs95waaI/E6ym/7NsTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lowlight/-/lowlight-1.20.0.tgz} - name: lowlight - version: 1.20.0 - dependencies: - fault: registry.npmmirror.com/fault@1.0.4 - highlight.js: registry.npmmirror.com/highlight.js@10.7.3 - dev: false - - registry.npmmirror.com/lru-cache@4.1.5: - resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz} - name: lru-cache - version: 4.1.5 - dependencies: - pseudomap: registry.npmmirror.com/pseudomap@1.0.2 - yallist: registry.npmmirror.com/yallist@2.1.2 - dev: false - - registry.npmmirror.com/lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz} - name: lru-cache - version: 5.1.1 - dependencies: - yallist: registry.npmmirror.com/yallist@3.1.1 - dev: false - - registry.npmmirror.com/lru-cache@6.0.0: - resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz} - name: lru-cache - version: 6.0.0 - engines: {node: '>=10'} - dependencies: - yallist: registry.npmmirror.com/yallist@4.0.0 - dev: false - - registry.npmmirror.com/lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lru-cache/-/lru-cache-7.18.3.tgz} - name: lru-cache - version: 7.18.3 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lz-string/-/lz-string-1.5.0.tgz} - name: lz-string - version: 1.5.0 - hasBin: true - dev: false - - registry.npmmirror.com/make-dir@1.3.0: - resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-1.3.0.tgz} - name: make-dir - version: 1.3.0 - engines: {node: '>=4'} - dependencies: - pify: registry.npmmirror.com/pify@3.0.0 - dev: false - - registry.npmmirror.com/make-dir@2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz} - name: make-dir - version: 2.1.0 - engines: {node: '>=6'} - requiresBuild: true - dependencies: - pify: 4.0.1 - semver: 5.7.2 - optional: true - - registry.npmmirror.com/make-fetch-happen@2.6.0: - resolution: {integrity: sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz} - name: make-fetch-happen - version: 2.6.0 - dependencies: - agentkeepalive: registry.npmmirror.com/agentkeepalive@3.5.2 - cacache: registry.npmmirror.com/cacache@10.0.4 - http-cache-semantics: registry.npmmirror.com/http-cache-semantics@3.8.1 - http-proxy-agent: registry.npmmirror.com/http-proxy-agent@2.1.0 - https-proxy-agent: registry.npmmirror.com/https-proxy-agent@2.2.4 - lru-cache: registry.npmmirror.com/lru-cache@4.1.5 - mississippi: registry.npmmirror.com/mississippi@1.3.1 - node-fetch-npm: registry.npmmirror.com/node-fetch-npm@2.0.4 - promise-retry: registry.npmmirror.com/promise-retry@1.1.1 - socks-proxy-agent: registry.npmmirror.com/socks-proxy-agent@3.0.1 - ssri: registry.npmmirror.com/ssri@5.3.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/makeerror/-/makeerror-1.0.12.tgz} - name: makeerror - version: 1.0.12 - dependencies: - tmpl: registry.npmmirror.com/tmpl@1.0.5 - dev: false - - registry.npmmirror.com/map-obj@1.0.1: - resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz} - name: map-obj - version: 1.0.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/map-obj@4.3.0: - resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-4.3.0.tgz} - name: map-obj - version: 4.3.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz} - name: markdown-table - version: 3.0.3 - dev: false - - registry.npmmirror.com/mathml-tag-names@2.1.3: - resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz} - name: mathml-tag-names - version: 2.1.3 - dev: false - - registry.npmmirror.com/md5.js@1.3.5: - resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz} - name: md5.js - version: 1.3.5 - dependencies: - hash-base: registry.npmmirror.com/hash-base@3.1.0 - inherits: registry.npmmirror.com/inherits@2.0.4 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/mdast-util-definitions@5.1.2: - resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz} - name: mdast-util-definitions - version: 5.1.2 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 - dev: false - - registry.npmmirror.com/mdast-util-directive@2.2.4: - resolution: {integrity: sha512-sK3ojFP+jpj1n7Zo5ZKvoxP1MvLyzVG63+gm40Z/qI00avzdPCYxt7RBMgofwAva9gBjbDBWVRB/i+UD+fUCzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-directive/-/mdast-util-directive-2.2.4.tgz} - name: mdast-util-directive - version: 2.2.4 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 - mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 - parse-entities: registry.npmmirror.com/parse-entities@4.0.1 - stringify-entities: registry.npmmirror.com/stringify-entities@4.0.3 - unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/mdast-util-find-and-replace@2.2.2: - resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz} - name: mdast-util-find-and-replace - version: 2.2.2 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - escape-string-regexp: registry.npmmirror.com/escape-string-regexp@5.0.0 - unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 - unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 - dev: false - - registry.npmmirror.com/mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz} - name: mdast-util-from-markdown - version: 1.3.1 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 - mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string@3.2.0 - micromark: registry.npmmirror.com/micromark@3.2.0 - micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0 - micromark-util-decode-string: registry.npmmirror.com/micromark-util-decode-string@1.1.0 - micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 - uvu: registry.npmmirror.com/uvu@0.5.6 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/mdast-util-frontmatter@1.0.1: - resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.1.tgz} - name: mdast-util-frontmatter - version: 1.0.1 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 - micromark-extension-frontmatter: registry.npmmirror.com/micromark-extension-frontmatter@1.1.1 - dev: false - - registry.npmmirror.com/mdast-util-gfm-autolink-literal@1.0.3: - resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz} - name: mdast-util-gfm-autolink-literal - version: 1.0.3 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - ccount: registry.npmmirror.com/ccount@2.0.1 - mdast-util-find-and-replace: registry.npmmirror.com/mdast-util-find-and-replace@2.2.2 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - dev: false - - registry.npmmirror.com/mdast-util-gfm-footnote@1.0.2: - resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz} - name: mdast-util-gfm-footnote - version: 1.0.2 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 - micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 - dev: false - - registry.npmmirror.com/mdast-util-gfm-strikethrough@1.0.3: - resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz} - name: mdast-util-gfm-strikethrough - version: 1.0.3 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 - dev: false - - registry.npmmirror.com/mdast-util-gfm-table@1.0.7: - resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz} - name: mdast-util-gfm-table - version: 1.0.7 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - markdown-table: registry.npmmirror.com/markdown-table@3.0.3 - mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 - mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/mdast-util-gfm-task-list-item@1.0.2: - resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz} - name: mdast-util-gfm-task-list-item - version: 1.0.2 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 - dev: false - - registry.npmmirror.com/mdast-util-gfm@2.0.2: - resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz} - name: mdast-util-gfm - version: 2.0.2 - dependencies: - mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 - mdast-util-gfm-autolink-literal: registry.npmmirror.com/mdast-util-gfm-autolink-literal@1.0.3 - mdast-util-gfm-footnote: registry.npmmirror.com/mdast-util-gfm-footnote@1.0.2 - mdast-util-gfm-strikethrough: registry.npmmirror.com/mdast-util-gfm-strikethrough@1.0.3 - mdast-util-gfm-table: registry.npmmirror.com/mdast-util-gfm-table@1.0.7 - mdast-util-gfm-task-list-item: registry.npmmirror.com/mdast-util-gfm-task-list-item@1.0.2 - mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/mdast-util-mdx-expression@1.3.2: - resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz} - name: mdast-util-mdx-expression - version: 1.3.2 - dependencies: - '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 - mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/mdast-util-mdxjs-esm@1.3.1: - resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz} - name: mdast-util-mdxjs-esm - version: 1.3.1 - dependencies: - '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 - mdast-util-to-markdown: registry.npmmirror.com/mdast-util-to-markdown@1.5.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/mdast-util-phrasing@3.0.1: - resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz} - name: mdast-util-phrasing - version: 3.0.1 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 - dev: false - - registry.npmmirror.com/mdast-util-to-hast@12.3.0: - resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz} - name: mdast-util-to-hast - version: 12.3.0 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-definitions: registry.npmmirror.com/mdast-util-definitions@5.1.2 - micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 - trim-lines: registry.npmmirror.com/trim-lines@3.0.1 - unist-util-generated: registry.npmmirror.com/unist-util-generated@2.0.1 - unist-util-position: registry.npmmirror.com/unist-util-position@4.0.4 - unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 - dev: false - - registry.npmmirror.com/mdast-util-to-markdown@1.5.0: - resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz} - name: mdast-util-to-markdown - version: 1.5.0 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - longest-streak: registry.npmmirror.com/longest-streak@3.1.0 - mdast-util-phrasing: registry.npmmirror.com/mdast-util-phrasing@3.0.1 - mdast-util-to-string: registry.npmmirror.com/mdast-util-to-string@3.2.0 - micromark-util-decode-string: registry.npmmirror.com/micromark-util-decode-string@1.1.0 - unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 - zwitch: registry.npmmirror.com/zwitch@2.0.4 - dev: false - - registry.npmmirror.com/mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz} - name: mdast-util-to-string - version: 3.2.0 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - dev: false - - registry.npmmirror.com/mdn-data@2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz} - name: mdn-data - version: 2.0.14 - dev: false - - registry.npmmirror.com/mdn-data@2.0.4: - resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz} - name: mdn-data - version: 2.0.4 - dev: false - - registry.npmmirror.com/memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/memfs/-/memfs-3.5.3.tgz} - name: memfs - version: 3.5.3 - engines: {node: '>= 4.0.0'} - dependencies: - fs-monkey: registry.npmmirror.com/fs-monkey@1.0.5 - dev: false - - registry.npmmirror.com/meow@9.0.0: - resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/meow/-/meow-9.0.0.tgz} - name: meow - version: 9.0.0 - engines: {node: '>=10'} - dependencies: - '@types/minimist': registry.npmmirror.com/@types/minimist@1.2.5 - camelcase-keys: registry.npmmirror.com/camelcase-keys@6.2.2 - decamelize: registry.npmmirror.com/decamelize@1.2.0 - decamelize-keys: registry.npmmirror.com/decamelize-keys@1.1.1 - hard-rejection: registry.npmmirror.com/hard-rejection@2.1.0 - minimist-options: registry.npmmirror.com/minimist-options@4.1.0 - normalize-package-data: registry.npmmirror.com/normalize-package-data@3.0.3 - read-pkg-up: registry.npmmirror.com/read-pkg-up@7.0.1 - redent: registry.npmmirror.com/redent@3.0.0 - trim-newlines: registry.npmmirror.com/trim-newlines@3.0.1 - type-fest: registry.npmmirror.com/type-fest@0.18.1 - yargs-parser: registry.npmmirror.com/yargs-parser@20.2.9 - dev: false - - registry.npmmirror.com/merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} - name: merge-stream - version: 2.0.0 - dev: false - - registry.npmmirror.com/merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz} - name: merge2 - version: 1.4.1 - engines: {node: '>= 8'} - dev: false - - registry.npmmirror.com/micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz} - name: micromark-core-commonmark - version: 1.1.0 - dependencies: - decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 - micromark-factory-destination: registry.npmmirror.com/micromark-factory-destination@1.1.0 - micromark-factory-label: registry.npmmirror.com/micromark-factory-label@1.1.0 - micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 - micromark-factory-title: registry.npmmirror.com/micromark-factory-title@1.1.0 - micromark-factory-whitespace: registry.npmmirror.com/micromark-factory-whitespace@1.1.0 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 - micromark-util-classify-character: registry.npmmirror.com/micromark-util-classify-character@1.1.0 - micromark-util-html-tag-name: registry.npmmirror.com/micromark-util-html-tag-name@1.2.0 - micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 - micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all@1.1.0 - micromark-util-subtokenize: registry.npmmirror.com/micromark-util-subtokenize@1.1.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - uvu: registry.npmmirror.com/uvu@0.5.6 - dev: false - - registry.npmmirror.com/micromark-extension-directive@2.2.1: - resolution: {integrity: sha512-ZFKZkNaEqAP86IghX1X7sE8NNnx6kFNq9mSBRvEHjArutTCJZ3LYg6VH151lXVb1JHpmIcW/7rX25oMoIHuSug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-directive/-/micromark-extension-directive-2.2.1.tgz} - name: micromark-extension-directive - version: 2.2.1 - dependencies: - micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 - micromark-factory-whitespace: registry.npmmirror.com/micromark-factory-whitespace@1.1.0 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - parse-entities: registry.npmmirror.com/parse-entities@4.0.1 - uvu: registry.npmmirror.com/uvu@0.5.6 - dev: false - - registry.npmmirror.com/micromark-extension-frontmatter@1.1.1: - resolution: {integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.1.1.tgz} - name: micromark-extension-frontmatter - version: 1.1.1 - dependencies: - fault: registry.npmmirror.com/fault@2.0.1 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-extension-gfm-autolink-literal@1.0.5: - resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz} - name: micromark-extension-gfm-autolink-literal - version: 1.0.5 - dependencies: - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-extension-gfm-footnote@1.1.2: - resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz} - name: micromark-extension-gfm-footnote - version: 1.1.2 - dependencies: - micromark-core-commonmark: registry.npmmirror.com/micromark-core-commonmark@1.1.0 - micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 - micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - uvu: registry.npmmirror.com/uvu@0.5.6 - dev: false - - registry.npmmirror.com/micromark-extension-gfm-strikethrough@1.0.7: - resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz} - name: micromark-extension-gfm-strikethrough - version: 1.0.7 - dependencies: - micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 - micromark-util-classify-character: registry.npmmirror.com/micromark-util-classify-character@1.1.0 - micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all@1.1.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - uvu: registry.npmmirror.com/uvu@0.5.6 - dev: false - - registry.npmmirror.com/micromark-extension-gfm-table@1.0.7: - resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz} - name: micromark-extension-gfm-table - version: 1.0.7 - dependencies: - micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - uvu: registry.npmmirror.com/uvu@0.5.6 - dev: false - - registry.npmmirror.com/micromark-extension-gfm-tagfilter@1.0.2: - resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz} - name: micromark-extension-gfm-tagfilter - version: 1.0.2 - dependencies: - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-extension-gfm-task-list-item@1.0.5: - resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz} - name: micromark-extension-gfm-task-list-item - version: 1.0.5 - dependencies: - micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - uvu: registry.npmmirror.com/uvu@0.5.6 - dev: false - - registry.npmmirror.com/micromark-extension-gfm@2.0.3: - resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz} - name: micromark-extension-gfm - version: 2.0.3 - dependencies: - micromark-extension-gfm-autolink-literal: registry.npmmirror.com/micromark-extension-gfm-autolink-literal@1.0.5 - micromark-extension-gfm-footnote: registry.npmmirror.com/micromark-extension-gfm-footnote@1.1.2 - micromark-extension-gfm-strikethrough: registry.npmmirror.com/micromark-extension-gfm-strikethrough@1.0.7 - micromark-extension-gfm-table: registry.npmmirror.com/micromark-extension-gfm-table@1.0.7 - micromark-extension-gfm-tagfilter: registry.npmmirror.com/micromark-extension-gfm-tagfilter@1.0.2 - micromark-extension-gfm-task-list-item: registry.npmmirror.com/micromark-extension-gfm-task-list-item@1.0.5 - micromark-util-combine-extensions: registry.npmmirror.com/micromark-util-combine-extensions@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz} - name: micromark-factory-destination - version: 1.1.0 - dependencies: - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz} - name: micromark-factory-label - version: 1.1.0 - dependencies: - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - uvu: registry.npmmirror.com/uvu@0.5.6 - dev: false - - registry.npmmirror.com/micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz} - name: micromark-factory-space - version: 1.1.0 - dependencies: - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz} - name: micromark-factory-title - version: 1.1.0 - dependencies: - micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz} - name: micromark-factory-whitespace - version: 1.1.0 - dependencies: - micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz} - name: micromark-util-character - version: 1.2.0 - dependencies: - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz} - name: micromark-util-chunked - version: 1.1.0 - dependencies: - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz} - name: micromark-util-classify-character - version: 1.1.0 - dependencies: - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz} - name: micromark-util-combine-extensions - version: 1.1.0 - dependencies: - micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz} - name: micromark-util-decode-numeric-character-reference - version: 1.1.0 - dependencies: - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz} - name: micromark-util-decode-string - version: 1.1.0 - dependencies: - decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz} - name: micromark-util-encode - version: 1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz} - name: micromark-util-html-tag-name - version: 1.2.0 - dev: false - - registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz} - name: micromark-util-normalize-identifier - version: 1.1.0 - dependencies: - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz} - name: micromark-util-resolve-all - version: 1.1.0 - dependencies: - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz} - name: micromark-util-sanitize-uri - version: 1.2.0 - dependencies: - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-encode: registry.npmmirror.com/micromark-util-encode@1.1.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz} - name: micromark-util-subtokenize - version: 1.1.0 - dependencies: - micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - uvu: registry.npmmirror.com/uvu@0.5.6 - dev: false - - registry.npmmirror.com/micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz} - name: micromark-util-symbol - version: 1.1.0 - dev: false - - registry.npmmirror.com/micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz} - name: micromark-util-types - version: 1.1.0 - dev: false - - registry.npmmirror.com/micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromark/-/micromark-3.2.0.tgz} - name: micromark - version: 3.2.0 - dependencies: - '@types/debug': registry.npmmirror.com/@types/debug@4.1.12 - debug: registry.npmmirror.com/debug@4.3.4 - decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 - micromark-core-commonmark: registry.npmmirror.com/micromark-core-commonmark@1.1.0 - micromark-factory-space: registry.npmmirror.com/micromark-factory-space@1.1.0 - micromark-util-character: registry.npmmirror.com/micromark-util-character@1.2.0 - micromark-util-chunked: registry.npmmirror.com/micromark-util-chunked@1.1.0 - micromark-util-combine-extensions: registry.npmmirror.com/micromark-util-combine-extensions@1.1.0 - micromark-util-decode-numeric-character-reference: registry.npmmirror.com/micromark-util-decode-numeric-character-reference@1.1.0 - micromark-util-encode: registry.npmmirror.com/micromark-util-encode@1.1.0 - micromark-util-normalize-identifier: registry.npmmirror.com/micromark-util-normalize-identifier@1.1.0 - micromark-util-resolve-all: registry.npmmirror.com/micromark-util-resolve-all@1.1.0 - micromark-util-sanitize-uri: registry.npmmirror.com/micromark-util-sanitize-uri@1.2.0 - micromark-util-subtokenize: registry.npmmirror.com/micromark-util-subtokenize@1.1.0 - micromark-util-symbol: registry.npmmirror.com/micromark-util-symbol@1.1.0 - micromark-util-types: registry.npmmirror.com/micromark-util-types@1.1.0 - uvu: registry.npmmirror.com/uvu@0.5.6 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} - name: micromatch - version: 4.0.5 - engines: {node: '>=8.6'} - dependencies: - braces: registry.npmmirror.com/braces@3.0.2 - picomatch: registry.npmmirror.com/picomatch@2.3.1 - dev: false - - registry.npmmirror.com/miller-rabin@4.0.1: - resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/miller-rabin/-/miller-rabin-4.0.1.tgz} - name: miller-rabin - version: 4.0.1 - hasBin: true - dependencies: - bn.js: registry.npmmirror.com/bn.js@4.12.0 - brorand: registry.npmmirror.com/brorand@1.1.0 - dev: false - - registry.npmmirror.com/mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz} - name: mime-db - version: 1.52.0 - engines: {node: '>= 0.6'} - dev: false - - registry.npmmirror.com/mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz} - name: mime-types - version: 2.1.35 - engines: {node: '>= 0.6'} - dependencies: - mime-db: registry.npmmirror.com/mime-db@1.52.0 - dev: false - - registry.npmmirror.com/mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz} - name: mime - version: 1.6.0 - engines: {node: '>=4'} - hasBin: true - requiresBuild: true - optional: true - - registry.npmmirror.com/mimer@1.1.0: - resolution: {integrity: sha512-y9dVfy2uiycQvDNiAYW6zp49ZhFlXDMr5wfdOiMbdzGM/0N5LNR6HTUn3un+WUQcM0koaw8FMTG1bt5EnHJdvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimer/-/mimer-1.1.0.tgz} - name: mimer - version: 1.1.0 - engines: {node: '>= 6.0'} - hasBin: true - dev: false - - registry.npmmirror.com/mimic-fn@1.2.0: - resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-1.2.0.tgz} - name: mimic-fn - version: 1.2.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz} - name: mimic-fn - version: 2.1.0 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mimic-fn/-/mimic-fn-4.0.0.tgz} - name: mimic-fn - version: 4.0.0 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/min-indent/-/min-indent-1.0.1.tgz} - name: min-indent - version: 1.0.1 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz} - name: minimalistic-assert - version: 1.0.1 - dev: false - - registry.npmmirror.com/minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz} - name: minimalistic-crypto-utils - version: 1.0.1 - dev: false - - registry.npmmirror.com/minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz} - name: minimatch - version: 3.1.2 - dependencies: - brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 - dev: false - - registry.npmmirror.com/minimist-options@4.1.0: - resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist-options/-/minimist-options-4.1.0.tgz} - name: minimist-options - version: 4.1.0 - engines: {node: '>= 6'} - dependencies: - arrify: registry.npmmirror.com/arrify@1.0.1 - is-plain-obj: registry.npmmirror.com/is-plain-obj@1.1.0 - kind-of: registry.npmmirror.com/kind-of@6.0.3 - dev: false - - registry.npmmirror.com/minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz} - name: minimist - version: 1.2.8 - dev: false - - registry.npmmirror.com/mississippi@1.3.1: - resolution: {integrity: sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mississippi/-/mississippi-1.3.1.tgz} - name: mississippi - version: 1.3.1 - dependencies: - concat-stream: registry.npmmirror.com/concat-stream@1.6.2 - duplexify: registry.npmmirror.com/duplexify@3.7.1 - end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 - flush-write-stream: registry.npmmirror.com/flush-write-stream@1.1.1 - from2: registry.npmmirror.com/from2@2.3.0 - parallel-transform: registry.npmmirror.com/parallel-transform@1.2.0 - pump: registry.npmmirror.com/pump@1.0.3 - pumpify: registry.npmmirror.com/pumpify@1.5.1 - stream-each: registry.npmmirror.com/stream-each@1.2.3 - through2: registry.npmmirror.com/through2@2.0.5 - dev: false - - registry.npmmirror.com/mississippi@2.0.0: - resolution: {integrity: sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mississippi/-/mississippi-2.0.0.tgz} - name: mississippi - version: 2.0.0 - engines: {node: '>=4.0.0'} - dependencies: - concat-stream: registry.npmmirror.com/concat-stream@1.6.2 - duplexify: registry.npmmirror.com/duplexify@3.7.1 - end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 - flush-write-stream: registry.npmmirror.com/flush-write-stream@1.1.1 - from2: registry.npmmirror.com/from2@2.3.0 - parallel-transform: registry.npmmirror.com/parallel-transform@1.2.0 - pump: registry.npmmirror.com/pump@2.0.1 - pumpify: registry.npmmirror.com/pumpify@1.5.1 - stream-each: registry.npmmirror.com/stream-each@1.2.3 - through2: registry.npmmirror.com/through2@2.0.5 - dev: false - - registry.npmmirror.com/mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz} - name: mkdirp - version: 0.5.6 - hasBin: true - dependencies: - minimist: registry.npmmirror.com/minimist@1.2.8 - dev: false - - registry.npmmirror.com/move-concurrently@1.0.1: - resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz} - name: move-concurrently - version: 1.0.1 - dependencies: - aproba: registry.npmmirror.com/aproba@1.2.0 - copy-concurrently: registry.npmmirror.com/copy-concurrently@1.0.5 - fs-write-stream-atomic: registry.npmmirror.com/fs-write-stream-atomic@1.0.10 - mkdirp: registry.npmmirror.com/mkdirp@0.5.6 - rimraf: registry.npmmirror.com/rimraf@2.7.1 - run-queue: registry.npmmirror.com/run-queue@1.0.3 - dev: false - - registry.npmmirror.com/mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mri/-/mri-1.2.0.tgz} - name: mri - version: 1.2.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz} - name: ms - version: 2.0.0 - dev: false - - registry.npmmirror.com/ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} - name: ms - version: 2.1.2 - dev: false - - registry.npmmirror.com/ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} - name: ms - version: 2.1.3 - dev: false - - registry.npmmirror.com/multipipe@1.0.2: - resolution: {integrity: sha512-6uiC9OvY71vzSGX8lZvSqscE7ft9nPupJ8fMjrCNRAUy2LREUW42UL+V/NTrogr6rFgRydUrCX4ZitfpSNkSCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/multipipe/-/multipipe-1.0.2.tgz} - name: multipipe - version: 1.0.2 - dependencies: - duplexer2: registry.npmmirror.com/duplexer2@0.1.4 - object-assign: registry.npmmirror.com/object-assign@4.1.1 - dev: false - - registry.npmmirror.com/mute-stream@0.0.7: - resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mute-stream/-/mute-stream-0.0.7.tgz} - name: mute-stream - version: 0.0.7 - dev: false - - registry.npmmirror.com/nanoid@2.1.11: - resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-2.1.11.tgz} - name: nanoid - version: 2.1.11 - dev: false - - registry.npmmirror.com/nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz} - name: nanoid - version: 3.3.7 - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: false - - registry.npmmirror.com/natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} - name: natural-compare-lite - version: 1.4.0 - dev: false - - registry.npmmirror.com/needle@3.2.0: - resolution: {integrity: sha512-oUvzXnyLiVyVGoianLijF9O/RecZUf7TkBfimjGrLM4eQhXyeJwM6GeAWccwfQ9aa4gMCZKqhAOuLaMIcQxajQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/needle/-/needle-3.2.0.tgz} - name: needle - version: 3.2.0 - engines: {node: '>= 4.4.x'} - hasBin: true - requiresBuild: true - dependencies: - debug: 3.2.7 - iconv-lite: 0.6.3 - sax: 1.3.0 - transitivePeerDependencies: - - supports-color - optional: true - - registry.npmmirror.com/neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz} - name: neo-async - version: 2.6.2 - dev: false - - registry.npmmirror.com/no-case@3.0.4: - resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz} - name: no-case - version: 3.0.4 - dependencies: - lower-case: registry.npmmirror.com/lower-case@2.0.2 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/node-abort-controller@3.1.1: - resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz} - name: node-abort-controller - version: 3.1.1 - dev: false - - registry.npmmirror.com/node-domexception@1.0.0: - resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-domexception/-/node-domexception-1.0.0.tgz} - name: node-domexception - version: 1.0.0 - engines: {node: '>=10.5.0'} - dev: false - - registry.npmmirror.com/node-fetch-npm@2.0.4: - resolution: {integrity: sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz} - name: node-fetch-npm - version: 2.0.4 - engines: {node: '>=4'} - deprecated: This module is not used anymore, npm uses minipass-fetch for its fetch implementation now - dependencies: - encoding: registry.npmmirror.com/encoding@0.1.13 - json-parse-better-errors: registry.npmmirror.com/json-parse-better-errors@1.0.2 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/node-fetch@3.3.2: - resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.2.tgz} - name: node-fetch - version: 3.3.2 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - data-uri-to-buffer: registry.npmmirror.com/data-uri-to-buffer@4.0.1 - fetch-blob: registry.npmmirror.com/fetch-blob@3.2.0 - formdata-polyfill: registry.npmmirror.com/formdata-polyfill@4.0.10 - dev: false - - registry.npmmirror.com/node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-int64/-/node-int64-0.4.0.tgz} - name: node-int64 - version: 0.4.0 - dev: false - - registry.npmmirror.com/node-libs-browser@2.2.1: - resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz} - name: node-libs-browser - version: 2.2.1 - dependencies: - assert: registry.npmmirror.com/assert@1.5.1 - browserify-zlib: registry.npmmirror.com/browserify-zlib@0.2.0 - buffer: registry.npmmirror.com/buffer@4.9.2 - console-browserify: registry.npmmirror.com/console-browserify@1.2.0 - constants-browserify: registry.npmmirror.com/constants-browserify@1.0.0 - crypto-browserify: registry.npmmirror.com/crypto-browserify@3.12.0 - domain-browser: registry.npmmirror.com/domain-browser@1.2.0 - events: registry.npmmirror.com/events@3.3.0 - https-browserify: registry.npmmirror.com/https-browserify@1.0.0 - os-browserify: registry.npmmirror.com/os-browserify@0.3.0 - path-browserify: registry.npmmirror.com/path-browserify@0.0.1 - process: registry.npmmirror.com/process@0.11.10 - punycode: registry.npmmirror.com/punycode@1.4.1 - querystring-es3: registry.npmmirror.com/querystring-es3@0.2.1 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - stream-browserify: registry.npmmirror.com/stream-browserify@2.0.2 - stream-http: registry.npmmirror.com/stream-http@2.8.3 - string_decoder: registry.npmmirror.com/string_decoder@1.3.0 - timers-browserify: registry.npmmirror.com/timers-browserify@2.0.12 - tty-browserify: registry.npmmirror.com/tty-browserify@0.0.0 - url: registry.npmmirror.com/url@0.11.3 - util: registry.npmmirror.com/util@0.11.1 - vm-browserify: registry.npmmirror.com/vm-browserify@1.1.2 - dev: false - - registry.npmmirror.com/node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-releases/-/node-releases-2.0.13.tgz} - name: node-releases - version: 2.0.13 - dev: false - - registry.npmmirror.com/normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz} - name: normalize-package-data - version: 2.5.0 - dependencies: - hosted-git-info: registry.npmmirror.com/hosted-git-info@2.8.9 - resolve: registry.npmmirror.com/resolve@1.22.8 - semver: registry.npmmirror.com/semver@5.7.2 - validate-npm-package-license: registry.npmmirror.com/validate-npm-package-license@3.0.4 - dev: false - - registry.npmmirror.com/normalize-package-data@3.0.3: - resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz} - name: normalize-package-data - version: 3.0.3 - engines: {node: '>=10'} - dependencies: - hosted-git-info: registry.npmmirror.com/hosted-git-info@4.1.0 - is-core-module: registry.npmmirror.com/is-core-module@2.13.1 - semver: registry.npmmirror.com/semver@7.5.4 - validate-npm-package-license: registry.npmmirror.com/validate-npm-package-license@3.0.4 - dev: false - - registry.npmmirror.com/normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz} - name: normalize-path - version: 3.0.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz} - name: normalize-range - version: 0.1.2 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/npm-package-arg@5.1.2: - resolution: {integrity: sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz} - name: npm-package-arg - version: 5.1.2 - dependencies: - hosted-git-info: registry.npmmirror.com/hosted-git-info@2.8.9 - osenv: registry.npmmirror.com/osenv@0.1.5 - semver: registry.npmmirror.com/semver@5.7.2 - validate-npm-package-name: registry.npmmirror.com/validate-npm-package-name@3.0.0 - dev: false - - registry.npmmirror.com/npm-pick-manifest@1.0.4: - resolution: {integrity: sha512-MKxNdeyOZysPRTTbHtW0M5Fw38Jo/3ARsoGw5qjCfS+XGjvNB/Gb4qtAZUFmKPM2mVum+eX559eHvKywU856BQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-pick-manifest/-/npm-pick-manifest-1.0.4.tgz} - name: npm-pick-manifest - version: 1.0.4 - dependencies: - npm-package-arg: registry.npmmirror.com/npm-package-arg@5.1.2 - semver: registry.npmmirror.com/semver@5.7.2 - dev: false - - registry.npmmirror.com/npm-run-path@2.0.2: - resolution: {integrity: sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-2.0.2.tgz} - name: npm-run-path - version: 2.0.2 - engines: {node: '>=4'} - dependencies: - path-key: registry.npmmirror.com/path-key@2.0.1 - dev: false - - registry.npmmirror.com/npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz} - name: npm-run-path - version: 4.0.1 - engines: {node: '>=8'} - dependencies: - path-key: registry.npmmirror.com/path-key@3.1.1 - dev: false - - registry.npmmirror.com/npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-run-path/-/npm-run-path-5.1.0.tgz} - name: npm-run-path - version: 5.1.0 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: registry.npmmirror.com/path-key@4.0.0 - dev: false - - registry.npmmirror.com/nprogress@0.2.0: - resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz} - name: nprogress - version: 0.2.0 - dev: false - - registry.npmmirror.com/nth-check@1.0.2: - resolution: {integrity: sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nth-check/-/nth-check-1.0.2.tgz} - name: nth-check - version: 1.0.2 - dependencies: - boolbase: registry.npmmirror.com/boolbase@1.0.0 - dev: false - - registry.npmmirror.com/nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz} - name: nth-check - version: 2.1.1 - dependencies: - boolbase: registry.npmmirror.com/boolbase@1.0.0 - dev: false - - registry.npmmirror.com/object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} - name: object-assign - version: 4.1.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz} - name: object-inspect - version: 1.13.1 - dev: false - - registry.npmmirror.com/object-keys@0.4.0: - resolution: {integrity: sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-0.4.0.tgz} - name: object-keys - version: 0.4.0 - dev: false - - registry.npmmirror.com/object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz} - name: object-keys - version: 1.1.1 - engines: {node: '>= 0.4'} - dev: false - - registry.npmmirror.com/object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz} - name: object.assign - version: 4.1.4 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - object-keys: registry.npmmirror.com/object-keys@1.1.1 - dev: false - - registry.npmmirror.com/object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.entries/-/object.entries-1.1.7.tgz} - name: object.entries - version: 1.1.7 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - dev: false - - registry.npmmirror.com/object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.fromentries/-/object.fromentries-2.0.7.tgz} - name: object.fromentries - version: 2.0.7 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - dev: false - - registry.npmmirror.com/object.getownpropertydescriptors@2.1.7: - resolution: {integrity: sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz} - name: object.getownpropertydescriptors - version: 2.1.7 - engines: {node: '>= 0.8'} - dependencies: - array.prototype.reduce: registry.npmmirror.com/array.prototype.reduce@1.0.6 - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - safe-array-concat: registry.npmmirror.com/safe-array-concat@1.0.1 - dev: false - - registry.npmmirror.com/object.getprototypeof@1.0.5: - resolution: {integrity: sha512-4G0QiXpoIppBUz5efmxTm/HTbVN2ioGjk/PbsaNvwISFX+saj8muGp6vNuzIdsosFxM4V/kpUVNvy/+9+DVBZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.getprototypeof/-/object.getprototypeof-1.0.5.tgz} - name: object.getprototypeof - version: 1.0.5 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - reflect.getprototypeof: registry.npmmirror.com/reflect.getprototypeof@1.0.4 - dev: false - - registry.npmmirror.com/object.hasown@1.1.3: - resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.hasown/-/object.hasown-1.1.3.tgz} - name: object.hasown - version: 1.1.3 - dependencies: - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - dev: false - - registry.npmmirror.com/object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz} - name: object.values - version: 1.1.7 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - dev: false - - registry.npmmirror.com/obuf@1.1.2: - resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz} - name: obuf - version: 1.1.2 - dev: false - - registry.npmmirror.com/omit-deep@0.3.0: - resolution: {integrity: sha512-Lbl/Ma59sss2b15DpnWnGmECBRL8cRl/PjPbPMVW+Y8zIQzRrwMaI65Oy6HvxyhYeILVKBJb2LWeG81bj5zbMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/omit-deep/-/omit-deep-0.3.0.tgz} - name: omit-deep - version: 0.3.0 - engines: {node: '>=0.10.0'} - dependencies: - is-plain-object: registry.npmmirror.com/is-plain-object@2.0.4 - unset-value: registry.npmmirror.com/unset-value@0.1.2 - dev: false - - registry.npmmirror.com/on-exit-leak-free@0.2.0: - resolution: {integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz} - name: on-exit-leak-free - version: 0.2.0 - dev: false - - registry.npmmirror.com/once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} - name: once - version: 1.4.0 - dependencies: - wrappy: registry.npmmirror.com/wrappy@1.0.2 - dev: false - - registry.npmmirror.com/onetime@2.0.1: - resolution: {integrity: sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-2.0.1.tgz} - name: onetime - version: 2.0.1 - engines: {node: '>=4'} - dependencies: - mimic-fn: registry.npmmirror.com/mimic-fn@1.2.0 - dev: false - - registry.npmmirror.com/onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz} - name: onetime - version: 5.1.2 - engines: {node: '>=6'} - dependencies: - mimic-fn: registry.npmmirror.com/mimic-fn@2.1.0 - dev: false - - registry.npmmirror.com/onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-6.0.0.tgz} - name: onetime - version: 6.0.0 - engines: {node: '>=12'} - dependencies: - mimic-fn: registry.npmmirror.com/mimic-fn@4.0.0 - dev: false - - registry.npmmirror.com/open@6.4.0: - resolution: {integrity: sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/-/open-6.4.0.tgz} - name: open - version: 6.4.0 - engines: {node: '>=8'} - dependencies: - is-wsl: registry.npmmirror.com/is-wsl@1.1.0 - dev: false - - registry.npmmirror.com/open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/-/open-8.4.2.tgz} - name: open - version: 8.4.2 - engines: {node: '>=12'} - dependencies: - define-lazy-prop: registry.npmmirror.com/define-lazy-prop@2.0.0 - is-docker: registry.npmmirror.com/is-docker@2.2.1 - is-wsl: registry.npmmirror.com/is-wsl@2.2.0 - dev: false - - registry.npmmirror.com/open@9.1.0: - resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/-/open-9.1.0.tgz} - name: open - version: 9.1.0 - engines: {node: '>=14.16'} - dependencies: - default-browser: registry.npmmirror.com/default-browser@4.0.0 - define-lazy-prop: registry.npmmirror.com/define-lazy-prop@3.0.0 - is-inside-container: registry.npmmirror.com/is-inside-container@1.0.0 - is-wsl: registry.npmmirror.com/is-wsl@2.2.0 - dev: false - - registry.npmmirror.com/ora@1.4.0: - resolution: {integrity: sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ora/-/ora-1.4.0.tgz} - name: ora - version: 1.4.0 - engines: {node: '>=4'} - dependencies: - chalk: registry.npmmirror.com/chalk@2.4.2 - cli-cursor: registry.npmmirror.com/cli-cursor@2.1.0 - cli-spinners: registry.npmmirror.com/cli-spinners@1.3.1 - log-symbols: registry.npmmirror.com/log-symbols@2.2.0 - dev: false - - registry.npmmirror.com/os-browserify@0.3.0: - resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-browserify/-/os-browserify-0.3.0.tgz} - name: os-browserify - version: 0.3.0 - dev: false - - registry.npmmirror.com/os-homedir@1.0.2: - resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-homedir/-/os-homedir-1.0.2.tgz} - name: os-homedir - version: 1.0.2 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz} - name: os-tmpdir - version: 1.0.2 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/osenv@0.1.5: - resolution: {integrity: sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/osenv/-/osenv-0.1.5.tgz} - name: osenv - version: 0.1.5 - dependencies: - os-homedir: registry.npmmirror.com/os-homedir@1.0.2 - os-tmpdir: registry.npmmirror.com/os-tmpdir@1.0.2 - dev: false - - registry.npmmirror.com/p-finally@1.0.0: - resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-finally/-/p-finally-1.0.0.tgz} - name: p-finally - version: 1.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz} - name: p-limit - version: 2.3.0 - engines: {node: '>=6'} - dependencies: - p-try: registry.npmmirror.com/p-try@2.2.0 - dev: false - - registry.npmmirror.com/p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz} - name: p-limit - version: 3.1.0 - engines: {node: '>=10'} - dependencies: - yocto-queue: registry.npmmirror.com/yocto-queue@0.1.0 - dev: false - - registry.npmmirror.com/p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz} - name: p-locate - version: 4.1.0 - engines: {node: '>=8'} - dependencies: - p-limit: registry.npmmirror.com/p-limit@2.3.0 - dev: false - - registry.npmmirror.com/p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz} - name: p-locate - version: 5.0.0 - engines: {node: '>=10'} - dependencies: - p-limit: registry.npmmirror.com/p-limit@3.1.0 - dev: false - - registry.npmmirror.com/p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz} - name: p-try - version: 2.2.0 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/package-json@4.0.1: - resolution: {integrity: sha512-q/R5GrMek0vzgoomq6rm9OX+3PQve8sLwTirmK30YB3Cu0Bbt9OX9M/SIUnroN5BGJkzwGsFwDaRGD9EwBOlCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/package-json/-/package-json-4.0.1.tgz} - name: package-json - version: 4.0.1 - engines: {node: '>=4'} - dependencies: - got: registry.npmmirror.com/got@6.7.1 - registry-auth-token: registry.npmmirror.com/registry-auth-token@3.4.0 - registry-url: registry.npmmirror.com/registry-url@3.1.0 - semver: registry.npmmirror.com/semver@5.7.2 - dev: false - - registry.npmmirror.com/pacote@2.7.38: - resolution: {integrity: sha512-XxHUyHQB7QCVBxoXeVu0yKxT+2PvJucsc0+1E+6f95lMUxEAYERgSAc71ckYXrYr35Ew3xFU/LrhdIK21GQFFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pacote/-/pacote-2.7.38.tgz} - name: pacote - version: 2.7.38 - dependencies: - bluebird: registry.npmmirror.com/bluebird@3.7.2 - cacache: registry.npmmirror.com/cacache@9.3.0 - glob: registry.npmmirror.com/glob@7.2.3 - lru-cache: registry.npmmirror.com/lru-cache@4.1.5 - make-fetch-happen: registry.npmmirror.com/make-fetch-happen@2.6.0 - minimatch: registry.npmmirror.com/minimatch@3.1.2 - mississippi: registry.npmmirror.com/mississippi@1.3.1 - normalize-package-data: registry.npmmirror.com/normalize-package-data@2.5.0 - npm-package-arg: registry.npmmirror.com/npm-package-arg@5.1.2 - npm-pick-manifest: registry.npmmirror.com/npm-pick-manifest@1.0.4 - osenv: registry.npmmirror.com/osenv@0.1.5 - promise-inflight: registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2) - promise-retry: registry.npmmirror.com/promise-retry@1.1.1 - protoduck: registry.npmmirror.com/protoduck@4.0.0 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - semver: registry.npmmirror.com/semver@5.7.2 - ssri: registry.npmmirror.com/ssri@4.1.6 - tar-fs: registry.npmmirror.com/tar-fs@1.16.3 - tar-stream: registry.npmmirror.com/tar-stream@1.6.2 - unique-filename: registry.npmmirror.com/unique-filename@1.1.1 - which: registry.npmmirror.com/which@1.3.1 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz} - name: pako - version: 1.0.11 - dev: false - - registry.npmmirror.com/parallel-transform@1.2.0: - resolution: {integrity: sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parallel-transform/-/parallel-transform-1.2.0.tgz} - name: parallel-transform - version: 1.2.0 - dependencies: - cyclist: registry.npmmirror.com/cyclist@1.0.2 - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - dev: false - - registry.npmmirror.com/param-case@3.0.4: - resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz} - name: param-case - version: 3.0.4 - dependencies: - dot-case: registry.npmmirror.com/dot-case@3.0.4 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz} - name: parent-module - version: 1.0.1 - engines: {node: '>=6'} - dependencies: - callsites: registry.npmmirror.com/callsites@3.1.0 - dev: false - - registry.npmmirror.com/parse-asn1@5.1.6: - resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-asn1/-/parse-asn1-5.1.6.tgz} - name: parse-asn1 - version: 5.1.6 - dependencies: - asn1.js: registry.npmmirror.com/asn1.js@5.4.1 - browserify-aes: registry.npmmirror.com/browserify-aes@1.2.0 - evp_bytestokey: registry.npmmirror.com/evp_bytestokey@1.0.3 - pbkdf2: registry.npmmirror.com/pbkdf2@3.1.2 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/parse-entities@2.0.0: - resolution: {integrity: sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-entities/-/parse-entities-2.0.0.tgz} - name: parse-entities - version: 2.0.0 - dependencies: - character-entities: registry.npmmirror.com/character-entities@1.2.4 - character-entities-legacy: registry.npmmirror.com/character-entities-legacy@1.1.4 - character-reference-invalid: registry.npmmirror.com/character-reference-invalid@1.1.4 - is-alphanumerical: registry.npmmirror.com/is-alphanumerical@1.0.4 - is-decimal: registry.npmmirror.com/is-decimal@1.0.4 - is-hexadecimal: registry.npmmirror.com/is-hexadecimal@1.0.4 - dev: false - - registry.npmmirror.com/parse-entities@4.0.1: - resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-entities/-/parse-entities-4.0.1.tgz} - name: parse-entities - version: 4.0.1 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - character-entities: registry.npmmirror.com/character-entities@2.0.2 - character-entities-legacy: registry.npmmirror.com/character-entities-legacy@3.0.0 - character-reference-invalid: registry.npmmirror.com/character-reference-invalid@2.0.1 - decode-named-character-reference: registry.npmmirror.com/decode-named-character-reference@1.0.2 - is-alphanumerical: registry.npmmirror.com/is-alphanumerical@2.0.1 - is-decimal: registry.npmmirror.com/is-decimal@2.0.1 - is-hexadecimal: registry.npmmirror.com/is-hexadecimal@2.0.1 - dev: false - - registry.npmmirror.com/parse-git-config@0.2.0: - resolution: {integrity: sha512-amapZFADOJtHvX2URcRfbzG2OFcW+UAwmdK2kht2N2vsH5Py65VxI5yZTlD2DjmxVhTz6htFoVCxROYUJaYOXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-git-config/-/parse-git-config-0.2.0.tgz} - name: parse-git-config - version: 0.2.0 - engines: {node: '>=0.10.0'} - dependencies: - ini: registry.npmmirror.com/ini@1.3.8 - dev: false - - registry.npmmirror.com/parse-git-config@1.1.1: - resolution: {integrity: sha512-S3LGXJZVSy/hswvbSkfdbKBRVsnqKrVu6j8fcvdtJ4TxosSELyQDsJPuGPXuZ+EyuYuJd3O4uAF8gcISR0OFrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-git-config/-/parse-git-config-1.1.1.tgz} - name: parse-git-config - version: 1.1.1 - engines: {node: '>=0.10.0'} - dependencies: - extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 - fs-exists-sync: registry.npmmirror.com/fs-exists-sync@0.1.0 - git-config-path: registry.npmmirror.com/git-config-path@1.0.1 - ini: registry.npmmirror.com/ini@1.3.8 - dev: false - - registry.npmmirror.com/parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz} - name: parse-json - version: 5.2.0 - engines: {node: '>=8'} - dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame@7.23.4 - error-ex: registry.npmmirror.com/error-ex@1.3.2 - json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 - lines-and-columns: registry.npmmirror.com/lines-and-columns@1.2.4 - dev: false - - registry.npmmirror.com/parse-node-version@1.0.1: - resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-node-version/-/parse-node-version-1.0.1.tgz} - name: parse-node-version - version: 1.0.1 - engines: {node: '>= 0.10'} - dev: false - - registry.npmmirror.com/parse-passwd@1.0.0: - resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-passwd/-/parse-passwd-1.0.0.tgz} - name: parse-passwd - version: 1.0.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse5/-/parse5-6.0.1.tgz} - name: parse5 - version: 6.0.1 - dev: false - - registry.npmmirror.com/parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse5/-/parse5-7.1.2.tgz} - name: parse5 - version: 7.1.2 - dependencies: - entities: registry.npmmirror.com/entities@4.5.0 - dev: false - - registry.npmmirror.com/parseley@0.12.1: - resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parseley/-/parseley-0.12.1.tgz} - name: parseley - version: 0.12.1 - dependencies: - leac: registry.npmmirror.com/leac@0.6.0 - peberminta: registry.npmmirror.com/peberminta@0.9.0 - dev: false - - registry.npmmirror.com/pascal-case@3.1.2: - resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz} - name: pascal-case - version: 3.1.2 - dependencies: - no-case: registry.npmmirror.com/no-case@3.0.4 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/path-browserify@0.0.1: - resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz} - name: path-browserify - version: 0.0.1 - dev: false - - registry.npmmirror.com/path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz} - name: path-exists - version: 4.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz} - name: path-is-absolute - version: 1.0.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz} - name: path-is-inside - version: 1.0.2 - dev: false - - registry.npmmirror.com/path-key@2.0.1: - resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-2.0.1.tgz} - name: path-key - version: 2.0.1 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz} - name: path-key - version: 3.1.1 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz} - name: path-key - version: 4.0.0 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} - name: path-parse - version: 1.0.7 - dev: false - - registry.npmmirror.com/path-to-regexp@1.7.0: - resolution: {integrity: sha512-nifX1uj4S9IrK/w3Xe7kKvNEepXivANs9ng60Iq7PU/BlouV3yL/VUhFqTuTq33ykwUqoNcTeGo5vdOBP4jS/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz} - name: path-to-regexp - version: 1.7.0 - dependencies: - isarray: registry.npmmirror.com/isarray@0.0.1 - dev: false - - registry.npmmirror.com/path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} - name: path-type - version: 4.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/pbkdf2@3.1.2: - resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz} - name: pbkdf2 - version: 3.1.2 - engines: {node: '>=0.12'} - dependencies: - create-hash: registry.npmmirror.com/create-hash@1.2.0 - create-hmac: registry.npmmirror.com/create-hmac@1.1.7 - ripemd160: registry.npmmirror.com/ripemd160@2.0.2 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - sha.js: registry.npmmirror.com/sha.js@2.4.11 - dev: false - - registry.npmmirror.com/peberminta@0.9.0: - resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/peberminta/-/peberminta-0.9.0.tgz} - name: peberminta - version: 0.9.0 - dev: false - - registry.npmmirror.com/picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} - name: picocolors - version: 1.0.0 - dev: false - - registry.npmmirror.com/picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} - name: picomatch - version: 2.3.1 - engines: {node: '>=8.6'} - dev: false - - registry.npmmirror.com/pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pify/-/pify-3.0.0.tgz} - name: pify - version: 3.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/pino-abstract-transport@0.5.0: - resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz} - name: pino-abstract-transport - version: 0.5.0 - dependencies: - duplexify: registry.npmmirror.com/duplexify@4.1.2 - split2: registry.npmmirror.com/split2@4.2.0 - dev: false - - registry.npmmirror.com/pino-std-serializers@4.0.0: - resolution: {integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz} - name: pino-std-serializers - version: 4.0.0 - dev: false - - registry.npmmirror.com/pino@7.11.0: - resolution: {integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino/-/pino-7.11.0.tgz} - name: pino - version: 7.11.0 - hasBin: true - dependencies: - atomic-sleep: registry.npmmirror.com/atomic-sleep@1.0.0 - fast-redact: registry.npmmirror.com/fast-redact@3.3.0 - on-exit-leak-free: registry.npmmirror.com/on-exit-leak-free@0.2.0 - pino-abstract-transport: registry.npmmirror.com/pino-abstract-transport@0.5.0 - pino-std-serializers: registry.npmmirror.com/pino-std-serializers@4.0.0 - process-warning: registry.npmmirror.com/process-warning@1.0.0 - quick-format-unescaped: registry.npmmirror.com/quick-format-unescaped@4.0.4 - real-require: registry.npmmirror.com/real-require@0.1.0 - safe-stable-stringify: registry.npmmirror.com/safe-stable-stringify@2.4.3 - sonic-boom: registry.npmmirror.com/sonic-boom@2.8.0 - thread-stream: registry.npmmirror.com/thread-stream@0.15.2 - dev: false - - registry.npmmirror.com/pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pirates/-/pirates-4.0.6.tgz} - name: pirates - version: 4.0.6 - engines: {node: '>= 6'} - dev: false - - registry.npmmirror.com/pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pluralize/-/pluralize-8.0.0.tgz} - name: pluralize - version: 8.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/point-in-polygon@1.1.0: - resolution: {integrity: sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/point-in-polygon/-/point-in-polygon-1.1.0.tgz} - name: point-in-polygon - version: 1.1.0 - dev: false - - registry.npmmirror.com/polished@4.2.2: - resolution: {integrity: sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/polished/-/polished-4.2.2.tgz} - name: polished - version: 4.2.2 - engines: {node: '>=10'} - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - dev: false - - registry.npmmirror.com/postcss-attribute-case-insensitive@5.0.2(postcss@8.4.31): - resolution: {integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz} - id: registry.npmmirror.com/postcss-attribute-case-insensitive/5.0.2 - name: postcss-attribute-case-insensitive - version: 5.0.2 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/postcss-clamp@4.1.0(postcss@8.4.31): - resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz} - id: registry.npmmirror.com/postcss-clamp/4.1.0 - name: postcss-clamp - version: 4.1.0 - engines: {node: '>=7.6.0'} - peerDependencies: - postcss: ^8.4.6 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-color-functional-notation@4.2.4(postcss@8.4.31): - resolution: {integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz} - id: registry.npmmirror.com/postcss-color-functional-notation/4.2.4 - name: postcss-color-functional-notation - version: 4.2.4 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-color-hex-alpha@8.0.4(postcss@8.4.31): - resolution: {integrity: sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz} - id: registry.npmmirror.com/postcss-color-hex-alpha/8.0.4 - name: postcss-color-hex-alpha - version: 8.0.4 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-color-rebeccapurple@7.1.1(postcss@8.4.31): - resolution: {integrity: sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz} - id: registry.npmmirror.com/postcss-color-rebeccapurple/7.1.1 - name: postcss-color-rebeccapurple - version: 7.1.1 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-custom-media@8.0.2(postcss@8.4.31): - resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz} - id: registry.npmmirror.com/postcss-custom-media/8.0.2 - name: postcss-custom-media - version: 8.0.2 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.3 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-custom-properties@12.1.11(postcss@8.4.31): - resolution: {integrity: sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz} - id: registry.npmmirror.com/postcss-custom-properties/12.1.11 - name: postcss-custom-properties - version: 12.1.11 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-custom-selectors@6.0.3(postcss@8.4.31): - resolution: {integrity: sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz} - id: registry.npmmirror.com/postcss-custom-selectors/6.0.3 - name: postcss-custom-selectors - version: 6.0.3 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.3 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/postcss-dir-pseudo-class@6.0.5(postcss@8.4.31): - resolution: {integrity: sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz} - id: registry.npmmirror.com/postcss-dir-pseudo-class/6.0.5 - name: postcss-dir-pseudo-class - version: 6.0.5 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/postcss-double-position-gradients@3.1.2(postcss@8.4.31): - resolution: {integrity: sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz} - id: registry.npmmirror.com/postcss-double-position-gradients/3.1.2 - name: postcss-double-position-gradients - version: 3.1.2 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-env-function@4.0.6(postcss@8.4.31): - resolution: {integrity: sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-env-function/-/postcss-env-function-4.0.6.tgz} - id: registry.npmmirror.com/postcss-env-function/4.0.6 - name: postcss-env-function - version: 4.0.6 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-flexbugs-fixes@5.0.2(postcss@8.4.31): - resolution: {integrity: sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz} - id: registry.npmmirror.com/postcss-flexbugs-fixes/5.0.2 - name: postcss-flexbugs-fixes - version: 5.0.2 - peerDependencies: - postcss: ^8.1.4 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-focus-visible@6.0.4(postcss@8.4.31): - resolution: {integrity: sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz} - id: registry.npmmirror.com/postcss-focus-visible/6.0.4 - name: postcss-focus-visible - version: 6.0.4 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/postcss-focus-within@5.0.4(postcss@8.4.31): - resolution: {integrity: sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz} - id: registry.npmmirror.com/postcss-focus-within/5.0.4 - name: postcss-focus-within - version: 5.0.4 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/postcss-font-variant@5.0.0(postcss@8.4.31): - resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz} - id: registry.npmmirror.com/postcss-font-variant/5.0.0 - name: postcss-font-variant - version: 5.0.0 - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-gap-properties@3.0.5(postcss@8.4.31): - resolution: {integrity: sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz} - id: registry.npmmirror.com/postcss-gap-properties/3.0.5 - name: postcss-gap-properties - version: 3.0.5 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-image-set-function@4.0.7(postcss@8.4.31): - resolution: {integrity: sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz} - id: registry.npmmirror.com/postcss-image-set-function/4.0.7 - name: postcss-image-set-function - version: 4.0.7 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-initial@4.0.1(postcss@8.4.31): - resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-initial/-/postcss-initial-4.0.1.tgz} - id: registry.npmmirror.com/postcss-initial/4.0.1 - name: postcss-initial - version: 4.0.1 - peerDependencies: - postcss: ^8.0.0 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-lab-function@4.2.1(postcss@8.4.31): - resolution: {integrity: sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz} - id: registry.npmmirror.com/postcss-lab-function/4.2.1 - name: postcss-lab-function - version: 4.2.1 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-logical@5.0.4(postcss@8.4.31): - resolution: {integrity: sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-logical/-/postcss-logical-5.0.4.tgz} - id: registry.npmmirror.com/postcss-logical/5.0.4 - name: postcss-logical - version: 5.0.4 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-media-minmax@5.0.0(postcss@8.4.31): - resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz} - id: registry.npmmirror.com/postcss-media-minmax/5.0.0 - name: postcss-media-minmax - version: 5.0.0 - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-media-query-parser@0.2.3: - resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz} - name: postcss-media-query-parser - version: 0.2.3 - dev: false - - registry.npmmirror.com/postcss-modules-extract-imports@3.0.0(postcss@8.4.31): - resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz} - id: registry.npmmirror.com/postcss-modules-extract-imports/3.0.0 - name: postcss-modules-extract-imports - version: 3.0.0 - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-modules-local-by-default@4.0.3(postcss@8.4.31): - resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz} - id: registry.npmmirror.com/postcss-modules-local-by-default/4.0.3 - name: postcss-modules-local-by-default - version: 4.0.3 - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-modules-scope@3.0.0(postcss@8.4.31): - resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz} - id: registry.npmmirror.com/postcss-modules-scope/3.0.0 - name: postcss-modules-scope - version: 3.0.0 - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/postcss-modules-values@4.0.0(postcss@8.4.31): - resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz} - id: registry.npmmirror.com/postcss-modules-values/4.0.0 - name: postcss-modules-values - version: 4.0.0 - engines: {node: ^10 || ^12 || >= 14} - peerDependencies: - postcss: ^8.1.0 - dependencies: - icss-utils: registry.npmmirror.com/icss-utils@5.1.0(postcss@8.4.31) - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-nesting@10.2.0(postcss@8.4.31): - resolution: {integrity: sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-nesting/-/postcss-nesting-10.2.0.tgz} - id: registry.npmmirror.com/postcss-nesting/10.2.0 - name: postcss-nesting - version: 10.2.0 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - '@csstools/selector-specificity': registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13) - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/postcss-opacity-percentage@1.1.3(postcss@8.4.31): - resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz} - id: registry.npmmirror.com/postcss-opacity-percentage/1.1.3 - name: postcss-opacity-percentage - version: 1.1.3 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-overflow-shorthand@3.0.4(postcss@8.4.31): - resolution: {integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz} - id: registry.npmmirror.com/postcss-overflow-shorthand/3.0.4 - name: postcss-overflow-shorthand - version: 3.0.4 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-page-break@3.0.4(postcss@8.4.31): - resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-page-break/-/postcss-page-break-3.0.4.tgz} - id: registry.npmmirror.com/postcss-page-break/3.0.4 - name: postcss-page-break - version: 3.0.4 - peerDependencies: - postcss: ^8 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-place@7.0.5(postcss@8.4.31): - resolution: {integrity: sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-place/-/postcss-place-7.0.5.tgz} - id: registry.npmmirror.com/postcss-place/7.0.5 - name: postcss-place - version: 7.0.5 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-prefix-selector@1.16.0(postcss@8.4.31): - resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz} - id: registry.npmmirror.com/postcss-prefix-selector/1.16.0 - name: postcss-prefix-selector - version: 1.16.0 - peerDependencies: - postcss: '>4 <9' - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-preset-env@7.5.0(postcss@8.4.31): - resolution: {integrity: sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-preset-env/-/postcss-preset-env-7.5.0.tgz} - id: registry.npmmirror.com/postcss-preset-env/7.5.0 - name: postcss-preset-env - version: 7.5.0 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/postcss-color-function': registry.npmmirror.com/@csstools/postcss-color-function@1.1.1(postcss@8.4.31) - '@csstools/postcss-font-format-keywords': registry.npmmirror.com/@csstools/postcss-font-format-keywords@1.0.1(postcss@8.4.31) - '@csstools/postcss-hwb-function': registry.npmmirror.com/@csstools/postcss-hwb-function@1.0.2(postcss@8.4.31) - '@csstools/postcss-ic-unit': registry.npmmirror.com/@csstools/postcss-ic-unit@1.0.1(postcss@8.4.31) - '@csstools/postcss-is-pseudo-class': registry.npmmirror.com/@csstools/postcss-is-pseudo-class@2.0.7(postcss@8.4.31) - '@csstools/postcss-normalize-display-values': registry.npmmirror.com/@csstools/postcss-normalize-display-values@1.0.1(postcss@8.4.31) - '@csstools/postcss-oklab-function': registry.npmmirror.com/@csstools/postcss-oklab-function@1.1.1(postcss@8.4.31) - '@csstools/postcss-progressive-custom-properties': registry.npmmirror.com/@csstools/postcss-progressive-custom-properties@1.3.0(postcss@8.4.31) - '@csstools/postcss-stepped-value-functions': registry.npmmirror.com/@csstools/postcss-stepped-value-functions@1.0.1(postcss@8.4.31) - '@csstools/postcss-unset-value': registry.npmmirror.com/@csstools/postcss-unset-value@1.0.2(postcss@8.4.31) - autoprefixer: registry.npmmirror.com/autoprefixer@10.4.16(postcss@8.4.31) - browserslist: registry.npmmirror.com/browserslist@4.22.1 - css-blank-pseudo: registry.npmmirror.com/css-blank-pseudo@3.0.3(postcss@8.4.31) - css-has-pseudo: registry.npmmirror.com/css-has-pseudo@3.0.4(postcss@8.4.31) - css-prefers-color-scheme: registry.npmmirror.com/css-prefers-color-scheme@6.0.3(postcss@8.4.31) - cssdb: registry.npmmirror.com/cssdb@6.6.3 - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-attribute-case-insensitive: registry.npmmirror.com/postcss-attribute-case-insensitive@5.0.2(postcss@8.4.31) - postcss-clamp: registry.npmmirror.com/postcss-clamp@4.1.0(postcss@8.4.31) - postcss-color-functional-notation: registry.npmmirror.com/postcss-color-functional-notation@4.2.4(postcss@8.4.31) - postcss-color-hex-alpha: registry.npmmirror.com/postcss-color-hex-alpha@8.0.4(postcss@8.4.31) - postcss-color-rebeccapurple: registry.npmmirror.com/postcss-color-rebeccapurple@7.1.1(postcss@8.4.31) - postcss-custom-media: registry.npmmirror.com/postcss-custom-media@8.0.2(postcss@8.4.31) - postcss-custom-properties: registry.npmmirror.com/postcss-custom-properties@12.1.11(postcss@8.4.31) - postcss-custom-selectors: registry.npmmirror.com/postcss-custom-selectors@6.0.3(postcss@8.4.31) - postcss-dir-pseudo-class: registry.npmmirror.com/postcss-dir-pseudo-class@6.0.5(postcss@8.4.31) - postcss-double-position-gradients: registry.npmmirror.com/postcss-double-position-gradients@3.1.2(postcss@8.4.31) - postcss-env-function: registry.npmmirror.com/postcss-env-function@4.0.6(postcss@8.4.31) - postcss-focus-visible: registry.npmmirror.com/postcss-focus-visible@6.0.4(postcss@8.4.31) - postcss-focus-within: registry.npmmirror.com/postcss-focus-within@5.0.4(postcss@8.4.31) - postcss-font-variant: registry.npmmirror.com/postcss-font-variant@5.0.0(postcss@8.4.31) - postcss-gap-properties: registry.npmmirror.com/postcss-gap-properties@3.0.5(postcss@8.4.31) - postcss-image-set-function: registry.npmmirror.com/postcss-image-set-function@4.0.7(postcss@8.4.31) - postcss-initial: registry.npmmirror.com/postcss-initial@4.0.1(postcss@8.4.31) - postcss-lab-function: registry.npmmirror.com/postcss-lab-function@4.2.1(postcss@8.4.31) - postcss-logical: registry.npmmirror.com/postcss-logical@5.0.4(postcss@8.4.31) - postcss-media-minmax: registry.npmmirror.com/postcss-media-minmax@5.0.0(postcss@8.4.31) - postcss-nesting: registry.npmmirror.com/postcss-nesting@10.2.0(postcss@8.4.31) - postcss-opacity-percentage: registry.npmmirror.com/postcss-opacity-percentage@1.1.3(postcss@8.4.31) - postcss-overflow-shorthand: registry.npmmirror.com/postcss-overflow-shorthand@3.0.4(postcss@8.4.31) - postcss-page-break: registry.npmmirror.com/postcss-page-break@3.0.4(postcss@8.4.31) - postcss-place: registry.npmmirror.com/postcss-place@7.0.5(postcss@8.4.31) - postcss-pseudo-class-any-link: registry.npmmirror.com/postcss-pseudo-class-any-link@7.1.6(postcss@8.4.31) - postcss-replace-overflow-wrap: registry.npmmirror.com/postcss-replace-overflow-wrap@4.0.0(postcss@8.4.31) - postcss-selector-not: registry.npmmirror.com/postcss-selector-not@5.0.0(postcss@8.4.31) - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - dev: false - - registry.npmmirror.com/postcss-pseudo-class-any-link@7.1.6(postcss@8.4.31): - resolution: {integrity: sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz} - id: registry.npmmirror.com/postcss-pseudo-class-any-link/7.1.6 - name: postcss-pseudo-class-any-link - version: 7.1.6 - engines: {node: ^12 || ^14 || >=16} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - dev: false - - registry.npmmirror.com/postcss-replace-overflow-wrap@4.0.0(postcss@8.4.31): - resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz} - id: registry.npmmirror.com/postcss-replace-overflow-wrap/4.0.0 - name: postcss-replace-overflow-wrap - version: 4.0.0 - peerDependencies: - postcss: ^8.0.3 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-resolve-nested-selector@0.1.1: - resolution: {integrity: sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz} - name: postcss-resolve-nested-selector - version: 0.1.1 - dev: false - - registry.npmmirror.com/postcss-safe-parser@6.0.0(postcss@8.4.31): - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz} - id: registry.npmmirror.com/postcss-safe-parser/6.0.0 - name: postcss-safe-parser - version: 6.0.0 - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-selector-not@5.0.0(postcss@8.4.31): - resolution: {integrity: sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz} - id: registry.npmmirror.com/postcss-selector-not/5.0.0 - name: postcss-selector-not - version: 5.0.0 - peerDependencies: - postcss: ^8.1.0 - dependencies: - balanced-match: registry.npmmirror.com/balanced-match@1.0.2 - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-selector-parser@6.0.13: - resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz} - name: postcss-selector-parser - version: 6.0.13 - engines: {node: '>=4'} - dependencies: - cssesc: registry.npmmirror.com/cssesc@3.0.0 - util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 - dev: false - - registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.31): - resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz} - id: registry.npmmirror.com/postcss-syntax/0.36.2 - name: postcss-syntax - version: 0.36.2 - peerDependencies: - postcss: '>=5.0.0' - postcss-html: '*' - postcss-jsx: '*' - postcss-less: '*' - postcss-markdown: '*' - postcss-scss: '*' - peerDependenciesMeta: - postcss-html: - optional: true - postcss-jsx: - optional: true - postcss-less: - optional: true - postcss-markdown: - optional: true - postcss-scss: - optional: true - dependencies: - postcss: registry.npmmirror.com/postcss@8.4.31 - dev: false - - registry.npmmirror.com/postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} - name: postcss-value-parser - version: 4.2.0 - dev: false - - registry.npmmirror.com/postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz} - name: postcss - version: 8.4.31 - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: registry.npmmirror.com/nanoid@3.3.7 - picocolors: registry.npmmirror.com/picocolors@1.0.0 - source-map-js: registry.npmmirror.com/source-map-js@1.0.2 - dev: false - - registry.npmmirror.com/prepend-http@1.0.4: - resolution: {integrity: sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prepend-http/-/prepend-http-1.0.4.tgz} - name: prepend-http - version: 1.0.4 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/prettier-plugin-organize-imports@3.2.4(prettier@3.1.0)(typescript@5.3.2): - resolution: {integrity: sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.4.tgz} - id: registry.npmmirror.com/prettier-plugin-organize-imports/3.2.4 - name: prettier-plugin-organize-imports - version: 3.2.4 - peerDependencies: - '@volar/vue-language-plugin-pug': ^1.0.4 - '@volar/vue-typescript': ^1.0.4 - prettier: '>=2.0' - typescript: '>=2.9' - peerDependenciesMeta: - '@volar/vue-language-plugin-pug': - optional: true - '@volar/vue-typescript': - optional: true - dependencies: - prettier: 3.1.0 - typescript: 5.3.2 - dev: false - - registry.npmmirror.com/prettier-plugin-packagejson@2.4.3(prettier@3.1.0): - resolution: {integrity: sha512-kPeeviJiwy0BgOSk7No8NmzzXfW4R9FYWni6ziA5zc1kGVVrKnBzMZdu2TUhI+I7h8/5Htt3vARYOk7KKJTTNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prettier-plugin-packagejson/-/prettier-plugin-packagejson-2.4.3.tgz} - id: registry.npmmirror.com/prettier-plugin-packagejson/2.4.3 - name: prettier-plugin-packagejson - version: 2.4.3 - peerDependencies: - prettier: '>= 1.16.0' - peerDependenciesMeta: - prettier: - optional: true - dependencies: - prettier: 3.1.0 - sort-package-json: registry.npmmirror.com/sort-package-json@2.4.1 - synckit: registry.npmmirror.com/synckit@0.8.5 - dev: false - - registry.npmmirror.com/pretty-error@4.0.0: - resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz} - name: pretty-error - version: 4.0.0 - dependencies: - lodash: registry.npmmirror.com/lodash@4.17.21 - renderkid: registry.npmmirror.com/renderkid@3.0.0 - dev: false - - registry.npmmirror.com/prism-react-renderer@1.3.5(react@18.2.0): - resolution: {integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz} - id: registry.npmmirror.com/prism-react-renderer/1.3.5 - name: prism-react-renderer - version: 1.3.5 - peerDependencies: - react: '>=0.14.9' - dependencies: - react: 18.2.0 - dev: false - - registry.npmmirror.com/prism-themes@1.9.0: - resolution: {integrity: sha512-tX2AYsehKDw1EORwBps+WhBFKc2kxfoFpQAjxBndbZKr4fRmMkv47XN0BghC/K1qwodB1otbe4oF23vUTFDokw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prism-themes/-/prism-themes-1.9.0.tgz} - name: prism-themes - version: 1.9.0 - dev: false - - registry.npmmirror.com/prismjs@1.27.0: - resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prismjs/-/prismjs-1.27.0.tgz} - name: prismjs - version: 1.27.0 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz} - name: prismjs - version: 1.29.0 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz} - name: process-nextick-args - version: 2.0.1 - dev: false - - registry.npmmirror.com/process-warning@1.0.0: - resolution: {integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/process-warning/-/process-warning-1.0.0.tgz} - name: process-warning - version: 1.0.0 - dev: false - - registry.npmmirror.com/process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/process/-/process-0.11.10.tgz} - name: process - version: 0.11.10 - engines: {node: '>= 0.6.0'} - dev: false - - registry.npmmirror.com/promise-inflight@1.0.1(bluebird@3.7.2): - resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise-inflight/-/promise-inflight-1.0.1.tgz} - id: registry.npmmirror.com/promise-inflight/1.0.1 - name: promise-inflight - version: 1.0.1 - peerDependencies: - bluebird: '*' - peerDependenciesMeta: - bluebird: - optional: true - dependencies: - bluebird: registry.npmmirror.com/bluebird@3.7.2 - dev: false - - registry.npmmirror.com/promise-retry@1.1.1: - resolution: {integrity: sha512-StEy2osPr28o17bIW776GtwO6+Q+M9zPiZkYfosciUUMYqjhU/ffwRAH0zN2+uvGyUsn8/YICIHRzLbPacpZGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/promise-retry/-/promise-retry-1.1.1.tgz} - name: promise-retry - version: 1.1.1 - engines: {node: '>=0.12'} - dependencies: - err-code: registry.npmmirror.com/err-code@1.1.2 - retry: registry.npmmirror.com/retry@0.10.1 - dev: false - - registry.npmmirror.com/prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz} - name: prop-types - version: 15.8.1 - dependencies: - loose-envify: registry.npmmirror.com/loose-envify@1.4.0 - object-assign: registry.npmmirror.com/object-assign@4.1.1 - react-is: registry.npmmirror.com/react-is@16.13.1 - dev: false - - registry.npmmirror.com/property-information@5.6.0: - resolution: {integrity: sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/property-information/-/property-information-5.6.0.tgz} - name: property-information - version: 5.6.0 - dependencies: - xtend: registry.npmmirror.com/xtend@4.0.2 - dev: false - - registry.npmmirror.com/property-information@6.4.0: - resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/property-information/-/property-information-6.4.0.tgz} - name: property-information - version: 6.4.0 - dev: false - - registry.npmmirror.com/protoduck@4.0.0: - resolution: {integrity: sha512-9sxuz0YTU/68O98xuDn8NBxTVH9EuMhrBTxZdiBL0/qxRmWhB/5a8MagAebDa+98vluAZTs8kMZibCdezbRCeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/protoduck/-/protoduck-4.0.0.tgz} - name: protoduck - version: 4.0.0 - dependencies: - genfun: registry.npmmirror.com/genfun@4.0.1 - dev: false - - registry.npmmirror.com/pseudomap@1.0.2: - resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pseudomap/-/pseudomap-1.0.2.tgz} - name: pseudomap - version: 1.0.2 - dev: false - - registry.npmmirror.com/public-encrypt@4.0.3: - resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/public-encrypt/-/public-encrypt-4.0.3.tgz} - name: public-encrypt - version: 4.0.3 - dependencies: - bn.js: registry.npmmirror.com/bn.js@4.12.0 - browserify-rsa: registry.npmmirror.com/browserify-rsa@4.1.0 - create-hash: registry.npmmirror.com/create-hash@1.2.0 - parse-asn1: registry.npmmirror.com/parse-asn1@5.1.6 - randombytes: registry.npmmirror.com/randombytes@2.1.0 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/pump@1.0.3: - resolution: {integrity: sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pump/-/pump-1.0.3.tgz} - name: pump - version: 1.0.3 - dependencies: - end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 - once: registry.npmmirror.com/once@1.4.0 - dev: false - - registry.npmmirror.com/pump@2.0.1: - resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pump/-/pump-2.0.1.tgz} - name: pump - version: 2.0.1 - dependencies: - end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 - once: registry.npmmirror.com/once@1.4.0 - dev: false - - registry.npmmirror.com/pumpify@1.5.1: - resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pumpify/-/pumpify-1.5.1.tgz} - name: pumpify - version: 1.5.1 - dependencies: - duplexify: registry.npmmirror.com/duplexify@3.7.1 - inherits: registry.npmmirror.com/inherits@2.0.4 - pump: registry.npmmirror.com/pump@2.0.1 - dev: false - - registry.npmmirror.com/punycode@1.4.1: - resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz} - name: punycode - version: 1.4.1 - dev: false - - registry.npmmirror.com/punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/punycode/-/punycode-2.3.1.tgz} - name: punycode - version: 2.3.1 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/q@1.5.1: - resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/q/-/q-1.5.1.tgz} - name: q - version: 1.5.1 - engines: {node: '>=0.6.0', teleport: '>=0.2.0'} - dev: false - - registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0): - resolution: {integrity: sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qrcode.react/-/qrcode.react-3.1.0.tgz} - id: registry.npmmirror.com/qrcode.react/3.1.0 - name: qrcode.react - version: 3.1.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - - registry.npmmirror.com/qs@6.11.2: - resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/qs/-/qs-6.11.2.tgz} - name: qs - version: 6.11.2 - engines: {node: '>=0.6'} - dependencies: - side-channel: registry.npmmirror.com/side-channel@1.0.4 - dev: false - - registry.npmmirror.com/query-string@6.14.1: - resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/query-string/-/query-string-6.14.1.tgz} - name: query-string - version: 6.14.1 - engines: {node: '>=6'} - dependencies: - decode-uri-component: registry.npmmirror.com/decode-uri-component@0.2.2 - filter-obj: registry.npmmirror.com/filter-obj@1.1.0 - split-on-first: registry.npmmirror.com/split-on-first@1.1.0 - strict-uri-encode: registry.npmmirror.com/strict-uri-encode@2.0.0 - dev: false - - registry.npmmirror.com/querystring-es3@0.2.1: - resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/querystring-es3/-/querystring-es3-0.2.1.tgz} - name: querystring-es3 - version: 0.2.1 - engines: {node: '>=0.4.x'} - dev: false - - registry.npmmirror.com/queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz} - name: queue-microtask - version: 1.2.3 - dev: false - - registry.npmmirror.com/queue@6.0.1: - resolution: {integrity: sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/queue/-/queue-6.0.1.tgz} - name: queue - version: 6.0.1 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - dev: false - - registry.npmmirror.com/quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz} - name: quick-format-unescaped - version: 4.0.4 - dev: false - - registry.npmmirror.com/quick-lru@4.0.1: - resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/quick-lru/-/quick-lru-4.0.1.tgz} - name: quick-lru - version: 4.0.1 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/ramda@0.29.0: - resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ramda/-/ramda-0.29.0.tgz} - name: ramda - version: 0.29.0 - dev: false - - registry.npmmirror.com/randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz} - name: randombytes - version: 2.1.0 - dependencies: - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/randomfill@1.0.4: - resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/randomfill/-/randomfill-1.0.4.tgz} - name: randomfill - version: 1.0.4 - dependencies: - randombytes: registry.npmmirror.com/randombytes@2.1.0 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/raw-loader@4.0.2(webpack@5.89.0): - resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/raw-loader/-/raw-loader-4.0.2.tgz} - id: registry.npmmirror.com/raw-loader/4.0.2 - name: raw-loader - version: 4.0.2 - engines: {node: '>= 10.13.0'} - peerDependencies: - webpack: ^4.0.0 || ^5.0.0 - dependencies: - loader-utils: registry.npmmirror.com/loader-utils@2.0.4 - schema-utils: registry.npmmirror.com/schema-utils@3.3.0 - webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) - dev: false - - registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.20.0.tgz} - id: registry.npmmirror.com/rc-cascader/3.20.0 - name: rc-cascader - version: 3.20.0 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - array-tree-filter: registry.npmmirror.com/array-tree-filter@2.1.0 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) - rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PAwpJFnBa3Ei+5pyqMMXdcKYKNBMS+TvSDiLdDnARnMJHC8ESxwPfm4Ao1gJiKtWLdmGfigascnCpwrHFgoOBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-checkbox/-/rc-checkbox-3.1.0.tgz} - id: registry.npmmirror.com/rc-checkbox/3.1.0 - name: rc-checkbox - version: 3.1.0 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-collapse@3.7.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-N/7ejyiTf3XElNJBBpxqnZBUuMsQWEOPjB2QkfNvZ/Ca54eAvJXuOD1EGbCWCk2m7v/MSxku7mRpdeaLOCd4Gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-collapse/-/rc-collapse-3.7.1.tgz} - id: registry.npmmirror.com/rc-collapse/3.7.1 - name: rc-collapse - version: 3.7.1 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-975X3018GhR+EjZFbxA2Z57SX5rnu0G0/OxFgMMvZK4/hQWEm3MHaNvP4wXpxYDoJsp+xUvVW+GB9CMMCm81jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dialog/-/rc-dialog-9.3.4.tgz} - id: registry.npmmirror.com/rc-dialog/9.3.4 - name: rc-dialog - version: 9.3.4 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QckxAnQNdhh4vtmKN0ZwDf3iakO83W9eZcSKWYYTDv4qcD2fHhRAZJJ/OE6v2ZlQ2kSqCJX5gYssF4HJFvsEPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-drawer/-/rc-drawer-6.5.2.tgz} - id: registry.npmmirror.com/rc-drawer/6.5.2 - name: rc-drawer - version: 6.5.2 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-VZjMunpBdlVzYpEdJSaV7WM7O0jf8uyDjirxXLZRNZ+tAC+NzD3PXPEtliFwGzVwBBdCmGuSqiS9DWcOLxQ9tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-dropdown/-/rc-dropdown-4.1.0.tgz} - id: registry.npmmirror.com/rc-dropdown/4.1.0 - name: rc-dropdown - version: 4.1.0 - peerDependencies: - react: '>=16.11.0' - react-dom: '>=16.11.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-field-form@1.40.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OM3N01X2BYFGJDJcwpk9/BBtlwgveE7eh2SQAKIxVCt9KVWlODYJ9ypTHQdxchfDbeJKJKxMBFXlLAmyvlgPHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-field-form/-/rc-field-form-1.40.0.tgz} - id: registry.npmmirror.com/rc-field-form/1.40.0 - name: rc-field-form - version: 1.40.0 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - async-validator: registry.npmmirror.com/async-validator@4.2.5 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-footer@0.6.8(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-JBZ+xcb6kkex8XnBd4VHw1ZxjV6kmcwUumSHaIFdka2qzMCo7Klcy4sI6G0XtUpG/vtpislQCc+S9Bc+NLHYMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-footer/-/rc-footer-0.6.8.tgz} - id: registry.npmmirror.com/rc-footer/0.6.8 - name: rc-footer - version: 0.6.8 - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Z9loECh92SQp0nSipc0MBuf5+yVC05H/pzC+Nf8xw1BKDFUJzUeehYBjaWlxly8VGBZJcTHYri61Fz9ng1G3Ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-image/-/rc-image-7.5.1.tgz} - id: registry.npmmirror.com/rc-image/7.5.1 - name: rc-image - version: 7.5.1 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/portal': registry.npmmirror.com/@rc-component/portal@1.1.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-dialog: registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0) - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-B6rziPOLRmeP7kcS5qbdC5hXvvDHYKV4vUxmahevYx2E6crS2bRi0xLDjhJ0E1HtOWo8rTmaE2EBJAkTCZOLdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-input-number/-/rc-input-number-8.4.0.tgz} - id: registry.npmmirror.com/rc-input-number/8.4.0 - name: rc-input-number - version: 8.4.0 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/mini-decimal': registry.npmmirror.com/@rc-component/mini-decimal@1.1.0 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-/HjTaKi8/Ts4zNbYaB5oWCquxFyFQO4Co1MnMgoCeGJlpe7k8Eir2HN0a0F9IHDmmo+GYiGgPpz7w/d/krzsJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-input/-/rc-input-1.3.6.tgz} - id: registry.npmmirror.com/rc-input/1.3.6 - name: rc-input - version: 1.3.6 - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-cZuElWr/5Ws0PXx1uxobxfYh4mqUw2FitfabR62YnWgm+WAfDyXZXqZg5DxXW+M1cgVvntrQgDDd9LrihrXzew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-mentions/-/rc-mentions-2.9.1.tgz} - id: registry.npmmirror.com/rc-mentions/2.9.1 - name: rc-mentions - version: 2.9.1 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) - rc-menu: registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0) - rc-textarea: registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-NzloFH2pRUYmQ3S/YbJAvRkgCZaLvq0sRa5rgJtuIHLfPPprNHNyepeSlT64+dbVqI4qRWL44VN0lUCldCbbfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-menu/-/rc-menu-9.12.2.tgz} - id: registry.npmmirror.com/rc-menu/9.12.2 - name: rc-menu - version: 9.12.2 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-overflow: registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-XIU2+xLkdIr1/h6ohPZXyPBMvOmuyFZQ/T0xnawz+Rh+gh4FINcnZmMT5UTIj6hgI0VLDjTaPeRd+smJeSPqiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-motion/-/rc-motion-2.9.0.tgz} - id: registry.npmmirror.com/rc-motion/2.9.0 - name: rc-motion - version: 2.9.0 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-WCf0uCOkZ3HGfF0p1H4Sgt7aWfipxORWTPp7o6prA3vxwtWhtug3GfpYls1pnBp4WA+j8vGIi5c2/hQRpGzPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-notification/-/rc-notification-5.3.0.tgz} - id: registry.npmmirror.com/rc-notification/5.3.0 - name: rc-notification - version: 5.3.0 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-nsUm78jkYAoPygDAcGZeC2VwIg/IBGSodtOY3pMof4W3M9qRJgqaDYm03ZayHlde3I6ipliAxbN0RUcGf5KOzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-overflow/-/rc-overflow-1.3.2.tgz} - id: registry.npmmirror.com/rc-overflow/1.3.2 - name: rc-overflow - version: 1.3.2 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-pagination@3.7.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-IxSzKapd13L91/195o1TPkKnCNw8gIR25UP1GCW/7c7n/slhld4npu2j2PB9IWjXm4SssaAaSAt2lscYog7wzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-pagination/-/rc-pagination-3.7.0.tgz} - id: registry.npmmirror.com/rc-pagination/3.7.0 - name: rc-pagination - version: 3.7.0 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-AdKKW0AqMwZsKvIpwUWDUnpuGKZVrbxVTZTNjcO+pViGkjC1EBcjMgxVe8tomOEaIHJL5Gd13vS8Rr3zzxWmag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-picker/-/rc-picker-3.14.6.tgz} - id: registry.npmmirror.com/rc-picker/3.14.6 - name: rc-picker - version: 3.14.6 - engines: {node: '>=8.x'} - peerDependencies: - date-fns: '>= 2.x' - dayjs: '>= 1.x' - luxon: '>= 3.x' - moment: '>= 2.x' - react: '>=16.9.0' - react-dom: '>=16.9.0' - peerDependenciesMeta: - date-fns: - optional: true - dayjs: - optional: true - luxon: - optional: true - moment: - optional: true - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - dayjs: registry.npmmirror.com/dayjs@1.11.10 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-progress/-/rc-progress-3.5.1.tgz} - id: registry.npmmirror.com/rc-progress/3.5.1 - name: rc-progress - version: 3.5.1 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-g092v5iZCdVzbjdn28FzvWebK2IutoVoiTeqoLTj9WM7SjA/gOJIw5/JFZMRyJYYVe1jLAU2UhAfstIpCNRozg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-rate/-/rc-rate-2.12.0.tgz} - id: registry.npmmirror.com/rc-rate/2.12.0 - name: rc-rate - version: 2.12.0 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-PnMVyRid9JLxFavTjeDXEXo65HCRqbmLBw9xX9gfC4BZiSzbLXKzW3jPz+J0P71pLbD5tBMTT+mkstV5gD0c9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-resize-observer/-/rc-resize-observer-1.4.0.tgz} - id: registry.npmmirror.com/rc-resize-observer/1.4.0 - name: rc-resize-observer - version: 1.4.0 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 - dev: false - - registry.npmmirror.com/rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Mq52M96QdHMsNdE/042ibT5vkcGcD5jxKp7HgPC2SRofpia99P5fkfHy1pEaajLMF/kj0+2Lkq1UZRvqzo9mSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-segmented/-/rc-segmented-2.2.2.tgz} - id: registry.npmmirror.com/rc-segmented/2.2.2 - name: rc-segmented - version: 2.2.2 - peerDependencies: - react: '>=16.0.0' - react-dom: '>=16.0.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-TsIJTYafTTapCA32LLNpx/AD6ntepR1TG8jEVx35NiAAWCPymhUfuca8kRcUNd3WIGVMDcMKn9kkphoxEz+6Ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-select/-/rc-select-14.10.0.tgz} - id: registry.npmmirror.com/rc-select/14.10.0 - name: rc-select - version: 14.10.0 - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-overflow: registry.npmmirror.com/rc-overflow@1.3.2(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-slider@10.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-ZlpWjFhOlEf0w4Ng31avFBkXNNBj60NAcTPaIoiCxBkJ29wOtHSPMqv9PZeEoqmx64bpJkgK7kPa47HG4LPzww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-slider/-/rc-slider-10.4.0.tgz} - id: registry.npmmirror.com/rc-slider/10.4.0 - name: rc-slider - version: 10.4.0 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-lKHL+Sny0SeHkQKKDJlAjV5oZ8DwCdS2hFhAkIjuQt1/pB81M0cA0ErVFdHq9+jmPmFw1vJB2F5NBzFXLJxV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-steps/-/rc-steps-6.0.1.tgz} - id: registry.npmmirror.com/rc-steps/6.0.1 - name: rc-steps - version: 6.0.1 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-TI8ufP2Az9oEbvyCeVE4+90PDSljGyuwix3fV58p7HV2o4wBnVToEyomJRVyTaZeqNPAp+vqeo4Wnj5u0ZZQBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-switch/-/rc-switch-4.1.0.tgz} - id: registry.npmmirror.com/rc-switch/4.1.0 - name: rc-switch - version: 4.1.0 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-3xVcdCC5OLeOOhaCg+5Lps2oPreM/GWXmUXWTSX4p6vF7F76ABM4dfPpMJ9Dnf5yGRyh+8pe7FRyhRVnWw2H/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-table/-/rc-table-7.36.0.tgz} - id: registry.npmmirror.com/rc-table/7.36.0 - name: rc-table - version: 7.36.0 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/context': registry.npmmirror.com/@rc-component/context@1.4.0(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-tabs@12.13.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-83u3l2QkO0UznCzdBLEk9WnNcT+imtmDmMT993sUUEOGnNQAmqOdev0XjeqrcvsAMe9CDpAWDFd7L/RZw+LVJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tabs/-/rc-tabs-12.13.1.tgz} - id: registry.npmmirror.com/rc-tabs/12.13.1 - name: rc-tabs - version: 12.13.1 - engines: {node: '>=8.x'} - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) - rc-menu: registry.npmmirror.com/rc-menu@9.12.2(react-dom@18.2.0)(react@18.2.0) - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-oH682ghHx++stFNYrosPRBfwsypywrTXpaD0/5Z8MPkUOnyOQUaY9ueL9tMu6BP1LfsuYQ1VLpg5OtshViLNgA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-textarea/-/rc-textarea-1.5.3.tgz} - id: registry.npmmirror.com/rc-textarea/1.5.3 - name: rc-textarea - version: 1.5.3 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-input: registry.npmmirror.com/rc-input@1.3.6(react-dom@18.2.0)(react@18.2.0) - rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-tooltip@6.1.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-89zwvybvCxGJu3+gGF8w5AXd4HHk6hIN7K0vZbkzjilVaEAIWPqc1fcyeUeP71n3VCcw7pTL9LyFupFbrx8gHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.1.2.tgz} - id: registry.npmmirror.com/rc-tooltip/6.1.2 - name: rc-tooltip - version: 6.1.2 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) - classnames: registry.npmmirror.com/classnames@2.3.2 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.15.0.tgz} - id: registry.npmmirror.com/rc-tree-select/5.15.0 - name: rc-tree-select - version: 5.15.0 - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) - rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-xH/fcgLHWTLmrSuNphU8XAqV7CdaOQgm4KywlLGNoTMhDAcNR3GVNP6cZzb0GrKmIZ9yae+QLot/cAgUdPRMzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tree/-/rc-tree-5.8.2.tgz} - id: registry.npmmirror.com/rc-tree/5.8.2 - name: rc-tree - version: 5.8.2 - engines: {node: '>=10.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - rc-virtual-list: registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-EHlKJbhkgFSQHliTj9v/2K5aEuFwfUQgZARzD7AmAPOneZEPiCNF3n6PEWIuqz9h7oq6FuXgdR67sC5BWFxJbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-upload/-/rc-upload-4.3.5.tgz} - id: registry.npmmirror.com/rc-upload/4.3.5 - name: rc-upload - version: 4.3.5 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-e4ZMs7q9XqwTuhIK7zBIVFltUtMSjphuPPQXHoHlzRzNdOwUxDejo0Zls5HYaJfRKNURcsS/ceKVULlhjBrxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-util/-/rc-util-5.38.1.tgz} - id: registry.npmmirror.com/rc-util/5.38.1 - name: rc-util - version: 5.38.1 - peerDependencies: - react: '>=16.9.0' - react-dom: '>=16.9.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-is: registry.npmmirror.com/react-is@18.2.0 - dev: false - - registry.npmmirror.com/rc-virtual-list@3.11.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-tu5UtrMk/AXonHwHxUogdXAWynaXsrx1i6dsgg+lOo/KJSF8oBAcprh1z5J3xgnPJD5hXxTL58F8s8onokdt0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-virtual-list/-/rc-virtual-list-3.11.3.tgz} - id: registry.npmmirror.com/rc-virtual-list/3.11.3 - name: rc-virtual-list - version: 3.11.3 - engines: {node: '>=8.x'} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - classnames: registry.npmmirror.com/classnames@2.3.2 - rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) - rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz} - name: rc - version: 1.2.8 - hasBin: true - dependencies: - deep-extend: registry.npmmirror.com/deep-extend@0.6.0 - ini: registry.npmmirror.com/ini@1.3.8 - minimist: registry.npmmirror.com/minimist@1.2.8 - strip-json-comments: registry.npmmirror.com/strip-json-comments@2.0.1 - dev: false - - registry.npmmirror.com/react-copy-to-clipboard@5.1.0(react@18.2.0): - resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz} - id: registry.npmmirror.com/react-copy-to-clipboard/5.1.0 - name: react-copy-to-clipboard - version: 5.1.0 - peerDependencies: - react: ^15.3.0 || 16 || 17 || 18 - dependencies: - copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 - prop-types: registry.npmmirror.com/prop-types@15.8.1 - react: 18.2.0 - dev: false - - registry.npmmirror.com/react-detectable-overflow@0.7.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-6ZotWaoCChrd9/ZISopZwpDN4kJkFNSX7zvDWF56HIzHdx8DfMQ78P4JAy0ZoAUi+9gDrhRynXaONCYVEvxDog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-detectable-overflow/-/react-detectable-overflow-0.7.1.tgz} - id: registry.npmmirror.com/react-detectable-overflow/0.7.1 - name: react-detectable-overflow - version: 0.7.1 - engines: {node: '>=18'} - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-resize-detector: registry.npmmirror.com/react-resize-detector@8.1.0(react-dom@18.2.0)(react@18.2.0) - dev: false - - registry.npmmirror.com/react-dom@18.1.0(react@18.1.0): - resolution: {integrity: sha512-fU1Txz7Budmvamp7bshe4Zi32d0ll7ect+ccxNu9FlObT605GOEB8BfO4tmRJ39R5Zj831VCpvQ05QPBW5yb+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-dom/-/react-dom-18.1.0.tgz} - id: registry.npmmirror.com/react-dom/18.1.0 - name: react-dom - version: 18.1.0 - peerDependencies: - react: ^18.1.0 - dependencies: - loose-envify: registry.npmmirror.com/loose-envify@1.4.0 - react: registry.npmmirror.com/react@18.1.0 - scheduler: registry.npmmirror.com/scheduler@0.22.0 - dev: false - - registry.npmmirror.com/react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.5.tgz} - id: registry.npmmirror.com/react-draggable/4.4.5 - name: react-draggable - version: 4.4.5 - peerDependencies: - react: '>= 16.3.0' - react-dom: '>= 16.3.0' - dependencies: - clsx: registry.npmmirror.com/clsx@1.2.1 - prop-types: registry.npmmirror.com/prop-types@15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/react-error-boundary@4.0.11(react@18.2.0): - resolution: {integrity: sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-error-boundary/-/react-error-boundary-4.0.11.tgz} - id: registry.npmmirror.com/react-error-boundary/4.0.11 - name: react-error-boundary - version: 4.0.11 - peerDependencies: - react: '>=16.13.1' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - react: 18.2.0 - dev: false - - registry.npmmirror.com/react-error-overlay@6.0.9: - resolution: {integrity: sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-error-overlay/-/react-error-overlay-6.0.9.tgz} - name: react-error-overlay - version: 6.0.9 - dev: false - - registry.npmmirror.com/react-fast-compare@3.2.2: - resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-fast-compare/-/react-fast-compare-3.2.2.tgz} - name: react-fast-compare - version: 3.2.2 - dev: false - - registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.1.0)(react@18.1.0): - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz} - id: registry.npmmirror.com/react-helmet-async/1.3.0 - name: react-helmet-async - version: 1.3.0 - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - invariant: registry.npmmirror.com/invariant@2.2.4 - prop-types: registry.npmmirror.com/prop-types@15.8.1 - react: registry.npmmirror.com/react@18.1.0 - react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) - react-fast-compare: registry.npmmirror.com/react-fast-compare@3.2.2 - shallowequal: registry.npmmirror.com/shallowequal@1.1.0 - dev: false - - registry.npmmirror.com/react-helmet-async@1.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz} - id: registry.npmmirror.com/react-helmet-async/1.3.0 - name: react-helmet-async - version: 1.3.0 - peerDependencies: - react: ^16.6.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - invariant: registry.npmmirror.com/invariant@2.2.4 - prop-types: registry.npmmirror.com/prop-types@15.8.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-fast-compare: registry.npmmirror.com/react-fast-compare@3.2.2 - shallowequal: registry.npmmirror.com/shallowequal@1.1.0 - dev: false - - registry.npmmirror.com/react-intl@6.5.5(react@18.2.0)(typescript@5.3.2): - resolution: {integrity: sha512-cI5UKvBh4tc1zxLIziHBYGMX3dhYWDEFlvUDVN6NfT2i96zTXz/zH2AmM8+2waqgOhwkFUzd+7kK1G9q7fiC2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-intl/-/react-intl-6.5.5.tgz} - id: registry.npmmirror.com/react-intl/6.5.5 - name: react-intl - version: 6.5.5 - peerDependencies: - react: ^16.6.0 || 17 || 18 - typescript: '5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@formatjs/ecma402-abstract': registry.npmmirror.com/@formatjs/ecma402-abstract@1.18.0 - '@formatjs/icu-messageformat-parser': registry.npmmirror.com/@formatjs/icu-messageformat-parser@2.7.3 - '@formatjs/intl': registry.npmmirror.com/@formatjs/intl@2.9.9(typescript@5.3.2) - '@formatjs/intl-displaynames': registry.npmmirror.com/@formatjs/intl-displaynames@6.6.4 - '@formatjs/intl-listformat': registry.npmmirror.com/@formatjs/intl-listformat@7.5.3 - '@types/hoist-non-react-statics': registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5 - '@types/react': registry.npmmirror.com/@types/react@18.2.38 - hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 - intl-messageformat: registry.npmmirror.com/intl-messageformat@10.5.8 - react: 18.2.0 - tslib: registry.npmmirror.com/tslib@2.6.2 - typescript: 5.3.2 - dev: false - - registry.npmmirror.com/react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz} - name: react-is - version: 16.13.1 - dev: false - - registry.npmmirror.com/react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz} - name: react-is - version: 18.2.0 - dev: false - - registry.npmmirror.com/react-layout-kit@1.7.4(react@18.2.0): - resolution: {integrity: sha512-Ovvyb56kOAZCbytaXTHsWEVPHaBP368Q0jLqq37SythSibk9iB+op9iGjFPrGByWIaeslg5LcnSXjRxd4tT2ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-layout-kit/-/react-layout-kit-1.7.4.tgz} - id: registry.npmmirror.com/react-layout-kit/1.7.4 - name: react-layout-kit - version: 1.7.4 - peerDependencies: - react: '>=18' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - '@emotion/css': registry.npmmirror.com/@emotion/css@11.11.2 - react: 18.2.0 - dev: false - - registry.npmmirror.com/react-merge-refs@1.1.0: - resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz} - name: react-merge-refs - version: 1.1.0 - dev: false - - registry.npmmirror.com/react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.0.tgz} - name: react-refresh - version: 0.14.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/react-resizable@3.0.5(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-resizable/-/react-resizable-3.0.5.tgz} - id: registry.npmmirror.com/react-resizable/3.0.5 - name: react-resizable - version: 3.0.5 - peerDependencies: - react: '>= 16.3' - dependencies: - prop-types: registry.npmmirror.com/prop-types@15.8.1 - react: 18.2.0 - react-draggable: registry.npmmirror.com/react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0) - transitivePeerDependencies: - - react-dom - dev: false - - registry.npmmirror.com/react-resize-detector@8.1.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-S7szxlaIuiy5UqLhLL1KY3aoyGHbZzsTpYal9eYMwCyKqoqoVLCmIgAgNyIM1FhnP2KyBygASJxdhejrzjMb+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-resize-detector/-/react-resize-detector-8.1.0.tgz} - id: registry.npmmirror.com/react-resize-detector/8.1.0 - name: react-resize-detector - version: 8.1.0 - peerDependencies: - react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 - dependencies: - lodash: registry.npmmirror.com/lodash@4.17.21 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0): - resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz} - id: registry.npmmirror.com/react-router-dom/6.3.0 - name: react-router-dom - version: 6.3.0 - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - history: registry.npmmirror.com/history@5.3.0 - react: registry.npmmirror.com/react@18.1.0 - react-dom: registry.npmmirror.com/react-dom@18.1.0(react@18.1.0) - react-router: registry.npmmirror.com/react-router@6.3.0(react@18.1.0) - dev: false - - registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz} - id: registry.npmmirror.com/react-router-dom/6.3.0 - name: react-router-dom - version: 6.3.0 - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - history: registry.npmmirror.com/history@5.3.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-router: registry.npmmirror.com/react-router@6.3.0(react@18.2.0) - dev: false - - registry.npmmirror.com/react-router@6.3.0(react@18.1.0): - resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz} - id: registry.npmmirror.com/react-router/6.3.0 - name: react-router - version: 6.3.0 - peerDependencies: - react: '>=16.8' - dependencies: - history: registry.npmmirror.com/history@5.3.0 - react: registry.npmmirror.com/react@18.1.0 - dev: false - - registry.npmmirror.com/react-router@6.3.0(react@18.2.0): - resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz} - id: registry.npmmirror.com/react-router/6.3.0 - name: react-router - version: 6.3.0 - peerDependencies: - react: '>=16.8' - dependencies: - history: registry.npmmirror.com/history@5.3.0 - react: 18.2.0 - dev: false - - registry.npmmirror.com/react-syntax-highlighter@15.5.0(react@18.2.0): - resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz} - id: registry.npmmirror.com/react-syntax-highlighter/15.5.0 - name: react-syntax-highlighter - version: 15.5.0 - peerDependencies: - react: '>= 0.14.0' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - highlight.js: registry.npmmirror.com/highlight.js@10.7.3 - lowlight: registry.npmmirror.com/lowlight@1.20.0 - prismjs: registry.npmmirror.com/prismjs@1.29.0 - react: 18.2.0 - refractor: registry.npmmirror.com/refractor@3.6.0 - dev: false - - registry.npmmirror.com/react@18.1.0: - resolution: {integrity: sha512-4oL8ivCz5ZEPyclFQXaNksK3adutVS8l2xzZU0cqEFrE9Sb7fC0EFK5uEk74wIreL1DERyjvsU915j1pcT2uEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react/-/react-18.1.0.tgz} - name: react - version: 18.1.0 - engines: {node: '>=0.10.0'} - dependencies: - loose-envify: registry.npmmirror.com/loose-envify@1.4.0 - dev: false - - registry.npmmirror.com/read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz} - name: read-pkg-up - version: 7.0.1 - engines: {node: '>=8'} - dependencies: - find-up: registry.npmmirror.com/find-up@4.1.0 - read-pkg: registry.npmmirror.com/read-pkg@5.2.0 - type-fest: registry.npmmirror.com/type-fest@0.8.1 - dev: false - - registry.npmmirror.com/read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/read-pkg/-/read-pkg-5.2.0.tgz} - name: read-pkg - version: 5.2.0 - engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': registry.npmmirror.com/@types/normalize-package-data@2.4.4 - normalize-package-data: registry.npmmirror.com/normalize-package-data@2.5.0 - parse-json: registry.npmmirror.com/parse-json@5.2.0 - type-fest: registry.npmmirror.com/type-fest@0.6.0 - dev: false - - registry.npmmirror.com/readable-stream@1.0.34: - resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-1.0.34.tgz} - name: readable-stream - version: 1.0.34 - dependencies: - core-util-is: registry.npmmirror.com/core-util-is@1.0.3 - inherits: registry.npmmirror.com/inherits@2.0.4 - isarray: registry.npmmirror.com/isarray@0.0.1 - string_decoder: registry.npmmirror.com/string_decoder@0.10.31 - dev: false - - registry.npmmirror.com/readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz} - name: readable-stream - version: 2.3.8 - dependencies: - core-util-is: registry.npmmirror.com/core-util-is@1.0.3 - inherits: registry.npmmirror.com/inherits@2.0.4 - isarray: registry.npmmirror.com/isarray@1.0.0 - process-nextick-args: registry.npmmirror.com/process-nextick-args@2.0.1 - safe-buffer: registry.npmmirror.com/safe-buffer@5.1.2 - string_decoder: registry.npmmirror.com/string_decoder@1.1.1 - util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 - dev: false - - registry.npmmirror.com/readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz} - name: readable-stream - version: 3.6.2 - engines: {node: '>= 6'} - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - string_decoder: registry.npmmirror.com/string_decoder@1.3.0 - util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 - dev: false - - registry.npmmirror.com/readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz} - name: readdirp - version: 3.6.0 - engines: {node: '>=8.10.0'} - dependencies: - picomatch: registry.npmmirror.com/picomatch@2.3.1 - dev: false - - registry.npmmirror.com/real-require@0.1.0: - resolution: {integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/real-require/-/real-require-0.1.0.tgz} - name: real-require - version: 0.1.0 - engines: {node: '>= 12.13.0'} - dev: false - - registry.npmmirror.com/redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/redent/-/redent-3.0.0.tgz} - name: redent - version: 3.0.0 - engines: {node: '>=8'} - dependencies: - indent-string: registry.npmmirror.com/indent-string@4.0.0 - strip-indent: registry.npmmirror.com/strip-indent@3.0.0 - dev: false - - registry.npmmirror.com/reflect.getprototypeof@1.0.4: - resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz} - name: reflect.getprototypeof - version: 1.0.4 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - globalthis: registry.npmmirror.com/globalthis@1.0.3 - which-builtin-type: registry.npmmirror.com/which-builtin-type@1.1.3 - dev: false - - registry.npmmirror.com/refractor@3.6.0: - resolution: {integrity: sha512-MY9W41IOWxxk31o+YvFCNyNzdkc9M20NoZK5vq6jkv4I/uh2zkWcfudj0Q1fovjUQJrNewS9NMzeTtqPf+n5EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/refractor/-/refractor-3.6.0.tgz} - name: refractor - version: 3.6.0 - dependencies: - hastscript: registry.npmmirror.com/hastscript@6.0.0 - parse-entities: registry.npmmirror.com/parse-entities@2.0.0 - prismjs: registry.npmmirror.com/prismjs@1.27.0 - dev: false - - registry.npmmirror.com/regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz} - name: regenerate-unicode-properties - version: 10.1.1 - engines: {node: '>=4'} - dependencies: - regenerate: registry.npmmirror.com/regenerate@1.4.2 - dev: false - - registry.npmmirror.com/regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz} - name: regenerate - version: 1.4.2 - dev: false - - registry.npmmirror.com/regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz} - name: regenerator-runtime - version: 0.13.11 - dev: false - - registry.npmmirror.com/regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz} - name: regenerator-runtime - version: 0.14.0 - dev: false - - registry.npmmirror.com/regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz} - name: regexp.prototype.flags - version: 1.5.1 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - set-function-name: registry.npmmirror.com/set-function-name@2.0.1 - dev: false - - registry.npmmirror.com/registry-auth-token@3.4.0: - resolution: {integrity: sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz} - name: registry-auth-token - version: 3.4.0 - dependencies: - rc: registry.npmmirror.com/rc@1.2.8 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/registry-url@3.1.0: - resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/registry-url/-/registry-url-3.1.0.tgz} - name: registry-url - version: 3.1.0 - engines: {node: '>=0.10.0'} - dependencies: - rc: registry.npmmirror.com/rc@1.2.8 - dev: false - - registry.npmmirror.com/rehype-autolink-headings@6.1.1: - resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-autolink-headings/-/rehype-autolink-headings-6.1.1.tgz} - name: rehype-autolink-headings - version: 6.1.1 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - extend: registry.npmmirror.com/extend@3.0.2 - hast-util-has-property: registry.npmmirror.com/hast-util-has-property@2.0.1 - hast-util-heading-rank: registry.npmmirror.com/hast-util-heading-rank@2.1.1 - hast-util-is-element: registry.npmmirror.com/hast-util-is-element@2.1.3 - unified: registry.npmmirror.com/unified@10.1.2 - unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 - dev: false - - registry.npmmirror.com/rehype-remove-comments@5.0.0: - resolution: {integrity: sha512-sfiVT+u1in19sxo9vv/SDQVbHE2mADScNrpeVsUxBFl14zOMZnfPb6l4hR+lXqe10G13UFVqv5pt8zDbCR4JYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-remove-comments/-/rehype-remove-comments-5.0.0.tgz} - name: rehype-remove-comments - version: 5.0.0 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - hast-util-is-conditional-comment: registry.npmmirror.com/hast-util-is-conditional-comment@2.0.0 - unified: registry.npmmirror.com/unified@10.1.2 - unist-util-filter: registry.npmmirror.com/unist-util-filter@4.0.1 - dev: false - - registry.npmmirror.com/rehype-stringify@9.0.4: - resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-9.0.4.tgz} - name: rehype-stringify - version: 9.0.4 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - hast-util-to-html: registry.npmmirror.com/hast-util-to-html@8.0.4 - unified: registry.npmmirror.com/unified@10.1.2 - dev: false - - registry.npmmirror.com/relateurl@0.2.7: - resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz} - name: relateurl - version: 0.2.7 - engines: {node: '>= 0.10'} - dev: false - - registry.npmmirror.com/remark-directive@2.0.1: - resolution: {integrity: sha512-oosbsUAkU/qmUE78anLaJePnPis4ihsE7Agp0T/oqTzvTea8pOiaYEtfInU/+xMOVTS9PN5AhGOiaIVe4GD8gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-directive/-/remark-directive-2.0.1.tgz} - name: remark-directive - version: 2.0.1 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-directive: registry.npmmirror.com/mdast-util-directive@2.2.4 - micromark-extension-directive: registry.npmmirror.com/micromark-extension-directive@2.2.1 - unified: registry.npmmirror.com/unified@10.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/remark-frontmatter@4.0.1: - resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz} - name: remark-frontmatter - version: 4.0.1 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-frontmatter: registry.npmmirror.com/mdast-util-frontmatter@1.0.1 - micromark-extension-frontmatter: registry.npmmirror.com/micromark-extension-frontmatter@1.1.1 - unified: registry.npmmirror.com/unified@10.1.2 - dev: false - - registry.npmmirror.com/remark-gfm@3.0.1: - resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-gfm/-/remark-gfm-3.0.1.tgz} - name: remark-gfm - version: 3.0.1 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-gfm: registry.npmmirror.com/mdast-util-gfm@2.0.2 - micromark-extension-gfm: registry.npmmirror.com/micromark-extension-gfm@2.0.3 - unified: registry.npmmirror.com/unified@10.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/remark-parse@10.0.2: - resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-parse/-/remark-parse-10.0.2.tgz} - name: remark-parse - version: 10.0.2 - dependencies: - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-from-markdown: registry.npmmirror.com/mdast-util-from-markdown@1.3.1 - unified: registry.npmmirror.com/unified@10.1.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/remark-rehype@10.1.0: - resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remark-rehype/-/remark-rehype-10.1.0.tgz} - name: remark-rehype - version: 10.1.0 - dependencies: - '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 - '@types/mdast': registry.npmmirror.com/@types/mdast@3.0.15 - mdast-util-to-hast: registry.npmmirror.com/mdast-util-to-hast@12.3.0 - unified: registry.npmmirror.com/unified@10.1.2 - dev: false - - registry.npmmirror.com/remote-origin-url@0.4.0: - resolution: {integrity: sha512-HYhdsT2pNd0LP4Osb0vtQ1iassxIc3Yk1oze7j8dMJFciMkW8e0rdg9E/mOunqtSVHSzvMfwLDIYzPnEDmpk6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remote-origin-url/-/remote-origin-url-0.4.0.tgz} - name: remote-origin-url - version: 0.4.0 - engines: {node: '>= 0.8.0'} - dependencies: - parse-git-config: registry.npmmirror.com/parse-git-config@0.2.0 - dev: false - - registry.npmmirror.com/remote-origin-url@0.5.3: - resolution: {integrity: sha512-crQ7Xk1m/F2IiwBx5oTqk/c0hjoumrEz+a36+ZoVupskQRE/q7pAwHKsTNeiZ31sbSTELvVlVv4h1W0Xo5szKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/remote-origin-url/-/remote-origin-url-0.5.3.tgz} - name: remote-origin-url - version: 0.5.3 - engines: {node: '>= 0.8.0'} - dependencies: - parse-git-config: registry.npmmirror.com/parse-git-config@1.1.1 - dev: false - - registry.npmmirror.com/rename-keys@1.2.0: - resolution: {integrity: sha512-U7XpAktpbSgHTRSNRrjKSrjYkZKuhUukfoBlXWXUExCAqhzh1TU3BDRAfJmarcl5voKS+pbKU9MvyLWKZ4UEEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rename-keys/-/rename-keys-1.2.0.tgz} - name: rename-keys - version: 1.2.0 - engines: {node: '>= 0.8.0'} - dev: false - - registry.npmmirror.com/renderkid@3.0.0: - resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz} - name: renderkid - version: 3.0.0 - dependencies: - css-select: registry.npmmirror.com/css-select@4.3.0 - dom-converter: registry.npmmirror.com/dom-converter@0.2.0 - htmlparser2: registry.npmmirror.com/htmlparser2@6.1.0 - lodash: registry.npmmirror.com/lodash@4.17.21 - strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - dev: false - - registry.npmmirror.com/require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz} - name: require-directory - version: 2.1.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz} - name: require-from-string - version: 2.0.2 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/resize-observer-polyfill@1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz} - name: resize-observer-polyfill - version: 1.5.1 - dev: false - - registry.npmmirror.com/resolve-dir@0.1.1: - resolution: {integrity: sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-dir/-/resolve-dir-0.1.1.tgz} - name: resolve-dir - version: 0.1.1 - engines: {node: '>=0.10.0'} - dependencies: - expand-tilde: registry.npmmirror.com/expand-tilde@1.2.2 - global-modules: registry.npmmirror.com/global-modules@0.2.3 - dev: false - - registry.npmmirror.com/resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz} - name: resolve-from - version: 4.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz} - name: resolve-from - version: 5.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz} - name: resolve-pkg-maps - version: 1.0.0 - dev: false - - registry.npmmirror.com/resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz} - name: resolve - version: 1.22.8 - hasBin: true - dependencies: - is-core-module: registry.npmmirror.com/is-core-module@2.13.1 - path-parse: registry.npmmirror.com/path-parse@1.0.7 - supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 - dev: false - - registry.npmmirror.com/resolve@2.0.0-next.5: - resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-2.0.0-next.5.tgz} - name: resolve - version: 2.0.0-next.5 - hasBin: true - dependencies: - is-core-module: registry.npmmirror.com/is-core-module@2.13.1 - path-parse: registry.npmmirror.com/path-parse@1.0.7 - supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0 - dev: false - - registry.npmmirror.com/restore-cursor@2.0.0: - resolution: {integrity: sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/restore-cursor/-/restore-cursor-2.0.0.tgz} - name: restore-cursor - version: 2.0.0 - engines: {node: '>=4'} - dependencies: - onetime: registry.npmmirror.com/onetime@2.0.1 - signal-exit: registry.npmmirror.com/signal-exit@3.0.7 - dev: false - - registry.npmmirror.com/retry@0.10.1: - resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/retry/-/retry-0.10.1.tgz} - name: retry - version: 0.10.1 - dev: false - - registry.npmmirror.com/reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz} - name: reusify - version: 1.0.4 - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz} - name: rimraf - version: 2.7.1 - hasBin: true - dependencies: - glob: registry.npmmirror.com/glob@7.2.3 - dev: false - - registry.npmmirror.com/rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz} - name: rimraf - version: 3.0.2 - hasBin: true - dependencies: - glob: registry.npmmirror.com/glob@7.2.3 - dev: false - - registry.npmmirror.com/ripemd160@2.0.2: - resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz} - name: ripemd160 - version: 2.0.2 - dependencies: - hash-base: registry.npmmirror.com/hash-base@3.1.0 - inherits: registry.npmmirror.com/inherits@2.0.4 - dev: false - - registry.npmmirror.com/rollup-plugin-visualizer@5.9.0(rollup@4.5.2): - resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz} - id: registry.npmmirror.com/rollup-plugin-visualizer/5.9.0 - name: rollup-plugin-visualizer - version: 5.9.0 - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x - peerDependenciesMeta: - rollup: - optional: true - dependencies: - open: registry.npmmirror.com/open@8.4.2 - picomatch: registry.npmmirror.com/picomatch@2.3.1 - rollup: 4.5.2 - source-map: registry.npmmirror.com/source-map@0.7.4 - yargs: registry.npmmirror.com/yargs@17.7.2 - dev: false - - registry.npmmirror.com/rollup@3.29.4: - resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz} - name: rollup - version: 3.29.4 - engines: {node: '>=14.18.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: false - - registry.npmmirror.com/run-applescript@5.0.0: - resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz} - name: run-applescript - version: 5.0.0 - engines: {node: '>=12'} - dependencies: - execa: registry.npmmirror.com/execa@5.1.1 - dev: false - - registry.npmmirror.com/run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-async/-/run-async-2.4.1.tgz} - name: run-async - version: 2.4.1 - engines: {node: '>=0.12.0'} - dev: false - - registry.npmmirror.com/run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz} - name: run-parallel - version: 1.2.0 - dependencies: - queue-microtask: registry.npmmirror.com/queue-microtask@1.2.3 - dev: false - - registry.npmmirror.com/run-queue@1.0.3: - resolution: {integrity: sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-queue/-/run-queue-1.0.3.tgz} - name: run-queue - version: 1.0.3 - dependencies: - aproba: registry.npmmirror.com/aproba@1.2.0 - dev: false - - registry.npmmirror.com/rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/-/rxjs-6.6.7.tgz} - name: rxjs - version: 6.6.7 - engines: {npm: '>=2.0.0'} - dependencies: - tslib: registry.npmmirror.com/tslib@1.14.1 - dev: false - - registry.npmmirror.com/sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sade/-/sade-1.8.1.tgz} - name: sade - version: 1.8.1 - engines: {node: '>=6'} - dependencies: - mri: registry.npmmirror.com/mri@1.2.0 - dev: false - - registry.npmmirror.com/safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz} - name: safe-array-concat - version: 1.0.1 - engines: {node: '>=0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - isarray: registry.npmmirror.com/isarray@2.0.5 - dev: false - - registry.npmmirror.com/safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz} - name: safe-buffer - version: 5.1.2 - dev: false - - registry.npmmirror.com/safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz} - name: safe-buffer - version: 5.2.1 - dev: false - - registry.npmmirror.com/safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz} - name: safe-regex-test - version: 1.0.0 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - is-regex: registry.npmmirror.com/is-regex@1.1.4 - dev: false - - registry.npmmirror.com/safe-stable-stringify@2.4.3: - resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz} - name: safe-stable-stringify - version: 2.4.3 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz} - name: safer-buffer - version: 2.1.2 - dev: false - - registry.npmmirror.com/sass@1.69.5: - resolution: {integrity: sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sass/-/sass-1.69.5.tgz} - name: sass - version: 1.69.5 - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - chokidar: registry.npmmirror.com/chokidar@3.5.3 - immutable: registry.npmmirror.com/immutable@4.3.4 - source-map-js: registry.npmmirror.com/source-map-js@1.0.2 - dev: false - - registry.npmmirror.com/sax@1.2.4: - resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz} - name: sax - version: 1.2.4 - dev: false - - registry.npmmirror.com/sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sax/-/sax-1.3.0.tgz} - name: sax - version: 1.3.0 - dev: false - - registry.npmmirror.com/scheduler@0.22.0: - resolution: {integrity: sha512-6QAm1BgQI88NPYymgGQLCZgvep4FyePDWFpXVK+zNSUgHwlqpJy8VEh8Et0KxTACS4VWwMousBElAZOH9nkkoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scheduler/-/scheduler-0.22.0.tgz} - name: scheduler - version: 0.22.0 - dependencies: - loose-envify: registry.npmmirror.com/loose-envify@1.4.0 - dev: false - - registry.npmmirror.com/schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz} - name: schema-utils - version: 3.3.0 - engines: {node: '>= 10.13.0'} - dependencies: - '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 - ajv: registry.npmmirror.com/ajv@6.12.6 - ajv-keywords: registry.npmmirror.com/ajv-keywords@3.5.2(ajv@6.12.6) - dev: false - - registry.npmmirror.com/screenfull@5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/screenfull/-/screenfull-5.2.0.tgz} - name: screenfull - version: 5.2.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/scroll-into-view-if-needed@3.1.0: - resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz} - name: scroll-into-view-if-needed - version: 3.1.0 - dependencies: - compute-scroll-into-view: registry.npmmirror.com/compute-scroll-into-view@3.1.0 - dev: false - - registry.npmmirror.com/selderee@0.11.0: - resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/selderee/-/selderee-0.11.0.tgz} - name: selderee - version: 0.11.0 - dependencies: - parseley: registry.npmmirror.com/parseley@0.12.1 - dev: false - - registry.npmmirror.com/select-hose@2.0.0: - resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz} - name: select-hose - version: 2.0.0 - dev: false - - registry.npmmirror.com/semver-diff@2.1.0: - resolution: {integrity: sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver-diff/-/semver-diff-2.1.0.tgz} - name: semver-diff - version: 2.1.0 - engines: {node: '>=0.10.0'} - dependencies: - semver: registry.npmmirror.com/semver@5.7.2 - dev: false - - registry.npmmirror.com/semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz} - name: semver - version: 5.7.2 - hasBin: true - dev: false - - registry.npmmirror.com/semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-6.3.1.tgz} - name: semver - version: 6.3.1 - hasBin: true - dev: false - - registry.npmmirror.com/semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz} - name: semver - version: 7.5.4 - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: registry.npmmirror.com/lru-cache@6.0.0 - dev: false - - registry.npmmirror.com/serialize-javascript@6.0.1: - resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz} - name: serialize-javascript - version: 6.0.1 - dependencies: - randombytes: registry.npmmirror.com/randombytes@2.1.0 - dev: false - - registry.npmmirror.com/set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-function-length/-/set-function-length-1.1.1.tgz} - name: set-function-length - version: 1.1.1 - engines: {node: '>= 0.4'} - dependencies: - define-data-property: registry.npmmirror.com/define-data-property@1.1.1 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - gopd: registry.npmmirror.com/gopd@1.0.1 - has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 - dev: false - - registry.npmmirror.com/set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.1.tgz} - name: set-function-name - version: 2.0.1 - engines: {node: '>= 0.4'} - dependencies: - define-data-property: registry.npmmirror.com/define-data-property@1.1.1 - functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 - has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 - dev: false - - registry.npmmirror.com/setimmediate@1.0.5: - resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz} - name: setimmediate - version: 1.0.5 - dev: false - - registry.npmmirror.com/sha.js@2.4.11: - resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sha.js/-/sha.js-2.4.11.tgz} - name: sha.js - version: 2.4.11 - hasBin: true - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/shallowequal@1.1.0: - resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz} - name: shallowequal - version: 1.1.0 - dev: false - - registry.npmmirror.com/shebang-command@1.2.0: - resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz} - name: shebang-command - version: 1.2.0 - engines: {node: '>=0.10.0'} - dependencies: - shebang-regex: registry.npmmirror.com/shebang-regex@1.0.0 - dev: false - - registry.npmmirror.com/shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz} - name: shebang-command - version: 2.0.0 - engines: {node: '>=8'} - dependencies: - shebang-regex: registry.npmmirror.com/shebang-regex@3.0.0 - dev: false - - registry.npmmirror.com/shebang-regex@1.0.0: - resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-1.0.0.tgz} - name: shebang-regex - version: 1.0.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz} - name: shebang-regex - version: 3.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/shiki-es@0.2.0: - resolution: {integrity: sha512-RbRMD+IuJJseSZljDdne9ThrUYrwBwJR04FvN4VXpfsU3MNID5VJGHLAD5je/HGThCyEKNgH+nEkSFEWKD7C3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shiki-es/-/shiki-es-0.2.0.tgz} - name: shiki-es - version: 0.2.0 - dev: false - - registry.npmmirror.com/shortid@2.2.16: - resolution: {integrity: sha512-Ugt+GIZqvGXCIItnsL+lvFJOiN7RYqlGy7QE41O3YC1xbNSeDGIRO7xg2JJXIAj1cAGnOeC1r7/T9pgrtQbv4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/shortid/-/shortid-2.2.16.tgz} - name: shortid - version: 2.2.16 - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - dependencies: - nanoid: registry.npmmirror.com/nanoid@2.1.11 - dev: false - - registry.npmmirror.com/side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz} - name: side-channel - version: 1.0.4 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - object-inspect: registry.npmmirror.com/object-inspect@1.13.1 - dev: false - - registry.npmmirror.com/signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz} - name: signal-exit - version: 3.0.7 - dev: false - - registry.npmmirror.com/simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz} - name: simple-swizzle - version: 0.2.2 - dependencies: - is-arrayish: registry.npmmirror.com/is-arrayish@0.3.2 - dev: false - - registry.npmmirror.com/sitemap@7.1.1: - resolution: {integrity: sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sitemap/-/sitemap-7.1.1.tgz} - name: sitemap - version: 7.1.1 - engines: {node: '>=12.0.0', npm: '>=5.6.0'} - hasBin: true - dependencies: - '@types/node': registry.npmmirror.com/@types/node@17.0.45 - '@types/sax': registry.npmmirror.com/@types/sax@1.2.7 - arg: registry.npmmirror.com/arg@5.0.2 - sax: registry.npmmirror.com/sax@1.3.0 - dev: false - - registry.npmmirror.com/slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz} - name: slash - version: 3.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/slash@4.0.0: - resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz} - name: slash - version: 4.0.0 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz} - name: slice-ansi - version: 4.0.0 - engines: {node: '>=10'} - dependencies: - ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 - astral-regex: registry.npmmirror.com/astral-regex@2.0.0 - is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 - dev: false - - registry.npmmirror.com/smart-buffer@1.1.15: - resolution: {integrity: sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/smart-buffer/-/smart-buffer-1.1.15.tgz} - name: smart-buffer - version: 1.1.15 - engines: {node: '>= 0.10.15', npm: '>= 1.3.5'} - dev: false - - registry.npmmirror.com/socks-proxy-agent@3.0.1: - resolution: {integrity: sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz} - name: socks-proxy-agent - version: 3.0.1 - dependencies: - agent-base: registry.npmmirror.com/agent-base@4.3.0 - socks: registry.npmmirror.com/socks@1.1.10 - dev: false - - registry.npmmirror.com/socks@1.1.10: - resolution: {integrity: sha512-ArX4vGPULWjKDKgUnW8YzfI2uXW7kzgkJuB0GnFBA/PfT3exrrOk+7Wk2oeb894Qf20u1PWv9LEgrO0Z82qAzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/socks/-/socks-1.1.10.tgz} - name: socks - version: 1.1.10 - engines: {node: '>= 0.10.0', npm: '>= 1.3.5'} - deprecated: If using 2.x branch, please upgrade to at least 2.1.6 to avoid a serious bug with socket data flow and an import issue introduced in 2.1.0 - dependencies: - ip: registry.npmmirror.com/ip@1.1.8 - smart-buffer: registry.npmmirror.com/smart-buffer@1.1.15 - dev: false - - registry.npmmirror.com/sonic-boom@2.8.0: - resolution: {integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sonic-boom/-/sonic-boom-2.8.0.tgz} - name: sonic-boom - version: 2.8.0 - dependencies: - atomic-sleep: registry.npmmirror.com/atomic-sleep@1.0.0 - dev: false - - registry.npmmirror.com/sort-object-keys@1.1.3: - resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sort-object-keys/-/sort-object-keys-1.1.3.tgz} - name: sort-object-keys - version: 1.1.3 - dev: false - - registry.npmmirror.com/sort-package-json@2.4.1: - resolution: {integrity: sha512-Nd3rgLBJcZ4iw7tpuOhwBupG6SvUDU0Fy1cZGAMorA2JmDUb+29Dg5phJK9gapa2Ak9d15w/RuMl/viwX+nKwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sort-package-json/-/sort-package-json-2.4.1.tgz} - name: sort-package-json - version: 2.4.1 - hasBin: true - dependencies: - detect-indent: registry.npmmirror.com/detect-indent@7.0.1 - detect-newline: registry.npmmirror.com/detect-newline@4.0.1 - git-hooks-list: registry.npmmirror.com/git-hooks-list@3.1.0 - globby: registry.npmmirror.com/globby@13.2.2 - is-plain-obj: registry.npmmirror.com/is-plain-obj@4.1.0 - sort-object-keys: registry.npmmirror.com/sort-object-keys@1.1.3 - dev: false - - registry.npmmirror.com/source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} - name: source-map-js - version: 1.0.2 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/source-map-resolve@0.6.0: - resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz} - name: source-map-resolve - version: 0.6.0 - deprecated: See https://github.com/lydell/source-map-resolve#deprecated - dependencies: - atob: registry.npmmirror.com/atob@2.1.2 - decode-uri-component: registry.npmmirror.com/decode-uri-component@0.2.2 - dev: false - - registry.npmmirror.com/source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz} - name: source-map-support - version: 0.5.21 - dependencies: - buffer-from: registry.npmmirror.com/buffer-from@1.1.2 - source-map: registry.npmmirror.com/source-map@0.6.1 - dev: false - - registry.npmmirror.com/source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz} - name: source-map - version: 0.5.7 - engines: {node: '>=0.10.0'} - - registry.npmmirror.com/source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} - name: source-map - version: 0.6.1 - engines: {node: '>=0.10.0'} - - registry.npmmirror.com/source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz} - name: source-map - version: 0.7.4 - engines: {node: '>= 8'} - dev: false - - registry.npmmirror.com/space-separated-tokens@1.1.5: - resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz} - name: space-separated-tokens - version: 1.1.5 - dev: false - - registry.npmmirror.com/space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz} - name: space-separated-tokens - version: 2.0.2 - dev: false - - registry.npmmirror.com/spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-correct/-/spdx-correct-3.2.0.tgz} - name: spdx-correct - version: 3.2.0 - dependencies: - spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse@3.0.1 - spdx-license-ids: registry.npmmirror.com/spdx-license-ids@3.0.16 - dev: false - - registry.npmmirror.com/spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz} - name: spdx-exceptions - version: 2.3.0 - dev: false - - registry.npmmirror.com/spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz} - name: spdx-expression-parse - version: 3.0.1 - dependencies: - spdx-exceptions: registry.npmmirror.com/spdx-exceptions@2.3.0 - spdx-license-ids: registry.npmmirror.com/spdx-license-ids@3.0.16 - dev: false - - registry.npmmirror.com/spdx-license-ids@3.0.16: - resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz} - name: spdx-license-ids - version: 3.0.16 - dev: false - - registry.npmmirror.com/spdy-transport@3.0.0: - resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz} - name: spdy-transport - version: 3.0.0 - dependencies: - debug: registry.npmmirror.com/debug@4.3.4 - detect-node: registry.npmmirror.com/detect-node@2.1.0 - hpack.js: registry.npmmirror.com/hpack.js@2.1.6 - obuf: registry.npmmirror.com/obuf@1.1.2 - readable-stream: registry.npmmirror.com/readable-stream@3.6.2 - wbuf: registry.npmmirror.com/wbuf@1.7.3 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/spdy@4.0.2: - resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz} - name: spdy - version: 4.0.2 - engines: {node: '>=6.0.0'} - dependencies: - debug: registry.npmmirror.com/debug@4.3.4 - handle-thing: registry.npmmirror.com/handle-thing@2.0.1 - http-deceiver: registry.npmmirror.com/http-deceiver@1.2.7 - select-hose: registry.npmmirror.com/select-hose@2.0.0 - spdy-transport: registry.npmmirror.com/spdy-transport@3.0.0 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/split-on-first@1.1.0: - resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/split-on-first/-/split-on-first-1.1.0.tgz} - name: split-on-first - version: 1.1.0 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz} - name: split2 - version: 4.2.0 - engines: {node: '>= 10.x'} - dev: false - - registry.npmmirror.com/sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz} - name: sprintf-js - version: 1.0.3 - dev: false - - registry.npmmirror.com/ssri@4.1.6: - resolution: {integrity: sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssri/-/ssri-4.1.6.tgz} - name: ssri - version: 4.1.6 - dependencies: - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/ssri@5.3.0: - resolution: {integrity: sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssri/-/ssri-5.3.0.tgz} - name: ssri - version: 5.3.0 - dependencies: - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/stable@0.1.8: - resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz} - name: stable - version: 0.1.8 - deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' - dev: false - - registry.npmmirror.com/stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stackframe/-/stackframe-1.3.4.tgz} - name: stackframe - version: 1.3.4 - dev: false - - registry.npmmirror.com/stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz} - name: stop-iteration-iterator - version: 1.0.0 - engines: {node: '>= 0.4'} - dependencies: - internal-slot: registry.npmmirror.com/internal-slot@1.0.6 - dev: false - - registry.npmmirror.com/stream-browserify@2.0.2: - resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-browserify/-/stream-browserify-2.0.2.tgz} - name: stream-browserify - version: 2.0.2 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - dev: false - - registry.npmmirror.com/stream-each@1.2.3: - resolution: {integrity: sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-each/-/stream-each-1.2.3.tgz} - name: stream-each - version: 1.2.3 - dependencies: - end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 - stream-shift: registry.npmmirror.com/stream-shift@1.0.1 - dev: false - - registry.npmmirror.com/stream-http@2.8.3: - resolution: {integrity: sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-http/-/stream-http-2.8.3.tgz} - name: stream-http - version: 2.8.3 - dependencies: - builtin-status-codes: registry.npmmirror.com/builtin-status-codes@3.0.0 - inherits: registry.npmmirror.com/inherits@2.0.4 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - to-arraybuffer: registry.npmmirror.com/to-arraybuffer@1.0.1 - xtend: registry.npmmirror.com/xtend@4.0.2 - dev: false - - registry.npmmirror.com/stream-shift@1.0.1: - resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stream-shift/-/stream-shift-1.0.1.tgz} - name: stream-shift - version: 1.0.1 - dev: false - - registry.npmmirror.com/strict-uri-encode@2.0.0: - resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz} - name: strict-uri-encode - version: 2.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/string-convert@0.2.1: - resolution: {integrity: sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-convert/-/string-convert-0.2.1.tgz} - name: string-convert - version: 0.2.1 - dev: false - - registry.npmmirror.com/string-width@2.1.1: - resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-2.1.1.tgz} - name: string-width - version: 2.1.1 - engines: {node: '>=4'} - dependencies: - is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@2.0.0 - strip-ansi: registry.npmmirror.com/strip-ansi@4.0.0 - dev: false - - registry.npmmirror.com/string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz} - name: string-width - version: 4.2.3 - engines: {node: '>=8'} - dependencies: - emoji-regex: registry.npmmirror.com/emoji-regex@8.0.0 - is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@3.0.0 - strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - - registry.npmmirror.com/string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz} - name: string.prototype.matchall - version: 4.0.10 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - internal-slot: registry.npmmirror.com/internal-slot@1.0.6 - regexp.prototype.flags: registry.npmmirror.com/regexp.prototype.flags@1.5.1 - set-function-name: registry.npmmirror.com/set-function-name@2.0.1 - side-channel: registry.npmmirror.com/side-channel@1.0.4 - dev: false - - registry.npmmirror.com/string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz} - name: string.prototype.trim - version: 1.2.8 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - dev: false - - registry.npmmirror.com/string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz} - name: string.prototype.trimend - version: 1.0.7 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - dev: false - - registry.npmmirror.com/string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz} - name: string.prototype.trimstart - version: 1.0.7 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - dev: false - - registry.npmmirror.com/string_decoder@0.10.31: - resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-0.10.31.tgz} - name: string_decoder - version: 0.10.31 - dev: false - - registry.npmmirror.com/string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz} - name: string_decoder - version: 1.1.1 - dependencies: - safe-buffer: registry.npmmirror.com/safe-buffer@5.1.2 - dev: false - - registry.npmmirror.com/string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz} - name: string_decoder - version: 1.3.0 - dependencies: - safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 - dev: false - - registry.npmmirror.com/stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stringify-entities/-/stringify-entities-4.0.3.tgz} - name: stringify-entities - version: 4.0.3 - dependencies: - character-entities-html4: registry.npmmirror.com/character-entities-html4@2.1.0 - character-entities-legacy: registry.npmmirror.com/character-entities-legacy@3.0.0 - dev: false - - registry.npmmirror.com/strip-ansi@4.0.0: - resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz} - name: strip-ansi - version: 4.0.0 - engines: {node: '>=4'} - dependencies: - ansi-regex: registry.npmmirror.com/ansi-regex@3.0.1 - dev: false - - registry.npmmirror.com/strip-ansi@5.2.0: - resolution: {integrity: sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-5.2.0.tgz} - name: strip-ansi - version: 5.2.0 - engines: {node: '>=6'} - dependencies: - ansi-regex: registry.npmmirror.com/ansi-regex@4.1.1 - dev: false - - registry.npmmirror.com/strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz} - name: strip-ansi - version: 6.0.1 - engines: {node: '>=8'} - dependencies: - ansi-regex: registry.npmmirror.com/ansi-regex@5.0.1 - - registry.npmmirror.com/strip-eof@1.0.0: - resolution: {integrity: sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-eof/-/strip-eof-1.0.0.tgz} - name: strip-eof - version: 1.0.0 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz} - name: strip-final-newline - version: 2.0.0 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz} - name: strip-final-newline - version: 3.0.0 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-indent/-/strip-indent-3.0.0.tgz} - name: strip-indent - version: 3.0.0 - engines: {node: '>=8'} - dependencies: - min-indent: registry.npmmirror.com/min-indent@1.0.1 - dev: false - - registry.npmmirror.com/strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz} - name: strip-json-comments - version: 2.0.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/style-mod@4.1.0: - resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-mod/-/style-mod-4.1.0.tgz} - name: style-mod - version: 4.1.0 - dev: false - - registry.npmmirror.com/style-search@0.1.0: - resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-search/-/style-search-0.1.0.tgz} - name: style-search - version: 0.1.0 - dev: false - - registry.npmmirror.com/style-to-object@0.4.4: - resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-to-object/-/style-to-object-0.4.4.tgz} - name: style-to-object - version: 0.4.4 - dependencies: - inline-style-parser: registry.npmmirror.com/inline-style-parser@0.1.1 - dev: false - - registry.npmmirror.com/stylelint-config-recommended@7.0.0(stylelint@14.16.1): - resolution: {integrity: sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz} - id: registry.npmmirror.com/stylelint-config-recommended/7.0.0 - name: stylelint-config-recommended - version: 7.0.0 - peerDependencies: - stylelint: ^14.4.0 - dependencies: - stylelint: registry.npmmirror.com/stylelint@14.16.1 - dev: false - - registry.npmmirror.com/stylelint-config-standard@25.0.0(stylelint@14.16.1): - resolution: {integrity: sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz} - id: registry.npmmirror.com/stylelint-config-standard/25.0.0 - name: stylelint-config-standard - version: 25.0.0 - peerDependencies: - stylelint: ^14.4.0 - dependencies: - stylelint: registry.npmmirror.com/stylelint@14.16.1 - stylelint-config-recommended: registry.npmmirror.com/stylelint-config-recommended@7.0.0(stylelint@14.16.1) - dev: false - - registry.npmmirror.com/stylelint@14.16.1: - resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint/-/stylelint-14.16.1.tgz} - name: stylelint - version: 14.16.1 - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - hasBin: true - dependencies: - '@csstools/selector-specificity': registry.npmmirror.com/@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.13) - balanced-match: registry.npmmirror.com/balanced-match@2.0.0 - colord: registry.npmmirror.com/colord@2.9.3 - cosmiconfig: registry.npmmirror.com/cosmiconfig@7.1.0 - css-functions-list: registry.npmmirror.com/css-functions-list@3.2.1 - debug: registry.npmmirror.com/debug@4.3.4 - fast-glob: registry.npmmirror.com/fast-glob@3.3.2 - fastest-levenshtein: registry.npmmirror.com/fastest-levenshtein@1.0.16 - file-entry-cache: registry.npmmirror.com/file-entry-cache@6.0.1 - global-modules: registry.npmmirror.com/global-modules@2.0.0 - globby: registry.npmmirror.com/globby@11.1.0 - globjoin: registry.npmmirror.com/globjoin@0.1.4 - html-tags: registry.npmmirror.com/html-tags@3.3.1 - ignore: registry.npmmirror.com/ignore@5.3.0 - import-lazy: registry.npmmirror.com/import-lazy@4.0.0 - imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 - is-plain-object: registry.npmmirror.com/is-plain-object@5.0.0 - known-css-properties: registry.npmmirror.com/known-css-properties@0.26.0 - mathml-tag-names: registry.npmmirror.com/mathml-tag-names@2.1.3 - meow: registry.npmmirror.com/meow@9.0.0 - micromatch: registry.npmmirror.com/micromatch@4.0.5 - normalize-path: registry.npmmirror.com/normalize-path@3.0.0 - picocolors: registry.npmmirror.com/picocolors@1.0.0 - postcss: registry.npmmirror.com/postcss@8.4.31 - postcss-media-query-parser: registry.npmmirror.com/postcss-media-query-parser@0.2.3 - postcss-resolve-nested-selector: registry.npmmirror.com/postcss-resolve-nested-selector@0.1.1 - postcss-safe-parser: registry.npmmirror.com/postcss-safe-parser@6.0.0(postcss@8.4.31) - postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 - postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 - resolve-from: registry.npmmirror.com/resolve-from@5.0.0 - string-width: registry.npmmirror.com/string-width@4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - style-search: registry.npmmirror.com/style-search@0.1.0 - supports-hyperlinks: registry.npmmirror.com/supports-hyperlinks@2.3.0 - svg-tags: registry.npmmirror.com/svg-tags@1.0.0 - table: registry.npmmirror.com/table@6.8.1 - v8-compile-cache: registry.npmmirror.com/v8-compile-cache@2.4.0 - write-file-atomic: registry.npmmirror.com/write-file-atomic@4.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - registry.npmmirror.com/stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.2.0.tgz} - name: stylis - version: 4.2.0 - dev: false - - registry.npmmirror.com/stylis@4.3.0: - resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylis/-/stylis-4.3.0.tgz} - name: stylis - version: 4.3.0 - dev: false - - registry.npmmirror.com/supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} - name: supports-color - version: 5.5.0 - engines: {node: '>=4'} - dependencies: - has-flag: registry.npmmirror.com/has-flag@3.0.0 - dev: false - - registry.npmmirror.com/supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz} - name: supports-color - version: 7.2.0 - engines: {node: '>=8'} - dependencies: - has-flag: registry.npmmirror.com/has-flag@4.0.0 - dev: false - - registry.npmmirror.com/supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz} - name: supports-color - version: 8.1.1 - engines: {node: '>=10'} - dependencies: - has-flag: registry.npmmirror.com/has-flag@4.0.0 - dev: false - - registry.npmmirror.com/supports-hyperlinks@2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz} - name: supports-hyperlinks - version: 2.3.0 - engines: {node: '>=8'} - dependencies: - has-flag: registry.npmmirror.com/has-flag@4.0.0 - supports-color: registry.npmmirror.com/supports-color@7.2.0 - dev: false - - registry.npmmirror.com/supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} - name: supports-preserve-symlinks-flag - version: 1.0.0 - engines: {node: '>= 0.4'} - dev: false - - registry.npmmirror.com/svg-parser@2.0.4: - resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz} - name: svg-parser - version: 2.0.4 - dev: false - - registry.npmmirror.com/svg-pathdata@5.0.5: - resolution: {integrity: sha512-TAAvLNSE3fEhyl/Da19JWfMAdhSXTYeviXsLSoDT1UM76ADj5ndwAPX1FKQEgB/gFMPavOy6tOqfalXKUiXrow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-5.0.5.tgz} - name: svg-pathdata - version: 5.0.5 - engines: {node: '>=6.9.5'} - dev: false - - registry.npmmirror.com/svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-tags/-/svg-tags-1.0.0.tgz} - name: svg-tags - version: 1.0.0 - dev: false - - registry.npmmirror.com/svgo-browser@1.3.8: - resolution: {integrity: sha512-yOgDNIcewFZN3+jXdWeh/rQzbWJjCq1dTHphLz2r4T4AfTm+nqCxZ5B89v9bjQbFKA/s/k7TUc7J90+pP2HTyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgo-browser/-/svgo-browser-1.3.8.tgz} - name: svgo-browser - version: 1.3.8 - engines: {node: '>=4.0.0'} - hasBin: true - dependencies: - chalk: registry.npmmirror.com/chalk@2.4.2 - coa: registry.npmmirror.com/coa@2.0.2 - css-select: registry.npmmirror.com/css-select@2.1.0 - css-select-base-adapter: registry.npmmirror.com/css-select-base-adapter@0.1.1 - css-tree: registry.npmmirror.com/css-tree@1.0.0-alpha.37 - csso: registry.npmmirror.com/csso@4.2.0 - js-yaml: registry.npmmirror.com/js-yaml@3.14.1 - mkdirp: registry.npmmirror.com/mkdirp@0.5.6 - sax: registry.npmmirror.com/sax@1.2.4 - stable: registry.npmmirror.com/stable@0.1.8 - unquote: registry.npmmirror.com/unquote@1.1.1 - util.promisify: registry.npmmirror.com/util.promisify@1.0.1 - dev: false - - registry.npmmirror.com/svgo@2.8.0: - resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz} - name: svgo - version: 2.8.0 - engines: {node: '>=10.13.0'} - hasBin: true - dependencies: - '@trysound/sax': registry.npmmirror.com/@trysound/sax@0.2.0 - commander: registry.npmmirror.com/commander@7.2.0 - css-select: registry.npmmirror.com/css-select@4.3.0 - css-tree: registry.npmmirror.com/css-tree@1.1.3 - csso: registry.npmmirror.com/csso@4.2.0 - picocolors: registry.npmmirror.com/picocolors@1.0.0 - stable: registry.npmmirror.com/stable@0.1.8 - dev: false - - registry.npmmirror.com/svgson@4.1.0: - resolution: {integrity: sha512-DodISxHtdLKUghDYA+PGK4Qq350+CbBAkdvGLkBFSmWd9WKSg4dijgjB1IiRPTmsUCd+a7KYe+ILHtklYgQyzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgson/-/svgson-4.1.0.tgz} - name: svgson - version: 4.1.0 - dependencies: - deep-rename-keys: registry.npmmirror.com/deep-rename-keys@0.2.1 - omit-deep: registry.npmmirror.com/omit-deep@0.3.0 - xml-reader: registry.npmmirror.com/xml-reader@2.4.3 - dev: false - - registry.npmmirror.com/synckit@0.8.5: - resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/synckit/-/synckit-0.8.5.tgz} - name: synckit - version: 0.8.5 - engines: {node: ^14.18.0 || >=16.0.0} - dependencies: - '@pkgr/utils': registry.npmmirror.com/@pkgr/utils@2.4.2 - tslib: registry.npmmirror.com/tslib@2.6.2 - dev: false - - registry.npmmirror.com/systemjs@6.14.2: - resolution: {integrity: sha512-1TlOwvKWdXxAY9vba+huLu99zrQURDWA8pUTYsRIYDZYQbGyK+pyEP4h4dlySsqo7ozyJBmYD20F+iUHhAltEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/systemjs/-/systemjs-6.14.2.tgz} - name: systemjs - version: 6.14.2 - dev: false - - registry.npmmirror.com/tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tabbable/-/tabbable-6.2.0.tgz} - name: tabbable - version: 6.2.0 - dev: false - - registry.npmmirror.com/table@6.8.1: - resolution: {integrity: sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/table/-/table-6.8.1.tgz} - name: table - version: 6.8.1 - engines: {node: '>=10.0.0'} - dependencies: - ajv: registry.npmmirror.com/ajv@8.12.0 - lodash.truncate: registry.npmmirror.com/lodash.truncate@4.4.2 - slice-ansi: registry.npmmirror.com/slice-ansi@4.0.0 - string-width: registry.npmmirror.com/string-width@4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - dev: false - - registry.npmmirror.com/tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz} - name: tapable - version: 2.2.1 - engines: {node: '>=6'} - dev: false - - registry.npmmirror.com/tar-fs@1.16.3: - resolution: {integrity: sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tar-fs/-/tar-fs-1.16.3.tgz} - name: tar-fs - version: 1.16.3 - dependencies: - chownr: registry.npmmirror.com/chownr@1.1.4 - mkdirp: registry.npmmirror.com/mkdirp@0.5.6 - pump: registry.npmmirror.com/pump@1.0.3 - tar-stream: registry.npmmirror.com/tar-stream@1.6.2 - dev: false - - registry.npmmirror.com/tar-stream@1.6.2: - resolution: {integrity: sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tar-stream/-/tar-stream-1.6.2.tgz} - name: tar-stream - version: 1.6.2 - engines: {node: '>= 0.8.0'} - dependencies: - bl: registry.npmmirror.com/bl@1.2.3 - buffer-alloc: registry.npmmirror.com/buffer-alloc@1.2.0 - end-of-stream: registry.npmmirror.com/end-of-stream@1.4.4 - fs-constants: registry.npmmirror.com/fs-constants@1.0.0 - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - to-buffer: registry.npmmirror.com/to-buffer@1.1.1 - xtend: registry.npmmirror.com/xtend@4.0.2 - dev: false - - registry.npmmirror.com/term-size@1.2.0: - resolution: {integrity: sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/term-size/-/term-size-1.2.0.tgz} - name: term-size - version: 1.2.0 - engines: {node: '>=4'} - dependencies: - execa: registry.npmmirror.com/execa@0.7.0 - dev: false - - registry.npmmirror.com/terser-webpack-plugin@5.3.9(esbuild@0.19.7)(webpack@5.89.0): - resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz} - id: registry.npmmirror.com/terser-webpack-plugin/5.3.9 - name: terser-webpack-plugin - version: 5.3.9 - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - dependencies: - '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 - esbuild: 0.19.7 - jest-worker: registry.npmmirror.com/jest-worker@27.5.1 - schema-utils: registry.npmmirror.com/schema-utils@3.3.0 - serialize-javascript: registry.npmmirror.com/serialize-javascript@6.0.1 - terser: registry.npmmirror.com/terser@5.24.0 - webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7) - dev: false - - registry.npmmirror.com/terser@5.24.0: - resolution: {integrity: sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser/-/terser-5.24.0.tgz} - name: terser - version: 5.24.0 - engines: {node: '>=10'} - hasBin: true - dependencies: - '@jridgewell/source-map': registry.npmmirror.com/@jridgewell/source-map@0.3.5 - acorn: registry.npmmirror.com/acorn@8.11.2 - commander: registry.npmmirror.com/commander@2.20.3 - source-map-support: registry.npmmirror.com/source-map-support@0.5.21 - dev: false - - registry.npmmirror.com/test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/test-exclude/-/test-exclude-6.0.0.tgz} - name: test-exclude - version: 6.0.0 - engines: {node: '>=8'} - dependencies: - '@istanbuljs/schema': registry.npmmirror.com/@istanbuljs/schema@0.1.3 - glob: registry.npmmirror.com/glob@7.2.3 - minimatch: registry.npmmirror.com/minimatch@3.1.2 - dev: false - - registry.npmmirror.com/textextensions@2.6.0: - resolution: {integrity: sha512-49WtAWS+tcsy93dRt6P0P3AMD2m5PvXRhuEA0kaXos5ZLlujtYmpmFsB+QvWUSxE1ZsstmYXfQ7L40+EcQgpAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/textextensions/-/textextensions-2.6.0.tgz} - name: textextensions - version: 2.6.0 - engines: {node: '>=0.8'} - dev: false - - registry.npmmirror.com/thread-stream@0.15.2: - resolution: {integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/thread-stream/-/thread-stream-0.15.2.tgz} - name: thread-stream - version: 0.15.2 - dependencies: - real-require: registry.npmmirror.com/real-require@0.1.0 - dev: false - - registry.npmmirror.com/throttle-debounce@5.0.0: - resolution: {integrity: sha512-2iQTSgkkc1Zyk0MeVrt/3BvuOXYPl/R8Z0U2xxo9rjwNciaHDG3R+Lm6dh4EeUci49DanvBnuqI6jshoQQRGEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/throttle-debounce/-/throttle-debounce-5.0.0.tgz} - name: throttle-debounce - version: 5.0.0 - engines: {node: '>=12.22'} - dev: false - - registry.npmmirror.com/through2@0.4.2: - resolution: {integrity: sha512-45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through2/-/through2-0.4.2.tgz} - name: through2 - version: 0.4.2 - dependencies: - readable-stream: registry.npmmirror.com/readable-stream@1.0.34 - xtend: registry.npmmirror.com/xtend@2.1.2 - dev: false - - registry.npmmirror.com/through2@2.0.5: - resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through2/-/through2-2.0.5.tgz} - name: through2 - version: 2.0.5 - dependencies: - readable-stream: registry.npmmirror.com/readable-stream@2.3.8 - xtend: registry.npmmirror.com/xtend@4.0.2 - dev: false - - registry.npmmirror.com/through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/through/-/through-2.3.8.tgz} - name: through - version: 2.3.8 - dev: false - - registry.npmmirror.com/timed-out@4.0.1: - resolution: {integrity: sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/timed-out/-/timed-out-4.0.1.tgz} - name: timed-out - version: 4.0.1 - engines: {node: '>=0.10.0'} - dev: false - - registry.npmmirror.com/timers-browserify@2.0.12: - resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/timers-browserify/-/timers-browserify-2.0.12.tgz} - name: timers-browserify - version: 2.0.12 - engines: {node: '>=0.6.0'} - dependencies: - setimmediate: registry.npmmirror.com/setimmediate@1.0.5 - dev: false - - registry.npmmirror.com/titleize@3.0.0: - resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz} - name: titleize - version: 3.0.0 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tmp/-/tmp-0.0.33.tgz} - name: tmp - version: 0.0.33 - engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: registry.npmmirror.com/os-tmpdir@1.0.2 - dev: false - - registry.npmmirror.com/tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tmpl/-/tmpl-1.0.5.tgz} - name: tmpl - version: 1.0.5 - dev: false - - registry.npmmirror.com/to-arraybuffer@1.0.1: - resolution: {integrity: sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz} - name: to-arraybuffer - version: 1.0.1 - dev: false - - registry.npmmirror.com/to-buffer@1.1.1: - resolution: {integrity: sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-buffer/-/to-buffer-1.1.1.tgz} - name: to-buffer - version: 1.1.1 - dev: false - - registry.npmmirror.com/to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} - name: to-fast-properties - version: 2.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} - name: to-regex-range - version: 5.0.1 - engines: {node: '>=8.0'} - dependencies: - is-number: registry.npmmirror.com/is-number@7.0.0 - dev: false - - registry.npmmirror.com/toggle-selection@1.0.6: - resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz} - name: toggle-selection - version: 1.0.6 - dev: false - - registry.npmmirror.com/transformation-matrix@2.15.0: - resolution: {integrity: sha512-HN3kCvvH4ug3Xm/ycOfCFQOOktg5htxlC4Ih1Z7Wb6BMtQho+q+irOdGo10ARRKpqkRBXgBzQFw/AVmR0oIf0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/transformation-matrix/-/transformation-matrix-2.15.0.tgz} - name: transformation-matrix - version: 2.15.0 - dev: false - - registry.npmmirror.com/trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz} - name: trim-lines - version: 3.0.1 - dev: false - - registry.npmmirror.com/trim-newlines@3.0.1: - resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-newlines/-/trim-newlines-3.0.1.tgz} - name: trim-newlines - version: 3.0.1 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/trough@2.1.0: - resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz} - name: trough - version: 2.1.0 - dev: false - - registry.npmmirror.com/ts-toolbelt@9.6.0: - resolution: {integrity: sha512-nsZd8ZeNUzukXPlJmTBwUAuABDe/9qtVDelJeT/qW0ow3ZS3BsQJtNkan1802aM9Uf68/Y8ljw86Hu0h5IUW3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-toolbelt/-/ts-toolbelt-9.6.0.tgz} - name: ts-toolbelt - version: 9.6.0 - dev: false - - registry.npmmirror.com/tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz} - name: tslib - version: 1.14.1 - dev: false - - registry.npmmirror.com/tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz} - name: tslib - version: 2.6.2 - dev: false - - registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.2): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsutils/-/tsutils-3.21.0.tgz} - id: registry.npmmirror.com/tsutils/3.21.0 - name: tsutils - version: 3.21.0 - engines: {node: '>= 6'} - peerDependencies: - 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' - dependencies: - tslib: registry.npmmirror.com/tslib@1.14.1 - typescript: 5.3.2 - dev: false - - registry.npmmirror.com/tsx@3.14.0: - resolution: {integrity: sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsx/-/tsx-3.14.0.tgz} - name: tsx - version: 3.14.0 - hasBin: true - dependencies: - esbuild: registry.npmmirror.com/esbuild@0.18.20 - get-tsconfig: registry.npmmirror.com/get-tsconfig@4.7.2 - source-map-support: registry.npmmirror.com/source-map-support@0.5.21 - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: false - - registry.npmmirror.com/tty-browserify@0.0.0: - resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tty-browserify/-/tty-browserify-0.0.0.tgz} - name: tty-browserify - version: 0.0.0 - dev: false - - registry.npmmirror.com/type-fest@0.18.1: - resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.18.1.tgz} - name: type-fest - version: 0.18.1 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.6.0.tgz} - name: type-fest - version: 0.6.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type-fest/-/type-fest-0.8.1.tgz} - name: type-fest - version: 0.8.1 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz} - name: typed-array-buffer - version: 1.0.0 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 - is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 - dev: false - - registry.npmmirror.com/typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz} - name: typed-array-byte-length - version: 1.0.0 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - for-each: registry.npmmirror.com/for-each@0.3.3 - has-proto: registry.npmmirror.com/has-proto@1.0.1 - is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 - dev: false - - registry.npmmirror.com/typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz} - name: typed-array-byte-offset - version: 1.0.0 - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 - call-bind: registry.npmmirror.com/call-bind@1.0.5 - for-each: registry.npmmirror.com/for-each@0.3.3 - has-proto: registry.npmmirror.com/has-proto@1.0.1 - is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 - dev: false - - registry.npmmirror.com/typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.4.tgz} - name: typed-array-length - version: 1.0.4 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - for-each: registry.npmmirror.com/for-each@0.3.3 - is-typed-array: registry.npmmirror.com/is-typed-array@1.1.12 - dev: false - - registry.npmmirror.com/typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz} - name: typedarray - version: 0.0.6 - dev: false - - registry.npmmirror.com/types-ramda@0.29.6: - resolution: {integrity: sha512-VJoOk1uYNh9ZguGd3eZvqkdhD4hTGtnjRBUx5Zc0U9ftmnCgiWcSj/lsahzKunbiwRje1MxxNkEy1UdcXRCpYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/types-ramda/-/types-ramda-0.29.6.tgz} - name: types-ramda - version: 0.29.6 - dependencies: - ts-toolbelt: registry.npmmirror.com/ts-toolbelt@9.6.0 - dev: false - - registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.3)(@types/node@20.10.0)(@types/react@18.2.38)(eslint@8.54.0)(prettier@3.1.0)(react-dom@18.2.0)(react@18.2.0)(rollup@4.5.2)(sass@1.69.5)(stylelint@14.16.1)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0): - resolution: {integrity: sha512-bC62ctJ3wnymADnhE5nU7IZz4+XQ3MPWwoVW150OJazyAqEioZdjIZEBgB9pVfQEM819xMc6+eslnyuCNOQV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/umi/-/umi-4.0.89.tgz} - id: registry.npmmirror.com/umi/4.0.89 - name: umi - version: 4.0.89 - engines: {node: '>=14'} - hasBin: true - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 - '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 - '@umijs/bundler-webpack': registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.2)(webpack@5.89.0) - '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 - '@umijs/lint': registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.54.0)(stylelint@14.16.1)(typescript@5.3.2) - '@umijs/preset-umi': registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.10.0)(@types/react@18.2.38)(rollup@4.5.2)(sass@1.69.5)(terser@5.24.0)(typescript@5.3.2)(webpack@5.89.0) - '@umijs/renderer-react': registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.2.0)(react@18.2.0) - '@umijs/server': registry.npmmirror.com/@umijs/server@4.0.89 - '@umijs/test': registry.npmmirror.com/@umijs/test@4.0.89(@babel/core@7.23.3) - '@umijs/utils': registry.npmmirror.com/@umijs/utils@4.0.89 - prettier-plugin-organize-imports: registry.npmmirror.com/prettier-plugin-organize-imports@3.2.4(prettier@3.1.0)(typescript@5.3.2) - prettier-plugin-packagejson: registry.npmmirror.com/prettier-plugin-packagejson@2.4.3(prettier@3.1.0) - transitivePeerDependencies: - - '@babel/core' - - '@types/node' - - '@types/react' - - '@types/webpack' - - '@volar/vue-language-plugin-pug' - - '@volar/vue-typescript' - - eslint - - jest - - postcss-html - - postcss-jsx - - postcss-less - - postcss-markdown - - postcss-scss - - prettier - - react - - react-dom - - rollup - - sass - - sockjs-client - - stylelint - - stylus - - sugarss - - supports-color - - terser - - type-fest - - typescript - - webpack - - webpack-dev-server - - webpack-hot-middleware - - webpack-plugin-serve - dev: false - - registry.npmmirror.com/unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz} - name: unbox-primitive - version: 1.0.2 - dependencies: - call-bind: registry.npmmirror.com/call-bind@1.0.5 - has-bigints: registry.npmmirror.com/has-bigints@1.0.2 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 - dev: false - - registry.npmmirror.com/undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz} - name: undici-types - version: 5.26.5 - dev: false - - registry.npmmirror.com/unfetch@5.0.0: - resolution: {integrity: sha512-3xM2c89siXg0nHvlmYsQ2zkLASvVMBisZm5lF3gFDqfF2xonNStDJyMpvaOBe0a1Edxmqrf2E0HBdmy9QyZaeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unfetch/-/unfetch-5.0.0.tgz} - name: unfetch - version: 5.0.0 - dev: false - - registry.npmmirror.com/unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unified/-/unified-10.1.2.tgz} - name: unified - version: 10.1.2 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - bail: registry.npmmirror.com/bail@2.0.2 - extend: registry.npmmirror.com/extend@3.0.2 - is-buffer: registry.npmmirror.com/is-buffer@2.0.5 - is-plain-obj: registry.npmmirror.com/is-plain-obj@4.1.0 - trough: registry.npmmirror.com/trough@2.1.0 - vfile: registry.npmmirror.com/vfile@5.3.7 - dev: false - - registry.npmmirror.com/unique-filename@1.1.1: - resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz} - name: unique-filename - version: 1.1.1 - dependencies: - unique-slug: registry.npmmirror.com/unique-slug@2.0.2 - dev: false - - registry.npmmirror.com/unique-slug@2.0.2: - resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-slug/-/unique-slug-2.0.2.tgz} - name: unique-slug - version: 2.0.2 - dependencies: - imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 - dev: false - - registry.npmmirror.com/unique-string@1.0.0: - resolution: {integrity: sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-string/-/unique-string-1.0.0.tgz} - name: unique-string - version: 1.0.0 - engines: {node: '>=4'} - dependencies: - crypto-random-string: registry.npmmirror.com/crypto-random-string@1.0.0 - dev: false - - registry.npmmirror.com/unist-util-filter@4.0.1: - resolution: {integrity: sha512-RynicUM/vbOSTSiUK+BnaK9XMfmQUh6gyi7L6taNgc7FIf84GukXVV3ucGzEN/PhUUkdP5hb1MmXc+3cvPUm5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-filter/-/unist-util-filter-4.0.1.tgz} - name: unist-util-filter - version: 4.0.1 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 - unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 - dev: false - - registry.npmmirror.com/unist-util-generated@2.0.1: - resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz} - name: unist-util-generated - version: 2.0.1 - dev: false - - registry.npmmirror.com/unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-is/-/unist-util-is-5.2.1.tgz} - name: unist-util-is - version: 5.2.1 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - dev: false - - registry.npmmirror.com/unist-util-position@4.0.4: - resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-position/-/unist-util-position-4.0.4.tgz} - name: unist-util-position - version: 4.0.4 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - dev: false - - registry.npmmirror.com/unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz} - name: unist-util-stringify-position - version: 3.0.3 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - dev: false - - registry.npmmirror.com/unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz} - name: unist-util-visit-parents - version: 5.1.3 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 - dev: false - - registry.npmmirror.com/unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz} - name: unist-util-visit - version: 4.1.2 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - unist-util-is: registry.npmmirror.com/unist-util-is@5.2.1 - unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 - dev: false - - registry.npmmirror.com/universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-0.1.2.tgz} - name: universalify - version: 0.1.2 - engines: {node: '>= 4.0.0'} - dev: false - - registry.npmmirror.com/universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz} - name: universalify - version: 2.0.1 - engines: {node: '>= 10.0.0'} - dev: false - - registry.npmmirror.com/unquote@1.1.1: - resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz} - name: unquote - version: 1.1.1 - dev: false - - registry.npmmirror.com/unset-value@0.1.2: - resolution: {integrity: sha512-yhv5I4TsldLdE3UcVQn0hD2T5sNCPv4+qm/CTUpRKIpwthYRIipsAPdsrNpOI79hPQa0rTTeW22Fq6JWRcTgNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unset-value/-/unset-value-0.1.2.tgz} - name: unset-value - version: 0.1.2 - engines: {node: '>=0.10.0'} - dependencies: - has-value: registry.npmmirror.com/has-value@0.3.1 - isobject: registry.npmmirror.com/isobject@3.0.1 - dev: false - - registry.npmmirror.com/untildify@4.0.0: - resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/untildify/-/untildify-4.0.0.tgz} - name: untildify - version: 4.0.0 - engines: {node: '>=8'} - dev: false - - registry.npmmirror.com/unzip-response@2.0.1: - resolution: {integrity: sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unzip-response/-/unzip-response-2.0.1.tgz} - name: unzip-response - version: 2.0.1 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.1): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz} - id: registry.npmmirror.com/update-browserslist-db/1.0.13 - name: update-browserslist-db - version: 1.0.13 - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: registry.npmmirror.com/browserslist@4.22.1 - escalade: registry.npmmirror.com/escalade@3.1.1 - picocolors: registry.npmmirror.com/picocolors@1.0.0 - dev: false - - registry.npmmirror.com/update-notifier@2.5.0: - resolution: {integrity: sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/update-notifier/-/update-notifier-2.5.0.tgz} - name: update-notifier - version: 2.5.0 - engines: {node: '>=4'} - dependencies: - boxen: registry.npmmirror.com/boxen@1.3.0 - chalk: registry.npmmirror.com/chalk@2.4.2 - configstore: registry.npmmirror.com/configstore@3.1.5 - import-lazy: registry.npmmirror.com/import-lazy@2.1.0 - is-ci: registry.npmmirror.com/is-ci@1.2.1 - is-installed-globally: registry.npmmirror.com/is-installed-globally@0.1.0 - is-npm: registry.npmmirror.com/is-npm@1.0.0 - latest-version: registry.npmmirror.com/latest-version@3.1.0 - semver-diff: registry.npmmirror.com/semver-diff@2.1.0 - xdg-basedir: registry.npmmirror.com/xdg-basedir@3.0.0 - dev: false - - registry.npmmirror.com/uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz} - name: uri-js - version: 4.4.1 - dependencies: - punycode: registry.npmmirror.com/punycode@2.3.1 - dev: false - - registry.npmmirror.com/url-parse-lax@1.0.0: - resolution: {integrity: sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz} - name: url-parse-lax - version: 1.0.0 - engines: {node: '>=0.10.0'} - dependencies: - prepend-http: registry.npmmirror.com/prepend-http@1.0.4 - dev: false - - registry.npmmirror.com/url@0.11.3: - resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/url/-/url-0.11.3.tgz} - name: url - version: 0.11.3 - dependencies: - punycode: registry.npmmirror.com/punycode@1.4.1 - qs: registry.npmmirror.com/qs@6.11.2 - dev: false - - registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.38)(react@18.1.0): - resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz} - id: registry.npmmirror.com/use-isomorphic-layout-effect/1.1.2 - name: use-isomorphic-layout-effect - version: 1.1.2 - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.38 - react: registry.npmmirror.com/react@18.1.0 - dev: false - - registry.npmmirror.com/use-merge-value@1.2.0(react@18.2.0): - resolution: {integrity: sha512-DXgG0kkgJN45TcyoXL49vJnn55LehnrmoHc7MbKi+QDBvr8dsesqws8UlyIWGHMR+JXgxc1nvY+jDGMlycsUcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-merge-value/-/use-merge-value-1.2.0.tgz} - id: registry.npmmirror.com/use-merge-value/1.2.0 - name: use-merge-value - version: 1.2.0 - peerDependencies: - react: '>= 16.x' - dependencies: - react: 18.2.0 - dev: false - - registry.npmmirror.com/use-sync-external-store@1.2.0(react@18.2.0): - resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz} - id: registry.npmmirror.com/use-sync-external-store/1.2.0 - name: use-sync-external-store - version: 1.2.0 - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - - registry.npmmirror.com/util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} - name: util-deprecate - version: 1.0.2 - dev: false - - registry.npmmirror.com/util.promisify@1.0.1: - resolution: {integrity: sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util.promisify/-/util.promisify-1.0.1.tgz} - name: util.promisify - version: 1.0.1 - dependencies: - define-properties: registry.npmmirror.com/define-properties@1.2.1 - es-abstract: registry.npmmirror.com/es-abstract@1.22.3 - has-symbols: registry.npmmirror.com/has-symbols@1.0.3 - object.getownpropertydescriptors: registry.npmmirror.com/object.getownpropertydescriptors@2.1.7 - dev: false - - registry.npmmirror.com/util@0.10.4: - resolution: {integrity: sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util/-/util-0.10.4.tgz} - name: util - version: 0.10.4 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.3 - dev: false - - registry.npmmirror.com/util@0.11.1: - resolution: {integrity: sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util/-/util-0.11.1.tgz} - name: util - version: 0.11.1 - dependencies: - inherits: registry.npmmirror.com/inherits@2.0.3 - dev: false - - registry.npmmirror.com/utila@0.4.0: - resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz} - name: utila - version: 0.4.0 - dev: false - - registry.npmmirror.com/uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz} - name: uuid - version: 8.3.2 - hasBin: true - dev: false - - registry.npmmirror.com/uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uvu/-/uvu-0.5.6.tgz} - name: uvu - version: 0.5.6 - engines: {node: '>=8'} - hasBin: true - dependencies: - dequal: registry.npmmirror.com/dequal@2.0.3 - diff: registry.npmmirror.com/diff@5.1.0 - kleur: registry.npmmirror.com/kleur@4.1.5 - sade: registry.npmmirror.com/sade@1.8.1 - dev: false - - registry.npmmirror.com/v8-compile-cache@2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz} - name: v8-compile-cache - version: 2.3.0 - dev: false - - registry.npmmirror.com/v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz} - name: v8-compile-cache - version: 2.4.0 - dev: false - - registry.npmmirror.com/validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz} - name: validate-npm-package-license - version: 3.0.4 - dependencies: - spdx-correct: registry.npmmirror.com/spdx-correct@3.2.0 - spdx-expression-parse: registry.npmmirror.com/spdx-expression-parse@3.0.1 - dev: false - - registry.npmmirror.com/validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz} - name: validate-npm-package-name - version: 3.0.0 - dependencies: - builtins: registry.npmmirror.com/builtins@1.0.3 - dev: false - - registry.npmmirror.com/vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz} - name: vary - version: 1.1.2 - engines: {node: '>= 0.8'} - dev: false - - registry.npmmirror.com/vfile-location@4.1.0: - resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-location/-/vfile-location-4.1.0.tgz} - name: vfile-location - version: 4.1.0 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - vfile: registry.npmmirror.com/vfile@5.3.7 - dev: false - - registry.npmmirror.com/vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile-message/-/vfile-message-3.1.4.tgz} - name: vfile-message - version: 3.1.4 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 - dev: false - - registry.npmmirror.com/vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfile/-/vfile-5.3.7.tgz} - name: vfile - version: 5.3.7 - dependencies: - '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 - is-buffer: registry.npmmirror.com/is-buffer@2.0.5 - unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 - vfile-message: registry.npmmirror.com/vfile-message@3.1.4 - dev: false - - registry.npmmirror.com/vite@4.3.1(@types/node@20.10.0)(less@4.1.3)(sass@1.69.5)(terser@5.24.0): - resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.3.1.tgz} - id: registry.npmmirror.com/vite/4.3.1 - name: vite - version: 4.3.1 - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.10.0 - esbuild: registry.npmmirror.com/esbuild@0.17.19 - less: registry.npmmirror.com/less@4.1.3 - postcss: registry.npmmirror.com/postcss@8.4.31 - rollup: registry.npmmirror.com/rollup@3.29.4 - sass: registry.npmmirror.com/sass@1.69.5 - terser: 5.24.0 - optionalDependencies: - fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: false - - registry.npmmirror.com/vm-browserify@1.1.2: - resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz} - name: vm-browserify - version: 1.1.2 - dev: false - - registry.npmmirror.com/w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz} - name: w3c-keyname - version: 2.2.8 - dev: false - - registry.npmmirror.com/walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz} - name: walker - version: 1.0.8 - dependencies: - makeerror: registry.npmmirror.com/makeerror@1.0.12 - dev: false - - registry.npmmirror.com/watchpack@2.4.0: - resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz} - name: watchpack - version: 2.4.0 - engines: {node: '>=10.13.0'} - dependencies: - glob-to-regexp: registry.npmmirror.com/glob-to-regexp@0.4.1 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - dev: false - - registry.npmmirror.com/wbuf@1.7.3: - resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz} - name: wbuf - version: 1.7.3 - dependencies: - minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 - dev: false - - registry.npmmirror.com/web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-namespaces/-/web-namespaces-2.0.1.tgz} - name: web-namespaces - version: 2.0.1 - dev: false - - registry.npmmirror.com/web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz} - name: web-streams-polyfill - version: 3.2.1 - engines: {node: '>= 8'} - dev: false - - registry.npmmirror.com/webpack-sources@3.2.3: - resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz} - name: webpack-sources - version: 3.2.3 - engines: {node: '>=10.13.0'} - dev: false - - registry.npmmirror.com/webpack@5.89.0(esbuild@0.19.7): - resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack/-/webpack-5.89.0.tgz} - id: registry.npmmirror.com/webpack/5.89.0 - name: webpack - version: 5.89.0 - engines: {node: '>=10.13.0'} - hasBin: true - peerDependencies: - webpack-cli: '*' - peerDependenciesMeta: - webpack-cli: - optional: true - dependencies: - '@types/eslint-scope': registry.npmmirror.com/@types/eslint-scope@3.7.7 - '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 - '@webassemblyjs/ast': registry.npmmirror.com/@webassemblyjs/ast@1.11.6 - '@webassemblyjs/wasm-edit': registry.npmmirror.com/@webassemblyjs/wasm-edit@1.11.6 - '@webassemblyjs/wasm-parser': registry.npmmirror.com/@webassemblyjs/wasm-parser@1.11.6 - acorn: registry.npmmirror.com/acorn@8.11.2 - acorn-import-assertions: registry.npmmirror.com/acorn-import-assertions@1.9.0(acorn@8.11.2) - browserslist: registry.npmmirror.com/browserslist@4.22.1 - chrome-trace-event: registry.npmmirror.com/chrome-trace-event@1.0.3 - enhanced-resolve: registry.npmmirror.com/enhanced-resolve@5.15.0 - es-module-lexer: registry.npmmirror.com/es-module-lexer@1.4.1 - eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 - events: registry.npmmirror.com/events@3.3.0 - glob-to-regexp: registry.npmmirror.com/glob-to-regexp@0.4.1 - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - json-parse-even-better-errors: registry.npmmirror.com/json-parse-even-better-errors@2.3.1 - loader-runner: registry.npmmirror.com/loader-runner@4.3.0 - mime-types: registry.npmmirror.com/mime-types@2.1.35 - neo-async: registry.npmmirror.com/neo-async@2.6.2 - schema-utils: registry.npmmirror.com/schema-utils@3.3.0 - tapable: registry.npmmirror.com/tapable@2.2.1 - terser-webpack-plugin: registry.npmmirror.com/terser-webpack-plugin@5.3.9(esbuild@0.19.7)(webpack@5.89.0) - watchpack: registry.npmmirror.com/watchpack@2.4.0 - webpack-sources: registry.npmmirror.com/webpack-sources@3.2.3 - transitivePeerDependencies: - - '@swc/core' - - esbuild - - uglify-js - dev: false - - registry.npmmirror.com/which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} - name: which-boxed-primitive - version: 1.0.2 - dependencies: - is-bigint: registry.npmmirror.com/is-bigint@1.0.4 - is-boolean-object: registry.npmmirror.com/is-boolean-object@1.1.2 - is-number-object: registry.npmmirror.com/is-number-object@1.0.7 - is-string: registry.npmmirror.com/is-string@1.0.7 - is-symbol: registry.npmmirror.com/is-symbol@1.0.4 - dev: false - - registry.npmmirror.com/which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz} - name: which-builtin-type - version: 1.1.3 - engines: {node: '>= 0.4'} - dependencies: - function.prototype.name: registry.npmmirror.com/function.prototype.name@1.1.6 - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - is-async-function: registry.npmmirror.com/is-async-function@2.0.0 - is-date-object: registry.npmmirror.com/is-date-object@1.0.5 - is-finalizationregistry: registry.npmmirror.com/is-finalizationregistry@1.0.2 - is-generator-function: registry.npmmirror.com/is-generator-function@1.0.10 - is-regex: registry.npmmirror.com/is-regex@1.1.4 - is-weakref: registry.npmmirror.com/is-weakref@1.0.2 - isarray: registry.npmmirror.com/isarray@2.0.5 - which-boxed-primitive: registry.npmmirror.com/which-boxed-primitive@1.0.2 - which-collection: registry.npmmirror.com/which-collection@1.0.1 - which-typed-array: registry.npmmirror.com/which-typed-array@1.1.13 - dev: false - - registry.npmmirror.com/which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-collection/-/which-collection-1.0.1.tgz} - name: which-collection - version: 1.0.1 - dependencies: - is-map: registry.npmmirror.com/is-map@2.0.2 - is-set: registry.npmmirror.com/is-set@2.0.2 - is-weakmap: registry.npmmirror.com/is-weakmap@2.0.1 - is-weakset: registry.npmmirror.com/is-weakset@2.0.2 - dev: false - - registry.npmmirror.com/which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.13.tgz} - name: which-typed-array - version: 1.1.13 - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: registry.npmmirror.com/available-typed-arrays@1.0.5 - call-bind: registry.npmmirror.com/call-bind@1.0.5 - for-each: registry.npmmirror.com/for-each@0.3.3 - gopd: registry.npmmirror.com/gopd@1.0.1 - has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 - dev: false - - registry.npmmirror.com/which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-1.3.1.tgz} - name: which - version: 1.3.1 - hasBin: true - dependencies: - isexe: registry.npmmirror.com/isexe@2.0.0 - dev: false - - registry.npmmirror.com/which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which/-/which-2.0.2.tgz} - name: which - version: 2.0.2 - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: registry.npmmirror.com/isexe@2.0.0 - dev: false - - registry.npmmirror.com/widest-line@2.0.1: - resolution: {integrity: sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/widest-line/-/widest-line-2.0.1.tgz} - name: widest-line - version: 2.0.1 - engines: {node: '>=4'} - dependencies: - string-width: registry.npmmirror.com/string-width@2.1.1 - dev: false - - registry.npmmirror.com/wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz} - name: wrap-ansi - version: 7.0.0 - engines: {node: '>=10'} - dependencies: - ansi-styles: registry.npmmirror.com/ansi-styles@4.3.0 - string-width: registry.npmmirror.com/string-width@4.2.3 - strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 - - registry.npmmirror.com/wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} - name: wrappy - version: 1.0.2 - dev: false - - registry.npmmirror.com/write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz} - name: write-file-atomic - version: 2.4.3 - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 - imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 - signal-exit: registry.npmmirror.com/signal-exit@3.0.7 - dev: false - - registry.npmmirror.com/write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz} - name: write-file-atomic - version: 4.0.2 - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - imurmurhash: registry.npmmirror.com/imurmurhash@0.1.4 - signal-exit: registry.npmmirror.com/signal-exit@3.0.7 - dev: false - - registry.npmmirror.com/xdg-basedir@3.0.0: - resolution: {integrity: sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz} - name: xdg-basedir - version: 3.0.0 - engines: {node: '>=4'} - dev: false - - registry.npmmirror.com/xml-lexer@0.2.2: - resolution: {integrity: sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xml-lexer/-/xml-lexer-0.2.2.tgz} - name: xml-lexer - version: 0.2.2 - dependencies: - eventemitter3: registry.npmmirror.com/eventemitter3@2.0.3 - dev: false - - registry.npmmirror.com/xml-reader@2.4.3: - resolution: {integrity: sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xml-reader/-/xml-reader-2.4.3.tgz} - name: xml-reader - version: 2.4.3 - dependencies: - eventemitter3: registry.npmmirror.com/eventemitter3@2.0.3 - xml-lexer: registry.npmmirror.com/xml-lexer@0.2.2 - dev: false - - registry.npmmirror.com/xtend@2.1.2: - resolution: {integrity: sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xtend/-/xtend-2.1.2.tgz} - name: xtend - version: 2.1.2 - engines: {node: '>=0.4'} - dependencies: - object-keys: registry.npmmirror.com/object-keys@0.4.0 - dev: false - - registry.npmmirror.com/xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz} - name: xtend - version: 4.0.2 - engines: {node: '>=0.4'} - dev: false - - registry.npmmirror.com/y18n@3.2.2: - resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-3.2.2.tgz} - name: y18n - version: 3.2.2 - dev: false - - registry.npmmirror.com/y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz} - name: y18n - version: 4.0.3 - dev: false - - registry.npmmirror.com/y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/y18n/-/y18n-5.0.8.tgz} - name: y18n - version: 5.0.8 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/yallist@2.1.2: - resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-2.1.2.tgz} - name: yallist - version: 2.1.2 - dev: false - - registry.npmmirror.com/yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz} - name: yallist - version: 3.1.1 - dev: false - - registry.npmmirror.com/yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz} - name: yallist - version: 4.0.0 - dev: false - - registry.npmmirror.com/yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz} - name: yaml - version: 1.10.2 - engines: {node: '>= 6'} - dev: false - - registry.npmmirror.com/yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-20.2.9.tgz} - name: yargs-parser - version: 20.2.9 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-21.1.1.tgz} - name: yargs-parser - version: 21.1.1 - engines: {node: '>=12'} - dev: false - - registry.npmmirror.com/yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs/-/yargs-17.7.2.tgz} - name: yargs - version: 17.7.2 - engines: {node: '>=12'} - dependencies: - cliui: registry.npmmirror.com/cliui@8.0.1 - escalade: registry.npmmirror.com/escalade@3.1.1 - get-caller-file: registry.npmmirror.com/get-caller-file@2.0.5 - require-directory: registry.npmmirror.com/require-directory@2.1.1 - string-width: registry.npmmirror.com/string-width@4.2.3 - y18n: registry.npmmirror.com/y18n@5.0.8 - yargs-parser: registry.npmmirror.com/yargs-parser@21.1.1 - dev: false - - registry.npmmirror.com/yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz} - name: yocto-queue - version: 0.1.0 - engines: {node: '>=10'} - dev: false - - registry.npmmirror.com/zustand-utils@1.3.1(react@18.2.0)(zustand@4.4.7): - resolution: {integrity: sha512-YBfWpWEwZN0ZxtMg5zJeywTuNAaN+xVCTAjYC0SFsWx7hwfdHQGFbkA3ruTRBLez5S9y9ZwqnmFeDCHzRmLLMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zustand-utils/-/zustand-utils-1.3.1.tgz} - id: registry.npmmirror.com/zustand-utils/1.3.1 - name: zustand-utils - version: 1.3.1 - peerDependencies: - react: '>=16.8' - zustand: '>=4.4.1' - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.4 - react: 18.2.0 - zustand: registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.38)(immer@10.0.3)(react@18.2.0) - dev: false - - registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.38)(immer@10.0.3)(react@18.2.0): - resolution: {integrity: sha512-QFJWJMdlETcI69paJwhSMJz7PPWjVP8Sjhclxmxmxv/RYI7ZOvR5BHX+ktH0we9gTWQMxcne8q1OY8xxz604gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zustand/-/zustand-4.4.7.tgz} - id: registry.npmmirror.com/zustand/4.4.7 - name: zustand - version: 4.4.7 - engines: {node: '>=12.7.0'} - peerDependencies: - '@types/react': '>=16.8' - immer: '>=9.0' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - dependencies: - '@types/react': 18.2.38 - immer: 10.0.3 - react: 18.2.0 - use-sync-external-store: registry.npmmirror.com/use-sync-external-store@1.2.0(react@18.2.0) - dev: false - - registry.npmmirror.com/zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zwitch/-/zwitch-2.0.4.tgz} - name: zwitch - version: 2.0.4 - dev: false diff --git a/apps/admin/build/postcss.config.js b/apps/admin/build/postcss.config.js deleted file mode 100644 index e87ced38..00000000 --- a/apps/admin/build/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - autoprefixer: {}, - ...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {}) - } -} diff --git a/apps/admin/build/prettier.config.js b/apps/admin/build/prettier.config.js deleted file mode 100644 index e95b8c12..00000000 --- a/apps/admin/build/prettier.config.js +++ /dev/null @@ -1,27 +0,0 @@ -// 配置文档: https://prettier.nodejs.cn/ - -/** @type {import('prettier').Config} */ -export default { - // 每行最大宽度,超过换行 - printWidth: 120, - // 缩进级别的空格数 - tabWidth: 2, - // 用制表符而不是空格缩进行 - useTabs: false, - // 语句末尾用分号 - semi: false, - // 使用单引号而不是双引号 - singleQuote: true, - // 在 JSX 中使用单引号而不是双引号 - jsxSingleQuote: true, - // 尾随逗号 - trailingComma: 'none', - // 对象字面量中括号之间有空格 { foo: bar } - bracketSpacing: true, - // 将多行 HTML(HTML、JSX)元素的 > 放在最后一行的末尾,而不是单独放在下一行 - bracketSameLine: false, - // 在唯一的箭头函数参数周围包含括号(avoid:省略括号, always:不省略括号) - arrowParens: 'avoid', - // 换行符使用 lf 结尾 可选值 auto|lf|crlf|cr - endOfLine: 'lf' -} diff --git a/apps/admin/build/public/favicon.ico b/apps/admin/build/public/favicon.ico deleted file mode 100644 index 661e3169cfa1f94787df8fae8addaeda63a06c22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1446 zcmV;X1zGxuP)Px)U`a$lR9Hu)muYNNRTRhn=e{=`XbS_8(q-D(fDl5Jh)awV4Msm0(_#ryP@_Q! z(FEvB3$m&BWXUvko7T3-VhT!u&;)`_5T-@I1w{oUQ4`r(ZJ8EDGi=>v<{k4&3)A*a zX9nKKch33W-#zD^^X?kGhm0|cdS5d#3! zD?`vp5jCv(ws@k&4<|Qo_J)E936ND+G{zs*wMCG~BtRV~*bm^2(Z>qvhoxHHJWyEJ zHWWlifb1_FX?~S{0`nM|P!IqkDIR5{`uL$wtIppOfDt_NkYg1SHUJm|90Y((!=lz6 z+)<(3a|sNA7mpREa98(f2JQ>11O!jCCF+s7trd-715BvohtDm-8Gu+8lzDK2jf5xx zAOh`@3^19+>V}$63Z#oOQ%X6~n{D)~VZWWy)Cw-s$6{qm4t2-^jZTR5nvW4MZAbvZ z&z{kk7OVr(N;$1t!Rzi^TH6mGrJVQqffo0Fut6hT2JwQ+@v;K!911`&EAw478@J2i zlS_EGU!Z{q$K5u1XApo_N0zE%T1!6tC=;0T+n%V-mJ4S0C;ARCPBZFw|5*x{M|RY7{Um%j&LgyD1h3<%t`#95x+TUmHY8mqC0x8Q3c zWGDjbFXhtvvJ7N1;8#^lzOUQ{M0*?36X!tFq~(iu@{g z&TXSLQh?q?Pg+LcnLifLbs5CWddE~h1b|fqD_fS(N5SeF?EMUl)w83pPX{sw z`UqgT+fIccOJF$Y3~!7H6B-xOpOHXVOE|}`V0Yia>sJCD_SSqV3k#q(u(~Y?3z0+q za3GA4>k~K(;7OT3MGC--t1*Nr7wz;{H~@*oJX=>#OOpFT&#q+vRwu9a1M6j%4kL&e z4VSHWK2#PaZe;7VPW%Fb^ajO@4pkuQl8uZE-DyK+ri3!&5MUg*RM}2VgzRP;?H?)& ziB4X}zbP({anNi)8N1g#QK_aKII@SWaAS?|OV}>3@nAL2jF9t - ) -} - -export default App diff --git a/apps/admin/build/src/api/index.ts b/apps/admin/build/src/api/index.ts deleted file mode 100644 index cd3a80b0..00000000 --- a/apps/admin/build/src/api/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { service } from '@/utils/axios' - -interface LoginParams { - username: string - password: string -} - -// User login api -export function loginApi(data: LoginParams): Promise { - return service({ - url: '/login', - method: 'post', - data - }) -} - -// Get User info -export function getUserInfo(): Promise { - return service({ - url: '/getUserInfo', - method: 'get' - }) -} - -// User logout api -export function logoutApi() { - return service({ - url: '/logout', - method: 'get' - }) -} - -// Table list -export function getTableList(params: any) { - return service({ - url: '/table/getTableList', - method: 'get', - params - }) -} diff --git a/apps/admin/build/src/assets/icons/bug.svg b/apps/admin/build/src/assets/icons/bug.svg deleted file mode 100644 index f7268a86..00000000 --- a/apps/admin/build/src/assets/icons/bug.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/collapsed.svg b/apps/admin/build/src/assets/icons/collapsed.svg deleted file mode 100644 index 0319e4a0..00000000 --- a/apps/admin/build/src/assets/icons/collapsed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/compo.svg b/apps/admin/build/src/assets/icons/compo.svg deleted file mode 100644 index 0164a17a..00000000 --- a/apps/admin/build/src/assets/icons/compo.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/document.svg b/apps/admin/build/src/assets/icons/document.svg deleted file mode 100644 index 92d285ff..00000000 --- a/apps/admin/build/src/assets/icons/document.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/editor.svg b/apps/admin/build/src/assets/icons/editor.svg deleted file mode 100644 index 7b2ecd89..00000000 --- a/apps/admin/build/src/assets/icons/editor.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/excel.svg b/apps/admin/build/src/assets/icons/excel.svg deleted file mode 100644 index f167095b..00000000 --- a/apps/admin/build/src/assets/icons/excel.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/flow.svg b/apps/admin/build/src/assets/icons/flow.svg deleted file mode 100644 index cc9c2ac2..00000000 --- a/apps/admin/build/src/assets/icons/flow.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/form.svg b/apps/admin/build/src/assets/icons/form.svg deleted file mode 100644 index b27c95f2..00000000 --- a/apps/admin/build/src/assets/icons/form.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/github.svg b/apps/admin/build/src/assets/icons/github.svg deleted file mode 100644 index 4590cad8..00000000 --- a/apps/admin/build/src/assets/icons/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/heart.svg b/apps/admin/build/src/assets/icons/heart.svg deleted file mode 100644 index ed4d9fc5..00000000 --- a/apps/admin/build/src/assets/icons/heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/hints.svg b/apps/admin/build/src/assets/icons/hints.svg deleted file mode 100644 index c0d6017a..00000000 --- a/apps/admin/build/src/assets/icons/hints.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/home.svg b/apps/admin/build/src/assets/icons/home.svg deleted file mode 100644 index beb8f1cb..00000000 --- a/apps/admin/build/src/assets/icons/home.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/image.svg b/apps/admin/build/src/assets/icons/image.svg deleted file mode 100644 index 16de4ab0..00000000 --- a/apps/admin/build/src/assets/icons/image.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/like.svg b/apps/admin/build/src/assets/icons/like.svg deleted file mode 100644 index cff0e7da..00000000 --- a/apps/admin/build/src/assets/icons/like.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/linking.svg b/apps/admin/build/src/assets/icons/linking.svg deleted file mode 100644 index 110bdb37..00000000 --- a/apps/admin/build/src/assets/icons/linking.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/locale.svg b/apps/admin/build/src/assets/icons/locale.svg deleted file mode 100644 index 179582e6..00000000 --- a/apps/admin/build/src/assets/icons/locale.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/location.svg b/apps/admin/build/src/assets/icons/location.svg deleted file mode 100644 index 1d187aab..00000000 --- a/apps/admin/build/src/assets/icons/location.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/message.svg b/apps/admin/build/src/assets/icons/message.svg deleted file mode 100644 index 8b9f3cff..00000000 --- a/apps/admin/build/src/assets/icons/message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/moon.svg b/apps/admin/build/src/assets/icons/moon.svg deleted file mode 100644 index e6667f0d..00000000 --- a/apps/admin/build/src/assets/icons/moon.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - diff --git a/apps/admin/build/src/assets/icons/person.svg b/apps/admin/build/src/assets/icons/person.svg deleted file mode 100644 index 2a7f8fb4..00000000 --- a/apps/admin/build/src/assets/icons/person.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/pushpin-fill.svg b/apps/admin/build/src/assets/icons/pushpin-fill.svg deleted file mode 100644 index a8836e8b..00000000 --- a/apps/admin/build/src/assets/icons/pushpin-fill.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/pushpin-line.svg b/apps/admin/build/src/assets/icons/pushpin-line.svg deleted file mode 100644 index e8767f3e..00000000 --- a/apps/admin/build/src/assets/icons/pushpin-line.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/screen-full.svg b/apps/admin/build/src/assets/icons/screen-full.svg deleted file mode 100644 index d1e2542b..00000000 --- a/apps/admin/build/src/assets/icons/screen-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/screen-normal.svg b/apps/admin/build/src/assets/icons/screen-normal.svg deleted file mode 100644 index 4f8844a5..00000000 --- a/apps/admin/build/src/assets/icons/screen-normal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/search.svg b/apps/admin/build/src/assets/icons/search.svg deleted file mode 100644 index bfcadbab..00000000 --- a/apps/admin/build/src/assets/icons/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/sun.svg b/apps/admin/build/src/assets/icons/sun.svg deleted file mode 100644 index a3997cbf..00000000 --- a/apps/admin/build/src/assets/icons/sun.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/apps/admin/build/src/assets/icons/table.svg b/apps/admin/build/src/assets/icons/table.svg deleted file mode 100644 index 9b402b41..00000000 --- a/apps/admin/build/src/assets/icons/table.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/tree.svg b/apps/admin/build/src/assets/icons/tree.svg deleted file mode 100644 index 7a1c2556..00000000 --- a/apps/admin/build/src/assets/icons/tree.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/unfold.svg b/apps/admin/build/src/assets/icons/unfold.svg deleted file mode 100644 index 32249c91..00000000 --- a/apps/admin/build/src/assets/icons/unfold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/icons/video.svg b/apps/admin/build/src/assets/icons/video.svg deleted file mode 100644 index ed867571..00000000 --- a/apps/admin/build/src/assets/icons/video.svg +++ /dev/null @@ -1,2 +0,0 @@ - \ No newline at end of file diff --git a/apps/admin/build/src/assets/images/avatar.jpeg b/apps/admin/build/src/assets/images/avatar.jpeg deleted file mode 100644 index eaf44be9013965461b53cd05d44751a047b750eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35510 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 Lz>Lw%K12W6g+lP5 diff --git a/apps/admin/build/src/assets/images/avatar.png b/apps/admin/build/src/assets/images/avatar.png deleted file mode 100644 index 310a864de8364b3e40611186af57341a76a920f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265579 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

DPwCbdGSz}0&od?zN17ukEia!lI;aahs)bB z8xmTh#q1R`ObpgsSp}>Is-zsXK?$%S!E2!mVxeW)RWR#d5@xUwF)9o(Dh3OKNmw{W z-Cz3YAAatMN8j_#N3UE)Zm|y(Kn*p)ky8;b9wEU*+aS*1fYPJ#?wO1B;r+djzw1X{ zz5aohuHSt1`pvI=GS(xAU6dXwp7c099rZ}*`~({ghkiS@O9f0%pn z58wd^*i)!BQmI_V)L;x3}l>*^Qew=d;D-%MV?=cyW7ow=B!6SFbmx zt)0vBY&g7h<>7~igVA_Ae(}W@tEzI&=Xu^6^oyb>%ety-n`OhnU_2gMYX^gY;S3?N zPzpJfK;dOJXN|Xglif4Ucz_KKlRA|EfCDN*Wl`VCv;!{IPc@fP!WctSBdk=ZQEthL9-$0y@cJykdlc=#Z+E|G6;4466N zM;?ASEAqp`!$nosbzRmq>KcaG+APbAF(B#p`vB(ixvPRP4P;57B+I_NJz_T28nQGV zpC}uKAu{8WsqL{XvYv(W0@Pt%&gb(u;D+FX-31Y4dE4!*D(C638?b4*yD5i4NMg2R zf;U%-NZX4=1?)9WWed+}I=_+)?cXR0gtgmz_+OYe#B4+?`JH|?A0M;S+kL%zieI5>Drw?{^E;Y`o_!Guf2Bh;V1VlZr?ebE?f=oLa&4NI)RqS6Mqi4Sri@V zCc~EvX4^YPARq$*8&NMptgIwf)rFppB1-B)Evtdy%n;O)l3P@z_evtQs5e2o21{IF z0NhOw-#2bU3QH^@a8OlIUMjdD0M0vjuwf(ucQM)`nAvP5BClV+?z}H6=e(QF%h71G zySux!RXqAAS5Z_4<>^M8sQWBH9{_ zX0zGJ?c3noi-#vMx;Q@N;gAivsw(=Ssbs9SS54$sX-Tecm*<{hS3sFmK*DgKim@mfIB^`XLl|gTzd4er+)IM zKJ}wN{Lm{m9x8wR^v^!~nZcvadp3>pNJLOlgnki}L2Ivxpp^Ly z5XdwLX|ZatFvezl?5F4{sm5@9BfG#FxMR-Y@*cSO4P6Up+oPVqNU- zU6?Jh#rSyQ>*;i+1TP-WFBbEDe=r)2qHzbvaBhvYHqY}c%Np9HS_5f2iiAd~-uuu< zWj32yS9|Ygv$=?m6ts|NRWUHk96GF?Q$s|=B7U(by}03^sO!3}D=%uuTZI4Wq8B7I zpsK@O-cQh-oHe{Muc2g2ywYGesKtxa!IXy0+pC6Ddq5Zz zp$|Kh5FlJ)Rw5;{Zg)b#s!>N&v%2HEH!(lyTg|Nbv5!3ak@r9QLm&LWvrp^*JbUaVp6PBc^fGD6iO?Vq{9S>bpxF}BT&_tjF8l>j=Xj6naJino7vm9Z=al; z+`4shI2`qQJ!Up}PE3b)?qo$#Rn@DnzIu3gv{)>xHT{17hH7#VSA80Ch{(&VSkw5etQu2x$;UaD)ZZ;`Qs_dH3TVe*EE! z2fKrpU%4~fG8Xylbdqfq8|(Q82YZHiHa>-xy~1X;Z`ga8kISQp)>SRz`qp%DOU$Up z!#qb-PCarlMiB}-*|If;)c788p*&J^urnHFkTIrrZY;*P|L))aTc7yEkMHi88#nNK zpZ@H(zVf*%k6c=0L~O#7_Tg?wnT+>hDR9tP6c8ne5|K&eQK^?1(zK{ZI)o5z1sx@n zV@IQ*J_KCMCJ=7XFnhs-YI^wk(@#IVy|X_)xpiCXEcYM&$UA@H;~)LVGfxkV9Bi8% zpaj&_r7MlfsNZ9VTJOYhvVc>U&$+qZ8I^Wg%6;K7ZycBJ;syXkz<>-Af}O0=%)mFlwuSy&{*aA#}e zTs@yJoO5+upPrtYEJK2ED9eaRJHqMb7lS3oN^GD6nc~*%>k=7Gnc>2a&snUgceX~M z(UNfFafajBr=N`p6`{_R^WD35tEw)`x~^(hN>duMJ=&>Uy(kw_OYO#WEFaYVa1b6* zqcB0lfc2!Td2H)y46zV{m_QlCa7UIqCCWU=0TuH?adNQ7Pd|F`xyLX4>VNjr`vV$g zs1{W(crUG z!jO7sO)5?*t!w9M7lph6Z`cGHJ}9;w-(2i=?4UPN!o0nopnt%*&Dn6C z2>#C}%sseCuu)njjn`M?vHl0pY zr6>wt)rKj{GG_b4laHzD$;nAoRo=HvJOWXzWof6w-hb282R($qD$4!-U@QOtfB;EE zK~#?57!_e*bYZbDSdcEpx32f`;fword)O1V$P6rpVlIZ}$o zf9cZ0&n|=oZ0&%VZ{EH$IXx}Qsxc*i_>-}>S()c#Vgf46HWPRSVQ(0X7K=sD=JMXp zr!&rNQ51vRWSPx+MP{?IEWLML1n@>-)d9%Vd3C9ZSOtz77Nx^*INaUc84P>xedpu7 ze!jiEJsgaNz3pBx7;KGtz23#k7m#Gmwzsz_p6>l)A?dCoy=zC;?C{E zxQdBi{O+ssaxt0A7xVeNDr-SqqxOEj7z^=A<)0#}RXo*UhcZwi!<>PfQ4Vs%!TXU8 zY+==9y2xd=w^O|1(F;HIi4TA3BhNj&0|RBqAQ$pwMsTjOS)6qhHQ&=dL^%cp5m9D?vbPePhpMs&sR$f7r{Yvxki*lEq`p6e%Qt4a z0_`i=#!c+WD1N12EsA0|9QJy>>o;Cs%&X~mjN0{g_KKp&v)p?>Un~rpJhvip>C&ZJ zw{BHcJsgdmefHVY)6=_m4=0mxzu$lO;fMG44*-1UrI&BtzP*@CU<_(k42Qd0TcgqF z!i5WESuPff6`}8@avsY&+?#@B`62xDhkxYb?|bJHU;Dym?!NxAmU8>X z%~!wn<@`VS%cBfMCZnO9&yGqdO_7NYm~b7WxuhzgJvJFb;T9JUwtn?j{>pov>V5mG z-}v-z{mVc3ldlfkkLH-(xP7N@>PIi_|EGWJKl{K(K6H4D)-wD-~Lzs^513o;L%4e zkQH0I>0+|Avpb&6O+Fxkcvg5;g2H4r-`Sp8xU$4_ippWwgA;fUf||hY4@Hm6ZBmX^ zK+Hm@xtk(aFo%xM@T!IhqIHF;%zOEumyf8wxczE2n?HQ8{|mqH6My5c{p`*NLk7Y3 zd)8D7R6VMO9BS0&`eF!T6VTLI@s9-^mKN5X|MmYKlPD! zJbmHmXCD36zyD{)htoynw)QS;?O)6-LsV+FfBAAu;fXs1p?0X9E-LKo?CtFXGCnzV zb!Dwl_0IY6cs!d;MRYhExXgO*R5j!Y_xd~iekLLd=k6XKmSx%N^~hj8Jr)t~rJrZJ zTiX{eUL0-r2ZL;D*xTLP-5!n}ee}_XE?s=+q02eZ{a@1DMP^X{ywC)4R-zL-vC^TlE|n@-E= zV0*8W|37>G9VKaY-3NmAKJ&S-8R@fpRadq5-l4nEunj|yFa$*kbl@y0&d5;Ikp?@` zoU^-H9Z{5-Sy3aA5-CHGphQq0JkT)hz3;9r*X2$6%}2B9wbzFu8jM+i^~XBt5XCkvDHdW~9HrzUT& zU4GS`kKc3WT{mo>tbitxkho~4wZ@Yk8}_6N7!C;%C4)d0!ea(W3q!kCf8gro^0}`({Aj;@PFH5#sgVg0#gGQax<||~fT=hZ>QPFA z3+qz{UjHUVBme*;DJ241V*vzn&J0WljMm}q*^)KZT3{Cjb?7@B6libq+(-RYajC5P z#rcp2a|V!*i42edQUX~^rFGbDcRWukA>+6oMWrN3ywFohZQs5<2!h7MRGOw|&z@ad zSg2IW)6+AvbF*6MW5-S`EiI*KS}vE@TP*-c({$&~9YV;dsp)OowtJpFcW&PEyg2U1 zalE>`nDk?mqFgRnL$z9MZp)UfTeqG*eRg4fzS&&!ecxB5;kW2?dc!@NMse=%mbl{` z?#zSACaO(0vL zR`M|D=RiP+jKWAE5CVY_S;#2?Uo)9gC*Hc}`fKjG<;pN$lj%aXwq~=gHn!#kx4r*8 z58QU6AHrL2EN8u*7Q}hK5L4D@ozu# z{I|dRg98VTnT)Mv$c^dS@!2c0wag^Fv>#Xe5J9jYU}OhP2Vt0GDIiZ$D&UJhWK z$TK6DLIUJ`sQiGzX(KYjOyGII3?x7b4>9X@7)-h3s{p#q^=30+#ajY=;J)|Yd(W-c zUNut<+AH5;AAdA}9qEx5YU|13H26%i(C_|>C1ez`Y1loii3FKYd zCV%=TAG+th_x-o8fA6uUp6SFL+xI*Hm0Bguvu=BhnJrl)R!X4sm^HJ<)^MJd%jL@K z8ohC%@(mYEIYB&0+@u@Q+l-_SUDKHGVQP!v+fOKmq-n*@v8WHI%ha`bKr!!~HWF}A3G|9~yM-H{) z-g>v)?k6O%m&BdU!uryJ5M$b}1zw~B-w%U+lJt^3S##N*xpT*l=H0a$_U!oB1GnFP z_4cU}K%WCY!-BXIkU;~c#1e3%#@MYpf`Wh^ps3ZNVLd*KghX74z5AAeEr4;;fY_U^ zz)yed{iR6%(O14JAkHllODO_!!7JRvb>XU~2drfle`H*|V|yb@E{R3f3U>Ok#*z_W zna#T|pnd0USQ{*eEZYpFLTP>9-?nW>nx1NNV@yhAE!}X# zjlS<2legRLem|X?n+wBmVPXE{i4$=gr)e4|iIN(i*pN0=TaP?c@NQ%7Bah!n1wp&r z_EmcL@ZlrJuDoKq_mL0Z^WJ;zIQ+)P|I>f?cZc6RaL>%_^;cc_@XT|EPAq$xt%;o& z7eazy9ovckWh?=+^21&)e(8l*uh=?y$92jG#vj%wV zh1IY8@t2m)tfUO4W$F_X@44d^67=M=&m^7J`kBL*@7{X+z>D?q#)J32&m^{oCh#L4 zWR`-bqpPmGCNq#)Fa!w)r`Ma^W`AmCt~xi}?x%oC0@^`U&4334l~SM-qXbU!K7l2d zQ!@gD7}35ROdu5CPJbGP6*>jUjRUvaerKW@2{3VYt+}$KB~RDOTdL8|J#_z_*Y4f5 zE$nu3VU4G9C0HK^V?56^CGCgm$K7d1tG#HYSgNwAS{(iS(5hqoit5bt@W&%rI1vs z)g7~q*7`aC)azrOCzlrT)s>a?_NwN@Q)=hjWI5WhXWLBV>FMdI+1Z(`bF<^)eAtW#eVj!XoR)?aw%%@9yt0E7C zL$ITZV-$fJNBQE&nn9qHE_$8{u#$WsDj`sa0NTRPpA^^a+-?Dgzz}@qW7l>2u-?tu zaqsZ4=0>nJk^Y(yZ1M1feK#a$;EcHyhHYr=&&STGjVvPqA(PT@x%yuY2~Uw?Xk zFEs?RJQlSR!$L9eu%5gqh!X=+-c1xEmo}g0{c)(F%0dclFa`i12C@tm*^yfoIR0Nz>Fi&NQ;) zQ&Y8i&GUq{=Fp*oQ&Us*`dFz{o|u?WN*j|3A-8OqCFUeadfo2){1QOH0P3o#FLb;A z(koP%*;@O|GtZ>0<&VGbo(Jx{Zn~msx89nzn|pTdo)$1QUf;EK_QaWaq;9{P3V%!j z0LN@IV;ESaCJ{2ye#KLMd-dFFOK_Ua&sqv{l|Jw z{NTwW`wutfwojCzPOrOT+tjB&a>rN$M6&kOlg|j7Lw^mk-fh=EP>;%$5K2&6?{_$Y z`|rK=z4zT3032V3IEQ|kv@`kbAH4jv?>wINTB16mJkw0&8E3w1Z$KLKW6j+*!T(sw;o}=RdozA!`~UfNDhp z5m=N6QYl0M42(aLgf}xQ5NU3O6agxmWl5*U%%KYNIGd?^vv*ywXZQBKyLNu*&%f5} zwywW&&)IWl)3mpCZgnw9gCHnJrFy+O-YDmtrB17zw#am<6XRo@rFj4-Nefy|*Me*J z-aI`$efi~=O^#3O+___JW-OFY)1Uxy0K=dVa${Sot$MvKq;QDcUcc|kLD>?5^rUp^ zQ8ll0-nW1v@824U{M=othLb-7HxkXtmY>z*(qDrKFUULNd@hIh;EzKLQ9eaig(DDKB;nmTX+lWn)#WXX}&w%hHswe?ad z8XId&O;3$C#-&uAr~L78tySEQSG8JQZMqIG&XmIfuF-_*Uq*+F>VhawBc*AUJ^T1$ z&2z`*kKgvu4?J+qw#kou@cp@gwG^huOXKw@?XAwI{oR*e*H7`>!a{A#zwY`g>h;=7 zFT8Q)==|8+-o$c0HIY~LJXl>?fAWdvsuJ(M`7%#O2<&^F2Kd^euRZPo9zpDCBef(ob* z>NN-mR1&BRZodASC!c=)SnqsnPWp*dnH+??O=Zp4s(48iH#4anC9T!0{e$t6lg<~6(6g#ZWyfEX=p zL(9Wttbl?;us9O=2%%s?&Y2A$GaHLRDCV~78+Tkrcv&~OtKID{t*>^vO+(4fEi;#G z+g3-A0KV@@&T~q%R04efv)){d^UYlQ-Ut3*$>+q2{jys)BKaQ7{mWDQIe7qrq zoSL54zHM8hF)=qgw|C#(x!Ji=wU(x-lv1lOPrHaHlvY9mKqu`Z*s=_^O^#VaCYUY5 zhwr-`^vefNoa?VI3sotIlu;m~D58CGlM;jT<>BIif=fE|EZE_x29j8=-jF%7c?#AL z=Yk0wX{p5`9I^Qt8#wn(SN@@5MyBoJ95PsydFrG?xkalC!kc4Ua6aBQqz zu2s9;-s#h4+U>UIhjUxDWLehfbbT)@m#S;ai=tYslq=;@d0}y3acPN&TdiijUaybU z&z?Ec@5i3!RmU4EE2~G39^JEN&yF42QQ*lFC%dhd5He5Gq}v;7G|rtnckb-Mwr$&d z-(NU8zah=S?jSW_1^96#RNuBau`A#AD|%d3{Q3F$-~HX+ee~gPe)#@-{`Rl_vLuiM zis2_d@}YA}i;q3~{L;B&gk>%A+i$t?7k}xKc@A->wZ6O>YV0Q#*#l6(YQ5EZ@#WXE zZZqvQAGr6rsmMzKo_>AdkN?Y;Po7)N$kSmp%2J#5go$UzN_%D@=|O+#m|Z_}#pT!h z%CG#w{kQF6fY)A||N57|^7PZslEqSayxH!n(4XEiw`2EKzv7q2DnV2^^w!GanKRJo z=u)-0umH>umH|Nfp;j`t*0S@{oRdf(5IwCCav{)DLV1ilQeY0utfe##*_EfJ*D9cC zFvtWUNix8R7YOuhy&in>;~%>Jo|`Kb*=embYGckS=c%;V*t*rHOCwE55M=8J8ruE^*8sIg*kQV)Y-FV`~Bv` zMD?28S5Hn%YERyJ)6IMK?3$XIT3uV293Mwwsg&obKo@~*W-w`1d^8xv*#`P$)9F|a zN*~E&S=P7hJh#R+#v3EA8Tu?kQ3{tIzQ~dM{8~g7n^pmfO*N|{vfY=M;>8V17$Oz~ zxS9k20O-e=dj%krqmtWTNnn~6tdImytH9Q3bnRROuxwf$-AwOn-^3pt3MZs`07mKzmbDQ=LvHH@P9O)*L=` zxYzG>yS+H>Z{NAwTD!cweD?5RQLY7H048Ups?}rPKirD=NZ z?Aff-S?P9zYBf#M)2B}XKoo}6YNbgw%d&2(t(6*UG|J_&l=A4&qeKO5-^M-ChQQfq zJ(qgt(51nbeWydp!~`5g;rj7o&~569f7!MzTd%uf@6NgL@o~pDDj6ifWWDmShdz*) z%aK3*I%UIbCy(shG4b=C z{LF(7Tp3A7Yw8su5dIn_)0fxBrwF zvI2<)i6JM-fO3FAMg#xy@~D?+F2lnnjKXc(wg*}ZDWxZwS!#cEb+yy!7;Bi>_x-W4 zF(HJt7Cg_<6^Jk@l}nBBMiM8jW=kpwh;iIsU0s`*nZ119J}JcF;$oiXN=YGPr_()p z^k{p14VXb`rL^aHr%#?#TJPPvw_K{e`s%B_`0Xcz1h$3A-M3zK z+qGA|`1n)DPai8ymU5GZ9+OS9uQgT##mCPsoL*kOhN0PwSKA#>eo(G196M4mG*wRD3Q;l*v1xVT-de3cFU3Jw5?z;ZeO83n2%5VLXe|q4+k$P?F%);9A+)hinK2gey z>Gl%kl@UAvo*|L+bI@TRy?(o+Cd#?i;QLz2EYHvjrF6W&SX2-UOgtk?DOn(+AUqF` zRmhw|mO$JEuz-Z@VwWtK0F8$1#A|PU@PRu&^{EfveBIuV!DiiQFG`^=3-F$sd1woQ zwE<)Tt-yD~C4XTfPSX^bwWpO*E=MRp2tZ~MAQXc3q*Q2`H9);lny7{V5Gm0&_)P$h~Gn79+Xp_au1c=do+?))V%@Y^rGDQ*JxZSWLx;m6`YM5QRJ z8A#XyFhc1017&&g25in2hy-X$8o@GyB`JibJPAWAB~gd->&;zyJO3|I|vdPx zR)ugvnAmEy&YU^3GJn=9mz4A>m5S%7TCG;CR_D*nJ7p!mT4m-=r?a%Qblr8=20=J8 zGn?hv!u))z)sj-Q+ifq5gb>V}=b07?jBU5ut1GKgYR~ifrBc7wcRUs_phggm(_%1h z3(x)C_P{3o_e(g1JaF43(|hl@;a7k8qqPbEfDf>~4yq0-3w-?0nU`LA<;_C}l)~HY zy5&P3d0=Xy`tc9me$P!e-+BGsfA??y_41L!-i=qi=eo=PkoqD%mvsXp!&Yv~fo^qE zg*K4V7~6?6Kqy7g`dX{gix0nbOlxm_eXZF}>J_a_%9Mp3?AtbX^{@OQ0IjvoKKIOX z|M;K&PMXV!*%@O!8G$NQT5CP$A(GID64}>KQ34I2&@xSORjyfMqe`VbHl|C}KI)7B zgdl4fC4+Ff*#+-{Q)ogUcj_m>8&o2|Hbu^XbC3kq3LwFV43wodZjX(ZGI-4Y3A*c3>-AVAleG761U&T4T(RY-l)iE(9+f z!#c4whK2AWZ=mhRS!S4xWaS0EB_)Ier&TCKp6AA9EQD83OS8wq71hSf2vGKY_tEW6 zxA&@m5zW3eledpnie)OaN!>|78-FM$@Z7vwXu-t4dm!rt_ieM;7 zuogaY|9c*P{KfS&E{PD>bUS@rtq-VD$&C&Vv}-o(z(|U(utY^~@y6hwgB9bzzX1>& zlyuTfi2Gm@0P7_C1Ou=jF>)Gv2L>N6@*+p&FNPc8$b7?reH)aNxtG|S;-y1xJSVl+ zP0ZfQub!HkYPZ`b&zuf|kP(1|C42hxX=au|WDVDA;q>%mwOV!e5Jr9!`Nn2UdA(K( zg0K|&&9&9_)m0_1T&vc~rPbBd`T28c+y^LlFSMtC1xT^Fw#Eob`4(9D+88T^(~lCs zq`<96SEgp+FKpc3RYNv$r?s}&P2;lGaPH*di_brQ>g1`FrS;P%SCtHsq!ahs``>!& z*r}5bedI$|?VXuxs84?2z0_LSyM4#Ff?$pIcrysw9~PING(BmVY%!@p+lj8wOZ*s&rNP!1cU5Ge8bUyIVwcQ4J`*g zoB%=sNhHBoHh=~g5J)m8i4$9=Pal5i>Z`Z?+UGxe+0OACpzNV$Ba1~pNH)0%I2x}k za56<&Pb#H6A3)eN1^}&;7X*L^))-@n$SW4G3*Ng}tpI?y*9l7{o9An5>v^8l>vcaY zWm#?+5fw^ljme1+(bGBrW!Tz*^!0`c^M=$03=@`vWiJ4UtgE?|gM+q2v^b1i(I6vQ z;M50#;f^-mIxTj_jiSz?W@ZC%G*XJWv11Hkw#XY0nvLskCi%s8@c3;ezjM+F5uG9k z(7+#bJfR5W?!=+&#lZ3nF2JLf(vp=@-*fMKe(Rt7R^$hwh|F!G^S0K&AgE=HDf&-{ z4H{Ua?c29^#=7I3POH^gTV4OtKmF5Ix3hKY)*U?*EF1VS=(t_t1b{>~0h>BcWuQv@|A8hprYQ;77#GUfNH$TaQfZ9M&Q6uf zQ7?(hrSgEjMF2pOBta0AOXVO8cI?;|$8nx#VHjzp>-GBF+?Eq3PE;$^Znsx1S0*MV z90P$d`QgKdqbRc03L(eG8>o~V&=e*~X036YGXNlk@U$l-3CBR^HqIjO=p2iULHWxy z?ga9sm-mMn7nhf^Bu$cJZF$A>f+Wt;j7m|U{Zd9Y$?|VM{OH2+;w{%*^Wd#F-+J}T zFMj4TNs?u4qAcGxx8u?LrJ0>qF0`_h-g>249iP~m#>x6>Z#iB~VzK~ALKu|Xv;edM zjF!6J>wo66KRq)!LktXFjsQqE-+C{GQ+GdzIs31_dE(_)4}%Kx^=@9IJBtV}GXn|> zNB}}hR7(0mwO(T-0g-Z}P*Iv?S<1NuDV5V*1F+{$*ufDGH>8cRV4HD?(IWAn7$g$q z{h%!Gz3Zmi@3=;h?e%-*a#(nf4$gs_4zL9tbLg`VHf^%jWEoi-mdbe?w>q6(ue-Xs zmLy4%#95X*)=AflA+2=~1X}4@qdqY)IXgQuIXw-4{cgM6?gc@>OhQN@g*BF#<%V7> zNEkR}I53cwN7jiQJRX#YvKTqVxT_F@ra_oxqq>?I+)=}o>kd9-86`L{Nay0{lw!Yj>+0A%RFym3Fo;PsQpoHiuyz)C2BpquIG8<FHOGoLK9lrz(|dD;pkK zgmd0UI^u`K+y}&&7wuji*{dvpF~D|&-{QYlBLGmI&hy;nd00}2m?X){%1V|e+7B=K zo-|F{?Y8gx%-n1?qbQo4ojrQ&Xqu({PAA;8QwY)Rc75M(G#aN)ot~ecccgoWnCCIs z!U0EAzV8!Jk|c^%G}btCZ#!=ADpAo@V2X zN=8r_tM+?+1gteCCmOZmCl5XL+J?%pfz~tm495{wd2o}M#<`?dH&wZcyECLG# zfY2j^t-G$7*mg}+f&}2o1KlI@|NOwq`*&P(^ZeNr0x_(g1{Q@Bu|QTzdVvhQAc`zQ z!Dnc4wieS2b0ee{3`%QqMOP#B&u@EjR3s#kVvuamCTI5_eDLFU|I|-@2$&f1DDpH& zbg0Y18y&GPSOh4kV4oj+sPg*V_UhVNx6^s#`#)G&Svh&~#L1JVn$2c^kl7zixSQPi zzF#VrgCH0iAJLgAp`>`>7i%Ynmo5eY9KlN7oIPL zxkuo_rfkX-z1vG)L>J{EpLnVJxUik~9El%-oOvhTb~I{%@8VJ}gDQpi`~S<||EK@t zAAjxZU(byRgTRs*UO6{83|4;Oxx3@J)CXI==telU)Vv~<;eCY z00=CyDAcLPg4p@*FKoV}MZ-Lz0?q(zA$Db8}bj-8WV7g~|5r-HYgL9g|AK zj$L!zOuv5Uc$%4Br&);tPa@b%q6swKd*@yE-n4CL4PJQZjno(ryt=qZOY`?U_~38+ zjsNMoy?z7X(eFZYdHZl}49-a6G^>Gr<*t?#6rek;w`4_HW+0)z%B zNeXa3zK6c=SE5R-296Dsm~xx;yS-LBZm!#2&!n-9`)D$@q=G<5&pGFXdisXM3AV7;B8DJp{DIY9XDJ z1_HRqHt;}FlhLi-B38b!*l6(YkpEy%pv%AoJFqJdEr`!y0PGnhNxl#f3F*6`cOf;q^ zXC8m-apFQ!8`<5M7pr(8 z$Ew5wiJ8$KKxSkfl#4@=o;TJ43IGk;ccz zckkZ0vbucy_%YAd%oNA{G|OtW8Z+j(IeO@@AA~^=ZrQRGfY#U7vu2Z(s?=(Emi6N} z%X7yL3xGs`#5mMtCU>p{A_4*?rV-N^M*u+>0Q!K$L|L~Zv={iE z5|XWDW~EsQ$n)-%S6_e6UANtM<<4ujl^}^Pp9oWcg&fw`dfTQ;Kliy0-|)Z(|Lkku ze&mrymX_u{t-;zn?x)6dTJ0R5-GS4m&-%XKPm{|o-}9b({_4j*@PS=(IKKdY_T=*~ zzwpABzVv51cJAoJ{Wzywh^@Q#PR!0Ox7)f@-Fox3m9=)#H^2gLM7_ir7GLWq3Mv&; zDvdK?nM_VOWt|=;sd8CLlaUZvnvfrB?aN3x{EBr+MDfENG+7O!*6MmihYIbde)7Y& z-@2y?(1&cmiK3VZK@5bBHq!dVn_=q=Xt3V<+(}I)R?4HDqZw$wrttrUYuq5H@@-Br=NQIQ$PKgU;iI}eY`R5`@RJ( zQV!03y-V(j|Fiul4H31{#%6ckdFQYF+OPeifAkL*78hqGr(nnn$UuZhOeAuXLsGnP zl-64!I@eMnF0U*{QEAt%orew`4x{LiM;>|UrI&8I;~uG0zuS(=)imh~5RyqTOU9e7 zz52ByXI?*cj)+n;f9dt@3>OAu21=@%y5)yl<5K0h?}k(B{Ng5?rzAX-N-MP?K?M+n zp_3RRGN42l2D!Xrd2SGeQjQIEc-tFZ4i>H>0BpL`OM31o#6>*_xJ0K6KFXm&h7zbl&U*nu z`C(ZIouoGFr$%U{y)X((VYqY0&in4U>+U-*-!kV_BUn$;H%^~>ZvUZgegCoVKKjUs z#r4X>Y;`QS=dQiC-El{Aec{}>WA%FEY0)};YIfUBKiK;0b1y#n_~X4a9&6M-@ZtCW z+|N8PQNxAP_L1*D@$diRe|qM*mnNpRtTsDQeG+xqNPls))k>0u)wR;tcu=jbtTk0w zK|hpUB)mX)T6i7=KKq^s!>C$y$kwD6n>5L?IPdpOuP=?2%z{}EgSBjoCC;VCN=YT% z-av@t7)=XLkP%1GvHxJBXz{=(uyr`-ypU}k#i+_|%7=g*!yclM^6Z?4rEQphyVq?7m!YtQFASFVl+6$vph z;T<@>eDLszUQQU4EV^t<0YCs?Kq|%^Mv8<7=c=@gfhh&XyH=Esl9}#!#*j}&K zrzWQ+Cnp)$4+1F!ATqHK?l8fdce?`a3$8BS8C~2&QFv+NeyRP?4Gb~xh^!@TbU3lw zUQh^GaOpEL2y5A7#xe-4We{1*%JYLLh@xO&;mo#ebM>*Q<<-tNzxTcGJ@)7ye(}Hl z=~usc?9`d(UVio9(PN!{a_tQ_wEHwU8QgQv?NO=n#v8A%t*(zv&Az$+@EiLNAAalj zxrOmk9t0?m0g1o>un>yL#7RHy_kZ*6{GG3V{p%-A9IMr9)k>w??KYduG)a{55Ya7W z-}j^x#@IB?guwHpFr3+4Tw1DCtCdP6Nz=8})g3!_Bx(BEYp-2>^)=HoQ_54FcH0kp zM0Cb|gj#wd{K6woFcb1fOmHNwQiLWpMJUdXR*VX$UKonG)Z@W3=f4ZU#g7F1_cQK4 zT4QGJb$jJ%^?~~zc=N!U2M!$YoZ1N@TXOL$CvXJpKwmscd>;70+S*zeMu?(ZDJ?E7 zA%O1(2M!*pR4NA!9N4pG&lOi(5k%#Fw;colTLX*+B?(CaUO9N?%+gvfXYwK|D?T!0} zYcdiBL>>tRNdSpb`$6FQAtDHr5(P@xT3H4uE7ekcY;1CJG6;fJt9|s%{UC(nsaML& zO-`1CkV>i`42Za1ukYNsD@kIf{KL$R@y3?9Ii>aD!m_ot2&hq^!#3n+a9UPPd@#e)Ik{5R@PdbZogU|Lj_k{weRLzFMs}p6aVQy{_#sMztrx>I*5ew zyRk7=3mG!VR;Q&rw3r#NwXs^gKEATJiX2w2&K*GnAy7EsOo1!}Seu(H?fFJk{PHh-YR~p*Puc+4!+|olBk=%6AYub#l@dT?Opa`&4qklz+28!l-+ca= zr?WIEg;8T{tTEOoSIQIPFNPtnn}W zYY;Jh+V!?nLD|+N-vqinQ z)w)!BchU5B)`r(+g0NHqKx65>4?g(%tFJFEE}uPncC21gQWmJu0<9w4SP0mN_FGF~ z7-m_@%mS5`Ix{v1!hWw8_j|_L)wQ*cf9w-}5RoOD%EY6}p&T~)N>zro=aSEV=`(bg| z69aF0qi4=D?uBO{i}^E%ItT>8JTk&ah2h5HF$$M28qO;~;qJkm8w3i0LP{aQlFf5V zw$p0&lfFcloSxpkb<37*TRl%{<>gsgtJgE8IL;Uah%1%1u{g2(lkr@N#QyditvNe3KxJ6C}QA+ad)9o_wyHwnw`f$Hi~W* zh^T-Gtu@xLR@%9QLP%?gnH>G|%*;%)xz=nqL(Svk^?qQ}wAG1YkQK{lfhjkfv6iY7 z`hn8>51%=Fbm8EU)3@Jx+pg_9&YfMe0ie@s=O+G>FaF6>Pd%Xo9Dei7 zN~xr@x882$2BeIlAk;dN0>k=5YMT?YJ3sZapRG+yfBhRjc=*I)5U`MxDgly|<+<_k zk_R!Trw+a5`+EEK9lLkmxUg{UrKg_ibiC5+RKF7!RA9&se(j(T!Wc+nQocT zLJ*?c7B47Ng;F`xStsuFCZ}e0Zl4iA8bLBBD%=YvD(ZslLV{KyfR#cUn+qxb;NSh5 z-}JF~pFa}>K^iB{^4jz2?;qQFn z6QA(IsI#`F{b*xzLkL0@gr3MRp?5L3$HE)ASmS}dhx_f~o8>@md-F3t3*k;UNAL1y=BW5-w%7;?z#ChCO2EQY;Uz%QtR=?WNpnC6 z3azzLN+xE(#u!;Hmn#)xO}pJLMG*@0eScwbQ3?SdJDm;@2_d-f**84*5!amxZ+)YC zi*`xle%_*DW)y;n3hrja4P~dn$%oldJ`E2`G^9KP0HttzqM@WxzNeHDh)gDn`!fFA}z$ZEA}jOiuuxpU_pdE}8#e)3ZQAcO*xj@wHjAV9fX zDwWEz(-8;~kPrd6s1740;jGWQ)7yJjZFI}noK_v_qEWo5Kp`Y-P@<9`Am&S1{KDID zz7)73R=X>Dyih{8r=tXiqBw9kR|gj6=q zT=_Q<tujt$n+0q>YWIxW|qC@9jPJVPUaD zQ}ZRXXqgx+fh+_%1)!2bc#bEcfZ`HmBwdLfEv+p0T2-T zfHJUbl>pBRlpj>eLA_Rq{NTvpW1aOLSg6%zDwRsN-|r_q;7lo&3QJ*KHpV2f1YBER z&Ej6DgI;G{p(<%l1Zr&CmYZ+6;gg?zXzPv%<-yAb&VA>lQQ^63-RQq;m`|ozP|DLYXLwB5@1~6k6=MC#K>%LPqQn$`ca{fNzyMMNji5y!pHe)eYp=(qprKV4s40{~JPa12=XpXvo*NLU@B3jG#&IkVE0tQBrt9l#TI*6&qP!qOc2R*S@S`9A=m5Zg z({ZExRWR{T)$8rr5a&(^V)LY7yg<-na~q`P3k@?U(BFl7AvPG?2!-ROy@c~#5RMKy zXG41gP%sT#6lRh_5(BdVP+)UrG;Ab@`q)^z*IQX!>UX+voZ2iMpP8PXnM%_%N#bU+ zQ?HMY)yGzrml35@(g|Dw0u!?}<#M@PDX*=qwcG7-sT>4>@B5zbTWf(?X+@Ssun&WH z8xIS?=!b~NU(&dr*B3nafMVn}XP^*KAXp|O6v~CI7#wO@3aw=j1diq+H`#ixX|tRy zbXI%yit?qsX5VF>{Hce|&L2In|E;H=J(A?P08mnru>zsw`%&O^TB~`M)aJI_cFWC6 z=UQh@FGPNMX>p}gEotRhV~ov05X;NUS6#91!3W;^f%o0Nys&uk`0=HM`C~_q%%3@H zQZqf?`0M}UuW#EvJvWXA&dz`B+uwNV*;n4!f5M~C*JE11biI81#PP6%mB3tk>op(y z_y_O2{bt{TlV{<-e)(%(`}U))X16{$(_C5u6*6x|0=h~ZW?*8X+@w-#2J2|jFD#c3 z02V1I`xwVcdN`OR*XaySpZ@30vSi}!NwqLDQzxAze{^NiATL<^QIXhL~wPQzP zY^+o+_qyFqC+T!Lq3;8+r<6oAIU$k|NCZhz9NRA(;*BS%IFd1OyWJh1n3!K!|0|#U z)cYQIzhEJy1Y#vLFi1cF0*JsdATj_KvOc32WH&uvK>qEZY;O6D0(L}!LvV9!0Oa4m zeK|xc@YC+R9b<7q8-A=<1(bu3oMbvG z2?=Rxgz%gZWTFE1M%JWhb8TJuo)!p}B(MnlAPgcuNYhSpZ7sJvHZfVQRU4BNt!9Uq z{c@SelB>zkz8^%n<@v>B)9ao(b9%M876d__v^v58nISbElqu_T?v@ern;|*|G5ng;G*tGPwTQof8uix7>2a zu5CLG>|glOpM3S`TPMrqT9(IQIZD&C*E70S4uXK0KlYLPXUAas5A!22B%J+diK%p{^7s-owZgxJ9k;!O_J7fk~i)8I_Amj?Ci&X@&h0E@NH9* zV*=pC=Z^mQ*T40RA3V`b5oDAnDLAQ8fykRoWbrFASi`x+5(*TI#U@+Wc!mwIDv`+& zU-EU=Tyfc+?JnCWz!V3)O~P+Q>vns~%gev_d%ySSW6#V@kL}sBr!h9BJ#T4gNeUsA z48kB!Gh?i^HqY}s&t1$t&-0=Ga)DXj@aV%RjQg>BfT)`5>s#igKKjv*&df~XhLD0A z^uc3#dry62@@y2Q%L^(128=Qr3tqm1fXUm`I{yDwbAvcqVbE^3%jNO|4?OUTzxWIP z?4SL!)2B|=$Hua_K)G+k-vNvPt+djLnX^2DkzC09xpUo4XY1CjtyU}4q2tqY zr%&ey%L_~a7Vu|b83hP>XPeqZIb-P3M?Y)L?mbtu+wIlWl_Y6%o>6UIJrCV4UkxprrknRQrq`OPHyBh^0rIrTi?(S#) z&wlphzM7pobMNn*^F1K(bW6a<2Z=KuP^)^E4-TdE#{X6hg*wJ(iugjb%0aP3*73BG z5qVb_A4tx|_{X>OhnnvNZSZa`)lI2>{T*4vKO~cT+auQyn3k06Ic^&DkS*dZZk&1L z-DzLEGFl0Qj2Q9a=}5<96O8k@KVo&BZJFyeDW5E?+|Bqd-P%{`*K+#+S_pQhtJyA$ zd`{ng?8ac}r293yhj1M3glBO0Ejdz|K1+_Fm8Qtr*3_aRG%MpNihuR)Af?-Tsd4Ue zU#{*C2wkJOEH$G9-JhB^3jTpUyXouw+Os+T{oQf)s$(&a#ZT9MAFDWSr+I+5`U%hz z^J4UJkAf!$IMQ#n-c^e}A3-NNTGr_KP@$dnVrY+&kC`!v=2&e5fyl`7aPNq~lY*>U z0V2@LSa2Nm@Xhhk=gI)Y@*cWgjt}(PPW!JwKf%FviV=ItjEAYuZgke-sS+HG7bxq1CK2~+0%8&cK_Z_zZESy?hZL% zsrP;4NUz?%P8wk=_U=wj2fO|+gyUHmuhSgQDHsm3B!|lTZnUYIXWfS;)wv4p)m4>Q z0-hVg&?t^_@4zz-IfQWC$&PZPz zm7nGh>0&DUdHw*G(kCi-YT*f%6a~mWt^5?NyX9K1>&meEw+Vtl$PObWo0Qm}9YR9g zV@{6Qwmrk8-1ir;u8C8lC}Tn?>nKj^3I^7lfHCfo12d#ZOJ7j-(i{_aQT=HraBjoCYf=A(C9t-27eF9auS}`u-T*Jf2W%q(LpJoo&Fhjay9Gf5 zc9iB-kN#(O10xnB=;iLgW?_u)-8)~?_v-3NF%$-7dV=0ICU)lACqfR{nK$iOhV{-H zBd^;(jGlfvWb0W4Yo)EY%5Y1`eR)5C4e?ZFpQ#cgc&)NtD@LR*u{Hc{Lw3t8;EQb3 z9a8^;p1_2PBe4P5z3b+*^_CJTr7O-)@9f=6tdrL#NYCr3-L==xC8%D;+`z!g-0L+Z zkV!j!J;#1s|CY?B!?g9c>m54hZ$wqyxBt`)#4%Pb=_g{yg|Gn44Brt0*({b6H%Kg- zudkA0OQ?mJhCG|FFmPh0cVgII2X#C4tbZ4j01iws zW{xp@B3nTB`ty{2%-o!oa!#x5+)3#`2>gfD62+*`hlO7oS44fDX6Cxj=lvfx=DKeh z0T+s(+trYsHJOorzbgPYsGhZF=U|hkE2bwAd*l`q;T3KAy5mBJIx;(a_;^cNhY~{} z_VsS>lB46|X{1`lu)*?hM!M7MX}j`8WTC)pNb7HNII@9TMj@ zO$?dEAMPiu7l7r5EF;s}?Gak3twmY_ELcRsY1Z6@Bk|wS=2BF-h})%9Gln2WR)n`6 zb_C)ap-*`uM)?RzN{h!Vm zgvG3?n(bR&WN8ewwIlP@n^*o!MZQ7!$;CHem%VKrpT^3dV5Yck02Z3B;GWg4akT}F zwr8#Wx}$wx#afMMau&+rvkr{wh`z1YPz`0Vek9Q6dYc=TX5SN0D=v`_3h&7m@8qU} zd=EvY7AH_A>3hrF{`PxXQ8nlm+rvP%>IsV$d(~A4`?Bji6*X0)5T|DCP&~xgy_@~a@5lGvo4XZW~GMJpINqn z3=*&uNfWr>3#z6cBqMC%tu|0`26-$Z$zW>~BZR>reI@V+L58zWWI8 zPGY&g2Ph-~Z(|v%Bxe`ss92{O%+kmz^iW;QDn_MY>C0Q5%CHSt`S+;njMa$K-@ep9 zAuL)G{iCR?wI!X5%$E{o@|x^gQ#>Pe_&Aj&fqT|#mru*u;>ZnEAj(2!xo`55KXB;hNM(&q8f?eoUOitEX; zfob6DuTK-Km6b7Lb_NI6`NOG+x^O(EFBAR`V@uVoJ{CTf{CTG@|Ms6>AH*EGkA_F8 zTl~D-#=-io_gzjU4jmThj9Hmh1v-!YlrM6M+l``G2HHYy_P&)d4rGGYA75{<`&-d5 zmBpnvQon8*5p5x$%;F(oO-*|08S{EzLsTGFAyYCgIyBbCAi3|8XbL)w>Pq#irJstk zJ$KUl$R=hF0d@g(7*O?bA*}T2Dq5^1_4i7&E43pzyqX8K8xqATR@*hoa@Hz^6~px&!T_p zweAo4+;2ZF9^U|-xaK8Oi@_M9$g^BZO-)T!oVOhrRSnazu4jl8Jz(?RpE5spod*j* z@S)(NJ#+RD5J;Rz=EM=qDNtk&&C;Z7w-S0YyUaiL&=p)%Fm209_TF)_WW?$Q`D47X zTNu))BX%DA{dJ_0-|+Gu@brF(C~s0p@!v^szY%rWU6=ZA z@>L65b#kGm75_B@y<&y|W-vs~dFV}tpA#>03d6uN!bjzob;53+t(o)tQ03M(74IaQ z&s6k{Hm_|^j`p2zmGye!Heu}|eDY8`w*CIq4=uMhLOEU+X@#1_T+O@_^B%Lb4Al6j z=ToE~U!MtIZBHCt4&KfgKJRy5{HT6fd&wy#Oy@Xyb(W-7RaW73b6C3YzfbCRI&>8h z4hX&+OwT&G+d5g?nt^523*C&np>h)47I(3Pa`wNA9EruG34ov>psMHN%}X^@{RM%v zwT)ZzK4F3WF->SmT5qEbMzQ~}>5KcoE|X}H#mbE>_H=gZe}+IuhcgT1-EER9^$Rn1 zPu;`l|Iv@I?>Vq|d3Ccs$FIgtU!WuYm(rdb&QfBw}VD} z|Ip9Lzxy(ZfBs=$mAx*fks_zUf1CWxt13#F?DH?ov3rK*$x-)yUEPv?V){hc?R52e z2{8C|_P7}2nEqD>1paSCEx*`Pj^`XkuOdyF0xO&zpB zb$^NvAL25^0m@aZ!#55nz>^?gMIEv>d7sc25UOd!rFh~(RX_z*%LSt&|AWVsl#^$y zXiR3s!GRm5}bCVYywTb)?d- zA^K*VbZ(wud$#X0#i8>RU4zkWrP*->o z-dXR||ID{(Q|xgA%F*G|Q=Zs-)RI1mA53$iFr-^~ot9SXD@2bMu=x>NNjZwe$kjXR zBc;&UIkuta^qVEX1=aXk*>8{_8zq|_w{I!#_T`XW;wDLofzo&VTJN;Qckna+s@DXH zq2FchwWqCZ$BKQ9u66UqmP+?SR(aK9l0|x_r_=fm|EIxXom3{JznNGH9&bK6wQWM6`I0%%ZyA&uP;x>4$70cAP?qk($}`b}bnfP( zy^QU!dhHs+`Rf(`iv`)>YqkG9M-HIR?(bWhMuPMI_QVGbp(nypc@!2T%1}Q2CNXs~ zjT(z0W_}ci1n49B7ZfevRQ%JXpKFevAaDU(10)FWD-wT?+X->oSqk$RX=tFff^}mo zg{xkNY)sP0mM1OTiVgM=eRzSf>X1U$blU!2vcIZ?yV6_wu^?(NW)QA%Ebn{FA~>9^ z@8&g;R)28eX-G`7D&2#J6eZEALy^Zu`SR6$YVgfSvg9Nj{fc{5 z5Nf_zEEgi#R6xtr*PgF)MyAaasBdWL0Ag^xgA|Xw3)7YaySuNy#a?$4fRsM6is+*g zFcHb@e`uRU_gS+%nBd5+l=joOq3zk2>MQ*;s8Hx+6W_AtzmsNZ-@ZQ_jxKx^hb`*& zZ`PuCd$!Z5bab64zS+sk@ynN^B&q7>o73mPZepd?ua_q=J~zAAKne`yYMer>xygG? zbZySj@;Y1#s7ER7KkbCBbwM36Jf1>#jfBn{zx(F~FK#W9$|lC-=p>jVNqo;kEcIEN z(**z#-d#>B=8)>sG>& z+4Mx8_f`B~E^}h?8TSVpy%0e0eiOI->-nobf2cvA)Q=bke80ZQ;>h|0RdcU*->>*j+wuY8j0JtMa;7jE2=<-^UMEo86APr1O-*2o z3s9{=;;ov%`>0>vBiSikGJU|B#8j2ZUJ8GUROTQlq({;R>f)#E(Htd?rsCNZZ=GrO zJpVpvgl=t)v4(K4mJ5~W9!?-gpX77*;vS=xKOI~W7&ax|ALg|pY8&GIHALS1T{+_u zDrjEaewvZdy7E%^)ZIIm4qp!`4{Xe>0J9**3A`x02}NgvNF(hHcZBhe-)nHUQ4~RFu95(%<^0(R#Az>n%7yetaK2r4U~- zYzOF$DtNAv_ws9vA1tABSZbqFeNoanZaHovbsx9OvR91MdcqXX?>wkW`&8ap?Q^MT z^l+i2b3c6fC%!7u{|u(*(0Pj$e75(gnnJ9d)+{_w?M|(g9WEth$#_4z{j_bfNsoId z+v}+`Y1>u9b%M~Z6{r^X_dmS)rQ-LLr)S^x zMRu7oM@1ET)wqiN0_m=#SKP&02zAnxa11O~^*yP$S)r;I6{4I3E*tmTxbV2^mOu=@ zk7IPG*p#9!JELhO8Z=PyF#a+1+aMmL@5v$~?=yC#rN!`PIrTBenJX(Qw4uY>7rSDw z_unZV&SvNIGYYN2N%4M|APM}7rRs5o2OCsU$aJtqM#kRnCB(3noMAZ#T@v~DFI^5EnR399Yd48*?KAm z=ldk5-*560%O;61f~X=OCg4aF#k(#_nY`2csPI~Kd>}DeqLH3aiWgifZswavKs7ea z8eD=e2Zj%McSL4of%)d#$g8Jw?*OMOHYq77Ep4IuF_c5!zyHnahSAfHQ@`7GN3xjg z$*emz;89u-EA_XP2%flBP6_)Lymc<&UCN70Y6YxJmq|-udv^P6Z-BT7(KoeRKzD`< zfVCM`BZ${8L?&$Y#X4p0uGpW_2pBWRBf~23z8E`Ue*bCK{F4n8{$rn~)XO zvJsyxF8>xHq~tFFHEXZN8L@5TBqu4qRkY$96FW7xUiC0zbe9{5q z8FXBEXwqg{gLXl<|4Mz1+`vIV)s%t@_RW^fwipW6{Dxvc2?Yvl(ZXp2W-s=`JMGUS>Ve1K+r zsC22^JtMCPoIYjA?-t`iq7RaWk-=#E&m^~xiDP6l##^+ak&V6jYl_8e2fe#<+w@@4tTYj-=z%uZYF^38xTqx!7f{t?i%#4jP|wEpWrs)}Ms!Z8rQ zOA~j;-W;fqC+NGDlePq*m)ZgLLpV%GAmN+&p9z~$>#3ZP zqOmOabaeyTH5N0-gqBP-ibtBRahh*YK@eubq7($2;3!;fLI-Ac6`nF;o&)%RTEK=X zNzhB5*8tOHkdNQ>Og5*V_%IS6@0Cpp@e(P_)g|q|P8M<>6OUhf$FS=St=t8ou0wfJ z{J`q1UiCVj41L*D5q96&+dpovIx3h^Vk?JKa-}&k!3j7yy<`~qx9I1*H3k<*+E$h>2maM@_fOd^z8_Ah3bkxGZ|kOElAtvIs^N3 zvC(v+iCk;NW9(7vrdI4>lf%=*plt7I|Nde=(@0G+Y_vc=-b@E;s+4XhA5$7VcG0e8 zbSN4xo?ki*;ES$ourkJDTxFXRjJ})1Cvc2!sgW;KccjK&yY*hN{}35O1q$F%`tQER zTX4_lP={!i&w8JB0@?55HKLqUZ9M~WC{F=af*%J^D=YU^d(%F&Z`z?5r|!M@2?A7nOET&oHtq;g znWLG7i+Dd2Bo1E+=he>YV!!LwXa24xz{OPy&t-p}yYv^&jQaGhvSZNkSawAj%<}@zbbtZbKw0b<|C@_b$Fu+!A}^Il8_p#Qkyixz zSBWpDr@y=5BBg$H8I+@VfBD9SMuQ++SvGmWt!A2TH9LkXLdcfd+@bb9k{JcGFos<30 ziyhtFA~r1@2SYw(!MFt6Pwsvk=r0d<$>-e< ztuY<0PV0|r{>X?J4z@l%G~-IkD%=_Lp32EROp9OEv+z(6!IE4MT3KUS>JX`(pId#N zADJXZa>IGdBEA6E!41LWgD0gX+wHm#`jysh;|?54>5 zGlhD3VGtI&&tlPUbS5q#eoRW!v=acUaIAUtf?Mp88z?Sd2uU=n6gqfsF0t1N-$8Ye zrAALn1alUA2h`%MzZX8?MI~YokyJysL9~tRU;c1m3C2YfuTP*9eSiUZf|R-R>drQQ z&qmLiQOWenR_-6)5NmMNsnGF71CV8a=I!l)9hmq(Ed$lKaGXjm|K`wb*J}Zc2DMMO^Zf@dgYsF6qM{v(W}vH%Cu;rY!f5 z(~l9|c&kEYPB8*jAwydWHhwIXjOeqUnwRm5c_48=B2WOW6wJ`?-rWD})c@80(em|) z#pr%`YASx@f~hc6Qyrp3ZV{NM?g>#p++Rpr-U>@C2&de$Z!RuVYo0!F6AU{I_zK35 z4C=iCXV}|)a>fI$fiXPoy6QK+5lplBIjTWY*JDq|I0#0-ekbEg=w#u6;u_(}bo2Ul%6$q2DZpY|X7Kb(fa z1-wDE7>1ifr~Ye_p@#YedE`SZuMWC3L^3#{;3j0I=*&e{emK+U6xS7zYJM>&83kuv z;=@Ns;W(*Ypl}EtKJjPC6xA=X;tqJ?VkXF{bCid=PB+Okx?C?cx^26Qqg-Y(c2$_A#Ny!UY@VIEEfBP z#5kyu5>!N6EF5I9c|pQ#DTjFk7$33N3&s}0hY{QjFY{1NTi4qT%aY1eV+Y+vwlKBF zmDmeT^F|}D`x&|2+`RH}?Q!YQfEqqojVis)iMt4I{rMx(LAho}1G>4g0==Rt%5dB3%#H7%!eEZjN_}rq5QI`2jLOa`ytQ_G{i;IVaPmJ zH7bfrkMfxw6sD1vI5`WMD;U2~g~d2){6j+mCX#y|<+Kq6S&hjASRFonZ$ACx5)}~< z;iFh~c?4_+z^L$YY^lkvToazvNB9hc8^lAW(5jgmmMBSW*1h%#@@UBD=X2I8nGoB` z`irpZER;=e=j9Ch^^&E!L%n>q0mc~OY!N{O8;caaf2XJJ0deMLs^jf^5b+2B6tXnFA*YgNvUl|-kbL+2U)E?>_& z!N+9yX6QqN4SZlgEcbU4rm|$JL)W&k+hyO~85l9f+0MH2M8_F~|Br&{C&zR=cr|5X z30%~=F?u!fflO{P@y_PLGlu4t}4vIky`TGu7i4nZoq1gsW- zTY?%wuBaZqS70E{Y{t?U6Ik6VH44*(>e17;GPZOK?E%^M!ChVwgyY-CX#Q`l;$cQs zSjj0V0O4WVNgf>s(8T5QA)Xc%J4a8g7VXz~fK%B27UT6&+m}`TG0-TQd3$3Sne?)T za}|N#t-wzP)br2KAZC))nsB`E`ENZ z7yUM^!mA}k74h?&jDZrkq_on1DSoIUr;|Mgp#PM!x$$|MUlH>e!W`Mhc?QhLf&Ys7 zFT{jaxA$GLRfwoO6+G&q04;_SqZRZ|T`)1H^FYJ$acXb*6p!nUSfFiJw=#)-Dv&$m zOpt#+vS*@-!7?fR=N3rI*}d65e4d6XOo+X9F4!gLHH{vxv^!XMJ+vKGcb|XD$cMD5 zg$kn-N{?NB!hr3_TNE@Tl}PqjC#MT@d?X~~5}UX)@Yyyr#vt3E8Efl)V#&!#wR+0% zzij8|IP+;9ob^&-u3bIx%HDnSD^))a{%SFjIkT9=Oa(wIC~#2`gF0f9QjCLJ=a8KF zWd5zL8b>9X*NJOH{tj_6h6BCl6N|ZIpSYw#J-BXrH?L!$H{vZKt|0*eNf#uM;BcCJ z8LwA_cD6KZf%~O@!M6UB?s0Hv+xIAY#8LWv2>^rF6d|OokC6r!6N#jgG41Ol13YM$ zdpD079-_t11~vzp{|I*-iKAzcJ$66-&0WjnAyr)zaz14OmL6CVZC#tWk}e~Sb)=pZ z0SeiUz-YnF8qU`>M3>fp4{#2LFzppOw$HY%!`k(@_CQ_tXYW|b$@f35_$A|^Q4eh) z!ZRY6%-+q{zMC^{ z6yGR#^Z0oxM*a*78ykf`TE~s!8kPA{YZf~I%Ie4SXhbeHGm`S~R<4W4^c?FQsC7HS6Dzn(ObN8qG$_c7Nb54>ot&saR8$JU>sEu^Zmm{C zdHVVB7Fe2VMvqYc<4s_9G&)L<-!XSeeY48f=Uw|&uq^Muq7}>-&vW@R0Ay=V;dxX_ znC-t^m|~b_q+_ISG?8kX9b9#DNN6Ruf02I*$ZsvbxWTitu%#uZr;{Y zbd`-TbqL`T*)k@4(5`iT7+8Apy9`sv zl9=pNhZv2~Z%>G#RBu*qfg=hXpynH~R3>r3v=vHgVFQks_IN2Y(cbo2iSVp%%KpGr zAc-p=gKhn-^T<&V+b&@3tCy>!!_>l$eH+sg9a|{8@JWTz@T^2lql_Rns#L#Sedo6Y zEk|`D_U(3p_-6+Smnvd6jn2iugnl|l;urr7WoAZ37HPHb!L-=*XhwJEvSG9hp5(^x zqF3i)%YAZt8ycCg$KF+~Y0ll1rG3kD(IG%Lo9Mp&TGy4$R`JmI0ct*;y2GSHE2|p2 z?Td&J=9nCG_NIo5#3hLr*UQ-1p-dwu^|K)=)dU-xE@zd8B4!UokIcm=+D`PpXY{d; z1eiS^YLJ_hl}H2s&@jKRS+%EYWwQQ|ddL$IVKJaw%rDk0hjf^2zQgl_E*Gp0Ep2Qt z{(hdT7Gv%6<%^>yR|Le6h$z3`p_7-3%klL2_WAjB+rM=qf@OdKpp48?VdirxPHR{j zY(48se=#ev^Aj#hqyI&6pqJYURIgj8@R2{T=<4 z`qmRr_ALw^6y)Gixqi_`n2`{EE*t`#G)1h85a4Sk=MpkNtk-S})lYsyYzXp~bSdTu ziLl{8d5OcJa|!Pe{wNZpTE~aIPaqBUJmH;d#~4uF<`p-50KI~3X`;L>Uc8B)Y7jL(d)g4bFYs!Y4G-3YMc*vWXNb=M#2%DhO zRRT=-NjMur%`jYPHPN|tWde@}id}=W$(e=(j9Y*sx^9*^tH?SXm-9Z`C|VLe z&RnSpk#T6}**+u8)&eAcZ}{&J!W6MNzo>{xjvN>p6c$hGjN|#kD!c%!&eC7u+vqw- zK>Z7_UpPU-7{j@#5z)T}d`W~4L^Ms_rT|&TIGJ7wpA71j<>!VFN2Js2cI+DC#Dx!0 zp>s%cg%!7NvZL38^shIZq<-n8wmA#J5}asU?ir@f;!iGO{0t(!c z)#a1qT5K3Nj2-cN9l{7igm)8~NmRb-c}h;)uZz)jeteoGP_K$M2trISrXo-@BZ5m* zHxwUGwWp3T^1Gh}pfEVUJD)kkoUev1+nXkimYvg7&ni!Sya!=+{~cU+c8WNb+M(Nx z{VOM4L>jsZl`GEPyB19tNdHmLgs}ZLi%?F>BbEI3K8fAW`E~S&+tt4wj{2Q>>y`&v#Bk4!1X> zV!fk5LxR(-lb$(t3k9d>mW5dXk0a&}j4@jZupilk9Y?eqCh{mFlZ`#~MDn@Oqay-8=&E!jyG7nY(RY48Scbo#JRz#2+!de)@@lBK; zdtAc+$uv;V0(8o5r~UaPq*;coFBeD8!v36EKQkGEY{DiF(vW1Slw>oTKi&)x>$2xoh-t2{c0NkGI=* z9>X#QNk3cM2v0cveXHY`LQ5Iv9ZcCu{iRXYcMV09M?~m{y72Q6_wM+Zg33LhWyFE= zSD+{oA*>;cWeA9p_8*!x8MpJ*LH(a-^!#!X8A7(yC*aNyet;N1!7W%v_ES@n3B+4;CL>4D;sGL z6Eb+B*mU^#5I8+Y;tQ8S0dU;R3RGkl`lyK!#8Gr3t)O>|ACnoE**nj@C>q=k>)NN5 z)zot@QG<+UT7G`@B*e#5UO-ga^31l>$+nPoq1f(`#Wg-VtbuO{(~>i1`=qQsJga%w z6K87l;CzU2{=`!KXp$x#`;*$KN43}?p1A*mT=#Nn34khLXZ7D#c#TSUxhURJB@So*M6RQZ$JRmO@#ZW*4*C0bG7Kx z)2CbE=lSnq4+&A^rb1Pn8~eLPHrGU44YX;jm@Z|YfGBhPuG8B~L~R5)5RxQ3$Rk_w z<{7nc?O;$o9!Ez?CJ+-VEH7(Mz_}Mtap};QLZ!&xx<>5fACPh%Z)9S0>%kB?F-5uI(by9skkB9s!(T+Pbn z#WAPSt=Jz(Am6`Y_N&n^LLCaG;!Jj^UMojuy?|+#!sqII(8zE9+J0idmnGDQIqKTG zXa!Q2m`Er+t6Qo;l2ZlisLA^&=lPaA@$L6il*DqkkK5L(_Mzf=(pR?AtiP%6biKQJ z;wQWQcFl+?I;1%f871yLilXC7YD*;Te*&8qa5T+SUs*FeyT8{I_Y9?B;Gd5s_4f-rP~w@ z;6MHG@hE;n%Dam|loRi>-ba?g_f%EY z)d)TF^Qn5ia$ktXWs!Sm{N3|Rh-P4!Iir-36r5_M?=9+HZpfEj*TtT`uic;Y8$BOr z<@oRaZk%m=JoP_iYhERhT_5g)H0t9qR#J(VzTMJE-qlPI$>72XCTr~ik0P0XHv;Id z$a&Xo1*dE5@i2D&uJbc>1@I2Iv>PC+X&-#SQL}NjytP(MLjvhSrDpUUm@CtCn74~U z5Ga8LbJQ@R!DoQUjRBaB0a*R;ThN}15D5H@`d!0i^c1=iCngM&2rfiY`onw*cv5>x z7bUQ`F@8$HS<2e}ayd^5i3ng5&~WAb>$YklLka&x7PgBy5;IQfxDBtO`pcvs9>OUw zPeyEdAw2TFP7G7fcT%kNx}fl?&#RLpOVsgb-@*5EHoW#_5uNc3noQnDcE&+u?YEBV zbP^uA_hEfRWtxYU%4Ag!5*iLOqzShocfD1iyM|uZ*Uu;oFaXGTeQVeKZ~$!{vlm$w z{yi{6m71RY8?@@<`?8njdUf!+j{SNRL3%=zk@*n%x}IX_bNtqbG@&R+{wsZWY9y5m zYBX=0Jab{BsY?>PI9xqpG6GZKFV;fZaZEjE)`|9Hj0Tyy^DdP^2?+@fo!6T9GC7aSM$b>X{^qBvo!=@h`V55J z>E*wq4v>D*p}2iqaVm}99iZGpYYF~?Dw&d-Yq?T@{r2Jg#ClT7t^cdH*xf*LHvp7)yE1}owfPQaS=3h`wmC5;7a_S!sZPuNF0m{*7P@>cB(jct@x%dk8wST-)X2fz(QegQiN8Syd+0ah}xoN?y;^ z5heJU!HWI@+vrA4S{i6&(7&Qi@5Qve>j!z<(^8eIhfc%hl%Fg9Ph%BxxA1I@tMzs< zNEug`r#_Ey@zvQrNBd&W8!40?YtO)eac;G<{mtcpSGn2;%HO|!b3JklZ3aoERyc$Q zQHAC2?fUKPI&^PFfA79ENXP&hgWYUw%9i$FHrMb)sC{{JpJ*^5A&&HS1`ou94o^}i zMu4sPPp|s>40D|(iPdj?YMOJ&+7LLo7TR_S2glRGvek9t;4E+@ndu5O)FWD!D0Mstw5_(0 zBp3_LhT=y-Z?wAtGwCyssEJzs5t4Q!@u6cM4?T2Rk=R--6bk2zI3zeuIQNfET?(t9 zWXCXOwoWM8TnMXhzrX1_i0R|__r_?JiP<=hWmlkeVY;ogX;sf4fvWXAF@t8v8`@r+ z!ASkHp-%#uKQ`G>S?6pdzyU~j#X8Aph8=bzH`9aIC|zEskD>v6diqL~z87hcHTa*q zu4WycW+!~R=9(;(*-^IBPoWvKDAC>53~Q@52N)cz?2Zddr6uRv9Da`&Mt44nXZJae zqYf{NYh_WV@34wU@GAY5kBdxxPU;w-6iP6zqvV~sdwuZ8mJ%v;`k)$!+hbNQTnlTV z$?Pj6#~eppVHBc4qeZ3-Y{~n296_7+l_b>JK4d7wxRg-qp_2$g9Wc^vzsiuRjd=jv zKW<+`B8IntsZBVfu%xxkkUb?4rjv}8C~0jmK6UlCw|@?Zr*OPpaQFkT#!7zrjTYAZOUNa=m| z7(*fA+Q!3Ibl}`52zlpPB~w9F|CTs1be8Rtv(Rpn7E9jPT&yXY-O$7G>HA;mHJYux zk*@LSU3o9jE7MV4o)%>|$}<;^DlYd`@BNd)t#{Y!Smro8(g6A zpqj9_94Z38ZTs-BsH;YSNkbuD65ZEOUZ~2v?U|iehyN{5Q>_%=%HX0e+{V<#tIV)k zs;8`=W8u6Fv&rC80?RYgLZ@r@#TVe(VqjcmZATx>cPtn=aJaX3h5(|RbvnK0OwB4{ zv=S3BMuC$V0!MhCefm+`Ls6mI<;+H!JqO-rHs5aS;WRXK6CMr;rxC9wp0A8%=4kPQfe8z9EI3qfqk)ofT#`BvV1NBl!A>ee0Lu;B-N`dqupmJROJi+P?ydh=L<*? zXynd>ISzko${j!U-Lg5FR=|Ovhfp=9h=hW<6K_MRMtvQfP(P!{sK+ib(GS0=cC>WE zUjF(~z5ANiZo7b0u9Brg=p;4v70l`W9ar4tS?%ACQPgWLd*fXRbDf9steDK_2st#HF_y+KInZ=p|LnY{=YM4y+BZi?$0<&o#cT5T5FpmOqblZ zWeqty&wj~8spfF$_t$hP;Xnh|VOe<P)X0xeJ{&aacAi3(}9lY(B*fh(sg$n^ZE;=s{6~D*qzbqD#iq*V9TpVHFwVS z!*wkhT4^S$7W9oNV&0m9l7t-tQQ}1dLx^#cPWsLOhznj$oPvpmwZ-oKi%5u+i&o$Q z(Ml*1hNOf#37wW^`yrI4aeL#hu>v137efUeMGv*GsoTb>wpklEaU#U7Q=mZV!$W~h zVf`L+{ISqemF`gh+SCqM?CFu&~ zB?XlYODS}ghw+by3mGQqET2rfh%d5kUK@GT-ByAm2-mxcVFpp16dN2c;Q=l8iyuCBd)>lj z{d{cfw)gtJ6fc#+pz(!>@oI<^71h6Aw{l)bIQ$=lZUJikqkTJc?Zg1jnU@qHpd<;t zzow>5bdsoD;Aihrqr3JavntTNarNU3&n9iN?4zL*SM8@h_nuT9FbX|akE6c8E=tWq z+z*@<;RGU+;zYwSk@)>{aA(Q5kD~=If)z2B~pMp}f&dBm9TURD&V$mIS zsmK4~8wrFnkEne_M9<0M*WLrk3FwE#VhPHRRt1CkW!A_h&D&Qj7-+`?CW&r^ z>1eex(s;B2ci#na&gLS@nlULy&YiTl(IeaqYpn{L^^G{E7)>4*e~-ydH##T|*CNlU zV>C_R-Dw)oA>pVT7TL_L&>-7gX}oV_pzzKUJ)XS2I&ZcS&L_r!kt~hwALATwj{{^5we|zl-%@6(?Cs*7D|2_5ax`d zB!T7wB+inB1CQ+6m)q`FXJCJLJ!hy@JtrZ@QI=}|NM7Y5%h|KyrvN41bCRC}T_`sb zhQ1~CSo3@+<#=Au%J$k>u;)0uF&B21)cpK) zY}H>@A=zLz@ZaiVCbTbOSE(yy^|OVh`R6<`ba6N&Y&b-w2z>d{lmaf19}4xd={lVj zUOdy&M--Ks{N_VA<^nwVgi)YaDm1+_3Pz(O^C=Cl%O?!~u@Bx8G0qOs9Vt4Y@N(Cx zD}pSVpF4)aNcm4hEOYF-o_$&P`T3hw_c<{!w$;IiZGxq~9GD6cs;Q#ds6n~ftb|WN zhgoXkI-k(;XpV6qAP_O!^j|0H8qVSYUFA1*VZj1&Ue7x+d}{FpFp`X~4Dx(cMqG{; zh2#7@@h}Kew>Bftw^>?R`bYhGXsb`LP}JSYTIKSDhcCD{cj}e}b3Pto`J?5zqyQ^A%V6~_grmRI`)x+x&beJ1R&58Wa4MSOAc%u7HW_7G-3?0oJ zI)7L^gx9LjogE=!Nt7IO3uT!3UCj0}Qh*fmKf@GiLElXBe3IV zS~+wL?{I20OVg`NE=IWJQ$c~D&a-Rp-M*t%ofQPlOXMIeX7N#pqw_@}9mTqmqXpJ& zFa}7f#0uYfz;Bxd&A$30WZGmiv@JR6~pq*uKc=hTy3Ehqyay zgD9U{?_2bEx{P$>w(X+~tppTp9&=@x3UlPQ4bej_F;T{q(8~COjW%j!xWI|jd#jZ_ zMmhg2sZ;OQ_SGFY7rYjyb>RXg46jgtQy>b^xltW>zv!fanS?SCw(qdgWY|H~G zdobPjAicn1oR{y~8!T?n=6U)1vbxg^x?MQOUg^>{2b<#;Tr$jsHV$uTI6K;V`Z=mG z8Qtr~*(meCCAE81K}V6oo>G>NT52uTDdJ8G0oYHM7Wt`FZUneed&!wbhTq5;iySH8*S89x#Y-oTdL(mol}k(_k8y&&<-b zotao`X`8gRyJ~t2#)oh8cRRI!P6u?l`P!MgUQTW6X>qK0Of0SW9Ss4v$#(Iqy5WPv zn8*lc!jvVCnH#}nj(8Rr8oFd=s-Hi2&~XKWDsT=#6k@U9&YyJ>WE{K2xxw{)rV{Ni z_IF}`w!On4X;QJ--5RaDIAWr@G(E4pn4$c%`u_j~LHoY70svZTt#us7B4QF2mTtcf zCiT3gryX(kpxy2>^VHN-9LLsLw^D{9O%fu7gh`UP)#osTCb4c|4*Gp00*0U{u*g_KAU7aDiX5e@OM<__ZP&F7na3$flD(PIKsxHUeyu44KcI5quLUCK59MQm#!MjPbPR z`@ZY3+-_}~q)$GH>6AQ5O}w}~^)r9te|O@@p^18VcDmV*#70TE;6bI-?hTj%L&~rU zm_PzZb#;1jb9;NH*bsrUXU;a8wO$fci~h>Wm2&BBAEDs;n&9Gv^PNsFC{+#~-rr7P zabkIKasKo@Z@IB*|Kw9&{@Qn+HpUi9WnHW)FEFV|a=uVR%1Crk^0~WX$~w|cr^baj zZ=xe+6537l=%#mOUs#g<;FYuIe)OG35uk)YpVRSmAtL2+`QCf){k`A&y_uA7OL?)!!EzJn)<)mnY;0(dsD(bxnLVp%%zmD>G^~1pvh`6vAzkx^(IC#_Cpg-Nqf;-n@x6@T6GMRqa)4zMeb2_tMJB)m3cAgHDpHUAzHoOZAGB zCq%1TH#Yvwzy7u7zWx0D_ulu&gAbj4;GkE7cDrqaYqh$Fbh}-xRk={HoDAn!mWIkq z{2klt1eh2Q1Oz#Apb?OetZPOU2GE|jzP?efH(A6wP#oua6(WE#q|%i!RvE|%yvFkD z0s!KQbHi9-CtqU_1W+vX*_xqB4CNqV0d^i(mQKj%NZBNA_hzwd9ZMg_{gKcL4?C6> zPEAc%YZ7D5ojYf&RYZkipq0LO@nX4L4#Tiks{v4_(*>Ynp%6vU=GrE+>2y23=eIVt z+%fx6myonlHZ^glQ>fMaYNIz8RI61W9P}foRO= zGba#|QQx~{g(flV>Wbw1EQ~BDu)OcU=GNBw`Z}T{Nf*e1O?l9c&EV)g$KL;*zy9vG zy>VqFI!ThB{n?-W$-nuNhmRZu z&;Z0HYHe>c9QXv#(xQTiu$QU9OP7akJg+ zty)PBEG^GYOe{_`>e`Nmz z1YxsU%i*SY`tBtn<$2meRS@mCOHrU+tGV^S*7Y1=7VwVoEl2&KgXV04F*Zr9O%jtN zNfhZufF`v zjqYr@F*i5eXf_WV*tfK_bob*AlEu}_YjG>Nb?N5n<#p3alI}`>>oVIQPW5tg`q1p5 zl~!kv@>Vyxa{b2T_4VpheXZBk=vS(ZFMRRqfA*)Jd-&mpKlzj4aop**or=ZCw!VInJ-hKk!hqM$rL@~^!xmMLT7Cm5h>QvAHe!}tp8LqU2#{pV zL>4Rw2%`fL&`?JRt&1nK=KWm*(Jd;+(8X*4LHWMBsUSo&WI)Pd1#3;MR!dB>y1Gh8 zX_`iZ0T>gMssKV{occGR-R6iBw}mg7(CDOf@-zen3zaK zdYz8zi;m;i%r+{N&WsgdYaXyuQ8;04GkKc$O`qxBD+%UfFu?+{@>#Us)UUf{A)%-=YpG2bNEGy40Acm#U@B)@Bk7 zR$FajxD=MF)#kp%{aWclp%fOva-rn=ezjaBBm$Msd(xh#0Ebm;636G15o(LD&9_Xq zCjfv#Db@<^2s#5*+muaeq+Xazzz*U;lEy@2ZIT+3TGQ?JdcF3>#zv>x3O&C+=yf`s ze$+{$7|@U~5*GbxWwCy6?@9gwzE<76jyxF2d~^UP!rcuWz z)-p1Q;oV9(JLG6&LFwAx^d~xKJ`bR{%Wck zsa10ak91ny&ECMG_5vS-Y?@}0qdUV!;ayp(I}8@*)93u1$RIpE_r!&YR*)2+?)3Ts z{vb(9zH-ab*<52}5Ve=~?D^TB{n`2X*>h*lZM8P)wc7Ec#||Aj^zg%v+sGBFflP31chQ)3W7qT z+HhKx}Xb6YaLF85k#F%D~{uSzhjx14Rd^J{Yn&fyWMUS_Xpj+utM-rsrvkZ z>a3kTl31H`+ntq_o1gmDcV-&ZXJ370rdm9G^sXZdd*Ac7-#56mv3+xOYKt%03ZN32CfiC6(ZREDkck*$D`%Dd-xnhSY@ zqe|v8$!LJngof0x7KJ(h^1-;1Pw7qQfsKt!+yVf`;tcBqy{$E?E31i3*|GuSd0wGd z&`J|guh;AKdH@iH#UKcV(l=r0Vth%*@QSYu5&YLA%`+!fw95z;+v+{PwHg`ubO1eCElUS1$bb|BwHAW_JGawX6U1pZ<@3{~!K?BgapD^rIg= zcXj2(m(BwYpi~EC{iYJK+np68oum>ib&2O|XT}`{HSgZFVRVglp<%vqQ+KFOe6w0AKt~|^;^Xwy@AeUz(=Mf2r ztC+g6^SW6OU=YkBP;tmsASt&+}BSQBW*a06-X&)&=b>U3$BZmT|I+q$U*r?Rg4lFz6Ku#W+r**i6?N zFI~O)KmN0S`N_|G!7J7hR2qZ2E>=SFEi?#%?pbQ zCr=-pKRmM~D^N-|lH|M3zVPL5e(%<1du5|FF*C2`5AIvsv$V8SZ#LS4$S|j1OJSv> zO(F26n$wMPeX`c9gq3QknsoyJxi(-(a*}l5uU-7wbI&vjr3X&jbNs-e1N)ax zoIc$?b7TAJ)}`03udcT`{aA+uf*>)rZoT6Z!F+k*`gYe02JKeAs7q0r&P^Xa^YXQ4 z&s_e}H=p^bzx9)U>+k$@frtym^-g!DUL%0iB9qNmF;kX>&wg5Vaa>Q`$a&W!3AGLrW3{Y3yMqnSj8yt8sg;>=b4vRwJ=P)+8*N5=+?h$uGGAwXWBB|p!Y~p=gL0wD0Ntot z42y+Axz%cw%k@&IKKs?@{_u}J@s+QBuTYo*ugC%z**G4|)F$^#PVK4Hs+bgj12mx? zblO+qxK*95?L9en;=vO$%d=RZtDP${Dc^nhnXi5G>8GDNmq@8Ovv>dgdm0nd`}Q8- zl%puRdZQDDVYS{YS1Mt#bZF^RwNh`C>x!wMLoLb|oxzX90zjq$mQ`~cVX#v#UTq2&Ldm@>sR5GGYrVQK$P)Nw^z5KhfAfzx?8B*Iv7|5qEpB@n)-gSj)9b>%aY* ze{}w}DgRN|B&N<~y=TexD%%V0kRDk#E}h zD`-38X_la1i~)dNuZM_(!61sFp@b2j1%PU`>SzqA)oQ!l9x}E%&gAmc)a=~s>`@L?hT3uRNy0LOoDXlzDYjyQ%Hy!lTBm$8_p+uULN1#bmhq1H z?Am6C1yM**60=B}G8-n;j37vYRH@dtHrGD=#1o#9^RGNtYF7MWjU$?0I^Y*ep@M6x zTdc!ReDX7ozWalV0PlVGd!BjjOlPaDg)JZ;XP$yEAOk1_o>*Gk+Prz{t`qwY9b|&< zJ^#}6jaI5lzxu1c+gv#G*0&yfN3)HT&?PRz~C&dn_by1=gKnneqfwTKKh%>Y{CB0d>MPxhxv1C9vX zgc$rx^b$sld!y^*T3)gQt&AN|=#7l~xOo~{cE|0<0ASgQFcNqw@I64pa#2j#T9AE9 z2e!92*SFXE{q}Zuz17;@8r5l3Z9Dzi`l_*d5XTLutzOvp z!*idwb#d+L2jBNoKmPu1ABrJ_uJ2hg!^C5r`?#gY@wtuylr^#d0SYJ-5AEH@4uA07 zZ@=<~pSHbCpKFMw3zkr{);1Y3z2y8-sFQAQO7L-t$|YfRGVYy*Hv z6Emi{>ifD-2+PHggacozR6?bEt%|;-=|1`!L)!fe3`YfS_IIt2u+L8%+7o9UoEwREuC+wKm!8ohVE@2}|s zeCO5m?>zI;vAZ8MY5L-s*X9-%?mvC^k^Ki-n_VjqTjrhjmxLK%V{JY3y#oghG$+;d zTkz8P%j*NXXV230TWcTt_^18)|8|g&g^)>GC{*f`#`;m345Elx1Z3FaKic!&{J`Cc z!Mu|zW_*fgNE;&Z^xE1Q0$2eJ5RarN88c?)zcjgFVNAt@VNnpGG>xLDTB-DUgMax; z|I;Tv{?({YQ_Z%_-uapNX6Q>4*bc{oV$lmR@l^uUJ^ApV$^Fg3>=cCf z+WNJpzxSOle)pSCpM9k?GXaJ2iTmz5aOf_gGKdeNwGC&dmg|*?xrwP-y#@eEd7kx2 zG-M#FYzbvquDqKOclWc5;8>hH_3q~9%`ZdX_DP&_PIZM?pvRI^4oi-=iheE12c!Fj^1}{`_lU5r_OC&-M(>SJsor=ruH@$o7(J4QFf<`Gi;Lxpc6-QbQ(+o0G3%WZ-HTE z1EL5)5i7*NgOo%tN1)~TGPzBgbXQwd?#}KiNun?TWuH|vWTuD=7t?{&I;!>as9(8)%%jY*7^}O=5 z(i*^OPb*(5<@Z}1&z;&oHi?uoTr;tk#q2n|M?P=fBp6@AA*0N=>siTq; zKuzSK@x;#@(0T3`5hhz!xI2hg08Sj{obG$`0Z{V1WKjSGta#6^FRMjKk@NT1Jz2UrnWTL z>ITN{YfK(n*mHPhLdRQy*;Z+blQrZ`FYGVvt3LeRdnev;#B1p5o%K(B;O*$NAdJ$n{B4RH)foHC22y)hIu z?%d*r&&f5fxNQwV5CsS<5&?zv`YW$qSi89eq%-P2=MTCHx1cyn0ze{885WTVL1hji zV^*xPYz;8Gy)h>e$mTf!2wFf^8pWm{7Ocs{odn2j4FEU<@43psZCf;RSIt$?kG`%w;~MG#^}LXDt^6rv(P7Ia$H&N&`7 zA#q;O1QZ4q5VVMr(a)&Dkq;mMTSrvj>VeL_=a+2Am#UOQ_KE+R4NyjF=iW)|l-rEEM1M*t@n`@bzzg=b7hTTHk70 z(JO14OG}3q<|i+nzwzyFe=kW4D`a$gZ*JmI1KLX6k8BhMrIpq6?1dXoKK0xn5m7~p zUO%#{>#eP;w^VIvdTz-JE8DHUwPH-_@_iY3(M~B&*yX>=$hZ%)S$R9IQrai2opI02 zN@j2nGYe#mu}KWfAjT8piP4Zg@|M$c&9WlUBj$}^Uc${o+I1%1C#o0=BeIwd5D^N2 zKZv+c^tZSBpa0w!f8iJY<1bxGnzsaY!(OJPBg_+g>l>2%tiN~1n8HF5U**^94T zESDSA>O`gDYfpK;!ZCY}S@Y2j_}1<@#qNSy1STQ_RH&3ECZ;c4zA20b#3C6W1Oi4E zhGG^Ek2<}ek-)`J- zm;x0VU(0ZZ=d$~sb|jRBMFjw{cbX&?*n+jdR)lSmh_xUr)&Sdnx69TP0v+}HX&jj} zHc3pt%*Hs#wJ1Oj$wN{~c?vZt&$)_O`p??DVRa`26fxsl8~)xrgi?iLA4Ei#!O21o z6lMk%0t5oBlp>{-(xik1PzhUyMU%WzI&y*plv1Ad$aThj{s)C?g*FmW?y-;pW`Gs1i z-HTEymTlHYFf`bXwC&ES?fFiYc>o!gy*P;#r94l08kGh@Aq32}%b{@x7Hd))r@%~v zWKtijjk-tnFW-IF9wns6;9rh$ca@N=k$CuOFA`F;vEKR3-~OF{{!f45#*Ld(lhd)m z&2|(7{=WH{Q-}5*nw_dCs|OwGZBo2FH(A=V+}MBD{N9sulZR^Ep!JXL(Ut2rW45fl$OtJ9M1kbsYZpG{O*!shE=O#P6>FJ!CsBKz z#2J1B1&{$Oq17lN2H3DQ;Py@sM1)NKZxn&;m^@kQ81uTPQUy(vINume`gT9F(rOCvxSi{y>w!+pX3D^`!0R{kp zQVPja$_LU)X(3_(Vdfn&eu9KU&wUi=ungS~*RZOBBOd?&YdQ1w^KCOb7J*XaW&L>B zKF`d?n2b^eDF>@U?%)$5Wwl%uwk*P88AOy;kiiBufd(SB7J;3aWDrv1c^)ZUs+0=F z(v9oa*48%H*0&19GAdtm==tI0D_6h%`Om$4{zBjvVrEu>fQRViA{z=(0Wx`5DA$aT z+3F@#(4|_bI+3aXlwYY&#zsoD=EU?uyVKpcdZW~==iL8Uo9T$a@pX**j#(fh&z%90 zKxs|d8+q<7>_i4&0#ty=VvVtB;*c6jQq5`H+d8zo_~=`XD?}xXdCljCFz&f&8PkGx z#yvxyf!28G(#pU2H~;nze*cdK{e)D27yzq!P&>4+bZ~C2?rSgY>$I)0x^UCvc`}fQ)9a=uTXKuM( ztPVOoh^-Gg@B(WY#VS&sr^ulJKnPe1I(0EY08j!hM@%S`@m&pZb3~AFi;`=f$P>yA zFGa%~3m|6!D&|{&Ya@1EMDBV^o+uc98;dGGYn!nqrlFRorcf8|n8 zF5Y$OWOcIIn5?FDaP`84h3ScM#Y>`2A=LF+qg1T5+ugOTH3rK7gE)EZwTnqSn4g_H zc6ga+G+P}y1#o2LVx=7ThmXyDs=jV=aBl!&kc8M$+&VL}SVa&!46zB6DSnh!@lgRV_^EG@$sDf#(j5r?@pO^Mi68nW;Su0B-W7DEGjiD zg4W_7GC%io|J{H14T#o_SX7`CKgUF9-J#T23za3k_@7&R$Xr_ribrs z&KxdH9&G3d|NQ!m-}>Yy|M&}EX-DDY^syrc?%%(3tX!P%ymDi5cHhCH_ny9QesZSh z1(I4ZR%NMdg``}p+a1&;5suwWe71qbmgZ-wR^a_K=nT+`%$+ zEjuYd&tloHdR&b9X;`N1UW>__n3>tw+`jnQm5r;{m*$pc zm!}XQi7e$QcL4z$I?^P-!=x<&0ubeL?nnq$ie3Ojk%gepc=G9|lGu>;{h&mC5T%K7 zArlx7c2G-=|YZHB^Nit44kGw z6VR@QGeEA`?rOb^0wS5jpWOCvQC%Lsi|ak)(Ke5+-DpuiSEX&shIl^SVZ2L%@B5Bf=xBxx+dS-mCmUq<`#9nn>A=aJXd5O*4P zHwRsVh)`Dl0Bekm4FG{i0PLepd)q~2Kl1*^YDI-$bLq+~SMCr@>J2e7quOa!w~}73 zS1DCJ9d^pk6-k4MXamU8% zVbCpByUT~ehaWpUf2clpXm%s%e(u{}|JY}qICu3H7Mcf--hcPWx0b@mVo+_?r|v#= z|J`?=-amWL*S;iHvGY|4d3bk_9F-#?vLm8!wK3;uyOO}ra7vy~a#nuiGBdCP`Z|iM zJS#ZjpmhbLT{%i3Qbd_~CL%x@4jesKYWP~lqwPMD>Gio8AiHn-jz3(B$G8(ZEb->5 z6Yhp0lB@TT03aa?8&;&tmCE$=!tC6F*2Q)&+3xg;^-@qQO*W>8)a5I$UATD8NIE+| zxwt%EpDb>+u1AB87!GyNs7_AJOc_YxG!YC)g+WkE2l34-*FN{z&rD9u@7;SKEK5HHU6pD>qk<(dW1dGFok+ny;J5HI?yCV*v+^yxD z2k{LS(-?>oaz6sc;IljKzKorJmg(6QppXEd6*PcWKmlqX4@iUZLHk}xB!5Hz3;TvK-Qfk&RR3GLJEUGD-xE}rqBV%$Tk=Eu+^m)OD^AwLGKf!F- zlZeW}BY7^>!CX)Tn3M*k1%OETVW_lUZ#I2D==BFqLf0`$xx^yKSV-eG?JUB+!yFt5 zbB+eNv=xz3o==_z8Z+*BmeUz`v0_ciaSDPc>~R`MYWiCT7N+0(jN781`2YOkFMa7tUn>Tsa#&x#(JFh*rO5-w z_uccJ2OcR7Hl%+Gd23=qCZ^;01w4LYV)?E)s_1h!uYc-`U-`2qz7|8FF}?5Lv9~NQ z-IWZW6qJ`2myRAfHr<#khb7DD_QrPLd09dB8lB@(ulCM1!1a@Xy z5i?scF|c*5uax=h;(B$m-V_{F6!Pr9I9!XXvItln{p+2QFt;0b&H-z?H^2M{f&fAS zd0uLi`^%nZARz+r7`1>0Dgfn!3c)Mrph$iJwFc!`P>jloFe-NY7+Yp5!fdTe!OPH~ zkD>>ch94C(lo(jUi*NTYJG&RN;V{BGFaE(=NoujY_8xaPvu2AmoSdM^} zF>tgi6J^Fw6cH&e3`u)IPzVYI5r_s+Y7JY4Ay{DO<_V8*6B#+_P8h{#Zr+Be5CBAR zP)O~(91;|!thzKb?!W>LEdzk*Ai&g<$V zI5j2+OTJeaL|iF*PkjE#U;UNe_}+J)E{D~kF8dsWP&&GN?DUblrE9jXU7QSC{m$92 zIM{o*y7zGH;K}Lce6ZG8f9ArakAMElPo23?Xw2Vr&s!(w_7}@D#(LFa|lPpJoh^U;0t%yjJ^0Zdk*GiL8 zp4M7xrM2fNt+du!d!Fxkp67Ym>0N5AbMIUuDXlWKd!^j2pp+U~^I;ggYYZE}$HA0C zuj+OW3jlH|)}dE5tTzHnzWB535_;r?UI772YLnQc*7$xnIXN{oHCeCJe5K=Vlnjz) zy}4&`x!WCFyngLFFF!lAciIb}Pz#QqIC9~&S66RdU0RskZucf@GmXl$kN%(+St~)o zU)Zy7{``fPUw*Yxt{gdfSZj2|zNA#vF?XAB-{Gao(AZ%mR9k&hEYal5@@GEx#ULyy zr8}K2fXXY)nM(;7pgODc!JWHevIGfaCz0U|VQAd5Mp;%QCXGM@*n&+^II}Bgb6WDO z3xDiW!}2V+%%9{m=6Ax(>@eGy)hlKE#@*St?_7U(s*1U!l44W>8psCQW=m1+6I^%|C|CLlne?z+AAfaV8mP|1_1;_>td-qF)=kYHPh?$`~5+h8W)1# zC`ugul@~xqGi@kFH5TLVEULN8FuMs&N@))~C8U^g^y--Bt^|lhQe%n)629%ehYv3-QNLeBm?%bRa<(=(IC#9d?^yHbeT(JUa5HK> zb@uG9e(bXwiPxMvaQB1n2&=Q*7>bqV{r5b0>aNpM^_f70V!)=XP-#+N#dQH@PE}T1 z1c%edylgsN48t+e&5TFGWx7!*a`st~@{kk}D&;v)mL{c1DN-))M}Vk6Au6PCpt}2W z=!%aQU9*h?#ybacLp?O{YM8N6LydW-|Df(P9F^V>o-l48vw~PI&4sAI&0GWmLI$=> z04S)GCQt~(mKAw{A1p8Ko2XC4gLHed%_8&ji;D;Mbt(PYQ{UR?ukAUsr(E$*o;>Pn zbMDnw`aO&6)yws{=1iqfF(&CpgKn?8XK~LfubzGK$*0mZefwkgDa3Yn5Qc%vsb`wZ zis2o7z{LbMP=N7f4EU_RULSyPs z`6iz6{5mZP%=~di5F#e9DArm7!eCMn1~Gu_pcJH$6lg@(4S_B-F4mRzCN5X`-GHNM~H4oTLx1t5e(8nut)gD#?9E;XiuN~2J& z6-!kodhBR!*|8uyu$Swlka2;aowjHQ*UL|6_*CKE$6P7~0Nf;2S`$%fY?35tnvOtA z!)y+s)}HTqN@+KbQZ}o%)_jv@HZmLVB1yF(eF;jr;aY4m&@hSh2K zPVSToZb!A=!F_gc3;<9{X%Dr^(=y}69SJ}QAPXB~;|Oe`#rP6a+6edEYI6Nm4fo8DjJf_e4&rO$rzTOWJkTeiHXK7Vv>@6qbSLZQ|? zaQN7v!-pEx=0s)6V?T{j6I&G2NF;8#BFeDAYLrT%p}i_&7b((QIHzIG|}>yy)S&1TtVP~Or3k2Zdc@&q+S_9+w8otvrS85%i z@5lRH#-ESf8vm4!$NDWn4EBKc+Imvo^@I#ga!NC`VX*x3eT*H|??yu6N$ z+C4pYl!FxQdndVE43V3m!jhy(nhdNl4u?P7)@Y?>x%nz($BD_9_8 zyKx@73ZRf80CBZmQp&~4PL(l95@t&-Z;F@)QkZFj=LKtEX0aj$gc0m8{gU4Y2F$Fq z1HcIrdO=t$77E4Y#3U(g64M{VQ5+kWxgYL*c`WBLiX*=`kN57l-fwUD&31o$9pf$z z<1PfGT&uk?9LL0I$pap=?mDpe6F>6)69=1`0d3;>dbIt&PHA`N-=qCp5ZUD|k-EJo zEc(wr^Xf1E^1plL$rl#qm*a#tSGp77+}%g+KD4-qacA#zpv;=Y*8r{`eqiF@>6yx0 zxRGvN+FJX{(=UAenTs1qb@BMy>a#~0(@R4Bp<_o69y~BzZdh%S%~Tm(3<|{{RH)G5 zV`1nC%dRsWH|`3D`4E>Z$ts?t5EW|e(j$nNvD5*I^Q7;1<%eHz=lk`SWZWS`5$yh& z9krJnVKDUfT?1fl6h<*Z{t6)=0in30TV6zhEHzK4G-;c%SSS{X&Blc11xR|3CWF-Y z#V~?6mE_Wu*CrbEh1ppaG(!Duj|`NwPbpVIKM25ZvexQ`m2$aIy0voa`R87&H5>a5 z90r9-53kUUEM&HXb0d{!9<7#`kOhfR2c_Cpr?bAXxz$bBD+_vg5@Yyt*{y-w=K~^v z5L5022;?j`qZI2d=qflMg20shmfh!* zT?5JrKSNWAW7lM84|f)aapxZn7VD-Yl0$1~zf@O2+4IXfD2W#W`4+Tg!HlCs36RN4 zJ5CY}#-wrYWCnI7iN=k)+W$@fKqBAswWkp=O;eMmBXz5tQ`qx;t+nTQL@G{_B#t>v zhd>LaRHU>~P>(QkJ2T1^m1^?rp`0T&>SHJx9_nxkoCvA$oc2o@;C-$FQnwbezKcF_G*VeB;S1xw% zeQ3|(>4}L0jkUP--Irea-YXZs@yrDYW*>O_kNCCa`sC95%$~)?JqMQd`Ur*xUaHEf z>Wj}t(!@BRE4ey4P`*WvpQdtQzVjuVN1ms=waazm$lMcRmiUJ6GyZ2a?r-W7E+PS> z9X}^?=f@}5XsTx*o6NUhhxg3#|6{o~WGU%fi57;LTv<)>DJPI`h z9)^knjlRM`XVWH;O$Ig@_`Zi|(52&@vn7He3Sg|+I0t`Z>BPJR8b?cPM_J|dj5~mX zWix`122zaLkPa(T=$9xch!-#^BZ?gdH(CY}Q5GrVImx`WOu8*I@rZA1+{Zn4?X*Q4 zj#0$rzEjI4n}sxL3r4NNFaT7fl(jZV6EPNy1#tO)_dU)FHi+m1UfnELC`xHm1WxP5 za%v2-%|7O;h3F^*oRYiCwj-hdyJQOtbrpusMQlFd>`=_keFn91Z!VTf%JVpiW8jqB zZjp&{Wyi@bj{Azyg|dLVE*9MRX>Ly(KuOV1dmuv#tCYbRifLtpIjp=lG@(hDwRt>U=5|#rZ%mVf)`)9 z{7b*|ub=+ja}VDC$lA3nNN}bwwRd6PBln-~ZeA~hT{F13vHkM&B0l=?U3*W>rAu^^ zyXQAHzWmJDXU<%|>-0NLoqi0%iI=af?Vp@GxPSjlwH&6A&lngFMT>Q5ZPr@lI9i3- z_0)`x3TG@&M1+J&`HCpZNM<&T^EvSP6L-fX#yh@g$9<7EaiG6|&41mIf3H$XjZvNr zd+s?ef8~V3u6t8#-YSoT0+2I8SribPYJ$KIqF&6LB2m$=F3nZn|M>jZzWtSJ=U(%} zVzYVIi3g@$y>{_eKK=2({gIEHdVF80JoxILep{u?Y*jEfJKbDtMVNFuNy?s@o2tEb z^W0}X`-MYC4u15pYkiK3390u+uN;v_j@lq+iG{$*Eibj z_QvK$r`@YptAk!zEls9I*fJxi&{v*j1e2Q7I@b^Y6<7s83N@EJpV<3y#NWh@kT~0wk1_TS%2mughl#X(WI?~wwn6`=>a^R53etn6Qb zf#W7o5s?CMq_U8&Q@1K?zIHN!z@Z?XW0MyqL}u1RES{B&+6`A_)vHR9sYYqf zY~}b{KXh>K!ighCrzR$+8xglI0t#52@bW64AYQ08UCt%y%76TM3C1Z_%b`3fC8EO#oLrl-iZAY?5OxhwbXv-uy zA!SB)jLZU(2?`E5>xWnSj-<$MYG~zWx$oE*!-j}ZDOb156CL6g{4fj^QJONdaScr@ zHbXV-N~JIZGaxE2&>nf(2LNVHlEfO>9g{k~WMGht1aX8caH%?B0%l;R?wQp?#EMwq zY+*n!rY;v+o+bJUguhpqJ_&-3$*vx^np{$6#DGZ*|Qr@eEYd)U$}bj zz3-Z7?qjG_n~MjJ9V*lo*{`zyD_6B$BGz)GQ90006F0GTRKR%{== ze_TmtM*(&RS^i%d>GA*H1|lJPo+mk9F}M^OTTqm7b!2_|;8@Xz2_-^gL}q3OR&(jh z)GW`;6$3c)id?_>TBjGyHun@YUR;0q*0-<1!~E{k@4Po9fLCr@T!)xT;q?53AIIg? z_HJ!$_#Osc;mW0}|LlMI7h4+}fBi>4Vr)_>Di94gmYBs|`gROX{TD1FdY}dZdlqLO zddt0EJM;N8Zj}qgs1*g}QXEGXNofTLb~jv)0fAAGFd!&lzpMwHbpWW9{8F`sX}8zi zg#O0yeRIc;?7Q#uU3VQ`Tx=FSHiaN8duU?t6ciMA0FebiU<9^o8Guj|B7uoavruU6 z+eZlRxbM{3cJIc`8!IN z=jlSB;CY_0)>@kyYpr2+#1)z6?s6|;8QlFNQbABG7Q--9O1r)!lNxKSQxzTUvN%GN z!?2Ko3@9W_U;!D#7@Jt*6t)D!I3`6W%|U>!=^p@c21^1Ur2=C`SVTD#6<7d7MUuCT zjBdqk{~ewi3oKG6!Q0LRK|sh4i>*?zB{<(z%v(t?t`>@rhv{%-iK6s>d;@+hb_a2f0CWv2q?uAc({pl;K-TUu*=YfNF zTN6%AE*(C2*V5vmCrRAz+I|$0@3E&@qiE-Y$f&Y?+Y|=`fI=8L!U-eSV>3iH#m@nEpEzKK9{^K-hYuimcYDhxtk*>mT4yF%`0-%k6VGCa2tKWTLWwYf6 zp3Y2^6|iAGb%8Nv*&!5Pf@&CJ5A(N_^_RLU=u1Xacm zIxHIxyN=wQ9Bc8*81e43q{b&Syw013L&2fPS=d-RlyL@fG{Fdf+S7gzdVXM;<0MJa zlv5TfnY3!oD4>ZDfGvYq(AxKdVps?~9|4R>oL&hV9zseT$v$RWGdUv^=1pae3>z$= z02(%_F^RAxM_0g(H^m@2zIw^4sfgsDa^zSig%oMeSgV6T$TbgT#YraDa5tpT7?M)K z*q>vU6vtL%zJcuOPj!GiK_R8I=P4)1Oj&yz3xn7~s7=&Iw&h|F_d31ROMl}dkACQ# z4=oe}08mL^Ix2v zTJTh{wGqwM_w1cnT4*#DCW_L#QSvr7)}GvVC_Me(fm8P%-iTV8N&J;(U-;D5p1iW& zzyHB^O-?QPer4a%k%M~=%}h)|8j+X~RDra%sKv{=$g;1`pN-exYusP&BmeW;{M#x7Zf<3rQ#o!qTZ^u*B&(@8tWnnC zIxI~qLa|JMdlvUJYZFP&tZi;UK((o6tJ8kv+$&0Xr%s-jotnOR<AE%4~zMSgO=Io!-q`D@P6=ou4VKZ}ft|Mp{0wXa(BprS!TT2$aOD`6ib0024M_Q1~8Ty$y-OptP|e$7(>g*;m1Xh%Mv3Y zDMHG0LzSnCVc_|m2q#IBriR%{E_F5fR?J#gK>&TPQm&LrC8bmx$NhePFc_q1D%Jrv zY4|Bb9HMRZtWuRGPE`rGQ**-tq3*z*jbjeJxr{ zcWZsB5&r$Z`=k5kYeiJRNg(I}Y8HZwz%jeqNO$@!8H4H)X$=CYQI!h)*6;rLzxp@7 zLga_VnoV`lZysJaHdmjXECiDQo6hB;zj^3jc-N`9h2^I8F%5%HJn@x}fA;HFF-xKK}9@-t-3JKSkp{ev&zeGV8_#KtLu!M{=8)g0aqfse(;?6YTHPEA@aRioGdX+*_B z8N8TKq0&U8$Rkurlkz}p!KcYask?bI?rcod{D<#3`uG3d-+1?1Pv3KNYND(I5Fe5N z1|FC)6^Y2ksTsrt?d7}!z+@>CYLbHXebPQD_XtP@NC6TEdm>sy6ZzUPqDie@Id$sz zefQn7xHwm%;Q|_n?l`nSQRwP6vLJsa@7)be~v}Fbd zQwEfA&_50jI6rU<^7wB(p^$7Anx)?Cn4Kouzh5g;lAq4rg3OcKRun&t{1WBW#K z+<^s&eBUpXN=|Dkj^jZTrE%=KEHe!IczXmurs)kik{tvx7!-q~fDCNnxW^`SC|6)B zoN;OcFrXD+8lvG{B&if4k@MV9xni~-gjtXwSx;cbS~14TlZ)!yW?U%WipIM2JsKy`?9|MOyN)G;$P+GlUZY%7td-G9 zGztJ&z!b;;T1LokrWA|Cv8J9;gVN5%?*DAu$IkZ7|BfS1o`zkAd80XG9Bh<%_%575 zO`1@5JN?irEiNn%2FZ52uLG}Gt+ac+Yd3Cre&NXRW7A|duiZ#vi3U(AO%{s{!eG1A zjWBJ+eb4irefBv|`;R^LcE8{iG+1^#A`W`s&`<0v?mk9e|5R?lc8%3gAlb?XiMMPnAIS0yl@Pu zIF`p8bS+tOCQk^fowqm7T;)d`h3@%R+;O;mA@@*l>^*?UVljiLlQWN6Yo!%io2IF& z^W16mWX2tdf*`0=Dt;IwNz&`~qBs)aypedA@!WB8qa%!lb;K(O!kk)@*farTU_lmP zag-4V0_eb+Lrj57st}PTP>f1bNT`UEkW!Ar%hAb>8Fv_Ukqj^5ZN??{>ocRCzxnly zySuGOq&(kw?k)rqApl$QhzGq|NO5N?fk?wAW(i8zW|MR4ur_W$kw`u{wC;nKlyytk6Ce&7vUfJyb`o}(l<=ImYKE8b5_?637A9>3obJO!a1jQf(3nWT` z0t@1Z6u<%ryFN1DygdT}pin5%j<)|{1?fK<_d9>1ywSTbo6%XeX0*o>W}5A{xYzR!-hhGReWA=brhdx8J`EYaoC?uBV=vtx{TN z@_iYlS-zx)99g4A=G$h-ZT9o_uN`|?;nDXDKbED$khIorw@y-H63dodazRtpWv#SU zS`&a)+Vg{Qsp5rRnx?&eXE5j+n~rsJ(OBcgSaY*$QW()Z2#U?OLJ>)gyB}at0L0=b zD$3dqT#6^1dB+B2g6kp^pTPos$LY<+3LhqmHz;?bfaLKYHJfK7O*Hr7RMl>+T`t zX=cL&j7r4$2!f(OoJ`x$vS;*Y;6OxzT;TcwKKH zk4r1v`LnP8$i(gdX{U4Zx*z$EWWL|v@qOMnq-~a5$pjs3jx+KECbRwKCZF+WGS#(oAD|Fg`w#9#1ZH+#DrJCI0w6{WpaGq50tqOWeD?vG)5Qx{Za($w^Ue9C zZpwW{5QdDpR&Nvw1(PI7QTFS^mIBpXzrJ?%nRh>O;(z~BANauAjxSWD1W{;|w&Jn) zf{IDACh>`V1zI5n3Ve^0`(`i<2DK1rL`CEQDIn!4YT^@5Wt2? zg-Rh9AGNZ4bpP_>k3Kp-Gj;9q<&~8cPpf*Z9LI6sd#F9j><6JuQV{eDMVp$;GVOd& z?)!iMSOIGwO~oVtq(~{Eta~W;-d$orMv&s{NR9_T17(b-+{ZYra%<-1`FL6;Gwy(h z%H`YvNGV~Pm^6)3$w_ema^*Z@oQhDTT=hLKCq#T(mf+F;gJXiE#SD;WDv%Gx9r88Cs9f<|z zmS6`x(1_tOAEU0;{1;|TY|h6*#lVgX$O;P!fkL*J_Pun_UAxf?;O+OHeCXtI8Q5ck zSrCD_l66Lb>kgfj(ej;HaA+m+D!9_!$o#8c`FCIX!dDdrQ;n(Zm2HpV-Xq8N)+<$r z1G{0POEF)1+k1|ke*3|W*Nz+BT5P`l|7a&1Xs! zj*ngufb&0w^DyI`M?z0)r67vClg)awR&TdDy+PcM6Tet0RKnM;yt;Sqo;~w3*DhU2 zdl6gNSliye?_i}^==TSG!zwIx2hrurm!n?i@WF%A(@j8OoAEy7w>Y!u*&dE6ujS#k ziG}p)#`e?CpRu|a0f}D_9gy|_NZ23dHeDu8!-*aG3IV{7# zgV;BuS-GUO0)?U+japuf5)g^w$W?Pmt31J~007VfB(a>tX>5$+ok^`xT8}Stas^TW z#jckKoNRs6@0JRM2k$*~{H~Mhn;SQ8-q_yUs#U6;ZqKAisa)yz27a-GzMuA@oa*yV z5x@ICh{}-dRv6d-04WDS5$C#%Ja^fV=g2NJWWKB5>*U;V2QGe`Tjtn%MOb?}FXEuE zSZht1m?U+yj&$c0BjrlP)y~p1X}4RJ`Hl&w@$W?#gF*nP5lN6_oSy_vrV@aK4I7j7 ztY%xBgXvg65l%%c%E&7dB*(`MLL!ujhYAXk74bYj%YVTRGXyzR#I7^WjXME|A`;0u zE--)pu8MgM!yKmX(K?8Xwa%fng8{^y0@>}0ubw)7@FO31eE)1oizvwe#Y3)k9Nw^z zaUb6J{ACxnBLR_R{>rz%_v^p$yXVfnHc@K^;7OFu)h8c0ecJSTWuHyF>WAHv_bx0Q zt(Rs3Q>KlCKlW!|I(K1X|GvBTA2{v#m3_+xjvu`%V9(dSr#-FI7$_`DYvhC}O1bb& zYgB6V(|1npJI;YS%#HDc%b{bIo6&E!%+La5O25I zq}BZV%$cX3>}_vNHYSf8Jd&i)?)&~Dz0=oW*(;V^MKetjv1#CWaWr5~!5FZE z-sX+@X5puP^h57``^iQ@hrk4pVnM4F=sXA<%TtU!_kvJqj}(fv*6B^;8h*me%t|TW z4}zfJ`+?RTio+PIAvF|bo^I|T=0{SVDkyJic5-%R{@T^6=bm~Re6L!qg?`v>cLYfL z0Rr0849(Xa=V4yk!;F^)0T|di%|Zo~&w5ZpvgP5=BN@A;*^(dY|JVW98UJgH6;hpe zzr)xL)6c@}q`$y2k|rPo8j|a3&(of#v{s(ydmaD`qCuF>GMk*Z$CVxkfVA&x(uRQcYjVp;tl!z17X5%Lh*E+dokX*KS^@maWLj zk8*Nc**IoT{!tAY~6 zaXjeHPBgAvxpMXDl>>(k&Mhu zD;{XO^^S*5{rE>7pDuzDQ5b7B#6YY^zRqsrp0&^;LBHEsTV1(z>(;GXx7OF!*VotA z*4AEo?b7=CMz7Z!45F}5GR9=K-+9R6PEuB~l-!pWK`9rCNU+gr)x+Z6`KjrJrDC;q zs3ZeGHL2qEwG$TueX0hVZDda$tWU~f$90CwtCy&45 z`1$kk)i=g1<9nfqSjPt-!j_#r8=^u_0Sh^<6d(i;F@j2aItT(^dm=LE4|?4m4Ej)V zGzOd`@lJ332kGr}>~R3V!Y&=;65Jvp7BZ=-ET4l;Q$;MG%4j(OTmnY{rYy`xNI6)N zfEBbv#z{n2AwW?u>hr(7Kq{G3mAiL4#M)VehPX5U#xWWbWDo*i0&=?L8R9b;Xg1Aq zaQ&qx-}R2Sy#L(~dje?C33qnI9hGXh6(*ms7yijm^cG=5_@C=HLD9 zvoD=1m+F;bVe`uM$*}O26US|<)4Fx(;NIG67ru4s)Wlofb|7dl7Z6J2Pk!d}AOG~X z9(u=*G|PL%R1WREYhiA&R;xtOz|FomjsZY9+WZV5p@2YX@;vR4H#8{py2kW%U|aHo z8sGnAb*TOz<4zlu0szS5hum|60v3$5?BqUC2odAH@l-*p(4?kbow)Dbhr?H%|Ms`O zGE=GVJ9f{vzW({*x4!sa{>>8K_64CP?C9Ymzx1#Fzqi)6_Ae}4xv>IKQkj@$ zF=@UIZohlG{-$hQ1B-!#nTQ2|L-I%f2$dCpObK8N zuRXmm`SfR-uZzB^kzXGG5->yp(41}}z}KIA;fZg2vsi9+Ix&JQ&MY3EpD%z| zw3Py;$&EwDYIol^JG004C-tU{zWD8@zx>S?=ax^Uro6D{WYKFD3k@-729^XtNPrQE za^2lrC<&C-o=3xS#See4|MU3E8$?QHWNXF_Av6qeoK$ONLDL$vt3hoGw(IrDyY9OC z>V;Q4q+<`g<;C-7{^ZMl{-H-7zqfnWce+ovFRvD5zTySCQe3^Z-Ac7+(NKKivrim4 zx^(iyiAH0>8WDEVlcT#&GEV-%9!Ly^z(2BgX<@2)acy7?gDP4!0KR*h=jmRz*2t40xd^A3+NPkbaX#`@Tb|C50F)RNA4W6ShfkU0kMdZlYc_KqYbs0 zWF(T}zDE#9X)n;)6Co=+QZ#hlzC)Hd`c+`eU^82In{w~>RsYmB%D^0s>f*Fxof z7n-!7xZ7Ggeb=F%{O|{sCY7f^iFi3n3ycaQE?yaO+6;GaMi3H4LW^LD1_EDx@}*z> zt>3$~*3znI2F7E2%kjIG8jXV33WCNq`#0Y4o07buLNq`vX&^Pm3O3yC*%`oZ@Y zsqC3M`qqaYBhX^3HAa({0SW+-2-%gJ-GcNzPv@wiH#3{@bzi;%dSpo7CU5lFH<6{=5B-lpqeBJcQBRky5GLZnfhiDOJlt*cx;_-$Xo(zVsb)WrMW_0antJ0x+p}U-{*4e(PK3&!6oN`a$T=OivYy1*Om!Qz(SK@A-b< z`@YtS2pz5)LF%jl?m^ASHsi|4*shqslCFApARwgJ- zzVcY09N_H2-a#}tcmBMyf&D>Wd)~0*x$BXO+ULNBA(qs28dCLSedo&px266S9(x}Muw_?|7$wx09Vs=S>wnaq?>k`}7BOk+giwJ96tc-# z({9I!-~N2`9?qI0GPWdkbYQ~9HT_VYX9sY|-eKuz+_;0I3aohEaLFfnz@Vu0?hG?{r%m5A$p;LI6-Ak`Btg^j5FG>*3Syf7fvm2sDrw z%@!qhg=9P%I5hNv8R;khFjz~ZEh>X}<>uC}|JLvP{_p>XN~z&-Py}zbSbq5UUC`c4 zH`gYseyj7^o+I?&yADxtFu>^58#g}n)h939GWS37*HT-0_q%`O@PVU+pri;*l7J;o zYlR+yqkqAiikSc;3_~ZO4u3)8eupuZc=^x99dg>3-Qo7=mEC=N=Q+hB#Nk1DtFrL#2RN2jI}0BjY&;vt+iR)FXa0^AX>|$uwJh*+g5A)wbw5E z!5{vIZm%;jQQy0K0K{fB47d7ng&09c049WLb*nQu(^y#A+wOGFyz9?tpB`oKe^B4!OD#WT+i*JtBDr)UX2gW{mrt=e$zKKPZ{lp|f>_j-3b)kd)S1 zd!&@so&Z{bZog}d$yzQ6K`C%1-rZ)}%`q}8-U0w3kHv62`oY2i=}7-NYx^3ibGdLr za@=C34wHo#PUOHLo5}ONg3^Ab;gMCKF^AP#V5^j;Nau2pS#vyrBc&w;K)F6I!j249 zb}Bpqx67_eOio%ZTZQ0^AOZm>u{>y1J)3T?{N11Y$g%xXoDM?I0z@98=1ibr>~eZFn+{sFP|K6p$8?`Cl2hV4lCWxd^6M2Z5z(Y|8=xI-p(vCTf zw7bM_XxWE6FmKYrj&vzA+(-V$>%9MeEympqW@|Yk$sS9>?g)Ewa&K1;%uIsQIAP09 zlv4|Ntd;f9c;(VuxjOaYtIroge|~22(z)|jFI;-px|NMzB-B{o9 z%MFX680%?;X;gv%MH?S}>xuWC-an;aw%~=96!2$8J;76;y~)ym)b_O~y* zc41**?%=^ATics{5Gw6iwr(*pz_6oU2!le%48>yk!G|9H^k+V^e*Fgcf%bi4Aak=b zs?Kb%u;YZ4oS|U|N_P@Gj@Q8%5)l?4N6wJds3`|S(+J$2GuQx*I)}!y7rTd|WAC@d z4(A8taRiZa^1s^k?-IIg5rnh6%}_LJ=obUrt`5G_b07EFA=fix5bL^6^W=JtG;wAh zWanoo|3XJ8GxYTkNPAwOw8t#WlILRb3kwbdsdR>lRf1|{#&@6LXgHreGwZ|Oayudw zamSIsvD^RxC^0jQz;xD+?wR_r54>}Bq6i#?9)OKKt8i%6^K*oqX}s}OZBy1k(2A1R zuC4s*U;edjJF11%fOS#SJ^K$%XqfP&ggr4^VZ|J}d$P30)R!u2{q|EYU;4tg&eW%l z9y!px9g<`}bttlY%P*hH+m#ISge&8wnX3_;eD6(b8F?Ym#|7$ny zIZ>oiq!ejI>h*rtF3|vY1ssS;Kv+ZpkpK!RRwz0Q>v5XYCraC`Rk86zt*#BVZ`?T8 zEH}&L_0`SJVBi-D{j}drTdEL77~ER#EH3W3b>q5ae%m7_QiGm{xum6q(XA5@hu{H3 zundvKXV09ybaS2jGE!g@8~7e1eH?7gm*{VQbL~*eDTVK#({#rTWCijg|lR zfBWD6{=fgj=bnGITCa+jUaym;QK?)M&IMlqP=uUOlx$ZcK$Sav;La>-HymE3OqV!G zlX9ul?sT4i?)i47_13q(6%l*AzVCT?1df@I7>eWfAwtgs{aWt8=LX7ufB3(X=&le^8Dq^ji;^x^oxaHVRiya<<)bmRTV&-KL6?q zVh101-{aFWbr4`g0CKqGq56-A1yO_$03-;_s(1YG{x3dthE1Xr0~?K&!JthZc=+`3 zLkAT($VRqmG-{<}<;s=c`@P@)?ce#GR;z<3v-49K-7bK$6>69x;9Rj6vec@B?b=MA z$eq-1)`{!EcYQOZVsS7S#Bu!H?|t{i%^Umn?fcLNKNyDLIIAxKa!yUCgas7?_yj-w zou)KYeBN|Flx~7qc(CHn z`>GPGb_U;m=Imw%@4ol#)06uHs_b9fS1*+cT9ZXB+7qQ12$;Z(G)n}AmYrb;y!%TX zKZs@D{n7vAJ@oHC!m;ss@1fV9n9jZ{t%ogkBy0wQW~u0jH#@U045rpLqM+39s`YQa z{9No04&A@6J|DEB8$p=tnQ88snl39nTWhv&trfk(g>$d{```b4VGL~Hpse)Bhf>6dc=Q8fNm9pBPD<%O`vk<+T5G_fuwcg0B`#`br;#<@Qw0Q+ zE0pFHbaZS}I854%ilR9gBoNq40TvlKS16aPYiF2G9LwWFe!`Mvqae$c6XwJ>N@ulb zW^tTbE;=K}C#Hb3I2GwE@N$`a$MlmCIf4vX_jW%hN8yaUh*|nCKRwDg`@w^O>0Nv4 zy@!761Me&#D7Fd=qL83stwFg$0%eM#PUt-cfsQpq2p}qb>H3X-^mG5+`HPpgH`>c{ zd!UybUR+w5taERzsQPSH3#Hz%d*%+_Jq?xkM$-MmPkr&JXD*YTx$piD%*`J@eCTAo zTD56UY)VX8JQNKeAQpuyrJApU!1qGWbD+9hH#i4%LQZaz_pOYLAyfeJ{Gf<1kw&D{ z#A%Xvo(~|#8e>ei+w1lE+uK`Pn_Hc3r=5?~m^4W(TVVlqwFhxi5z%ei2w6MEoly#Z zH3u7;B{c;G{caLRgMNR|@2;(`uCJ}FuH3wN1zm14NHzM+x&-6#lZr0bg-?KtY!8#NYQS-ElFgKw!f8k$gLP;$wefQUd@Hl9-b ze#`U1fdB;MZ$JG)tDmF^OioNHup8GdJ$nDipZw4x6CpGTD)cn6Wso2&8YBLLsP-$!Ao6D#Jo&DR4(Ii1{QX zM9Rcb5kaiAwOVasZ9VY)W5ES}Ub8{b_5A$sA0#naP{Ty^c0LQBL6%K><1#uG5e+qljmemKm#F zzD~X(&qt#j^$v`AeKp1=4^w}@d-qJ;d-8DE2VzjnAjE7nkorOL)Pi7? z(I7&=PF4-aVx1p)h)5hq+9>?UUzGAtJ~||x_K*#qE4q3MG=oR zyOm4TQmIs{)rzI!(L+ZjCYsIW1ZkHH6`Ll^?B!0@U-8k}+V*`v2m;cIv;qOg&UEY6 zt&NS18#iulY^>k7aU+VNPNx$^QJRj#?V8O-sZ?$@8`Zjnd06pZ)kBf8ziCkNzv0g2J5yS?uf7Y;7Hi@GCM6>$XqYuqYK*4~xrWRrCX#lu>{rbQ77r(f2_2$972YPWb zJh0ZpYyb@@NCuI%6ar}=(~n)kh7eI9c?tm7iYTzIs~SNZ-`=hZg38yr*YDSAwJ3@% zUA#CqKmWuNPtX65&ErH@6Hsrb8=;!H9cb5q>=`02y0$!S*y6^5Ip$46>5+2rWMMS{vN_7E@ ztEzLJy$1kVSzZ5=PkqWSl)L@7zsfd%e5Wd*%GC z)ot(a{=4SpkI&8SpK4ANLymeKf(nXHLarwaKsyyNM^|?niuUz?{_9wlF!V*lSYu7v z>1=LqZLh4Xv|6o8moIH^ZLhAbwpy*5w{Du$#PJ|Wk|Z51=D;r$OT~JvRxFlI96Nsa z$l;?$jy5MICYw!_vvo3Cw{7gY7k{O)H6l{0)c{873$5+#n>TK3Y;L^p!gH%DtCucc zT3K0HU0qGn)G5?EIfVQghG7_1DwQw{Uw--JMx(iZ|Gt9<5AEBxw@@gAVS(AA+L11E z>vTlW4TO$27=^(i2|=pRDnw2xDAX4h4{YANeD(T``tt1Rr5B&S^uqk9iDSo?F28g| zV@jzhDDTjoz3pB*N!v-3`r7~2x4v`c%qu4j9c9X4yEF{_8C_Z&0l0oBZA2N1+-$B3( zl;tge5k-3f3ev<_E0R;wa(*}l7a@HAV{2jSLJd-cptR0v%xoMKD ze~pkbEfd)3N+Z(`a`Ze|fp7335w>iAlp;lnMPz6@kwk#O8a9bhT6RTN)18Hrv-f{1Px}P+ZO50s6omw?LeQMbcd%gCGS1+7Bck9KoHx?I89Nd2@2udeT z95c~idwZoAdhYJHhYQ;g)SC}ezVC?RxZCS)Z*6yb-78nFT)uSq%$YNnuUw9zsNd^v zZEy9uz0{eZKDK5*c`fddB)A3nTyX?bCOVPR=cSS-w00JczxKJnpKxcdX($&kq|3`l~J2#_J=(gJcK*H?IhKNUm7Ch#v z(lyfcAgurYnETHt%aZFn5Z!x6#BtZB&n(|n)zuzon1&?@ii9W-bRY>4B%eg;QH0D} zqBNRWGDD4KNR31}iW+fbpZGLuL{cLV4B`}T0KLi~8(?CchkkA(rfrkM;YpgC49e{vlSK7o8D>Cn(Zynnr0k~}t0t4|- z=NAAOYK|LglcdSI$ik-|ej!+>DGFj^`x{LEOgvpcXn5T|(-gkhmgx0f_(4Ipvi zrW7^NN&eg}>Id|xArGBK9;$Sh({^hUyjtCDw z^xy|tjn+FKe6U^#Or9!Yi5{^JARRd>Ad(=dR8*-AAC5+VGIVvmCEC`NLF}xoY;_64 z1x6GICQFlEr`>6HUwie{<1aq{)vtWz$;Y33@r4&opL%U&X=!U?tJ~=oMTWqF2!YvH zT@+N7kGQM@BeOMH7e%+Ty}Yz^^Tv&(n>W{1*Rwo}f{+lSTGeQ6jSWcQ27J>-Qo;g#m)E;^GLFECnc1{sna_Ryogtiui+U#{|l}Z%gOUIwTa^=Rt+-!ei z@l)UToev$|8xaJ^ktYcdxKLs6b3gZUFFgM|YFqJwQVGV@Cb9uGp#W7BxRD(|c(C4l zs5N;{SeY;EJmZ4JX~aGC>fVWFfV{rG!o=2-T7W?iC>*ISk(12W$p*5uLP|n3g^t27 z&oU)sn(1%2jz^6Nsk}y`IWsrk?+=)X zjV&442^m8TUC}f)FH&Qz@&e!Y4YLr2hmrSj9*iN7###ja!v<$|Zj47z{}P=^Z0pSi zK@UuCvK7ouwW z$mwdU!sO*i1q(BNcGUw{4Vsngf5Ut3*UajbKKgmb#b!;*LDXJ%^)Ydf9Jpx<|qgd~oy zUb%Ak@Zl`W9(?e@s9LkSD7`UpYbQH6D@rMCVDlWn5`!-hHER|uvL8eM0Du5VL_t*3 zQ+sB*?dw-B9DU%i)r)7JedWXteecJD8#KG$U)^Zu{gqk(hxYF|zrK+SQl-44J$UK( zs~`W^cTI}W^UEzJI7A!?v;t5ukSCP@GZD#m-goH4$*Y^oi*t>z8IT9y0Vu%&C`o$0 z?_aund1-k`YaM!_wU!)}_b_frV4<)Ph;Dl9yK!Xn$ZU`k~ehK>Z;SYwQ~#%iPAG)r?!a|3i(!8;ZM zWfBAcWUO_e+!A|Y97NqkCk&1c?$Sc;hK{l&BqVep*D~dVyO zXnUv0W8a=7yKTPR-V4AE#A(n7Mea>}oxR5AjUw{~k`Lg}|K z0gxv}UchtTIR4rH_BmOt2uoz7SIE7s=@7x%p7c_ydIt{9HTTqYm5hKZH@DART&c}I zuy^5}xw$caW+D=RA(E?&HL_3H8C$9uir+S*#2Bt~l|;dT3Y-n4J!h!#uhwUw1Lj;~$4`p`oU zlN1j>{K&$>e6?D2rfe8)zO``wPreBv0AOR|!C-l1<@x8If9mO{&YnHj?{wSkwk~uS zg`zAHb1KYl-jIl`wZ;_IGV}7vO0U=3+}gTw_3HZi`ts7!y~mC%%+LG2FFk*!sIdHF z*R2GAq(GuHIu{@;OMxL?0EOTa0cfi=g|)L6&YeDcMoMX|VHQj@(h(&h&J0=;NpIg|W16Yy z`AQp`W&(wiyt4pk3euu3#hzxv=0R_DxhS+h86;L4Bw(_RFcSzIR(ltx6lraoeP3PQ zc=5&KAO7%%d6-be5_Pikn#6GJJb2*1^z`)NW@5CC2QiXD#4xNBSwTtyjOQfWA5xy@ zVGvYnHP7>u5WQaCXf34FS?-?KvIA$k35HM@U8@cdI1Y5zmA1Kfw|&B+!K_hO%p1Znqe~5F4^%OQ#*HaUB{v+)1dqEE)!0 z0KnQ5)=|BWU3nPraj+vxD5O%7q&C`GaKK82l9nFc<6Mpnm5mCB$slYjW557C5?bJ5MX_nEIf6LZtA z?7RPg58Qk7p;o=chS8E_CCNi3W(834nuTFVBc7vSYJHR=yOW*VS)am6-RS)4)vIUE zo_*=Wi5Fgc@rlPD|N1w+(e89MH#YL3@O|Iz@)dRa4dFGz%Bjo#kcUS3}QgD?HT^Uptj^3{`TE2{vY zwU$x@VNe#Y+$viJxHIZ+8->GfdY)&kO_HSF@84WnT3uOLTwGjTT{YISwbg1xh@Fbo z(s3%&dyWfk_!58_$y#I(C_O2};?*n7dNnMabyQT}+r@{FjscMr7?AF6q-$tYI;C3$ zNokNy>25?ihK8Y}8|jknj*Yi!V7y$wL5HtDvu z*hURtVH8+3X6U`CT@DOM8r>c&oehO=KYpIN{3bZv|0i5I0n8MIlyCe?y~Eem()QL{ z;*N6dZoc&wm23ja)^P>@I6j)v^CkQ_q$J1pJB%O-3stW^jCg?-y9`BAJtHmmi+X`D zr;QdyDQ>@#BHcVRCE{w3mZI8Ux8nW%O19dCJh*xmgDnk{O%I)?0V6r>J6dJbk^Zps zM4y#tL^sgl`exM1<(p8l_TZ@MIEsJ0B7dZF+c&4rj&J6?%w1TSU8|PlwrvYSYXwC4 zcTY@=Y{n6+Nl=*nbz(|y&FmsVtl;|7*#+KGBlfIIDfhv~hIXB0vNYarCWXy!0REOC znqQux0tQPSzGCiV7lF8Egl~uUvdesa_{iZH{g+tnw>fbdbkPgj!R2Di#xcq23j3JWV#wD#tl&oU*x-<2)x=0;+L|`F9=|J9xxQTqZ z%`t2tX{QaFgAOFgiTvR>z;6qxCGM&nW5XxDQENj?Dr|A>j~@+nFI>cUZwoZYwBdr{ zssg(p=(%=Vdf1#mMM&wpUHwr^!u-|+&%YBr*z1WV)kHNowZ2~0T|M{R=GShg5!8G+ z5}!~0%)pw1s71U^(NBdRG};B|**EZK!6R`>X2PwuB9SKQqeCyT{VCsaFXNa@-Je- zfmiAU%EArbBZJ0%$i6`0<&96|!RcWe23)_JT@ajZwqe~vw&CFU&!?{0*rmv8B-!M2 zH85f}e|}S=l_Deqf0ATaS`#*TxC|XONYTiq24d+5VMl7a?7FvR6zc*RBLDJFTfh-C zc0buQ%Ez_Z!OjUsh@T37`}e6}lC%X|R7%Z&!6QsD->f0*XX07;ho3zPRG!Xozc=Ve+0R>% zJk6gYdoXGeEsvfSj7LHQt1+c#8{R!i*mu zSQ@?0W290^!R4ml^13e5TIRP8T?id{f!7sZ_ta58R`YFyHGS~^LmG!%&cAfLwNPU6 z&?lH(^&un3H?z~U_^qIxBg}$*K*Uqz?BRj(RAj!TqzBk; zNJqG%i}~iz4D0yY`;kE%bti|)X4gMVo@b$l;MXYx)V@1j1C#QElhGN1DJdy}0s^&c zhidN^pAI^2pKK8EyQ=IEe+mEN+Gcce~&ExSA zo!S^~xTL@DI_m{vInGEmSmT)8Y+|av%HK8lwqK-U?0aQ|PtK_RZo}W*DIpFlbTN~C z+pHJ@w2X0~OP7Iw2+7Q>Tg#GQrOCU%I8w^VCKtuhKcU-n_+>B+CY9QWYIvRRWtg6< z5FtUC-Y$PKy8YLs)Q?4Igzq*CB^mzSB{y>KIpMTWW|{33R88btR?hxX`Kg!(E~7XM zqSISimZVY6UR-KOQXJ@E844f7G_NP3nhukQ_Q!}<)g-Nk{<4FSqe`V0FJ)wSX1^o= zF92g>t)cydm=+a?XA%}jw_@Q7e*|e)AQw|zW*!$LvNrQ48$}Ds>z=O>u9K;hN(D== zl_LFInFdL}6SC7_vVJMskJg-t`2&nAxs=x9uRw}e>W7*bk7Lo4=x=K$`$T-+(%R$J zq3P7fclw)N(2j#K6~PH)P!|22c)Eiy{U7J5(kGkIomdljfeJBHo^$QfpV7YJr>g38 zOI*$Eop4doK$KKS5~1C^5ZcvLOUULVy0kh3=DVQl{3t$W|JVd}&Fb9eP`8S19PD^o?vB$X!c zC!qZjelf&Kv1H(xjUs7Gl+9>}ykf)4A+t9$w3-k$la+2Mu=vOBgTaw$AzF~fmoHi@ zu(tZEe=pTNI;c^*@&IHt(_N3zcE-FwqW~b3B+aRH%$_2$@G9PGDcM3*^{LR=bcbby zo_Z*kGLj*>_H}H-wMW4G%r+em18vNKk=6SCzAaH>6i=h21%UE`6gCvE#o)hARfun3 zu;!;+oEKVC17Ho}PiLzr(*UEC_4kc_=;iUk;!!|&-zbdYea3tL6b`nhMt}_z?=As_ zASppW=7XUdP)2_`-D)?p{I~1gb*iN=*~vhIMmCTh z_fr}YDP3EJg!;(=1Oh?8hh~X-<`=ZAQ_%Nio&gPU2FF3Q(nPYtNb)nkw63|D(u$Q| z7-SU?B{#p-M7#%kj4mNtttU{8aI6s_X^`z;#e17k@MK#u}*;qHri)uB{ zOM-)wadWSeuzG%Nx2>(p4$JJ4G{0^=QNx(f1)EYX;fOE>6($VL2~+fF{T$iyC%(ly zgUXA3wBwbtx&UGLm~0DYNC!a}4^bUDbH`kOJpYGt0{_TNaNWA-LSt5=Hwot|Eha;M ze4=BOgx9!2JI4qtR}f2dJwyFH=ul~L-$AvWK`m409Js)ASYN{IHm8bMW5uqgME{sR9@Eaz zuUoZdFObo0dzluSehPUA^S?%dFE(V0zR&^r>M76l4FLKH%$eS#Cy!d~54( zWGdgYtnv0XeFv{P^b?6|fRkh7cdg#O>9f+%@#O@~vW%egu|p4MD|!qOcUt!ww*_`NDw}ASpXijvX#3`31`K ziUrrLbP2lxDe*|>AR5R3W@E+W>6fags$NeQPM?x-N!sv*Zf!GcuD2ZKawZEW`q~La zVL-5voy(S9kg2Jt=*AsajEapbFR~67GnLOW%oQ_bMmjBkG<7S8DKEjje=E@ zFSQ^KW|U=1O9O+J4Pl9}Mky_ye6>LAEbH6OgVz4KPkULo%m-2|bV`MBg;q>BK|RLY z+>3&0H+B_uVgy5PXbCOq&9E!yhigHoOgyTE;P7Dfc3XvDqYb;i#~*(habcDJ%{Ruq zQB@5FnM&$5?B$S^{>IinWVR=rKV zyxwA!6CD8DO1v`{z$1g>)#(>Ckl~HR;eSLj%bCPA6ATcuw;-6%7j{-<` z-a&;JfJdp=Z(jKsQZp#!Ctmr`Cw-Y=to;6jo6uuPMR@+u>@u4weaNRu?Yo!vc#qJr zgJt3Hl9LBemDluPfp8^N(0=OWI5k*R`~nV?ozbg1qfd6`99ZeIm5%$%&S*0-yrbJQ z8D^wJXswQqi}pHHfNU-=7$DE2aPX-oi@J8d!<%g7R5ojBTe%1Wre2SYEh0d)`m1=?SXd(P7m0ERGy|TC0Nh+>IJ3+-)uwU zl3LqRA+v`lYK~H79K;-l4)fpkuKeNlb`sn0hDV&Gu>Zp1BArx_Z;oV2-;0r(p?nQ9 z<4=Y}#sJ@0P81g#TP2YFO*BF13V9qEfoPOZ;I}!`btkbD_E$fV!0d4lb?vhF^|qx$ z`u4X(gX}#oLs<$%vy@OJAwGm!SRvAQJ)S4^A75h)dMv4$rq#^InJF8Ch_#|lIiW4z zjB!NC+bst%jbv$J6vsObBS( z%LUF7aa~y+(CAL@_OM{K$3v<9*L3#caO2dKM(dA$y~&ZwWf|SEyRm;*@5NHVL2RNv zHwQ`f!>6~M_cxqJYmL>Q5aMjIvUW7)0fZ0p4266u^cy=ZOG}gR+{6QE5;;0JWWM#eyVxEE{*-67cedb068Tf>yG`-C9v~90$n3MG z1GR0f;}ghGt%zh(Mhgfet7w?3M1(*JaU*#{91wI20f) zi*8HpoIdAeIS+Mf#M;v4QmbyFicvUFuWK(OAla*)3z9`ai<9iCBJ_CPfnI@h4}j6cP?b`*3(X)DCbRq_hnpk<`LWr^;6Tas+%*Igjee3nKD_&hZ+dYbd2TJOxoa^OPBi!Dgj{eR zx#K7#rZIHz15q&OQEE*;!%|5jVVi*4RdfkjoE$u;+D!_^;zX9*jG{x1s*~`V1lrMZA%b>OPN2 zP@m$3^o%T{d0tUY^Bbw7v${7d<1WdMxKyTBBThO5_#%Q%%k%T|4|hOA_Ql080Ae*V zFu3+Hfd>53j_eEzo-9s5q>?GE8cW=U+KZ_WgqYbx1HT~(I0b)4k}xtdJ~@A0MFPy$ z<-k{EC6J<-3SYf`b|<|Fo4133I+J5=)tI$k_lGeh0kiHv-l*14+~u#kIu+V5Zh*x= zN7Jz6XdYE_)A{r`nx`J2=oAm3EoGX<^miHfsh3fzUF=-WVVxH7?sWUduEeK*L5OAd zPut7kY%5qlKiI0Ara4%wJl#O5`0aPqOgy%eip&*u^G)e))ZUb$3Fa>zH|%;snawM- ziWba*SyL+iW6hqMPNb&}l)s66vmwF4Y3unC#{#r0kU5_sNsb)A&zWns+e!rvEF|K< zv#NK3>0|sWesxW3`qhV>{R`>UG>()cn4yzFop3)oT%OjhfI#!E!}7HmZa0$yf5u{} zP)vNBBv;+$3<30o)L&1m3ZV+rztT@$8cBHre^nX}DQyh}_=MtU}6wSVNa1jaObtEpjY?GiRV$ z=0%?|?5Wv@XY@@5b6O=w4#2YWg2Ul0GfOACXVEF@>=lgoZI_}M z6$=Z4;@7#qHaXIfHJholwG{LEem(a`IQ3C!+E*0fcgpV$=K9bs)C8F@@hkX~|hzlz)Kk1){RZs24C-!aI?v+bqic?2N_3mU3_B)Cd3tsdAOLy+;*gp|+iBSskEstS`>k&*%rSCs1TIYEdn&w7Xl^emBe0 zSiqd+X`Om0(@l#45RVj1ucYW!I_iWgH&)(BgRp28K32_%ei>g+8!VMt#_mxB5evK$ znqmeLIH?oJhVajqf6^{H6$?RpT#bzlanjqjIAn=4DSJ(6{)UuWV-(mu6Eg_rqAKJIz2N|bX@a2Ds7ewf-7-j)hEb-nxA&tqMQPHq zamew7iGi}D^4VH?$*zq{K~2~#AlZq&&pm64Zf!c`EbYvwNYc$D&Y;xKq-RpJn5Oab z$Tac%4$jOwZfy_bAjv>B>tL8{cT9vC(rdOU4CYXke~rc7f6a!cYzk+;F z4s7XtK*$^|DdhHI7qPC_Za)^?xG z9b9a4{#AGL0WOA^O)<{kT(&|d)X0^w& z;3B-!4*ZAF@&!x#u>?!FdNQX^g$5ZJBgp3-(j&GJg zgM*a@MIL+jF{P2TxdRv#G{1k9?Rx+eBTHZ4{n(~t>!A**`V+_+S=(+*?K2M5f|6Ar ziIEaBB?j8}RkE>*KkSM6tRWKnkHjhrI34|8DB(_=_ES(8_;({Km;So8%H!so&>uD} zg8@ePB&d;zVcTYOl8Th9T=qRw-#mm!lk~e(F7TPfcC3fBBnnx&A>pU=bn=KqcP@gE zURu{&zapa!AWb{Zuw6#V{bTZq@RcXjlQ3l0Q!n|tVX57TqzM$=m)1!VB}@>>Zemuqkb8`}-#ZrL&x@FVl{oO$|Y%dM4=|Ipv^VT<4nhlpE z#3ml=O^H%)YK5-gIgA4srg|JY=Bs1K5w*{msrgi-9NMp&8BX!fUv2Az{nmQ79y-Jk zGiA~FTyLR2Qp~>5mKLfzGYgMsmt?8!0_X0kY>)jddqxw{+r^;^DCu`-GMkR8JJz(O zy}Jk?EB~5-V4$r~@fz4)NdF+3dM8DC*Kz9L18_+S2LVNTiPC}N#;!a`T1d#syVYms zD9x#{ERoNd`wF3I7uIbvz3-~6quuW_Y_!)`qh@YpfBfWgzj{9A{xBc=IIkdar%5oY zI`wMEoVGAw>hss_zH^cs37?%S&c_XSbzfy=1z>Nb37Om>CZ=3whkhQ$);BScaKCYY z19zjXFrtrU<5UtDl#>{QiLND}U}-Ekmo0E9Cao3?{XV|YDiXL|T$si`Hb`B4cj(+O zmSaL;VepC!_As$qpCd&oUt;Y2Xm4_Rq5gaoyIN|!jC*{i!DO<#Kdmlt39Ax60m;cz z^zZ8Pg#XppcTllY6hglpO{Yu}qD|$AM|%-S!(-aw*|Km-T+GJ8kl!}&V!L@HBsYHo z|Ls3hpp%k$TsPVSebXr#i3aCVyS2TedHa)i64cVos#tJfDT^)!-BguS_S)<5=5bH) zOT)lrH>p;3+|&#jnv`zE42zl29^$f%>B2ArIkk(J%ay3fBBZ9*A^>Rs6oAAOJR2g| zFnP;B;Vw8(7&r6-noDSC(Jm#hhgi&g8CR6Nn$ea)z(5g?8OofSwShs!z!6*@hU_N0 zKcROknod=K3pl@`tb}NW;?YJ-HFqTgHFeEi(I>^4-j=I4SCt?K@Q(Vv)is`2*EN zC918vbU-h-m)K@lG(gFH^K7_WwIPHVm@ks!KA0jwe4i2UFB{uGF1_)PF=v~&_+Jq( zxN4-?LB(|oa$U9p?rZXywG588isr^@FxJjv5Xb}j;d(L5V>~?mri1UKUOPPG9AtmFJoVA$s7_n=-;Er)B0Xl)5c1aa3VD$ zYcx_!X+y1K#fFc%<@pKUZ@6*!xf4b6Jy54T0}V-YHZ%cb^>){7z`ikb`nY9EM z8}6m+Qjg51Qaegpgu7lkR0!9>U~P-xjO8X7KLrjxUQZE*>x0Aeixx+DIWcAl|2e}i zy(O-K)>^Gw&_JC`y&N=K1SQQdc_XMoLEIecm*+U?L?7&A}AGEYI!-h2~pU)Jvk1%f(cHx?}skNA!exRi0x zMmx@K5I&{P8tm!{3C6IgV0RUeWj(?ok4hcRI%s_DYcp>n+JK(ye!cB>{xSAL<*F3Q z#OJ?cAjtq|=|VG^`IPjoA)Tpt#`Q%TZla7+S50w>T0cfAznCE48gBc5qX=awDm?QK zCy0`3aG<0h;0==h1Y-Gk$RtilLrLy9)Wt_90Rl;yl@l~tU(SP|rndZ~(S({1MVT-g z&_zvQUaMK;?5mhJF%=0IVN9gr_I0DjL3J+Fx1H!yM99T-lONz+hFmCMy@sB_Q;b z`{3OXx^UMK%T&Rwmn@ewB#u}vc)$YD1&ygc^{NAiz^CnZC2Cn-kAEJH%4HAST1U0t zS<}0%o;PgU>f7^ecz~o$m2N=;+L*}xV#@UbIvhq`=K&zad943- z{hjipTdo3j+MC5{Tu?aZ5ezs+qEx zU$e<+_m957F5s%g#l;1%p#k6V#3VId4K1Ss~b(S+mG!bj3 zR64`29`>7KN8KA5O04uPF}{U)HqO%7>R0@U=FYzAx+r~DMJ@3(b#&yQNlKE8#1)1C z2?qD2$ET$9kwJ5C-UKm}EkF%wsWH(8@ftYU!APW{7CCYg4pF%{<=Syfg}>nB_?2H9 zv|`avec5&ATM>(+MYCI1TU$i>`Yp}h{{DT!?|AkZDbBeOcUBmRciS)M-nqGXU-s49 zmOi`=>LL$Kv;N(DxqA^fFI}Wf=GrLODB$f=wRRjRuyyay)zFw{Oi!51PP)ll)U83{ zNri6#W@8)i&R%wEY@8Jw8f~Lv;oermAwoK4Qnrg{tD`{)^r!Ri1%L2&0|l({jb|0o z(E>x9a5m+rLF|_@@xN%z`^@*7Nznut58B zd9y`0seeF!gh2mEKQi`i2kSNv4^ri40W^BsvK2%-*K{B9ZFUrRM_R8aDkIRY?R4JI zK{SMCY0$K81^sMy7f(%n^g|CCd7ffw+W>(gG%s;inACq;w9DsH)AgY0JQxENj<$}Denq$fRRcN+}Rl~{rcxhG*YfUZax$kJ#hNm zH~QT(O56^^%FLWxURjcU)m+(omf6J&L1*9F zVUwC!p~iwO9O{s2HZZ3BwMU8wCgDeNO}q(>5%l?)JtfemURJbuur5t`qP9i^SKP7}C;;e8f=LxQ?;H62~ivJl_S9;c_L2|w^B-kylW5_ky4Wjp@# zb(#|tbj{Yx<{e<$6x#RlmBaY3B@B`^n|Ek9fZgrP7DH$XtIY;XGZn+MehplBa8=8F zhsv8_fb=Q4HHEG9s@*~x!`yy;L&ZU5lEirRuMic3+!HYIZl3(NxOcyyv5D*JD-2Pq z9*{P$(6fTcTa&M7AD{df^XymaF~U;Ez<0v0;{pmydR9K{II$BFvH2IAQY?|6AnVeQEl{;16zxAUF^9E?NhEr!Y)Xqj zK>qU}|IhXPAZcdvzxF1Nc8$|jf{d2|wzo+rb=dJGv>Q&&?2X6G`!;TC4jSxOuS_~V zonP0bFj(P@vcJwuORrK;bSULT6#S0Kmo^K_dckSn@Mn}gil|)*C z`DZWN_=XGLyT4gx!CC=s`zw{RzgKXUsog1Jn`5hF0G+PH_n_qM^_v`E=XReU1W@+> zz#kFMC(0&IgtRQBiSPfL?>;-OUBoL;`?z|3-EQjh2CU)-6dk zi59BV+20`iS&Da{KDjus)RD0e{;|YW_wd{|iRI-c-}QrSXCMwd%qa!|nL-`~VeiqO ziU3SpX(=!`4uSQ>|iQ-x@0ULtB}Nl#ne2(m{_1B z5CTo06KvKBxO_~~^31;PFtL4KK4Y7H*CD|#JhQOMaUnMC2}Y&+xkjyPU~x;?#zeyS zmojH%-7QRthY$m4>ZKG@qH|wx)E4{LvcWpW(#lXCST0^Gf{4(pq}5TS_$!*6e8VT4 zA~9NDujyv)kz{51fC=PRax~(xQayNFuNC5hjpF-7RrwJ<{h8(!0QE#tR!z_O=SB&o zZ7qkcmc9E{;!$Ba)8IVSV1 z&USVe(|-HYvF)cmz>k~`uj9q#tC2m9X#PAb@1OvnhW%*5DyoDydh)Ya*k-`&oqBet zsn7=LcM7O|G?O{rr?r}U-#gBy-)|7&IHuYEhEkrUOzwttNJtRJORXIpm602vPe+W; z(|&i)uK@X)T;`m8?SlRJT;i$U@80>j;`AO++TmBqaKKnnq1C=SA&#IDzuQ-TE*kfH z!Uj^2mD&d~2``Tj_hF=R1fV9I%VYNNA7Y#w#!b3Jaxg92pucDBL~?l){m7W}Qy4j8 ze8SwK5{->(E2IvNZLSAN?rYvmsg-IcIr{o5zdmZ?_rB+E@u=JN)~vi9{85!9>~ceS z>H!)I*5ukEssU*;AK-hz^u>p3Ilnz!KF|3*Rs~5N-FM8y;01unA)1SvXk5hc<(3dW zRN+NK|6;B0BR>7e`Z^967IA#gptzUTy~4FL1E?jPOL8p>v5l7-7mET4Z#@Fy5*a+d z)+W*0R$@D@cP>8+b7ob~F1xRBgQ~cK=v0GDNz~&h7mJMHRo#H5Hm9B=Vc;y#?X~hw zlYE|T#i=13W>+x1Pv^POZMkABI9&S?j7=CVk3v^u`>W95&mjg^*e2HnfO!C75XtnJ z^rmD!IiXhJ&NG>H{>cHLa4BSPF6w$DgpRYGu3Szuk?PgOp8G~jC8TG5T$DOSSqX=E zqXx%0;Jt7AEEfo8wsy3ZZdl8lKNUGj!1iMVj-lQ;*h5#^Ou_DZj|&PU{>K%OSAQo3zrZwirH=wSGJUV6bDpkh%=^n><35|s|3Q}Xzg<49kA?sHnBEH= zlrLD_uYZBLhNu%Gk;eJl&&6}t^P-bV_{&wi0^knFOw>w_#c>9^JQr9Sl7XVw0UNKe z&-IMUEhznm{7!JiS&DS*sC*|M9h*7~kumVvS4 zY0mFoECWNaSZO(6%9H{-I63+5xWD~TYzsyWpcZ@j_p*-H1vn?Msa|T^e>`3FF?qVs z*${H#BaZ?2@QN7myUk2V?;WH2a$qdH$9RpdKELpCDw7F3oi+AY@+1k8D46O zqqzWlO{@0W<__K1KjQeW_p2ONn`*lmFoG8NxXTXh4cd>PWgRn1tF7)Qq8*RzwoYMT zVEKe<45r}v??`_ybMB8^#(mng%f?1WuUmY2wcIg>?-Ma>uwUL9Ytm`ODVScW=!w77 zJ`hHghbYS1YT6{A$w}2_kYIkICO(uTgy~q(lD==V#+JCVDEa z&@RJdeuP~3NQ`L}eAOoEi$VXz*4mi{fMb!J--R?;I=Tu`GyCLijoF2pR#@8C(KgCy zbC`^1By>iV>7|TbCUQhv^bmGSfpV2&zk?+I(IDf7eE6F7VD@ngo5?kOsQX=h)Opet zibK|}LGO!P^C$}GH(>T1+u2o#cV)BRhW$~C2gF{CSOwee)`XT2x^iCTLlQLKkGgm~ zoHNcfHe|rS6Aj(7@8{2OF$xIy-qn7}CHtc%ldad$+<;rFWk04=B_hmSWs$_6z8uG$ zO@vCUu@)_zwXn}$td#!t`Qg&!@jwSSqlX-ij(+wZQp7c7lGjX5O)}M%2H7+=ZVIi| zIhz=7Wl&J~os2&=1Dq&o3AZ&FrR7KJ=l-0>BWsD)CJz@kw_htxp=STopY|ngdlAoI z%mnEz&+|(6c2=x{ai1rb-LWj?>8s~|5`I38j>o4D74XNW{?!r|Sk7H(PDJ;f-+hr^ zb8RgTH@7f1_rj@LMGc;z5MA57Uqt~9yPCePOo9+GfrY3gV^T}xK+DPL0QsR01X+fg>^Jd@CQD#|)*^b!wd5j#L zB?&j7og<*!081Hj=?>z^^DH1#*B@oB00zY%?k4`u=ID$lVX*FjzR~EQX=>^CH(~1Z z<@wJa!}iAXj6!jv=!5Jda&-txDF>i}Y%lhW93{fiLzCMRn@ESy+7FFRy&lf{TUSnY zc4jfM$MNWRx5hpzYGaSce(!|5l6?^`W!uTj5WyKmP3i1qjc zRu(A*bBeDmAE+}HQ%s;6=J`QKh9TW+2iri~U2VU=5HniSJw@E#&RY6 z!&bm zVA6pE8jbfJD~Wde%{T=Xn=Z1!M&&%R4G4R-da^~awkfCO&3^G`iD>lw+#fhzO3vOB z$2cMe?M_RSk4~*~w(bqH)>e$^FNU>$A=i+H^jwqTlE+KK@|{A2X3~QKH}%uR}}(m_xM}BE;rE zlG0#;nCqzlVe&)4vc%WDHIa1^_ak*c2zaSnhl>*7s_2?eTM|1$=G1mJP?g7XkE^y~qcL)MySqESJ5`S`t1{cDCm4X*1@>E!@cY&rV9NQHOPK$9 zQ{riJ#dyjAW@T;VL}LY*bCT?e*3_4dZw?k0foVrbuF1o1Ki|#1XtrVSIpgz&$+xX| z_btzLRIOler7j|7@ca4i@dbq2|H(ipfTOtk_oZz@Ol74al&wshDDsy{PI@L4U0V5F zq`jcvkDIHG(jLS~O5t^`xKWkbj2%HdXua(3*5EtNEDyO~g8KH<-bXbH3wl;#wNZ*- zOhOqYITjLs0!ns59u1mY2vZ?b*cYkNLR~F3+rOG?L6!X!vuxY9FsV~%=liRji?r3g z-)tsk^YVL`5lJejeZi#=)%Rd}J+pfH()WL>%GuU*TW%fw4wm4%_i%tZx=qQO#-U^g zGHe1GQ4XsF$)mjriXOOFuiP3#1M6X*)33b6$FcP*O115$-T@o+BY#uM;iRK00dTfSV= z^dC!PNGbBZoC>mJ!h5<`m~zrHcGvn9#ueJXl0<0n*mLR8kVVD#z62On4{rEcPuSyo z9oM&Jxy{y{$j>eeE!qFRNng;P%qVknS#aW58qM&!w5s{~QiOsx+KW}XD;KO1&q@#S zXTNa7#EsPOFX~jTjY9RH5(lORWo2c7!OU1=k%M+VJiin(Fv9{`=LsSMfo0b#?Y-WffK~mX_Pk4>KnGi~hUVggFmejJqVn z8+4egub4x)XCLyoxSTD;oh#+eVR&?`?{oFa~l_q1v?i z<3KFnwFS5%@2nb*48Ez*y}r5!OeH?oTV*MnCLPVLysA@XX<;9rEkj+Uv##-};x6cO zf-NjI)mTnWj!q@Vw=zGji9K18z=A$AIES!Y4(1jw%kzsOn&m79QO8fc$L#x0>>)1Xh7K-P$FTsG6|Zi4fHbwg?u$BAX-h?cYy`lKT_`AlR1I z$Qul>u~j-5w{>iMU}P-WwZF#Pe}VJ9^iKg-VuE3XI!p`L9!W=xj*j{^Rt3imxkN6I zX22;M8y(!Er#?HS@_Yhu{Nb3a8v04Y%70ZhRx9d+IOh*%yJQco`z_S=x`2Xv_PQPN zOPjUs(ghu#n#Gkn3|(m|_OfXrsQW7FgluKAZCH;a;cc%t7h0%C>lZz@Eu1Fv*?#1Q zULHQ<9*-GhakP)SZ3Q813Z6QW#X|0%WL}i}|5g*402e zi=^r)$UYLZLRgg-tu|`=@?`M`4heokn6Q~zD#{i}_!C|n?G_!Mk}6M1VyG0szuTjF z#u}h|cOb8w9XSf!4Xi#xeq6y$ej~cHz7rWYNM8G7@g_-w6zzKv#i9D!r$1X;D%Rej zXWxDcy|b4hR~EOKy_SE5A$;cIn-+)3h0cDbWP9fEc7{?vO^Dy0?!J~e{2=r*w>m-j|XO3%e zc=4KJ1}S+{$XHJ=9@_r=c>0_T%$i&N&SR7LYM3c9 zTnl_Q_xgR06gIoGsjQ#3=bkv}AK{3)=jprxg=u31$=17SgOdlNH83-Vo!!C2ov7MNJQ{4I z1U*bd(&Xlbi{h*oD)z%Ka_I*MDynCR$PO|iy3;p~ZS`pbfH@hvl0~oC*A5Vu2+|Ks z1KlialJ3vt47yr>T2$6P9VaZt$*o=5Rd%PMV$r@vnvibh}z8cgD>9gKLpdgS!VY2VIQt(%@q9; z6$1kZ$igH+fB!+ph!x{tz-4SX*1)KO#XoJRbf50}!C#>WNnA?PV+c z-X4BqpS>$*R^QNY2dG(aVy&^`H19R@SVt#EpB;DKU2ORCeUMP4tR`UPfoo|J0XP|z z>3Z6207e!A$P+U<>Ud~Afjs}L+&%P9zEmY6L84!dx&ce;jE+fGdKQ5+umSbXPT6xM zqC1z3BVl-dZ8xzvznYx^-+h2l#J&~*FXjtVI+#$?oqLrD@J^>Q=@#Q?-5D5Ukr)d- z9j~2B^{0uBc*PoJ9RqV!z>}D4X)dgcM&czu>W~&p7Go6p5D7Dmt$XBscWgWr*&4)l zT%^Z%g4nbGS>?*+O+e!@hv*A2IJ8WlU8X>ThbaTLiWJed=W1qZ+m~xQFsk1=qu&%l z8nnFMX!J^W7B8|Kr{};*barp9xZ#eh5QRp}G;KFLVcv!>I8hFGtI~Hp6N(sy!v}P; zcAIxo3>oC@O~tj!sQQxoGg%l?RvTnOS7-xpx*}yY-c;%5>f}mzWrdkKW8;9=c3SXF zIyv&ON`U{gW|8*0j+9-`sPcgeUQS(~E^7t48al3WfQOo`(fQb#%lDq`zdqxIoScz?;cb@bWp?jKnWJLjoac8L z*R1~2;C`;4-`$$Uu%au*7FXA0%%Xu;HMY3WgC6M<8|m{!m^x>RBp*MxC8KoJ8D+tW zn`NeKfeu}?ic8zUCYw9^&vxTo*505qL>(X=r&yWtuMq|JdTjtq-2~+;-~!!TT5`Xc zk;EY3kr1=YBrs`iX--Q`I}>m{*_$l+|CpfrVbA~=Ks+AiJ^H;3`du=;?rz5kp7j~m zgc|;sq8|qUArFSX-Qol8yY4%0Jv*s467$*6k;vPMc|}{+dHi0V|MRl_?F+GMv5s*Z zD;W_2iwF|jG+1foS$v~GJ%RxLP)zli{}+0q^!v{lW-p!$>2?b~FxZ+X^_>e}eV@g^ zy|AbA6tKubBIFeP-skluACi(r!HfofrS>h7spxoqVId3C7R?JCLt5LDOBNe8LhPPy zppVO^kYf)&m1W<9(vN~DofPrqRK_&U!foK7Kw;)Jb?yi#`3>UBYyPlB_x)4%{u12% zBEfCL*eo$~q!sqr*Z!E2U3xn0q@=F%eXYGP;p*j^AXK(tE$yWavs06cq=%d!KKzYw@*H2v#5$JG(raAlld!GLA?3hQ8fM(@kCjerlc~hwqMht zF=I_gF%_vduYEQ#;C4NXa3~$O3>%AA{!+=7YQds3qFUua(V7qK4I1a06GO2uTNMM|~It^PX9EBky)tkUdiTi%elJI}~V zPp@4d=sXS3h{!MICan=};V_B8nbm%JJg)72eLRj@#6t>#Nu{>jBD;9y#BSuW0*q4n zx90**#a~%6hA$82N(G;mr@Qt$&&wCAa_;T`h2d>w_haRU>N54}>e|}3A^Yc{jKyj1 z;}+j>;0S(v>5ce66-(;p=;GpHWtBK2wg-GM8UTN?6%hw?M7D@Qo<;uv0j!V0*MG&( zLE>{5tZI&_F(hHdN@yUsb(`z$A@B^H2vN9NUEfm-I+D71y>So1F;ex|il7S4-`y>V zGB>~oyojL6wPGiD@qJtBym#fzsXk=@J*;SSRYZw+=y&SpS+EOCAK!XjUpr@I=@eOi z6!*Q{0$3izJBRhdBw3l6D{E^vDfd6`BShzMLBT*h*maJl<-5C8a{V;D;djy%^6#IS zvoSk*`uEh#JuwItXQh6MOX{v`YI~3 zgUzGWNCniHL$k_5v{O}Ag=USPf^$J@x(0f`9E+4IC#EJ5Wl&)Upm@Ory#SM}|z3 z4137Oy5R)Jan6b795F5krqcr^0&Jq*~+o`Wh2I9>wPNU5a7LNW^i32tz$X&nD)x2uHx9A&e_xi2DnQ;_eA{o?ytLm*mp8 z?0XnPmAGdz>zbvuirnjR(WRO3f_yEu!h0?hwo?bX6Mw`zNAMH>!zH6+ z9?~YG=L-+1WF!s^k|An5#)YMp6KPzgz3NCqf8E=B&br@x%Rg7!YDEJ1BWkW8f+<@@ zIYHgGItJd4%e7RQTT{^agr}f7l6xdVYq}xLA`VRw8(X~%P3sBy+b2CCLMU8L$&fZ; z5WMv42mcWQ-P?uOoFq|9_|}WhY@gBMmGD*jWz<3z))HYX)0-T@nabiO)TcbI{T3NH zww>1EXg?kNb{iQz0^5kw>^Bwmsvfptra`ak;(KgAyseNR#nH;Aa0| z>lH$#qSgq|QuR)TSov6H`DkHy6nWUlTeFX+jI=DqhqM7$T$s=IFn@0q<^y-J@zcxY zl^KcR5$B7JPOp0s{#HRaMGAr4zqU`pe8#G7cuh;BH=W>F5Z;u*(%MpdVK7v+Ly7=w z-PbezLpQHt1a&{%0?L)9(MXgP^Dm@L^maw{Jv0eb(xrW1hn1y;lMr6GWl_L!3wT_I zfxyqGLh7b7mtPhc@H`ww{y9~LI!f!X{?GxjN)8y1Fs5#&D~EJ7WN*G)1<+Rl@5p^J z5-1QJ`$&Y8-yLW@!^i-aX7xe^;~&FQ`KzMEV+3IbU`)HPpeAPH#;cN)1a$B;!{d5| zqcYN)_gU5IUm}As?PVXg<2I^Tl*6ebGbha;%3p+`1munve|pU-)xHBxT7d31lzv)W z4ZLyAz)jU%!C$Lhxo~`|0jM2D5a+2+A0Pn zo#MS$IH2-du#zT=6w#@sQ~DC_ef9C70x-Ojn{awyvEi7WAaDfivQice$L8pvu^rRT zX_+-~_V_A_e`HZZRYw#E%9V%{ULj*P!%-lOc_&5>^RqqIsFVpG6uhriv7ik(^2lY3 z^!2NQKu+nO>S~5hxW9_)50uNZj&OjGpVZ~xz{rPayB_-a#pfG!jS3);g`B=aCTkL)0eO>RTJAwjC>SXYjGNM|5!<@u^8}tXbo((n zQFd4Y3<(QOVnD^{Fjc3FIe%cuZN1rvI)LN96VENv^b-Xv`<% zE{DI$*!ygAUi;=49E5CI>JR$JUmV*VYF&|p*`dJxTOpVK-_G_dQYSN`xu@kbfu}!KcNokst-~e|7#Ofnxi~BB=zKe0x9+0a)3F8MVr2|m1 z0bzV*=K@HU>8+;#dLaKaKum3w6c+=Kq-{wGN|55oB>8Sb+j>L(~ojGqZx3Y^x?pUPq_H6}9kZ0i?YbDM~FOwZ3w7 zhWI~p3R3lLUAMEBX^pV_)7Kq62YRb^1vqR#>InDEOHPZ_XEXc##KcBLaPY^nh$c*J zWYOXT^i&5I(eLr}D2TAh@QFgGvSW!26!buOBPHC5i?QX_{Unh0I3L#u12a>`nFT`m zvv;%tjK@L%yk@~{rcg0+bc62jC3u|GI>)muK?XueX|``B4WenFWV5VtVG*-Q!@ARB zwj&x^3nLISWI(>^V~(!yEve}XP0)Wo=3lCmD#km3i=KA$yI=4}13zGERgV0N&9!0` z_l+MAN6;zZsL_U}?~B(i%JQD(T=wSsBj{M7nz~?>@=k&m4bk68PGq5w@uq)H#8!T! zfW=9aPX5ZO4R7sKeU1O^y(#hUvy;V(B;{X@9q7cPYLGTkqWgFWR%jrkzd*vo?TRx~ zyiTf!fX<``M;tsKAmH^GHfcAYkQw=a!H^A88g=1x09Y955&n(HKhik%RZR;puWGWy zS0wIcj16nq4QxYYMTFPB7gN9 z<54SBnuah2G5X}muKhwiJTw|w9RU@y?jx8xY)axTU!)tS8?VjvzP;~$5TCx@Gc(WO zPX!AHHqZmu5v^3cZeM{|6O-u1+wDJ_{b3mPwswzQ-M@YTZqGtbG|lPhNthn)FHq{5 z80zrkWPMDr>WB!d67uA&78>ZKqyc=ga!T2(6$f2P1(+53D-2s%rX&yym;v;4bik0bfKN`pA2I4RhC?Jy?ZSm#P>Y zS8DVYYcA_L$*U}bEIs=<5tjm!l??ksJ~p--q87&0*Ck_(1I&baoN5U~GYM;W);fgo zZ#M8|sLq2KeEd`VQzZyA!k+m!$S4$`!3U5b#l~q%Yb(o>oF$#)$U^$A76V(`JJ8Xk4Gu@X_*V9UyHBcibj95 zcMd*MoD1-m_z-_%r?K0chd*$5-`lmtZXi7fc0);c4notxt^}nKb@_f4a&;O%Fz6#!C$w5 zSV6RvcET;Hfi#X7%js*(85J0|sYwR@hn{|6%tPHLUv6&~CICR44b*ftOfK(F7^^VNfQBwS!`jCQq3Z*+IQ-!juGcDe@4k<2vDR% zlHZ6---pCca3Tw|PTCH$aLIyDkz$C673HbT?B**AN*nljeD>xStTkdd4XYO<8ZM;q zP3Tvl^FJUfD;tbQlObqP<9LgB){+D%{mSe>n|@2V-BD&lRZ}1`X)X`Q$?oVu7I4)O zh|EC@NMC|Rqvr2ZWWUdZcPxHFPemv3Un*~cmj)-~oPK_H;=ny1;;%?w{DsR-vSHEg z7mtmOd8Ggc2Mzq~(+g0QRqx%F-1;WohGaP7Jubc-hub%!(k;`-B`g zqVCqqzKpEvdwyL@dAuPR8Z^C=_4XF6+CWn&M8GtI^AG4lj#jjHkRsu!F`mO2v{euX zl3`4x{4v45Jqg-W3#|KZS4v^@2%?#S@CI!Y#ze{B`3YhO8qhzuP9A znfGk_!x2z+QFdj?bYno6DNKY_3ljS@>FAnqVwY#FBGKrV2i@!e%P{q6y6vf$J{a$` z6NPy2b<~@ZVK!Tij+c$p>cn9w#R{%Fu++>m-}Qo*2$~s#AAXhsZM0D}#NFr9s3__+ zeeIJlTX-@8Oj}5B9T$hj$1bywte1x&nPH7;Pv=A_z_NN*3ti&+qdp_fa)808_v;4$ z4NXbeWtSUY+Nz$|_DctIps;Ea+QOqy#d(LN@mE>lW#T9VH>Onw#49KHd73q zw5i1vlP0$K^-jH9H3(b>Jy~t3ow0&7Y-v=hUCj6dD!~K{4k=bHcCMV`tkc)gEFsX` zeFb^>Vrkm&pOmGjdN|sfCH8*6LN zV`HcwpaTbdC5K*qw{wF3-~e6a#6)y+Xhyv%ZX=@-cf~cmun9V10n)|JHL&%r|Ml@$ zrc;HYyb7O5QMnM48a|K$(WL6^4%@bo{>)m%za9ji8dkW_&(FZ8Em=$7Cka-NqA9r% zek`NKO);}%_{ezQW1>vf!rXdtRxW}!WI+zxj(o~BB6y$Ug{zfq=c`#((uD!VbSpJG zN(B6b88Xf6gnAbG4>K1tm)_?5_3wYr?9R$2|5iwU@|R&iW>tL5Eun3@W_7Z4ez)Qu zg{;%;Ze3)?POzVEsOhy>VM@KAw6-eKYaX=FXb=9B@G&znr?tXI`6BG zr>VymrYjw2z^b3map;DMzW$C!ZrB2?X@;{$`0o?O_g*@5VdqcM*j~sBR<_U1G~$_8 zWr)V+LUka`{zDEJ&np118QLX=sCG|dVWrFhuboPj$WNZYXA=+N5nNF35S|fIfQb7dEI*Mh%%vRf-iecN&Zy#5pvGh#A@on8i+W6-+X5ZTw^Eq1u*ZO(*E8 zmQYiCc%`yx7FUbqq-=f#%#>^r3&{)v6E;qotZWF03d&}P27`5uTkoo5tt>csIKDf* zEcmvrPTiabhX5S|uOo3I$`Zbos2iH)G4@R?(O(+bIyjkR1h&{{JByr4T>bH!&zw=A zU36lvVhP68LWk&w^awqZ6=Y>V49&1CFh(7uP5H9`7JFrNJ&J#h@btU0vn=hG;0ylg zkO>gIs96C<`qaci2|VS(X>m}l-8}Bk(t8a$IYTXZ^wNEw(o(nIQPro_vUrR&RrFMr zV-rgFd-j`MYxN$v8aTgxi&K9=R}vcPPzz1s12Vs$r>B@J=c>yVUfXWhxNkI0AavSwWphYKx!&5 zaNzUB2U)Na+!OQN0sYrwgXEUn&4?kr`We49sBQvwM*EmkpN*~2un9UOY16W5pV0AY zXURORl2X<;k;C8J_QToI@(@7j0x!bO6Xi@w#ipDKSxl*F3HBh|?vqijwTZ2DA&D4# za=cXF?|UE9?cn%X_D=V|PW<6U6;8k=f{pBP%=t>RUjZdOUJ=H!BTRr_3nF!^?WH1h)*>40*QLD5uOy^PV%KGSI?PL(P5U-iaC)LoQb+}JQ zeO7yY7Px_m_`|r&^jqs36>StrttDL1^{fiYipuJAF%kk*3qsP9%^#?2zNLN_H&T=q zGg^Mf#W$d04YF+$%3|9=H>2)GH%ZSWZjd3E!~E1G!{X^Pfh-j|11l>8FJyZ~G5S<5 z?d$;gYBLl@nN}m%uw7XX`a`aRSPh4?tRzxGPelfgCLb6N4^uA`F`H=gIVzBP8XF|* z{|EJc+++6u!=C}0SNkC`Ltm9#Or>0vHsGLoAMF|~C2}GOHX;aYSQM7FVTA5XfCq~L zgB2d&4b16(m|42CDP`RX2uiYWwJTQ7=l@PMd3U+-@&O5B^1Z|7h$#O4>eDrh!ck~o zX~l>bHHbYBK}b3=UY2&ih{%6#dv|MPjCDx_HKU}ZjDB6e)%$p&jS!0+ zh2Z81SkZ=lH#7UGRH zu%T8Tg+)*j_B~QfJ#r<5-G{v@TL{DxXcSmiYrRh+VkU1>QnKFqHy?HKb2f0BC@Eu! zc$@$WgIOg4h^fon*x0y2O8KM2xz9h#ZF-IUy zA^_>`bTw^XyaZdX&7rrNJb|<)%T)2a*#b*6*G#E8GPQbYI)~@>kI(Sdcg2tT5G7OU zbS=>1f>q^=ZU<{w=)!JE$=$PVrCOz`s(sy3#m^5(lVjTc(wofi!c7eg08j?<8R=&U zrsxJ08hlj-Jc5y8<-#m`EUnU?FrZBxwI@dnG{mnV!)G(cJ&2u2)4`l5%9BR6^5-QP5~zwSzP*nhpp?J$Wct@f>g{;G(Rpgu z(b=h1$yu}3N|RjMcJQNlRVT}F_A|Q;yOS_%27Dt7NQ`9+iyT>qIp}-(^|e1j=z6 zy}m&8n62Ev7Ihi*E1I^w++>DbF*+&BtjCVNLBuBsfXf?(y~iY_%YWsFLKd-Jp6z!i zdK4dbi9Kd!2iqzPo6c|$`fPqvv8EIbiL`-dzzuAgF657Uwrug~MVuu!S8#If`4a^N z2uD1@G@~ARzp$ek72N)7utj@VK^$gWmab=DLOSuGi&R{V>`OjnLCh(XGP!r6K|0aK z#iMd$w{NZBuv{Rw>eoABSj<)8i*4>EGzOja)>e0*{0zHs`n1_zhc?f6B1Z660b17neh4Y5;QR`=p)V%<7lSsP%bb;jdSIp&cGflw z!@Ohrm7ZL}C`1ZJd`96h{ARWLdiCvz>5WjVN|jEAR_{OC2pa-u zUYx^$g7%ed44M6*Umf1yilT4+UGFyoezPrUyEK0XHgROjXijZ38qCp{j7p7~*7F?? z#t_M3-2y=M-oq}{a68E{>0#0U&91`#RwWfA^Cwb1=l%26mT|#&MRua0CG{*bf#3E8 zRqNB$_1=q#Ea>eFg9p7I$ZYcLeC-!}?iai&C*^T4>|TA;gjeo^O*c}TRD_$-1_fd6 z^CGoxEWaYXUHpduKXk2KRY3Hp;o@w*(nTXTURv28q9Cqo`%4d`R5_3TtDE10YMJ4a zRr!;mc9RFnaPz2GvIohi!GDZVE@}e5lL?w-*2dNqxysL$ws&3uaC2pH>_t`!Xx@{Y zbG(cV69h@t@Btz*1(FiEViCW%)Y+{4VY!j&aAmPy90~NJT%R2%(u58?^l{YI5>4O1 zsf>147DzSzz;whSRwMv4a!$FA{*AfZco3t@WyXUB}wE@BW2;oRf=-aPp_>(N+jr_dOu#+F;U& z3J12MVHl)eJ#P-?=T%ELpJp|>(1R@#iN1R7yoQlXxCDrtm_e3#Tpyf=jANtygF}~h z`Cq6#-@?A)tCL6dq~`g(hCot2UaF&f28B}kem{s1rrGVYmZ@-OZuJDBIb_p-N%?k@ zJ!JG+*Fy&Lu+V}tOR1#K<|*iPXb2H|dV*sgmlB^;HD1dPY-6>QZah2fO7kdr*c9Zyk#M_D1Db=RRyfKQT5JcWV!@J*71hk{5;c7c(~aFQC{wx6Npu0I+zxt@_c;_pK6jQjOeeJ zIg4D4w?rA&8~m}6LvTc7fKqG)-x~Dk+sgQp?TBYQ6=>yhr|Xlx?_!rtwC+i)0rB4+ zqAFB0AvD-zW#I$*Cn@T~_kN7 zQqvYGf<{~rO!Xc}iY6huy42RK8hMI{A5xpsma~r6sWT&JRRRn?iUdTR>yY!&zJ1;z zvnL0En)q_Y0o``H@47JCFq*LBXESrk4j*fS9gmh(J#Brb)qWtn6NP5uvB6OiDJ;B+ z6F}Mi`-hM-w4C4F(edN)CZpF7xcRaVE*>Zh(hXVxzb$ZxJ~Fn$o5dyt%xKFfy{iOT zDt^De&of>awbeChbZX__3!)OhtwAa4x9GR)>IUgaIWP z2Rqlh-@QRz_b1Ycv(9dWv4Fw>h$m(dNimvE`)RvhFoaTX#2uBrPl(tHhrtgP*z9Zv zPF_gM>bC42Y2Uw(%J@YwoFb8SEvtw3c8p96wbgbuwu6?&{wd00xs&B2a{npWC*${lJ*IK=MZ$jkP2hCsU6ej4zo>c zkb!XFf;yq*p7tiv zp)of5!?IPh$1y6$aCyP9{P-YtU=B|D!%HjCsjycQ3=;_I4K!*R;aSG{W|I^=mwZis zUTV0O^Z<$s77?ZnfUn!e!41a_K!#6qup|?vzT#ITL4~oS8Xv&z1!+noiEfC_A1rxBmUdhCg$@;K8}4y9mCKrP8ndz`3Zz8g5uAWI=Gbu7krvq}%UFdDAs1EY7U! zuydtJ>4ofxQ62kx`q{p&mqxT}OBhD_?N}pUSP)p&H~>8r#eo@r-fDqDn&5Wjc5rZf ze@a79&T9cT%4E(<8&fD722a*nqd1TAr`XS}iR~2b^{L>$N8hdeGMD7rxoG!A850^s zap3FgN9vjzoPa)FHjNR$sO*Zvh>pNCGE{zGh`9}8 z0HDCrTc5%U&IjC(_kj-a6e8uq*hx4cGqg*+&6|OvGy$vO&`f>6!89oNGMDH2O9XUr z(r5rs^uF@&wAI%aBsV~@3m}|ySD)_zx#(-rx$lYIt(hFPV|&Y4b990M87AzA_BFsO zk(2*srezjgzfvd;BNG3^hdd!U-aQTX9_b19PBZPpm~+eQH+eZ8Y6^_e#}MUvfrp-% zr&yqC`*X7FJRCUgs(~GIq$L_j?+7sxDJ@&`jqVo?)Wx z#glcHwQJs(sWWF;LY;miTgjr?t1tNEcW&Z;C)xOt%r#u$8S?sT1+M1Px*jzBdT<8< zP3zH{%PUYjWvYMGS!wys7U_l!52gY(D%v45J02pVS;bM*#Qd4TLuhJSmA+lit-k;r_X>1IHO(4iEBGmo`;#WwX7Jbio?p!1g~E2X?2wu9-iJ{)&gJMX(M%KR;)%nK#f^s#c7TTLXD8=YRl$ba-e708Rk@_OC2M zdvP!#L+KJlfVlhqbkm@AQFvy7$pyV-v)%0+&>}X{H+nN9eb)iDmVhA(OkUkdjjneK zQLk(p1k|k933oqA=YRwxASLI$*;A?CW9g*X_{Z$GSAdiF{2X2HYU?8~-Qd|+Z{iyU z0sa?B85)b~Po25-h**+EN_I}W$K0`L>Zx=oV@F3T{ud*moyj5l!VaAYon!zLV3H(iGR+< z*R8m!1SI{;uqvi!10QoDFuFM0_ijQ&uyj#BmZFP+q{-Z-xB~Bz)|Z_E&Amb(kCWID|%z%g6Kw25&ih5KhIZC zbHTUWVTG?xCvD>WV)z3oR-H2h?~>@{dI>^GHa~g#lPJQ|BC5d2|?-CpkG*0Y0au7h&xj!JukynYacO|KV^WBkM|>w zs7Unoh$i50vtWNbDvG0&Hja^=%f{is3>m$qAl%`!XScdF`;6YNlxS=7ZkEEn#TLrobMmtA)r5j|HJkA z8>90orS^x%gnHvLoq|%TmgVUlBBnn3Pnq)noAUtn7G284zTfLUP>!Qd#7s@3b={Nz z$e|B-!Y`OJ=^YDpq}{uz+rzPw6H~ml4a%K42=(;Wx@+%A_(%GJcYKNlNEi7xxuBex zldJaKKC|`V+Q3S3r5c)W9Jl6vQ-+6l?(_CU`r5ajjJIQB2Pm=eHlFvaIA&3|WwNtQ z=0{b8F(;;`tQ3Y9xNF268Dgy+I~Q*H!E$qxXV3!CuvB%8_nQtc$9{j_wR?6mN0t6HtAWKxtuVY&!1u05(7bX$-UY(@QWPWg+x)2ha?0LVFr!l75XXg ztM<~wDx`AKym`n)`KFp`TbrEBYTvumdaWNDym<=N6ifRh9+C&M4iBmzkby>=&q{-+ zD{^#JpXbfLzKxhrr7~6(^L)1a?8;7b`}m??n-_!qhiF*HrKQ#Sojyn(-WNUQ(?aIE zEa#Lx8%5jlvMJs%X&o~7cV&9L)0QY;EBIZplTllKnaGqim7V`mV(+A^X9-dySEvML z9Pm_yei<6mN%|s*=i_IEm zEao#~Mw8CRwu*ysX!3ptt$h9%3B_%qBk;#8pf+P4+M~%ruW7Z96Mfj1A6=Gy9~)53 zov?{L*lSZ-2nS1s%T6z)?Ez!4Su#QN?Dw1@1rN)~C7oz%=L#sZ8`S_oPs?hx_Q!9z zcupy4vbc`YCzk@71fpVEW~sOu4fE)T5t`64VElrwK`!(`!{@3@@W69LA<3J2xwUXIm_r6Xe<>f{$I-w~G+U-Ln^IA7=9Zu8Wqaz5GG z(H8zUkaoZ5MauKtyD2x%6R5NIt6dy#r~;%B?&7DU}|52kH1=erC1rY?sx2`qd zdv63F5si!jGGa#cxFOd2Q+Vrs-R;!$1(ssP$%|)Aalnl5v4kPtuy`FmgZ*Y@$Joy>yN4}g+2%C~ zphtS0cbS`*!1ZJU19!khZoudB_yZGOo@@dCSgh!3?f12kUwfGcP<7?9n0Yu_dRX#E zhl(==aPPZ-D%e+k&0bXAicuucSA;2j9y<}TEaI3yR>KyG0s~P%AyHR$X6ltez69aVZK(=8^@39avSoMgtaGl<#C{j-G!LQ ztFJeIyI;HCPS%UE)z;PsDCKc29ZmmbnCE_q4UISLiH_xfArOP1zA(NZzkvO%WNTLN zwefelPTAz?x8Hl^JCu#J3OHetWIy z=YHa1l@J;sAVJ5*O72sc|7EHtT;D*)Y|&^lk3^wJqG+keI+ijEKxQ&BvTR*fAXY&P z$h2e>7t2q*yyeDe zk|we}Bc>;l>bg$WyeiYK+IY$0!HOQ*G#DdrS42<;Weg(_IB8!xv2_QOfZAWDUU|CQ zxX21G45nB7wMHHlSkD(}EG#w{*so;u$(sq@e{#|;HG?}A@x|y5f|u*5nwTYTLwww< zo%zo*gf0jupGjBK65@8EyHw55F#7b8JFZGzK&j~8v)c2Mknq^R@A+7VFe^x3@CMF$ z`7kLSM8^C6;>OZUXH)-bU*<(2Jc}?3?fSnH?g_8^k_m7j)U~>A*Xz99`#ryP{Qd3Q z%sJig8$;1>i8P&lI+0y=mVc6)i=6+f6Yz8I1L=+XjP%`GA8Q{D^Ii}0XF(uA&f)X>xq2+2^sTshk^^gBBH{hE=M?*xEv34+{>!hBP9(QaDYiH2 z+A(EXaRMb***>W9xxXCtPJTtvp(Mkqsc=l0Iy+ad=MvY-1j;|5MZM|YNtZgF)fd;{ z6iVV~0QRioi7Ng$EX8uX&VyHjm;G+fUj6$7*3E zPiTmD{Y%yQBO{{i5M_(Un5*sveG}fZcJ;a)aFFuf$k&!4BxfBbO-g>P%pd<29f z;zsz0!kEJ!OOjd4*kw{vargK4-=+vRFJ3m^d>o0WIwzUY@tAZUrUAAh69c00~j!$E^fo@J1&Q;N*)t{yk-DHlV-w} z{&IEa2Lkznq{W0)`QJ8Q|GwP;KS?cM@WvZbN;cKP2?eMS0CNEkAgk-^pWS*95&{F` z+aW@`)~A~G*BPeQt#SQJJx)@VM!ZnKZ`uufkJUV$N=@Ze|AOKJ9o8}9>zV$Vat4_sVaczbxE(#Fd*wbh&M+wbgsuXWy&v}w_B5WI(wYMUfdkeza6#=Mrf zEn^tLmv~d2cX!_hk-iL+jz&S79}mP8EBQo?FomnZa%6IHnUo%>`>@)>w-P>PT^pI@ zkX49l`^t$wX;cl4Uq^VSX2-};JcMZsZ#T^f@;#wvP+O(r9^27CH|5C$rn>R35N5t@ znN|lnuqS9>aaC4giYZ6diV!x0ow`nz%gsvA45dK?b`Y-ZABG)SGJ>xrzGn!lg6Q+J z$FU0$OOz1Av^?rep5HPzWl)3Za8{hiEFZb-IsMND1WxBrP6UwQ>8{yDzYa5p0dHsGb6*5ao~j^+AqL*{=bC4g&3}l15g8%!dJimeQi(Tu``}x#UY)@9XrIK25LS0 zNqFA69a|(BC*Qv(247Q97Eg6}X)^5ly6;=Fc`R^y^I`g!Bt=;|G1w@bVl+zsxv%>_ z-ctf$oLvpmB7qB)6-8gHTaQfTP_#b$D^&|)s z3RA*YQ^hYJ#lnV5pbk|m#!1D3G3(KdHZqh%bCE9`?Dzr?F9{2SSDq|vmEf|xha)zp z@zuj}`NMYiVU?ms@mA7LM10xTE)GsNln>@$Sp;nUSUN|@(UX261$w;cGBu$ND)*of z%mq9@PK=$k2&~d>D@;KDc&V{-R%y@jj?@d$hl|8#ufsm==P2<3RLn?B`7yU2|2~7@ zl0O;>3zejZD6D3Ow9o-GT{6w2QaEHq#h%9M6_HYXC0OIe%4F{$f7}*#tgXkPUy#D& z+TTFC3|iVr-)(oDpsy8(NLJ;=dh$#z+wgD9u1IMm7%q5^q&00zCS#4)Y(M<3kfnL? z9B^W4jfZR2oNsPf9f`})0l`HX29G6vH_a_CBo?*GmFsU?X&XQ0!tfm#g9o! zl77~L)AvEr_r|66X=9jF@bYF(!QQ6ovvKL1mgbU&#an?yQ33yHELzZpMCtnL?dC&F z%gfW|>HSl+dXm-^dq^VE4pdm&q~xc4GY@e+kaZlha66Q{H-IA|6tzdREt5sF^evIB zl(tUkT{AV7)JJ60C`@chX(uC(dUp^5odQ|7h}Z>fN+h@rIVFKl&xaTwM5 zyVUXepjR2x(ai$88K%gy(hdU>$D#SpXe@c^v9Qz@qABZ|%!ZwB3=+J9fsA9cCP&bY zmE!)+_(SGw`8hBeq-9-8`qeh=pvF58skhI~bXMFHTPG+CjM_7J0DEG%Aw>`0 zlO5YIP>g~Z_lghP;mv6Qp>6?By? zlAiCpglXOI<9h>))ccAbuN_Bg^ugnQxN?kWQTW#O+!?S}ezN*HD39**UQ;DMbhBh%+b{bj5 zWx^!0D{oWNFLEm8w39aLY#uWkjWNAHN{~=%pg&2)DTv-98n{1P`|ZaF-n834z0DuH zl!%kP{^!>RFh@7Te$T^H^86dew*U!Xmi=A-#bZzyp#Q!F7|I*IPp3?+=dUTwrTxrR zE@ocVblulXzAtgF2XO=m=TE*sPSFouLPA1eOrQwy?DPdz{Ya$V7b6MBbdDvzk-zU1 zZpqnU+kA$PKwbi0fcyv9SLI;PV7W-U{~5d;`@P(?ybb?{qM0-^v9k*syd{SZ&IKdY&<~e@ z+6Itt-CzteDpQUun5E{DdsPFuM?ZjsOhlF5)!t2vjg+lOB+3LUec19GVip3zh`8~8 z)X!q$QabOQi~>5hNMqc0sKF7*LK{a-gw=N|D+FLIqY&jSU9501eE+I%lJ<%FoX8?r zpKhMCkw7NNQ7C~z5&sUmf#`*+&-P9s2W#45-;#Vgmznz#V~=is)wjul0xI)S{gt6t zA&vX@`Yp#AzE5%OqJGRb?WJ6mlgm~_@7Tt7g7$@V(da&c!fDm2o0Lh|_Mw^%ZQM8# zbg*Ukmh40*G)TU53M5+|W32V2LYPKiV>2;;B!rF->cg)cGFD=U)n>;e{*5kIzJqUR z)EfqHh-%cC3H4J@_rM<{^4r*EmJB7-DhiQNlWJN|*K!a}nnjJlYb81S(9SC5B+mE&?}6xEtyp?$>r}VWOxWm;k0}X7_#Z{* z;E-n*hv7H#%l5LdTDI+lH@i2tY;Mc8mu;?PTg!GWF1zp9e-O^|Jm>t*eP35Ap06yX zsE&!`tmF|xqu0*t-L4xnY~X)HqIDfj`{QU}=c5nwBbVi}IpW`21J&uxuFenekOJd4 zPJbb)F2T(9_R2M3f^(ybNN(w6m@uT&NTj&O{6w6HUVXj3b#N>Ym_^r(2Zs$V+1^XO ze$#7M{&VjQ^c@Ojj;#C-to-+6{P%hg$n9JY0w;v-MV#&pJluTN=jT6Z*G+>xGO8#L zi6-Emdj34RG@u9s-B^jdEdpVgE}+UB;P2v6ptVZ-m{|+~5Xi1a(?A^*orHJVrYQ*V z^m?H>eIw5BX*P8o$TpC_UCO+T1w0m@`yEM0md`=-Y!Rp1cDz=IW4_VyESL|bc{luh zTI_oJhpz{qOCM%e4!j)BjCos;F%UugXOqD030Ez}0w|CI`=ATYApzmXaFx!Zf%{hg zPkRZh{!Cgb5MnR864v+M_2XoL7tbfQ09uI7|F9*%#~E_G$2nzZ=U`I>w3*equWud* z&GD*)FgXSd%Og&ScITH+sk=4W~b2|e~63MQNoL#!R;|c$RU)~@yS+J zT_DNIgY$=D`{=)mOS(JnzZi3sFW7X3i4TC3WfhB~`qm(Qq#o7KOI7{OEvvZkt?DDQ z;q_&Q$JNdsixQ}c>L9`f!d8wbJl2*8FgmndR*AMy zcq68&yJY>Ewi!UNiAdRTR^UwYqwRZGo7*A6K%rDv3=wYheywYZIDnKW>HN%P_x z4$sVMKEzBx58Tb2Ppik{o7Kh1SH1zf1k5aKz$W(sNSvOW*aEY~d*GI*<;d02ig*IA zlrrA*yPxFvwczosrTe-3&&=G%ajUnpuE!Sg*CQFJLU6@dTBaV@fH0sFCZxUgwL1u= z2|TY`+`6?MeiwD}1rU;<2j|V$ykBN+a0v+bTu<->>@ykp?EuyDT%iV^A^ijZuD!U| zcKDp!`jLl6JA60b0p&eb;NsWG^sNlY*w#!4wT~ScYIp@Tp7m86N~~54<5Z;9$OlML zaE^_QNj5e$xt+hXd30W9ql>&;G8w&%0>PwB-|Gor$6l?;=o}RW$q;_tXUhdx(!0PZ zaxWPQ}IbXV|nQvHW%x;l+ui;NDkrZ z)Bf7`zU_aXNzo4zV}<_4{l)maO_8b3U%Z0-X}oj^Jh7)v!Kn)A&E2b z@H3HE6RioVJW75Os%-BTV%pYkd#F$~(Lx+XJWSiF3f`X;X&>p`aUndq`m}^nq2@co zb@s`*3FC|lQ+1gXqCd>}kRew+0)LDX{a9flu?4wi9*Nufq0sv2jt6RNqra*E0d8O(K;Z?#E87*Z_VJCP z)pJS?OVR>%`~YPBG|gwK)xrK zAGL`JdYnqbh$g<(viJT|o2Udl&22ufEOu@qY&fmjw={vznB@}8H61-bIALne^Jves zJe?Qsk3Ji>$ugZ+cP(A7>4_y76VgrKze4YOBZ ziQFj7xjk>GiEC<(Rw02J7zG+#)u(pc%+v@!rBC@=Iy)aKNTD9C)_Z#sU_?vSG2_j6$bocD*aHBZ2$yYXf4uB7 z@_%SB+Gz2xDwqK{syP=!YLb$23CwJ4HIYX+2-o<4G&6((2&tj1^#SauRrpi)uC zpX*3`^DLJDBp6e~P?F@-BwcUGiZmU*7^{VKUg1zMsDhknZf3Kf;8;LW-xzS{tPkDI zp^&TLIYXdRC{LUoi5V7adYlNf8RsB`i|3usIRTGs?-m`pC+^Q`Tns^o4aV`MY`Zcg zAA2PEt;}cJ`Jcr{$ulW`54zwvWy~^ppj%LRd-FPy2@X^T}-Yr90 zY)^kY`c}Y>@IibwD76U0oM;*oXgV#8@tHH`j^(rx>*nJwy&3*(OC|u;3d%zaHCZ~l zgAoDi>FMjOf`pr&}rWyqNayjarZPepDw6x9;7ov3Fsn$*L5@Xk* zfei#Vm4|`ol{A{8!ZoWN$AZ{ey~3C$jta zI4c`#`0(lJ>B?0C20~{pb@=Q`HaDq>#xOFK-bvEeP_Yx^p_iEG+h`O1pC^;;Z%2T9f7iEg_xQtu z`j~EA!BB_Q?*{*e=6Fd%IV*)Dl5^OZT(MA6G@8R_YfXHpLIj$VK`O9$+DS?qCQ}i+ z*ZC$aECvc1)LhBgUY%x)8+p%|HvFnGuO$f*^%18S%#h^$Y#KNxcyYK4qVS+Af%YDu z9lJ75N*~rqM1>#8+a&()n{JA;SRYFb$|w3EdNtYp$;A5v%joN=c1k(#EE`dA1T3uY zpKwF8=hM?W-|OOsTn^S0PzzS!1G^!0w6Lc+cAd;Gan&;{RXL=`({tjQ5+D7Cg8`aSW#i4nN5q1ao(%;qo!(?(E zANR_!(#3=AapHmvq>ov;DodmTDl*~BV>k>5^NaF&fZHi50r(j7ZI3HjISggh7D6(L z85m~e(G&acUo9Kj95>xOHeIHG$(IlC_T-Jx{~mJ~YgX@zvJLbmcn^ZUe8K7Fo@y|M z1+lV|M1LEvY&!f7mA_Ja>FPX%v%3rFVDI|(<_4gf!ml@TQ#tSZQNT zk_y<0mZLW+&leY#|1(i`yHF$}4_V@&{IU8{#}ZBf{cO(nFuSS|7fbGi;OnfP-xLgt z^z^`B?->~MU$<3`RXiDE3X${D>vJ1BkJmBfHexUAfgF?le1y0!_?Z$B1aNAX58)^m zzV`^!4xzWCdJ>uOQ=)jEq-LJz@smo`6=aY=pn4S07zVL^tsTm-f_7nt=Yzpr-pe9x z$a5UT|e{f&lJgX7x%I^$Fr&J_<`q`+fMZL$|tMGjwJSD4IAE1~&=9O$zIUxLY^ zhkgsS*3(JXmAyn$Td@L_fR(`mOAOfO>eZIcI#%Fo%v+y%@yO~({LO^m+X($J`cux` z+NeW1Kt0!D0^V`|ynZcJrxY(Ny36YtEgkpFF54bD_1E$RV2gp68Avi%qQ4koQyI=Q z&%t@ei03Tn?Qin7uM=-HoSKr+c{nKz8!=Be5W_%Rx_Tv}G$ zB7JaVI-iR7oLM`6nPS3%Qe{9(gTL8`C>f{ba!P#9p8Yc%>Y7%ly6ldaHghYdqT+~l z;e$MAN?Y3<|<F zJPs;+A2X+V+Fnrv!nV=d7R2q4%m^7&wLzGv#WGw z@*$BLo%6Xj^f;+%0p>JSyU7MRg9p1BUU!G^GlpgwlB3s9pe1l7bf7xeE9gqJP_<=yl#VL1s*_*(kE7OF2Oo7Cs2pkF7$Ti8r+%+cn}9rr`za7n0M!?wSi$`VRQ zv4(HBBF0gB2@@6fkqslp1;GwzL|G3pP&9*(If(Ccd_h$haty!0@s#GX&7`y`62x}&r|e5tci(x1M_;~JKN#GzyCOI0x;QeeWd(})w+uf6brn4ent z-Ms1ohfh_5v3=)@%22*@vPeQ>z&_;rrcl(XN_Rp*H&VhUquULbciUmQ(j=%Yq-CbB zwo|n%KRJbEI3Z7t>`bPCK(Ki6as7*83FdpeMg=pI%W#=aM_xY;6QR|E(+YAWm98pe z`$d-k>qO=&*tL|X86`P??&TZ|@&@tpg7O4eV;D z4Az1voR}vBd7O(r%431Tm~h1#2eIU1$$YC%5|sdGbtTyeYKDrr0$mF;t}weQ{w5k^D(Lr`bVroV@5D3 z6`GP8R}s3DEDRQf0o5;!gG7%W!_q7WLG+aA;=zUtQ=Lj3&*i&5$HN~RWEhEQs3-YA zIC)a@Cp6AQEPI4hSr#C6qG;wNEjqA(2(_G_5w?8IW);^?L*!JJ5!lr^1%p3RNU~C^ zJX_hy%&$YOq5`Wr#UiSdTWj&aecZm%5d@+qLWQr=Vwy;tPfi9ha{*5cMxEPFFz-V^ zLZhIC#6a-=bbMUVVW}24MQ0TE5`1P#H({vVhVx;cvSW$Bl?X7triifZ3Gkbud%F~Q zhhWVYvcqDn25m68mlOwq8D@jux zqmIEO1;z{=a!!Rl8fdF`gdG(y))GS~xq7E`Js%E;DgDe=D0UA=92H3EZd)+~l={EQKI1@N z9vnz_7UD)lqV=0KDr{r*BP(7ly`LE;ghY_#1mZo5jOzn1 z!rbeB`uA%%Q*cGXi8vz2zGwS&%t&IUVI9bi|DnGXZ8SwWPS zjScb~^_q<7ssAa!Z2v`w7`7;B+gJfBG{o

J-F)$TtE7~O=~Rt#mITS-C%o(?t|hS^{7xuOLW8cHx0$fSj>vj0WbUyG$MMx*x@>8A z>?}#%@LAuG_>Ly@uoVJaAgs5!^q@o2o9lI3up8v8pH1z)*>PnsF^x4exK!9OHQDrC z|Ej3DSk(Sj)GyKv9Y%fP9Vp!#j*W@fg(#;m#| z`p5_D$IE;R3HoIDtCb4VUtrF9aS5P_xj{j?O34XCx8&0|ukea*GzM>_;VC?_;Hxz& z{4rV~eA&I~U_fd@ftcoHZ$Ckrz@M!Q7$ZsBAOFpX$^xD!r9r^x!7Mz0^5s1IpLlNXMI;%onS zGCxALXvvqJcJ$$3>}?_pP$Tw!E8?&SFRf zSOpr`I!KpNoMA9NQl@hRS>w`AQB8g{i&E#dBF4zazQ%EvC|PQ|F<4=JB*bFCl~HT@ zh|7(oYl(iliF*2)X$OpoocybYUo;@PP^zoH%PZfWOVGg3}|_FS`gWg7zZnvvTii44nQu zHn_L5<&G}`tmnWCMfysm-PTk{#D(fej`ESerfI36;6T0%+iN&NOsALL>XPS(!>a`s z6VXbT;k%v?2tx$$UtQ4BUS4Tc_xhJKx=QU}R+>`-I5nWHXa5{pzCeYDx!+5;e^#TQ z!#dOeV+Y9Cp8EZi$NvNfbuxa79?tvBub@;!gl@+@nW`AB%I6mud9lw&8k$p~6m0BV z>aeWkfzy)pvs6o|v8&ejC%$dHIwEM{=XB@re?O%pBsO61;!p#{5HX-$W^p?9G|Ga7 zD?SI}eDEAdO@1U*E9Z3$C;p9OhCGdT$20<>#-9}Z0usZDLuyMYR23k$ZNOkC60GtC zP+RG6p%}>^+)R8b7)EALg7UX7Ys{SCEb|9Cv<93pCUSu_w3NJ`b0vN&8zpMS6D-1Z zOcXt8Jp+SiF;KB1B7DR-`WlHKNRl-<{D2u9#qBZd?WMmlHk4TV6R5<6ulT z=YC{%Er($H%xQ~NR|gMo$6}yI%|5D*pr}08IDfnbB(m;19^M4be*z{nc#Kd^+bC>( z7=p+^W#xc5xKd#F^75zV)uv^2!sR&;xIyGua|*fkQU_Sh+fDQH(YJ2R zcYqygWeK&r4v)_I$T8oM%?RREeKxk z)KE+#Ct}TDCuW9Mz!(dm_rp|&zi&>{0L&D9)MA1QezPQC!XxFa?V7h?W%-;X(10E9 zu^-k2C$`;u;I(36X=&vFoLqelZ#5L$?B#rDNQ+&b)?6UTN{+}!Ju#`Yze-}3aTegjSC*HrSS zG4x;eud#wx`>7qL`#}2S{g;8Kl~L8dkS(0Y1|JC;;Fo*)vtrENdc?9xpmL@+tG_>p zG{ouh1H0S(iMM`YKeS|z98nBIO{rLjH;Wva7Y6CFk(QD!nCrD;a&Y$A71$$~kE}Yh z-~PKfzYlo7M^W(bE1S0iC)!TA?Av~|W}#Aq#gXf#L^Own-ik*nuW~2f!Zv!iy6D)A z)i@)RLX!FKarPVmTmU zj1u-JZ6o_++oC|Iog}W^JGh&jRXm2vi{3%7t3S+i#vW&BU3g@1eU7f+_hmu^S3 zJHHgeWCdS5KbBrF3HgiZzN$)j;1kK=!z_~AmDFB=3LyqK%$HTWD6NAmqkC=mp`6+2 z0Ge)m;;hxlgk!9pd92y*VY7Zs5d$_1=;8tdrJR2x&VTX!wU^)t7pnx=xwf8)X2XD! ze`y@L9M2sOz)zSwd*QvD2{1?-f;$nty(a5&lm4u29 z5W%+n=jVAVQ}MI0_p zW{&bX7|{)|KSw#9nQ1fMEKr)3MeutKe)1$^4^bD*$U47?XHV zwpW7MVr8R7u!d9GBz1A~G*`8kuvXprkH>C40{81auuwRl4+pg9CH<_$@WdvJ798Ar zO|W=9x;a!x$)kPPrPxG;B-2Utx2`NE0w5hr^e~(Oz!|+W*Bgm|!|!i9KtMJz_vHpi zwC8&NDQo$)&(ie}+2#7O^p_pAfSx_Qu5BjgTY@1%%#>hRZr{UqjXtl(+}69Jg4oW- z3CFkD)J`q{S=70_-tKd#0(hyp!DqJ47!|)W#4vcDtB27+c{-azsuk*@2ad%`uj63q%o*AyZhnaJN55$~b)&D-;VqN4QlNzSRPr*ok8U?%cZz~;BCfUv&Nc)9GJ zkt}eH9k?V2llMr9axH*|ci^FQG7;-{YDU-j<^~$BAK#NMG@t#+w9?!&{P2#y9bUs- zS2I0YS-oqjfHRc*FB%<$ZCcrx-2uvbg20_Z;gPogtu{cbYtN!_HGI-X zVMnw`r*YOAN!&u3{%ayDnYlKmQTe-EMfmB+@$JbmyRG&qc-2ARaa?XHl9`GDgr`1k ztr`|M7DW^LT)yY7L(g6l1E+G%y7WW0SOy=dneA!vzhrsgSWuUjrMBRP*#{mLL0+|3)2+8gLv(=G#5}ayh37hZEc+c5QF+ z7C1&H|i+Y=_;2c&#wt6lFv2-%t)2eW8CjmH&&{i2miT(iQ>!|k_O!~F*+ z5de#ZDHb>fJ`p=Cafn>_Y@~Vo;rf~*Ln$ta`PF18J^e8~_c49bXLVIMhkx0cE4t~z zZ_}si;gQXEQ3CMg);v}FTy!jIGZI@E5`e-+KGrGrN}Yev17k^dkp27qD&wX zI4A46)hfZo9-1jD$<;M5;4~ftw`#XLzN8%A3e@3iGFE@acfTmttdQJ;IHDdf#DC;E zfTf^hpspIC+LuM57Y#HoN~-AaBmq=eArwpO++z)Ic^CShpI_g4LJ-K`*7_FD)}M(1 zo#~p(MMt6RaYR!ega||lw$j%wBviOW3fq;dQy-B%%gPjKpMBl+cw1h+t`Gxmj+gA3 z1Qa@wLiM4vLZvFhES!#`D@?5n&QqJ6S4!;K*%GtT9X5g9V!4Ybb3UW$buWKRMYX1B z6&xYw6Cj6|F^i|Al{|bA;LAqFw>A2~=c|naFRwVe-g?}9M`QlRm%upp0z672ZO3~f8gwevHI)at zWUx@!hqR0GeeXvH&;C}H2V2_`Y@R(RWWJX@K6??4dB^zQwG%fDe+TM-?q*I9yZWBFMw#=OZE58lYKTHz^^4)C?wTMXS!!f z%tKpPy6z-pU`clK6f5$#zeM=9Y%1W*C06KeX?Aw@;6SSgO9Xhz@l&+!j9Ly^93KaW z9fgrWc9jz@-Qr7l#^p;MGoED-_)nxl-oKGPYxN$**8urei-G#}!MR8766?m2Yc(=h z|AysXZH~Upg|Bu;F=|)0AMFqKwQeDV#DcrCk4~W99bi zl|}yx7&iaz$o%Nr`PMIRybGSY*o+p6k|5>;vGNwnT;8s`jr-R}Bfl4y@OVp>wI!n8 zl=k#fgt!<#agyRz(M3aN_~T^M8U6AS44x}MGGnF!TZW7e5}2L282yI><}y^p ztdjCVjgWH2OsKVknK7D?cNWCy#tRH*ad4sda@9LU6=5}&?A_76Z2z>OST(CBuxs|- zZgeN)vEkc*P$|}48Hd6yX1&rk{a@ACyVBGcR(xo$saO={iW^BM4;P2*kyPQ~JS`}}fQM}mNs)7XNe}bR1-tGZV z>>mc$ye{9KFRlf<*3XZ+ry5WdGPg#wjaKt_oJ1w%8O}DYig{j-MiNVu1>ZbVEaYv! zKeg6+Zi~Fm2nfFyv2~sSrwQP+Q#N0I=3WA%M4aa0|H|;;x-FIgtj9C=c4AvwpfPP> zaTX5P`L2I!{Ie3x)XrEpud;x23=ONbncla^UqTSbJSkLWna8pc;mVnmxHHlup+zB* zai|EL7wbTLA6zkg9Su18u2L7Zw7d4R1Conn2`zJh1V8KPnr@XQ6#ZDjab8f%yqX2& zlGBV5GJVP6C_N3K%hd-^*+>KPy!p7g0Jd&`h4M0gG_Q+L$~nWe z=}=DXI`nv|E`~0m9}%wyk&{uvxMwQrDdhcT65a1+7p7uIx+2pg*x$omLF%)rHB@*K zwueU>6fC}@lC#oS8yuXank;M<5fcorqix||7~ypV3x_*B5$XL9KDA_qt_o4|urNyn zZiHsU{2}e_g+gaO1hsJX9~A@1`BC^a7hlh*jN^^q@o;RT;>S#Q={}>RzH1i>#x}<0 z(CsyxIBNy>BlZ*Gt|8W!Vql83|0aNH;LK#3$Qm>PX-%^;7BoVe682%$RJG~hsE16j z>P+v^tv9uK-`xA}{a54pm-GyTQ;S7`S>HYRBMl>+6?vkRz7%g<9oigTGcPX>r(wUx zc>2s;SCSw!h!FnO&e_@iy}DLCoC){H^-pXzZ%b2Ca|P#xy9y?rb1sO|tXmifC71}^ zuw)%rL$w^1Zf^5(Tvob7{WDxfmhFvtx(jTh*!W7tBS{^1T2)$4uR$DbhmUO&O|#L` zyFdLFfy_)D@CmwKSasCX(P2mBM-7sC{-M}*sLzM(l`b`>q~HpF4(*lE2`o_mV+F&j zer!5K(l&`k^$F=Y0+*|@67u&IGazL9ea$N}>`vb!d-e$EN_lzZ#7YzT6#thk2kbarGQ3ZAGUTvuN|OO8q+kCp5{`Sd3_=3RTy%j1H`0@5&t9K3ZjQ*hnj z679X7OoEFk9v_`9Edm`#Nt5N#()AiiY3}nfWgjcL+}PBg5}Mqq zzR{W@^r-*cSZs{7K=E-Un&i176N7%T`s&4=r}3&UxT(PJ|D1%QF0a#vx)!{&ac~n7GclDzu$&F%q3lY z!j1^+`1$*)m4I<)d{7ORaQLsa>eBr2j0L(>$OGDk-Ny`^`ocEC=x6s|jqUt@`=vdf zwaOb~@~s!E4S<2YAFwO{s_d)3$dpUT>}{6)3*|X zAvuRu%EDBXx+xqkP<=GBg*Xxzp2_kSs2?@JiGdv0Or`!^4<)D5N zOz*E%FO03eDVGi-8~}Bo^Pks~(gn^(;S#`FHDY05Ly4>#wB*C~d%on9wj=n4fJU~~ z6<|~`e9q-^|>gdT53 zHXl1$N(fqNY;(c-2o)67o)ch5WL*)$DU={_!Dy z3Z62%KSj5E4m6!&&@LFkh1f0;;0@X%IWwm#_KK55vV%Y8eVB0`k7xu54?Uq3jb;zy zT2u?2F;w|Y!LYHHGA9IDPNS~KMF$Idm|CqJ2hyW;*sxG=>J}{pxyn~Kb(;IpNt!a1 zCgBWwE<*5RlkT8FnKur?u9vvzznq%4%UlUcjmNDpG1P}mG1VY&7F**QZ)AyA#xp(I z(E-^}oz@=E|3RxjIJf~#x2_Lcgk6s=m3Y=Yfs5cXKwwuqhg5(OxQ-w7L0Thf z?(oq<13z^y9Up#i)5-irVhC_duk@NqLp;*rdb{tl6yQN=f;_r8#Sn*RgCo3fZ!{MdRWy-Hkj9eB3QB zI!}7(egBk|ve@AqgQ~Ra9O+1?>JI zUeG|iqCOr$iJx4gfBNVdB}iXdL)__4uYNvaJR4)2!B6CvvCw^yYU+-A-}NRgm!OZK z!9GGA{VqWdo;fB-i0#((7{Z;3!=rCK4V}HzPz19!*K;-inHTkNHMp$xMWB+@xlVt5L+_uGbXau zNIUh&q3YGy%QT7B~tX>5oITwXSLNQEE@69%~$)DgwBJd}&W)$bo6 zC4JY2>L%u(($BVl#@zdFq>&&|^ixO=0GBk)-Q~-&OcFd~iqu%g&7cI7iwOTNAp>$b zsf50~#1ebD&E@VamlwE!LdE0>wlr z8%=uq(`#~&UOnh=C=3;vHY9#T#;7~{`aLuN{)(q@0M)9uNymv4DY@Co z+-y(ZqLL8#YCdQb0Rly9od8C!mJR3Ux7X(;b-OA(lL4@F<3g>)bX;asdeuZF2c@YU z`~tXdA&jB{lY6k8snJPcB>QY5^y5OpoanYN0}jalKmPFc5~A#|Ue#FRT9Bfd0~E>#_#X zzv+W0d=F(Uh5$Evn9|cv!?_%82?^>p0$Yt?>8*I&U4}~-5ryS&nWqSVBjlBHkUpU^ zp0{umrxGHl;ZGxGvR#TrH*z$)7tZ_Jrf2di#Z`hBbZ^tN%Cj!^?bimQfL&X|zaIXV zQlAFunvvuBy{r{gCCa-!710R!5xal9>81@G^OxEj=~~Zcnw~v9$xCTB{MPH7u4yRO zEblE)_PJX=UoJw?L-4#y2 zGGl_a0mjfdfm$~Om?0$gPkuAeuquuPK?j}20&6KKi%)`dXI z$_A{x8I6QL^=o@dRjEx?m3<<9cE5P+wG#FlTXP$sKf7JLKVNC9YtFKiBPsvu`5A}4 zNV1ZUb}(346_!gaL3+wMT2kE0L4uYxIiyJz>(7K*u>88u<}067TT_nuzKiCl2(DY| zam66hi(5Tus0kvdTZ_Tq!u7oKegmKh1Nu<_XFx@#k^=_Bl7L4EdP;5u_jC2%a2ec5 z;YoonU>~blZ4G2KuMDiRH)GKV2Y&bKNW+`_J_Iyw8@DsB7;j_?T39$y9fr~CwWVK+ zCl_hCw}RzQ^S5?>T#Y8G_#$Lgu~G5tF`P%AGMcglJlOR_WAZ(16oD&Qa1%F4l$Pfi zzW+9U=PquIUGu@y`Yi?G;1I9nkfoc&uly7nsL&bp9ubia&uXD|CJ7y4(arAfaZ zu;PQv*;P_jXK!{uocfk{Q|M|z2nsscsc>IZ+(j<;`3=@;7FD|HopG{6wKW$;*IU~O#;pa9!f ztpm63|7HoCB`S1sA4k78$qyVS@o8w-Rtg~M*$$2Ps=E>@66d?ji&9U`0Szd5NJ%fS zn!#0fz$?xDe9i6XsjnUAwRQyrRLleFq?PMH9K=*p#m(viFJUO)6rAbU`51Ze9*3%K zKOV!L5M9MxCf~jhw%g5?gMq(Mzt22XSx21dC#edOPb>i>2P%;0pID2NIlB4^SXVE} zJ$WlR_KjA#Z+}t)_UQb7%^xGir#TiC9JekD()7L}pq;KY*>1kQ8UdeLviGOOe-{I{ z(M{V<>?ARRp2=7Py}N;GJ+N`-;KzvkP;?;2Qw&+L<^~#mK`;ow&)o*#pK8G@U*skC zl42vKs6p(sO@n*1w|+)GWG)GZZM9fhl-7~cwX#a=^#A z?PgZtW$q;;XAcw7rzY#TL!cNRHteW)6uR%HRp~Qq41y-!Vr6_%RS0)NJULpD0R-`LsiSA+PE32Q@Zw<_O@AFiZ`qApGnRh zsnxhRjqY4fny@M9;6itaP6(7tB27Bi<|(m|Jw>5edv;R9Gv+i9$B<=0zN5iArAub+A+orx}v#Mbxa?pbtzw5dC0Yv(M((b_}p;oUILEBS@1QI>mhS`ED{{M5YU0G)Nw3!1VF{Jj?-d z-^(sQT|kE1@1|daZZb#62N>IMd5%)bfmA#x1Hd0oLMq8KCiu*&MsdjDh~s8B>WftrnngDKwV7t z95rkqDl|42mckeomJ)VA(HJ*Fy1~@0-t7$sP_TdCKDb{nyXb5;a=OoMS$Dnhp1Ot> z0dJlH4MTeeJK?{3i9o@4Du>_A#LL31t!tS)s-DYguF{=bdqJ_GiVLKdE-M`^Fv&29 z5=O&e$|-^$&e0C&h zzg+-MF2Z+3-zAV&=GoC8+6}skWT;P{xyuEGfVZ#U)PG{tVLg9xBYc*$MmF_SS8EoWrb6v%eQu@1QipuI;44J*oQoo%-{k7kAQ z(DaXYb8g^MCHLH6*t9_zy<$b;V^BtDcc{vFl=HIR<5;r3}ILw9j2!n>lx^ zLWUcy!TTICGN1<%{Q#waN-;PmnspC|kaJ$&E*@jZ{az~spimL8JkPo1(wdOPmboU3 z1?;!$cPUO|com@o3qet$9bgop0530>>W?atz{Fw+!Y2R=vYzK>ipw3T*B7O>luM9o_hrI+LtwRL`kp?-r;jI{w^k^Iakhjx&-9)RH#@}GyicB;WRvqTY+ujF&2dGt~p68-fRh_5R}SC=#P)uy2oT`u2|6-Nf>Jmmc}QrWK`=vWdOquFVg zre{-zxC`ol)LB1Pf8!EjU~3Rnq|pZMk5v&wiN;*{Y!ma%K{P&=PmfC}IV@k!vA;Sy zGYMcG&*JvTq1k2HPZ9PB(BXVAu@pt7a^8mGWc(^w^u;Say&h4K# zvK_$}DZ&bvO`Y$DRun}TXAhwOJ}Hb7Co%S0vm*?;BY)$&Qcb|wd5rS&Y^kvWGg2UF zyK@Cam?U$9pYrZ>0-shlff~hCh)vbECAS|7)?Cb9DQ+9y|Q#;gyw@(QtI`{5h9( zPt$bR>x(m+02n1n7=@KeHI5_ayWMCsE0uWX&RsJzGrM-}>~uPFb8`+mIL2&Tm3V_1^bXeHEwJFc=F&3?86z%m~+qc7iP#KN{oBJJw_n zwl+7})16lP)cJD|c>nm#zi{V^?t{=z#X6IfZ})wTJ1_`>R;yjF*AE{)yt%n~>eRDO zJaOXOxpNyE8&5y^)avT$`q~-*4Y0Lx&F? zK5~7#-EoWr*X%Z@Phls7Ae86U8a8=ujg2dj)+i$V{$QNpVgxHZ6+)Gly={P)nLVvB z43i`QuxyN0N_g7}C?$`B5iF2H%2|X=SP^Onwuaq5|KJxs{+Y*mDf>}td3`uci75ab z0VKj=ti3#yvaBdw+jJ_Jf7=QeV?_`EhRNyHrND}moJ)RP6Bx`X8}V3MX-rN8;^GU+ z&jbK06Kh!J$EO#fX?u7?rIl8mr#x38mr_Up$0+z~IzJF16QR;=4;C5D-EmIROO7+VgS% zkKn=k?)$)Be&lP#Um-ng}CAmsDa9NX?LlJo3K*UVfTd<*B$5x7!V(MZ=Jc(q33wcY@LWH`M0 z?z;~jJh;BLwz0W+`t<26%aSDN_xov@j;Fz3G^$oBtya5QtyHVkD2f`5Mx|1z*XnU4 zZZ=!hYDFpSo_|D~&Q5N7LY{ADeWT4vMS^yCe9@^ zh8!BTtdux0ZeF$f4`6KX&|BqtS@#4FE2{>$nZ!Gd0x&mCDn^;nVXxcPgG)(sK|jDC$_-z4yw# zb;=+xyf{aXWzz~KrWs}Uy=3D z8W`np=-`h1d*>f}^2sb6k)RSrNkj=CAu4dnEhX%o1PIt8iDPYt`OewsMfV&Z_U%ke zT1TnLuryahfz`EDUwdH~d)jkOCgTse=#Hl3`iht3S*E-w2)uf=hKPna%gtss%84zp zv4W^P75CTkVb^#%0^m6I!$<>~&CPXdjn;};TbpXFY@T?E1PsD+lTIhAkHBcq2dCo^ zSE`Lhr`=(;$B!LPl2Ly!=ytol=R5xe006=;j4G8l3`0b8s2I=F&W}Qb(=-jk=ZMz- zCL0lsMrpNL1AxS^AJ_IBx%t)?-1FJT<39$S4hTEJ=8F>R-@c9*!!{bNR)MqBpp>dNTRV3y96We%ZFyyJ zX>o0J_3YVmmTi(G!@)2~MvYoM8IAxTjH7+~_O)8AL)Tw_@Zf=7uP-8_L61mzUa>4( z3icQyaE!G!Gnl8451Nr5k!KR>4}>KKtTBT){cWYKv2K|W5vAy|t1Mfql^W(b0J+F= zJc%4seC)SVN`sL>%78C)`=5OHb07M|=a)yev!lJ5ayJ(Wt6EfQVRLKCd18Mnx_pXR z!gf3aQYdZ}5C%p92ND!BKKBW*GfQ&7BVp!oa*|6Nxf5+H7*queg2fUl-fqIT4K>eF z?tNg&Kz=+!^z=%krrvJ>Y*|KO;zH=zS}1Lri_gW2a!4)%MS$bLXB%`Mkyx0dqf9V&0aWope_5b+gm%jWvZ9W=zsKC@*Dl{FfAfPBHkvUNuv4HRUI~Nv= zNps(ZbImP{7m}{8Auzc{-&eKa7F;;n>vi*1yEEEY-+$enXP?ZUdg|**GE9eNrZaDd zmC|XFiD=74At8iPNUUJ#fmn2n%gayB$b?a)GMTs{wPs^{R)bPoh7hMKgo4GnZ=853 zQn^z)j?+`{(zbo+rz`yY`L!!4+{ban0Y<~P4!MQao(I17hvr-JpZ>EyJ^#!zGlBA2 zm1J!x0Q9x;fE@qSEz+LvF%W}f!aDHMEbWhmYlgSNC_%3?zx&Y)_xW=(;Hf-M zR5bQ!DL{3_@+%k1z&@XQ89%77t-dAYr;m?l002T-J5YSH*^HuS_jP;S>lYU3KA>0uUc07`kxpvYskR!GQddJePAEBcwYwdWI|H3o~*4GUOn8ITL?hAl`kh=ttj6(^ayhN+!w+u}}BUVl)QPzq6U zLJ|-G79%V!ImB`$fu}2R23?m;nR^ILPawB{jz$Ax@_M6MucI;GDe%Z6P~(HnwX`%% zb>JydzVExbjS?}2!6>0Ip2T5O5P-AMpjwT=red>u?!5Em556cu$V~1bk2eo7c5{8> z10Vdr2S4~hlV$+$+0TCVp;x_X|Gs?}sk=;fH^9YI9a3No#Fb$8?wxVPUt1e_6>qS< zzO}V^{dIexH`FRrY#a5~`SXk2?$DnXttgDBRu6hh!={yfJDC9C%Dzl?Gu->hoHbW(SklRsp-_{{LID^kXTpEd-DQK?XCe9k(94T}#ku zte-h`;i)GnNlkBEGMR666axydmCWWjn@p*kh@z;{Xm;jiXWH$Tz3{$;BZsQ{4}da` zs4k3CUK)QxIrnRL@n!rKpp5&bKXA%3?lNCT(;PXs`%tT9d<<=fFvKtS>=Ly{8kk3fk^E_)= zd1$Ov54CHwd|~P6!j9BhX4XnGbDE}u ze*fS8yMKp>Gcz+ulAJtsYH4xt;K73~gGEYR{_);sDJ}$P0YVM!PAiH$mH{b9)3o0o z1%8x)kE}_k64#cNA0PHJ5dh>M#HfOq>2GYVgq}YdjuiREu#Uqd%M^%Z3&Iva(G@ia z|CX$|f5VLt5FpoJQ>(-V?bgow@7;OqhW>@~k9_7+-Idh~=gxIk)|OJE1W15{{3!G* zQKR1Q<4SYKj=7z?_8r_G?c51*1f2$uvV)##wL~Nr7PW#z(fxMi|r$K2eG9Xl$jvX*acZ4DyQLdYUOgi5hkQmR&~I#0f<=>JVtVF5vi zDsg`}v;dTQs+ zoyOWYjxU@)|HKnd+;{)|i%Uzhv$IH^8=11UUhvnDVC(=ezWGrq^K&z;PVH-7KRMsY zb)d5>%QDs&np`ZCSRD4UVJ{=Dpg^ioiex7-5#UVmw^yS8!e znbS@#f&{c5RvY!!{A}E)do#1(dEk2h0-gp!AXGscfLMVr)Ea>l8SUo*t@|eK?Xv%v zs<9M@ZY-UEwpC4FJTrMxnk({hWl1(+;_a7zEH)2E_pQq(*6y*qjymzLyjH z#b12+eSh`I^J~NU!gY(?Y-MX0HD>G}D+=H)r7zQB%P3cM80X?;3Z}Dp-Y1M1<3p>u9J^S$w ze>_|`z{*2ZZW5soq5?r@4qFJGJ4YZ_QbRxl1ypQlEHoaw@*Js)3nx-aU;nVoIb8gY^*N>h?#gZ{8h0jH_wdzGjW z3@hhPFCM2G2so->qZQQZ{_@KCb8Ba#up=y<4)Z(*^aQ^>hpGQ1nkttQB873q2ngq3 zi9DrKcLs;0upD``*9$7TyrAWjUp#3XYU~JE@U;6vYsP7iP5Fjiou+P6KAOI`E zyLazsHCtM**_=J4bE_v-v4!ddpz!kf#T)kTdBf{ob9A2%07{&WnE^z1)cee5KJ(B1 z*+08*{(QY&pKW)X0=0-dapJ^qG^*F@$!JuTd-2kXb|Mf+0zz)26iU5b-LrRBd*;M& zvtRY%(Qve}(ce*R z8ENGaj>X*=kiI2=@{)-BKXF4WwN0f2P9p(=1>b-&Hj#`&?Si>00M>w zqXCA#cp-UcsXV(tp%{Wv@E8RM5a{_hIDUKY8YZq0a)lQZ7kl*zJP5m*72ASlUMyk5 zwe{sF@|(@3F=7zcR<}q6)}RO)79&=9+N3!uXmvWi2PGlHwK9p1fKp=N%Y3g9YZ;X1 z0YPGN(d0p}W;Vb0)o1?boge+m*Uv~;H~nmRD@njpD(a^L0xTAHDBK*j-}}WUsw=@G zw-?W*p&A(gj1kzR#HCp@5|VQam#wuGB=QuIGJw6Ac4gQ6&Q7aw=;!^)Js`CF=qZKp~>i8ZA>n zRGavsXhdHrt+huez!nPmE=LhUqIBkJUy1-Y@Kh!&3M~pxmi01Mc@g6Df4L^5%A}L4(Vk+?0W-@`Jr+P602*0Or>6}%(mN&MtJklz3o=KFgM?7R$Da?0e0e58CV9J ziZy8zg)zYXh1d&@{Kkw03?y20<&W!De7f zT#$$+iU<`U2wOs>*@!WDlIDYfw4f$CjYdOFLX>Pr=Lf3z8fb*Fej!XO45LzR8tDzFCtMcEn=lu}5U@bb#) z{M_7E&#rlaj$%KkheJz*9wP)n&|5v%ns0QsRt_E5wR(2x@S)k)edm1vfd{}UWyq^> z#CdjV`N@5|4}SC`AN|Z{J~KZ*k3?yj7DC$qiuB6L+S*dY*o?)*S_+0BWl7ST<5QFSQUdLbjjjucZlSl2_uO9&bl$$2N zF4$H|7?9A3dvGb!T{2P~@=Q|*WSwS2nS?F!vs2%t97_bRdJTWG_bzfd1;ERoWiEat zZGXLtRV6L!08`sPbLNS&=blMN!#i)ip_cIxCxRrXs^;Q8IrNHnoRgZ9oB z+<-S_JWz@LBOk^laIkDgr42f>bvLl&~y zC#AM}T`$lOXka5ndb74Vpa;~I= zl^v0!;F3SqSTUR%X0vzK?s}uzZnqn?%5AqCU)V9bFsFS52%r^s3V=ZdfL!ojT>S%m z06##nb_jqxUk!fjb>H=y|K<-u9qU$SvpcBI&33y900Sb3l`{DQQ+(+$Xr};@I^K^W zEKx%mK`BxI7MPWj7&8X*M48N(9GIOonWGRWKuHoO93iTJViq-JM>j8tE%5xaT}4xn zWvSA%wY7En-1+AIc>rChv@8p`tqhq8=^>uRQvwh~2nHa{(0g`xAes9aAj;0?CqovrPCRt%G5N%unJLl}mEr)GAv_Uzhy!wrXb@7}#{?+hvM6d-~^ z&jC(@vb6_vX<<;ubk37kYn@# zGIBvcD|VIVH~$GS%tmQ5Y;1Nnazi1|I+&!}o2|_-0s$eA7DCDh2*?M~<8w;dO+3$| z$P1LWo|sBC-pt^uU;Fwqr%q=AQB+MCqBtNhifp|Sjk;S(Or9sNeA%mC{@@*+0VTj` z8fo8JBVZyO3dmo6@XtT|;ScZIzkf6wCP@;-FRY8hM*d{DnS}+_Wwhx2m(3o0yPF6*yoA%tanaM? zkV4ou+ODeFhS&H?05D>#gSQhI;o)f1>u(K{o*&Te-8)&BNI!e(T%JQC3VlD^>Y2>s zzUQxZH~hBWZZ{f@1^`SZAxvoLSS@|X4zmg8cLc0fDVGV zQmJ~hu;;pkx%$3+`{w6n_U}Is1zsF@K?sOoZEn4=uii97dD_=;CFjA(b89a+ zJfDO1YcmO=2Y}!ccouU4LNI`u#Dh{jP1iyeFbtW6TBy4KUwQPzhd%o8rM30O?Cwgf zwR(Q7R&T7WT$pK91C>Yh%Es#1+i$(;`(E=sXu&7oJhka)uF+avJ4e8?ow*Nw;QjA< z*Sq%a-3tJuluZ(?)F{j1AlMoXTdkSlaIn0z41}Dq@~-_xi`Hy5JME4U_7D&;Ns=T< z09h-YTVfl8etYrUnG=tl+r9f>t=eJZ?>(@i)jIRc$tTt~)>^gMN?g<1sArZ1nOV`_ z^2O(GUlY32g7KTlYyHpOrsOCJ4MGvlvTQW!r|H1=aJJJHk@M#lS64S9uT}~Ff9(Bd zuw>bF9ty6t_C6+k=JmdOS5;TFw=muCAR&MRL_#Fx`4lrDjb@&nLi1wGQ@nY6F)Q z_1jNW+h$~DPqi8OezD!@f8eT}q$Kpg>13K55n!>x5Q$hoLu?d-Cd?6`uaH9lK_;N6 zQC-ev)znZin;9M+85tQFnVX&&8_tdvu~PKMM}~_Bib0)`EV zNqI%UmCjA1?pOFMaag{^u_=HrGbRcU7A)SOiHxk(-22PGwD*1}jvR zVnji)1T5CtxEsYC<_N&R0OulERS28Jj}b{}*Hfqr0Sf|xlOhrd02E}SC<0*?5V_iQ z?D_{P1fqenEWR=RSHAZB(&u0NV1{QGh zIRq$pxokG`gYSOtH~-~tE?i#RyLa#E>T0%-*N(%+5}?+anH@(X;(B#G4#OL({`T!$ zl83l2Dd+oo@4nsnTuvf#9DtC!oo;QjUddMwm5CHdp;f1~4#+(Y z7Wn+d%SqgN4j_3%TdlSt0@f(hYBll&9hrEeURzsP*n7uJChKgjEMdo4U8-iCeV$v0 z4J|G$WwY59N-pQ;^Vvg(4mwHHy;jj|zYYThjS-~?5v{1o_~;YQo%r(CzkPasH8(tM zox)0Ux#YV-l4#5lCKWha434d;()92Jgo@>%X02sR*Ksf*j)YNUYmKqd5sG4CBe5om zqI@n#!hS}7`WHWuE4V|Yaz3A*o}S2LAm;-K6kGrU#+ayWq8=|CBoTB1HV}dZ77{>2 z&ru*LHB^U@W>A>4;HHQ>*@hONWrx@ zKilL7kSrvg;9_DEL~$6KE-!rUe5761*pIRbPf0# z>MdAaURkeie(9@!{L1m;$Io1dz!9AR?SqqTx7*UK&rMBq8XF42xZC{TM?U)AM;{yl zhyj!stxz*`x{YkU49wsD`nONKeqzs_Jr^%t92*-mY#ptcZIU(Bj$@1^Qq^j8eSLjo zWCYm4ZO)fF-Jn>^=S%sei<`r4p2bFS)aiC3H>Zg*ZgIFYx3RuhUpJdo;|*((&hSWf zYDVTS1g%!RW4am7Yd1rurk)`_D?1d^;zxm+$+O1JWjj&@wF1SB@G z03AQG`sJ^G_mvapvO|+gn;puyg^{UxHx|&z+?;#9P|3#;lnm5H_2@BFTiwj$3r@z1 zOgl7xwoS}smbRQBwi zn;aY8xA)NG*i^Atv~k?+bWff-`TTRw9Y1sG%*FHC%Q=~%>*bow02~j1f=rpV><9ocp=J_b;;(|hmH|nK0SK_?!~Ra& z-nP$VZ?0tdmpFym7X@SH#K&1Rlh+8Cb1=wFInm zZ;IY8K<&3g2B)7L=}}D(M5no~Ab^Zp9Inia6!#C`zh`3fj{Uo5rbi1!5P{eT*a#zq zh>9-QDubXEP|vr{Zb`okvJkJc8q=;dNC?ct9E34P zAuvPg^uUywRs(Ir&H1Y36|se_7q4Twebc58C1x+LgJvY2?nKs_c&L&MtdlJjC63~- z9fs}s_1ecRGFtb+Z0@;k8Lnjk;gF@C@ zxOirEa->o$eCiV)dtm=e1mK`06tIRZI!fh=#n)eX<+p$9-&EH(viaQQ%a`{byrWv( z*wzh1T-S}Gh!kyZZmh4b)9qv22vG8~nO)gEdw0C_;%l*(fK126^|0HGjWH6FL#UPU zo9oT`8tmMc*RbMdDC^?xJu^pMT{!ys%f525uBVWaL6rfurpQ<@v8y$UQ0k`nPHcat z-Ml3|Hz_G%hQwzT6JuYkY#6m#n;V-;nH)|`4RLIuF1FVK>5xyktY17IEVekZ=#fGO zD3>ecN_il-UyaPL05K{7Y8%t)gvXAb{Kk)8{K0d_r8ucPz1E5|<#BLx&5M`y)J&qC z3#neNYd8`_P>;Gb2zm-~%{LN=OlFG{%Wf zng&w7(&&a^n5eY_0EeMs@JNGp@Cx1p_X=TTDRsG%zD)eW8X5g+7K{UMAj&z zK&9d$3GXEp%HMLC>R(xu#9D=cc_6Yg5&#hp0reEtwq7BiL^+dGV%rLUV1R;7x9VoW zNUR*!%@w*am4>Hc(V%=cTgq3)awFqzVI*?0Eg{I~7wVhmR+iR-PV70xcO{#VOfkk> zY_ndj5_DrPo3~LMby~#H`uqj0%>0E@?|J0DM<2Y`0)Ul_)-EVE#qt?d9dQ9pC?@_+d1 z_rCt(=^#5>=W>&aDm&VZsof6M@VJCA36T&oQYwj<#*`%fY^gb+BGROw9af!8R47_U z)prcxC*M7D_b5yt6bUi_ZVXNcZp5C2j8(o+7SI(@v4JpjMSMh8#6==2B%lBlQL+$5 zfg~U(K8l)6yh1akCBg-C6wb<9Ce~g1B*6 zNt9}>r;vD3=?(*KMg3ZY^y2n6qOdFNR#>kE^|}PHGL{UYz!i}l00vEq`i+E82mpAX zT~lWBrl3F)Hx*jINW?N5BWxIAgRxNn4kHO@i`t-$QCo1C96%BROJLO2W{E_(qI@e# zyFLjafD)s?jEz--M(yGI?|J-Pk5uvi790eRv{;J*o_0j!zx}uWcJ%1cL|W$-dqtzs z5PS1CU)@}#A?8xSo17V8C2bpE#to1cH`d#6nDH~32?9{D7uMDC`R0%}w!W}Z%4V9i z<%0+2mRHZee(a?n=xkkN#Ml}j5+Vy?m|4XBRgB^9v^Uw3*?MH+m@NP#_U-_H1no{^ zW%aUPcXr39b`-E$ys)NBRz*(KiW$i`)P$IQ9iilkg|V?QO06lbfz1#oL>IL~%C!K` zA3OJl-+J=Ya(&af0p%mi#^_sc8Fb=0*Ox40VU|JueXrDt?Y1b7jAR)?mX51T(WjCF zIRQ5`E`tJ4!o3YNgJx3Fe-V@bu}%J|`*P?eAws8t4tq8Fy#we4K;Wbh_r?fD!mdFf zO-=&GYi6-<=#G((Job?0E^(|-5K=!#BuGm&Z=q4xX*V0SR=pOqnqp&MOTY>cSdbHD zCSfmv0|0^U-zO35T}oyVPSv>Ndhz|nt>;9Zevp~1F>xFx_K(*UbwdPH>A=(90Eozf zxQ?%s3jidng_W3~+uSub{qeu{(f8iH0}MDQE-{EfLakiK%N##`{Exr(rz`7gj_*Y# z<}G<;9@Ip<0_9j=U*FiM!kei2M_}UF+1ZC4cu*6@LFjs3Bz%5(sbh@iWwfZGTks*< zsfEXno(*ER-Ld6Tu~c&JI=*DcpHrf8Nc;ZFB1Qxpv!l znX-2MTD_@A2i?f`J!_-NP-$*%PAiCP>J@RtH8db0kOHs4@S|5w{^@sr^z77M=?N17NS1x!)e$j@dFB7MpMiiHMB>YuVVIyhS>a008yW zT(6^_PKLpCTvVxwOJB;hv3Tj1f9d0&{?yMgfJ5S-Rlbi|lhf0_ z@AoTC2UjrELuN#_u1}-UXfztYw--PKITouNT^Xu8^3X#Ll8GYixiQ#ktI-I%%uGT< znaW6Ryx@);eeKNIv&)6zcrN4JdB7 zSj*PRZ64k`?XO^Cw#Ha%25i(sL;)Z#E?rt%UubsMC#QzzW~MUQ=KvNitVIDielcR` zMj-&iv2h%2nG1!&*!TznSQ}mOEr~aSfLd>L0)Qi@F8%Ho{^?d8L*qL@O7-l z(>Xhf^rn(mH=BeKV~w@O7_bbMk;QjhYaoi!gBj!z_J2=$^jmRVeG{Lh)R~zygJJ*! zORLfDx#3^@*hf9bB6l>zN+JTQK@y|WTiPuk1IG|`qE3@djBLRgWQ%M`(n6`h56A%4 zvvo!KI5HD54FEXQ$CtOpiT=Q~HG;8-5wYpS-*Oy9akrZ|KS81B zbD#Ts#`D=25h0?~Ggd$(0o{m25~ocR@O>Wza+z$iR&O=x(617{#yMWuBuQeB1%!-t z=f)=Q+_R^c&uQ1Ib%Q2^YmLn?jLD);xuM)xr;YRT&7VAdtXQ0EZPugqhVbTrgJYtb zKYZ>x;DhUX8p%hMK`q9_)^IZO61Hr^FpO+$MdT{{{mnnfe;FFRh3zk4GuGNZz$lc@ z7NaPtZPxPnOsiYFynHraa_+tVfDHrFja${QwjS2&#`DXYo$g9?BeaIuq9Q_^nVTLS zt%zKu3kC!L8XOJE$resl!|(j$#iw6AfteEc708yCYprDFp5){pHK`!Ner)MkXIyg| zXu?d2I^7NcR4PL#kk7jP6C?qGM1qjh7`3(kbgi&$yQ;xJ3XK2>k^+kK_4IrPuE5}P zGx$LVD5IUA)h=eV1K=P!0*}4xu8)88agw&});MVT0Nq+WlP`jiB)bX1upOQnjJE`0 zl1&L~F(5IBWr(4N2Mx4qtWA*VEy|qsO?#6uSJ(nuuoi@2i;#9iK>z@N07*naRFKa- z=LqRfKW_~Cuq1GyAYrap^jr@}E5LvFfB5z3u`-C{eaDd)!6-3GSfLzw?X`dPul`l7 zwwdg~8l#A|K&S0rhlqofx9QCNc4~2ZJ0bzA35E)Vy*qYgT(1*{R-FD~XBQo%3K=y%lJVW{!Mo;OJN4q}3#WoOa+D@3T2L$-YZF@uL9on` zHBl7VHQR0AB`|UT9+m%gdHm4| zK?czQL0~PMFdu;BJKy^D3opEwlq6jH$iS8CAAGpJjGBWR7#n9 z?mCpoX4>6uOu$;LH8&QQmldF5O-8#^$YzF5pIbb2`eHVdDd#g|!kE+B|P zAdsGkoF>rB(&=>Tt@hWy`{N(K_{!2+6TM%wPHBqpb0?} z?A_sf@O_U=O^&o`>jZ*gffG1d4{U=cvc-cVKm%j}4WJP+DWMYC5*tjl4J?60u#^~B zBY;?DD~ac;y+H)O)>YyD3Wxv+EQk?Fh0}m7m=J6T90A8*3|IqJfJG8O-zGEi-nw`I z{~7oW0syd#Vik(3NP~@PYqJxTfAs5r2cozeMIL~dI2pr|rNfysXa3WF`cHSyPMA3-(+I~&;&bn&bS_gwq;dhv~;3yyc?V#oS>2&V8V9d+TT2l4d!X zgPK7$;f3jCy*PGE?66g6wOArn z3KRipxY|~H09i(1lpcmP$nWljb%m%$|Mfrr1`%~y?ahtNK3TO71@)d1mL6%9h{7-o!%!(ABG2Uyrx{v9WDBMjy%7-e7WPPViZNbhvQ?p zeFw%e#rA*s{oiZ_)$&j|GI1D3m0YFXYW8lkLQn~A$jruAYt10QHK6JGPW#K&_&Qtv zuL5F?iK5s>2CVJ#wMn3q&xc{SvO0hE!imMTvvbpx-J?a_4OQ1U{rZweV>@T=DHi6| zYT^8Pt%%acDf91i$`zA^mC7>9@7)=y( zTL92$2mj(<{L81GeyZE;Dy0gA{NRAxW6fR}_?THMt+lq6wbqbO-ESv2Vv-_<^d|sh zvhM8M_}=|HXLn42gV~`{GYU>GTmnzmTJ5kK4duskYS?x%M_;;d`D}HxGFd2;JQuQ_ zIdtdj$uloK_1qJY1nsCZJ~VQ6=~AU!zVb^E5s}%(u^Ei-@3g;~jRBb1#BmsgQ5Zl zvuypduT9(A8;Ae_q4X#3H*YAQG-^j{M>|R>Kx9eQ6xV$7n`nYyF&$Be1ds^~LDa2> z1%L-Q~sfj~NdGlLk8LNNiD089v`192BPf)pvCMBJW{1?-@- zBuO%KtKLYMCeslSfGHLHlZ>Y{vDnB2?E`yv{rrbNFjau83xl^)7{YG!#>rE^_1nK~ zEgNI5j?Vofzk=Zu$FX)Ct+g?+)>=fW8ylvF*I#dzbd8&kPB@qV3i-@kcOO1*=zx=P zTAfa|Sm>fzX>K%aHv@5J}N^34Jm;h0S~3cFEg*b0$y98}b=zR{X$^_9!> zXBSq^jgAx#-+7S8QRppSTEB4Waz0a0%C~^)wZ>+vVF*OH-D(ewjy&+tg8<30S_Zq1 z00c%hLU`qkbLSUV8AxkQq_5y0_2{o18 zoORMj0N6wpG{7Sd-1G4L_jyEMLQSARkc1Rb5{OYHbe_TQBCP=8xYOL+Tw7_^H{xzb z3uiQG?A6UmqD{;MjAEHhvaV-lR#_^|lH)zIM$I-6R##p5k0JIy;ensmo@rMRZF!{|vn4O)y|Ni@j zhKIW*3P^0mQKjr^tL|horF>qxwy290XJmCgK7MrV)ElcdbcS-dT{9z^+xOqMkDT}m zU;aG0DvTp$tC6TT%eXp-C-FTt@f8G#ciLZ(W+kZ<++xTm+Nu>oLL?E0<`>Q_uAFf^ zGc!A~ci&DE+jcWLapX*=#v_G^tY2z(qFSTQnz|c*A|irpPz*8y zkOd%LEv|QtoW8i(jY+%L#LyE;v>7Oe9OSU4^)%Odsu77u(SQ@#;8c1WzvUKae#x6P zfveFaa0y%uo{JezWqj>As1+-+3JkF&U_homJ>>0R%jU9fW24b&MAPH+;rG3FYJ9j= zThDlkG$(?-06dU)q`}f3(l&C%<}_tUrba3wgplq5C4_wHdBbmQ%#^4x7?vnDaVSy5aVRE&I0msjR~AM{`8I?pZUq3qHX*_% zoJfV@D(yQiX&047P?V@ikWSF9R&9NAZCRP<=Rf@TuYBs~a}LG<=R8*tl0p%&Q49cI z{pwf0`OR;Rjg1K-qDr847=WP%mxJ31CE`$lbb}571Di^zFh75()o2W)s`+}1=pHhc zXv87)mXQol&U-s|&Q45^XNO9G7p)Sa9g{=%Pp_A`I@*|D(+6Pl8n2g_Ue)vK`eq`=8oV|v5VJIMQAk(Tlk zk{WtK(i)XYIWr;&$%+w{R~Fjc+DkA0cziPd=)3QATol3QpL+F`r;kk(XU2wS!8+YA zT3B7HjE`0&jq(BHvqE$eW#CN!6e7{EBPujMkMGv1>gyJIjnq3kw zaOl9)$3F7Gsj-o6Yr}Jd6eHOlmhU86e+o~C6t){2cRP(balE!T->z?jt$Jf~9ZVo` zASPfFfC<=yi8z6yP&>-elnC>v)H&|TwvD%+UO@)2U=5pyP0Vq~aR{at))Q$m6x_Oj zy;R1wbqx!PCLl#hqvJTP>uBw1?QQ`z$Owk4^)=ji$KLcBuD-?qNp;{q|;IF5}mK@cRs)L-r*`*#{7+8)+eW3A;x z*EbQTg`Ojlh*)cl30Kz^pL_8q4DEvlcI5L;qfuL5+o)CBwu5^1ZBbvgmzWIJ67>&w@Con# zf=Ei~YJ~;U;do4E@TcZMoBd>AV#%jA;hd0NY+E zE%zv@+mLDoYty`m6-n!Ekx*;xXvcM2?P%9^UDtISM=4E+1e^dbj)pt$*z3{vN|Ml_X$IIpN+S*zehAg6P&Ec9zky0j(<2ZI4CkVRC zHVA^XwY4{W7ZU@5*w{*?^1wq6?bx*oG&JH)S4<#gb-mhYcCzF+3}wGWHV?LZ>WzgL zo_Q_WXp9zeIZqutxWmTn`|rOy2%5k5`@d^@s-XSncu*&&--VK8iA}Gx7?Vhiy)$|L zOWTsj9>>O5!<^oCz`k^nO5PJiQMVhs^4iO1&K{qbs_fZ2T`6ZACCz&0rRR>sUCO#; zhq8@ku(-S`s6)11HfMwn>_2ety?1tPLRUdV-N%BHuKvo=3opKUOuSr-u0SHmrIH|< zhzi{F6mGD-6k%%(Gb^PWNB92Ij^j8E5J7K=aH}=Oi0CSf2ny1zUki%}jzdb5qtJCw zQBSOK3&($}AwFRgDlrIVV)-sJ z|7nMz-R8ylmD6X=UAj2`?6c47%R#l(utXrlph2|eP>F|DGr5)(Di@VT@{nAmh=CY2 z^$LqA4ekWV+60*-z35LI>$_TrYci$a!+lUSuJvzK&p|SRb-~Z-F`8^{OcT7!;E!8*fyJyFxdAqi=eCo_g z-~0YIAAj`y0H$wi&Mbr)(nQ5p-$)KP!7%~AT6-&Nmv`D<#MY1O%=TJBttomd62}~b zadTzk;^n0if9=r+rl&Gu>kj#g7uOdrHuh%^OO$W5Z6}Bu-ELuK_-y0SP-Q&hxd#u; zO^w0wYIkxZGpKEmlw4SVBgao(T3*c-N18z-UiM~(eBBVdjjWQ2koS1*3J|r{iV!ps zD|EC4yw0K;`FfLgg_2_EJyIJ2VBgyhKmbq^leR_#8Lf?N;+@2RfI^9j9>3Yea3-JY zbea~zVs5D2Y1cR1_dmLGY3082fAT#eA(F!aHszRTL_{z|l)x!k0~8601)4lC`Ov}1 zAhc`0^ufi&m6K;KUAVM({P^(;moBeYs}cbK7*Ii%(aDkLD<|XUOQc=WS&M{j&H#$F z!b$|i3R@P-EM2h?GYeY?x}X#w^&t85o+o+l#H|FVH?K@&ixZvsI|5 z(`gP34R2Q0Y#hf?0vUC6wb7Bw=XdWOZH3)kyLYZMSEHp& zq=&xsoeTH8`?2|jb2IxUOOadMxO~^4q7B=>_1piStna?-(T7{jR=!XoaJsF?&G_}r zS}vRI$*^+2V*o%L$NjZS65j_GzXSc~9o*(GWJ@BuF?O&bFZF8{Ktus00G)1kY_uF~ zHcp>C@`ES;^uXO?2M(1yZ*4f6i#LMTUpUR(k%_4X96P2nm8Ff>B9vNnZDe-ZV6<~* z<*xhY7+`cPLjs5d!i?moOc=)-?RMbho`3n3Rv49s3hNskoq9w7Aac^>fkcEr0Fcv? zcmn8)WhH$OIkCb>lxql+IU(W?XNrRt0MuKWn27Nc_+K>Hl!gJ%`gB5-E|yFU)sUePiR_{`PNQ zx^!uLq_VoY>ihl`*OqP;yi$`qr4U6#ViRkvq9|HfS&=9NfSbxRT-^v*p^#Ew0T6af zPaL}QjxgvfU!3onj^|M|YI_YD>1LVPMI>>iCibj#s4|yoycm>x17kB z-*%%U*dmG&L{y{@5fX+r5)o;w2taHc#ewC}&u9Q(hyib|ex2lC6(W%$A_ds5tbv~A zHEy{qrQR8ekbGYYsF;oA*b0k96f6CagXwmV8o{LIi+a3uMp4MX0DtS3KJlkdJUzc! z%evVx3K^+1K31=;dwGvJogeE#@S)vmJC5UduB)AuT35Nw-koD=_t^dS9kd3F6~nMm zt6yALK6di#<@v?ePoBQKw03#%A|UBf#r5;~T+z?wZ3HH6N6mW2#Fdg0n{E_!+AU+l z5FPFMo|DfSi2&S0cz}~^H>6p0Ob0Fy=EMRkk%zSDcn*ouv>=eMWn<&m)d~Roj2i{* zZhhnDKl1*Me)PlnT;2kZ0!oV<1Obrri!Z+Pm9KndeSLj=bgb2CI*ty*5b^e&FcBuy z$vh$q!$P6ZZg(zTyx8e>vzZJ42uDa7Sb*qOtT#m@Jq8j5xNGP5U5EEwn!o5}b4JCK7Vd!CYLLdipzyY&Zmj7u}c?Ef9~_Y z_uv2H|Hs_;o{f6Tr7YS+k-!B(K*Ioltl&y0Nkrl}PVgC})Ihb`JMAxIyYhyB8ni<>Mi49T)NDC09WrHFtw^CTtHzGz# zi4>{Gj8XuQ1bAzi#VV073XwUV&tJ8hn{;`tv?A78>z<4{0usQWkZKa*rKi%R00@Cx zvX&eJk;2#}u`59%Kyb@xFj*p8+r>x-5J0pf%Y%f#1Au6OltTE}&mFD?!56>uC&~c= z7ex^U08t!c{{m_?a3z%h7#ld+ErLAPT}pvmLUqqtR95IKUi74vI$#vlwY)8=EKy1GYqnIGD6nxV1zA0T9MM zL5f8ZMRiK}GHeVmfI*EvSo=YO2wPrCo(cwfm zfA;LZ{kQ+N(P$J3g&+v>`2qk$QS5o%t@aby!sn7FEI~7@HOtG(VHod^@H1LO z5Kx3~B{mX(2!o(S&;&Cx6L%iEqnPfeD4KoNy*~KK#qyw{qKG7sUQF7!sRtDKPD1yE?+2( zOfdwlnodHD#H=Bh76%tI2H%Wjv>5@ViSu0=!W{d$V8T{zuhkx$z!vJt@skXSh zdiL!3<;C^2)%x1%=EaMbR#sNqt$Hq>)vg=Hky6@Gly@9(oUTPC9mjDH1i%)MNGkwP zL$+iten z8=cs-P9=N!%<|4TryEPDG%VJO6d1QsU0*+QdgaGIn$PAZCnjb%R||s{o0=NQK6wA` z?|kbkO5>+~;ct3ssM8f|z;z&wEPzeM(QWp<+kek%!sI1rD_)2>s{YzKeH`~ z>?V$lwO0sl^@ei*0CIG_Q6C?l5R8{Etvvhu59`gP!*|aeJ~S7$YX|q<{nGc3KKH|O zVKwhhjpp3p0I3mnmTOg&^|}Q0pzRmE!}s5t&F2tMM2J)xl?4Q$-t3MJWxoF8i_g7u zbYx<-3obaGkdl;%$bDUbB*Y>~LPbxoLO@EuQbt99h}zLQDYg6d+{%>N01PLOafb5Q<9#Ws8?YITV0QBTTpx3q4VA&=DDIkIf z6aW}wOmF@U0*pjy6=+YJ9tQUcy%*C#4uOd*vjG4CjsrVAmi^QxKJst=-G5cKr9IWK z9pONs*o5^&N^dLQN`4A33JNlU>fzpiB48Y0rbq!;5Cz)7Yyi-;HZt+f$>Ofb(qs4C zfdDbX+G=?D^1}N1`pHwL>b3g$^XJZ-Keth>GC)i!Cfzc`;A+>+x-OzSAkHNs05-kZ zkSx}ca4xL+68@5EwZ}oI90!0+9CwzN4n27P-~GFPcckRnw8n~wsM~3m3S|&;^tD(1 z;EP`@=0IF}YhQW!P9_OsmxdQa#CHkkq98CJwS& zLB9tGA}Fn3c)W7x?gI-8%a`NJ&02lKcHCTMq28$D(!|tEHk+%s9HY(hw37UjPhJ=q zoBD-MJdnxK&bioA=ERAG;o*aK-8K7%fB2sj(J%eN-ya_-u8C#_=?T3dq`tjZx4|e7 z$8qwC)|!YM?Er19j^Dmm^iF$wTJn^#<=Di=CQ5Mz0BDfx+rPgEAf!DvjH7mU^G84a z?&{j5p^?moKm2GeW5{xKv2o(Hg|kPhv!w$wBL_M1nw=Iqj+5~@qq}jNa_+?Rw5w*0=imbFOpio^3c$72+zLs%JTZA&5RjPqFjMnBV{2WVX}7Qo_EKLB9?8MR~6}xsUnh8nGKXUCDUR9D4r%p zh~uaci0RaR=KoABP87bd=|KTIAAMbWM8|$le z?v4yqE;cv4b~{rpk2vKL78H7`Jkx>ER-^smGxIYOBXhfWbX<>(maWC($L8;UXy0aY z?K|K9VyRI6*hhZV$rK|dM(!Vl-WK1J@ z6NX6=*3+WHgr>dm`?r6ltxMB6388trZb#7yuIOR!H#D{zJ?{gvldIL|(?v zWpmpv(%^)9pkX?>R)CJ9G{FEz|GKSzut}6p7Q?pJE7JIm8bT9`O|)(p;ijPfRR?S- zRm8Qqj0)S~^mzUwA9(lXM*ZBSRqY{)Gnlc^H{4l2=1Drvq{A91L;@;ieJfyW7;?AZ z$=5avDIqn+fUi|Lz}hM7;B7;P26lY0klYf zNhy>l}442%}(qeY866B30Z%DVrH~Dq*{}W9ZH| zUVf@vIP#01zSr@EQM-lQuKoJ#+2im1(7vaiJn_e0`#k}=_uh|8OwQUK6%~79@(oT< zwv*zM3K!|sd?i2MiSK`o?aK0F%dv@*dn8HPr-#N2zK;=@nGul4GCPi1SUC6G3qM+3 zIs5((-u2*v2MD_&)`oEOr8ipD`0(Dx6&IG~>nrP>a|=stMIEw{hJ3j&F+FzoJqM>s zNpwRGNGG!agcu=4XfwR}#<@%DEq`PW927I!L%2QGaL=u*B&ca&t@%J36uGib&_(8oL`P%IW*#4wV za3BClGPYYrz~sUsL*i_NppgJwk%U4=2%rHKh*kg!l6pu5TBTlE2^~jOavH=6fP>&D zm>MZejuaTw``>fFVW`#2`uh5r^XJyqHZESexU#->>dd(_7cVt8Ym_ZA5NVH14BB%X zN8z^0enkSn)`X?f$m01k`*+R!cfaBiyHFFyZ2{*V8+R;ydg z7l5H&uP23PU^%v-r=4vj&f7rft9udwfbTmjf~dkU&SWwo?0FtrK6Ua801{~s22e;M z96@Sw(w~o9Gk=5(31NmA3<5eJ1nfBOul~|s|NYN>@xp~m0mKW7%h-mUQR2A;Wky*@NLrnO#KS3QAzg`R26r8TFV~$;53~IJvz#!RN*2{oxTgKSUcyU*HP73L@p=6EG z>!J=RQhigmw8ADW%)H4%%>W>P3Q+)5VseV407#J~FtC+`OYRql03|C18u&WcK3D*z z={u!B;;3VZ#!6We$wxo4fR+$|tja3L59xAtV*l<5W{9ngt*lgQFTHl;<)g<}sv9r7a%642mMIrq z$LqA(+r~F!6anN+&aZE*$Ibe^2S0TGp*z5Ihw{0w-So7t7)XRs@|oP9{_&q&ICs8M zsc_GJP_A4D+;+PfZf222qX8xYQot5&#yPt|BVh+IDY%`k6hH9Td)kfm3(vpqj}&7k zXhPrBJo`3FaZhU-d_CPm$`M}*X$BtZFTWcIR z^xhLE7EYac@tfcMqsQL=u9?Xh0K48=^Ob`LO6Usk{l+3Hhyl(ntgO^KO;$lIK(Fkf2Q~x^glPK!0iq&OinLZl4kBuuDk2C= zT2;$pnN1wq8$hYOr&d7XI0PG!Ps-`h;m`m$*XsLeK_3Y?T00IoD$SP?0N##}K)>KT z`4kBzm0SwYA!W!$48Rsa1c@-|IM*zVk!$T607y$xT4?~dm{WUq&Q6aFA33v9oSv$8 zS^$vCX7zU6*<^m1;PL5;2_OUg%AF*2dlP@DL9fxRSCb`<04Ts9ikytA0X!G-1TjD? zDr7jgV`OUfgO7jU{So88_|5)-q?GH=db@+%{Nf`gDd003x$+Um;8&e>o7^ry4F z7j^p5SIMmc062Q|$TzEFxwEpdaT`vjS3fgXkioAm@L6A9udb~PkB=v+!Z671 z++xLUGfdg~Eunp4T0jAUD2ON_$o@UM*B-q8^r?%HrK;Z8*l5lcMuS@SjngN*-Fx$e zf}hP79ge#l%bi-_oqY9tu9$iJLwgHDxnjW|9qn|Qo6XL``#*g6_1CID_~B=2oeLlS z=+8|~OvfC#8VSh~kWfE;pB&^h@3BZ4wJnIm@s=+RZ4o8=fj+rteH!IE?QLv{>}?X+ z%>W}{OGxXg2*yYPAc>tAn#8aoio>U$`|)!xeE*KUqmRDp;P9{t+RLR()*88Rdingx zD#gR4u_-T8URtVMuC6vrm?`GEofbMYIyQXwJ$D{Hv@frL4Y7$G(!v8`qyP+X^!Txr zjdjr#iIbXh6c8o`M9@i^5fZg4!S0X!9UZ6l!21 z?Yb`X^hIuZUA012_lxKyO^n^%RP7pr0TKF+8^)G6w*7n4QwOWz*@rJV$udLFEJOgH(QMReo5K?mH(k8l-~f^b6C|bf z+9=9sJu^POW9O`7Yi+~J)jAejGs}b7`hWzpN+Qy4NIM%K$ zee9R-&_sK8-<{8_uP(RNmX~ICX8mmC+u!+vg~ju~@C%>3_nrqhW|IbDAcJ%Z2cED( z1!Ryg)9<4FxAip)1Z9vT|IYmVt+f7%Dn*`|6O`$S@lF2r%XW7lp$U8^;%fYuIyLXiGlzPj~} z6A>}>j!Aw=ha_N-{_L^89}!7jP8gz)f_T{f)HS!iYJ&h@=Q{MSCtL1M)wx%$v#s>3 zcSqn#|2Yzb%~~^)&ybQR>f~~IBv*Rv#0#JK?0;ysF7Db@dicRzm7*Fh_#Qb?1Ap|r z*N?nZogKU1$BDV=!{;tl&n&F8F^XMin}A&ynyEbUo(Jx^_l{CN<8qjDTx+c&MXAsW z8Q=i;^@|JN{_%4gp+qVZ1q|qLY{1c^Nhu;k&+&cNcO6%eN@?E$%xr9I;-s*alX~^7 zGfmdSiGE36FKi2=PV`Ky#BC(AV|wDTNAAxl&=4yy8c}S&a*DC1lOSLnL6@}WC`~B? zGEoW}K$N%f+^^A6Rd}Rcyi9v_5;7SWF-eCcf;dUvNupy? zhyX#r_0-Vl)GNnMF#>QzVE>H7{}8Z;MQp7PX!~M^1Q-}lBY*;M0OqEO?|J0GGiOe1 zuB~Q@Bb-JCrc`PS0ASCaJ-_nlzd-`6E@vESwHw2QVi(1SG z&)s!sYIIl?GOka0wc2^+2ghD}b}_5w3YlFQQ#o^PZDFm}vL4pPQbV*4sv* zx9L1^OE-%#W%~4>BLvzW?r_@&0hkl)76Ebyzx1hJ{NazET;FV^*`i*JPd{bx=%bI^ zb@)&ihSLQvVg^iNBa}*|PNV*%FMa8|-}%nu)OaFk`xejZYQKwql|Vmp7z9D1(NKbG2RHyAWjJ6y*h0)Lc-Vcwxaq1ua51$?y(M!u`@&!Fq9y@uggAjfC(;q*6 za{e=){r%TZoc+~b`|oy6?^21$nt)uTkD97}gOUM`a00U3U?}J-2@i~j$-PEYO6lv; zDAW4Gbe;V+Jet=W-G62QB2Ep!7yv9Me7_Wmxx${}hHa3|%~~r4ZP>V;ilf#u$DjM+ zmp-#zU3}n?J-hZ~cJC_rzRml(Q{`uVaO@j@_-fYQJ3D@eWZ0PO#rgTQTCHOulhq-| zL_9q^e%HN+9(?3JP3$50E^rtNI0!1i6Rk1e(#rD66Hh+5UfbaOq-X-r;Q4^AtH@QT zK(S@E9EJt}*m7t?5fMh%A`@TdG_SaKcnwu9*Y~4VBcIDByvTIndHtpoIgWNz@4^YF zxAg%b0!_*=5DT)s{kb0unCbxvQUXUI0E4IC1MfTZeYXVb5QPk;nA(^YbP2ZB#%V_|QV6p=D9Ju5B*^~J~ zF0kR{>gwFYc(mSLtv1|-<86A`vRCjjqKX10km%C+r9yW9@`c7{fA{-;{ns9=jL(!x zfsO2)2MhV^=DBmP?%cK8&At1xpa0V%uOI&>|L6bfyY71wfVQR({Xuz~i+um_y2*HX zwO&m^>PTK8M{8EBm=w`=Mhzl~6+|@FzAZfZKVSQi8)q7}U8R(^*vDWvH8>q`P`S0R zzSW3yQcBH?ETkPL3_I28(tr7#f3voJ?%<)BnVHPks6SN6*f5B?a{lD{i%*}gE;{=k zzJGFR|G5jRQPgdRVUwfKp+KV2XoWaFc;~(c?m0A4aBSFiJeL3s8$}30OdR=rlsXxAE>^L0{FNU78E zHm42(NT5W8;^{Y0@p5|&0kl@GSSwoSCj|Y-&Oq$2m`J96$0mfAy39;O~60lFKMC z0@f!7gbQA_(X44rpZ(0|zWL2>l**-~-#A2^=3*cLv{7UL)ZA*@Fy8^bb~^GWwVfyc zf{IcNIz%BPQgIv~K79DmcfXt2rjT7q6HJm7$vS2WYVTL1VlUr;$$*g{^++ism)t`D z0`PL4=Vxp6`ewZ*fa~>50C0RSutCQJA~vg>g3e^YBk`J%qrI}Ax4zbFw!+!D-IelK zy|I}q2Mp_8R=QDhWMXvx!2?kke)&s(l=BK1FSm1gRw=4CYa-UqxUQ>=iBc;>Q2@z< zsCqXr&17w(5)GQWCj|ebE=2(^zx&$@%SR6$9(~}!>0P@E zj>dZD^{djAAi@w z_uP3$DN9-H5X1;EDJ0Gy5hH{e&~X-R{G0#r_ckIgH+Dc}CIL!{vJN;NP?D3fCJ{Ab zw$|F@M3cvCi|w}Uy2`-see@8wR?q-RP7MW6Gk2;>qgi+N^w3A%e&X2djGF{>Ju|#6@YGH10F`PCR%GZM@wT*{NOuJJ@sUw37XV* z2;atJ=S{Ta&d0F{f`Cn|9mkrt3>5AN7GJNfx9{>NiSUOaN>uE*c=_{_{)9NT82WsGqg$8~%FN>d59Ad1~@ zZ<^nwo^@TXTib~C?%x0U zi>H6|t*@Rr(skoK=#P+;C5q24oIhV*rM#}kt+wIvaA|gS`p!EK?3|m)xe8-I2LLPs z6KPZ`5garKHGnrREmXU<8LKR08GMC4u>uwm%WMT~65PQIWDc-5mwC&L1YAKEp_I)K zr}W$_3WZX8X8=v436%P&QwFhL7OJ$i)&i5D2uNxOb#vsM@rrja3J9_SRuD}M<=^+N z2Ow(wRD%0^XD%|VMM?g$Bn{v-0gns zV;}p_``%?B0ssLP3rZ=r-0gM)zxBf({_u$>p77laDaFQatCe^QE!C{(p9Ln~0N9`4 z$8p?jHp4K?e@|#Kb@Or@!)*FMZ>`efCEeE}r_;zw!5W?l@R17NSUui7W#E0~$s~6oCi; zR8rOaQ((0Wq7Vt^@0x=|AMv=JugLX=mSh@1sfPZIkL0FL#a3t@JgUL9g~;{Oo;@eq zx9{R{vFtV)s|>nW8tSy#wOUs@nUV3z^DjU1|NA%p>*DH>PyFJ8k3Kr1Rn>92W1~}1 z+uc}gKJon*o`3r6-0*vRZzi_cko{^ixV%=~uz@p@?{@3x>bV_L2M+GN@9^PWJ7!!B zl4f9t(}g<-0xM(y58&tMw z?|by!Z&z@?-O=vm??-@Uvl}ZXmv#2;zvJwgi@A)yd3k%`HMwbc#JDwhQVdv<-%5=>4_`juj) zn=zhWpb_8kr~Qerdiqa4{}icr4Nu9`tdlFz@UZV{XQd$X=jPuydG385*k8MA=l8z- z?bnYT`ITS(2k(3A;NPZ0rpZUDR1GYULkP>&^#F26C6K*$FBJ6;O~QK zx3Ha$e^XfIW(USs2k1eZ{p!H|Q%&Rw*dPcpS%*P)gNAnUyLU}3uQ#52`Uk)Jx!=kZ z+Q0mP_wL(Yj(L6mfvIxV?Y83K{M3K?-7ha+3T7wo^I+P?2?t9ZD;HNcBIPMhtaeaA zsggf<=bqV_v7Ni83OTS0)|!OUC7>BJ0f>eeAO=_r`NXM9sB?wFc+;j8%L-Me*#Y20 z^@T04Ag}KA&Sw$jGv-xT?1R)fyA4>%p-8_CC{nwOztA1?nP1qzr*& zgCP8tV-o>r2FHTKFf}x)Z@XLG(6Q*&_C?oxZ%-mjAc1EAG}8KJZFF|z1CPJ&sV9CM z1#xL|Vtu`u%jZA#(T|Kz40|dGF{F_Yun{(jUID%AXFl`$Pe1k4frI-t);8ie)<_D8 z#Uj%6iV?2&x}=<|Z3(e7!L?PU%bcW8MSMR~tyTfR#$6%@`q|>^B#5pxSYPKV_KG%K z08-#7*tctx<^FcFxwusA?%JuusjaQs*m$11$zim%u+*u|?VKxQhej%s-Bv{F+-(_O zjYU>I_d72fdSv|Z5AB|rQ(CzSThrs&UDJ2G@y5x8%SWBe&<8$psJ?;U`tBFL``vFm z{@BMKdFXw`V%g8=ZnwkIC54VdM5;ghko4>nZg`GceJi&@M6rQi3G4=e)4a61T? zCFAEEPcAQ>|Nav{`r3E@urSiyaYtqMf!vPWe%MmLmLuI-H^+{jI&-AaT+2?5?yau5 zskM#oAlKni+=#~J|$(u((5JJ315 z){5RZeR+K|a;ymjA{I7AScwRW1+;+7f*?KjIw1s7=~dO=CU`nb-$g4 zlF0ZZnr%uD5Tj1KZ`XMFmww?hpZ|(jM=O6`tIgGF$J)?HJB&8NCT3`~6hS#VR2-JD z(y9kR*a6XzH}d2Y=T4ot^u7=7dC$A|7V^Wc<9NQa|G;oA7cVc@S)6-!ADWyFjvcxD zAO83M_iL}d{Ln-1ee}_X$Hqt6Enu+L2x`P$aOA5fW?Oz$y#?o6;SXK2Y`p(kKStj! zYyMWikXwu`*Cur0wSWJqHX&6ij)hT|lsHPi@X`xk{puf`J%4U?Z)x9M<3p3CPzp(_ z*}2J*H{4j^mws~g$#0yfE@Cmav*7I>+C8znRzH97_|ke6Np-qWJ?dme3Um9XcJ7+E z^U&VA4()Vf0kMwLhr*IsBc+oet*e23;pHRsb}W>OVhq8u7;ALWwR`FSz0p0baeTX5 z&t^KC%UA|=tsB6|8ljJ^4n}r*E2GLa?#kAl6CV>s&j(EgFZ%Dm87hKeF1ry#yZ27K|MB-7d*P*KqgJSt|K_j$^3=qLM)CoI-svGy zyW46u8sGWOcQ!XSk+9urWilRfto}?+rjNRIyWMWLi$gDe&~^pee4%~$4A6=yWx3GuM1t-6$Vm_)T3K(TY7F&*tuap`k7^; z-?Z^99Qa!dAy-r?0T2k)H^Y3fu(`SN^fOO<_xoRKbvAbFsT{m_syxx$cW~U#MaxT< zieBDe;k6gff9p?Aw-z#acczlv@8VPt()o)Q&&{6#@;q;3t<`i!-09sr#;1l396GRX z@6HT?MdP}9F#VLI2^qlvkgJ#GSDt$A#d@U^dfquXkajg8G;y1aY$?&|8A(m$2c6dtrw1rTAoHFLlI z=dPy!cPovRKw@qq0J)5B0GdJcfrsxbR;FHk?Tw|0;fcwS^JmW1YPDK*!$xMQz7hnj zI0|gknk`R`W{2FuaNP2j*W2Pdhz3|*d$zu|_`^ruwd=kIXNQJMO2--3X1&JPu+wM- zn;Y%*l`|jx#9d35yO%C4KKtU=UU}`Q0|)QF`>y-P#wHx!V@x%s`$tJk0Hjb^HpqgM zc*wpD3GHpy|Id}W{^!-CXUHoeNkJJ8)Cl(TY>w-`@cauu`ti44KmN?nsPo_>J7#we zd%5oH?or{E31!FRq1HNn;SZj8;YW*cdvvriGm@XnWhTgY$6kAFrMe1A`IUS-0;gP< z+%-BrH8wn)zhm#t@zF|`Iq&Lgh;IOhfI$F+^=5m1ZQTGmq-?}Oj(|>MX6gdQ12egw zmar8fDFwNFcHn#a^+|xhfQ*EYs6hh2Pc^b%wNnJp2#&%iNj$u@%J5#o78Blw`i=kP zH?HyZy(74q;d}chJh+dZRKpE+gMf%hS*Ag(HM$Zrh~sdyy!669|DXP+_dI%! ztI0u9B#CEAGFIoa`Op6TXaD`b`*(#x5ybi#FYI;zM5QwV=_|vecTsM7G(bHDejf%# zBuJNWsZA^NC+Gs&aa*m{CqDl1$*HM6%^fiz-(pV-L;Bm56~g^1k5^9NlRY3~A}#@f zN^1nrj)}1uYIiA)gZ)*Q)C|&(FDDIa?@ZE5pSd zaf7>!Ad@MXh^njMiDOG|9J}xhtmAW2eAhYA6~idf5H6Xmf) zn<%|fgov{BoD7swY?WNV^^xvdnd1*~!=WdSbAxU0Ik|cpyiHezI@mh+zGe{&lhkP`=b0 zpX%Iy-*mgPX=5c(as4tp`K@z5`Tm9KqRM+SQ^Wg}WTQrRWqxUSc{zxq?C?+ra3yG$ zXGdpuP4C<@^`Q^E`@p^(WsmZ`ij6+6t$%nP!fL1EI?n(0JD+>?P0Ox@- zlDIk|1BxK`bX1aCFW3+LTd_jYXMf;&4_@4BhmgL@hnTRjdicPud+**~DLGnL36rF1 ztB8{5y|`LsJwHQA_sgM$(<2&q4hOsGn`zs)@0b>WCrb_@BVcUb#x*T%=^1LLuU_L} zxT?fKdS4^}*9q?1AJ*&q@z$Tl+xoNsKyoeyAP9^YQA%fX{>FOMTJy`F{KUlAum(|y zZkb3LJq0eDz3>Nr@P*6smt5Bsw$QsRgBoFY9rNq!-jS<7Q{47*YhOv~Cb<_M{pd&M zcJAE%1$dq7d7Z@C6_Gs=6aw5@)}=_c015(T9MqcfrNUZu{q&jBt)M$PKH6+FgHBr^ zI$A4nn)P?|a|N)F<=d@Dx_2b9B{>^XIYMWlx86K^885fa-M3IU^os``H0umES zl0fTpy8!6APA20QGDXMLiCg^^r=|aBr~e*c$Xs!W-mIL!w%y;t`)~Y?t6?;};eOt9 z;-RkyRxVe_)t13B8lxQ-T_3cQ3Bs`5Za)3&Q@{KB|MB%Vp5C>$bl?3uD?@R<)I4yg zGBK^!))$KT+2O+OcFlj~>G^Mb{i+8?dY*@XAV9`4r=^v>P;;B#c*SJpx_Cu@34O(E{bpI?w}VTb{vZHG zVL&F}LQXyM(1S%^@7=RYB?2|+AWTGnY?1Kj(IZbh@kBnC8$d<+rsVzWG;oA(D}k?X zNz5$udL2;p^lxr-<+k%xZ+<+|8=MmMyy}(982|# zb~c)|w#k!cjlQ(rsx_rjj2a?^p<<=zxnadX(?FKV0Q*5J`ts*qe)7AoKl13lN8fwL z@Z|0>Z~Ee;6Jujz*=(m!=2|UQdaWBZ3&Z&EyGJfw2$$B5{)hkkr0aP5_usjH|NeXL zxvy9li9>^|w4=06?9WWH3@=rRCXRzJ>U26`u&y1)^E}7Va{C2eS5V#G-nLz*>d$UJ zH^Auof4aOluN=?wGFrP~(4{yl5x3g)mtKDQGxzkQf<&0^S zDy&H)_Mtm;@>u(&XWuw}bTO#;BV$t|G_3Phb@G)h6v=5icKp=Yiwo8tMj!^wKnRx6z>S}FeDl#`yL?3t zye0wUOvcM*9Kfpv@)YG}jkLv*BmofmspWWjBH^iHG5`PqAvg*gr8$mR2ne{B7ps*!U0)&j;``-62US7Ck@6L9!rJeqx z^JgJaFFgvAfG~5r-RjS><*NDnoBWFYva5fM64^)rKnTJh>-)`4{J=f?@409H_kZ}} z6F+|X?n8%d1aG`{V&UASTE|S4$D)>5>I4m2J-=~z{~fy~Gn4szW>KTPReBcLZjuZ zEU$k5iO)a#T;ZFeQ-|(+;IVgqd~#w3kk+mnhGF6&CL*0q2NAWSmFMPiIx#yo#v-R= zQ%P#7|H5Wa-+D{PomZ&%LjM6EEDl!y$XbXw&XqFfFP(bosV852>FIOljvcyd&t3OT zDP12L;ZlXhC$KyWD1};eGoPy*o_p+v-(UXh?|%Qt%cn<5I}Yx87^Q%b<7Kne&5e`i zP6rW}$0sh=H&-^=cieT)%$^-tpB{SPz`Gy0d$I&U3}}E+h_-^M^o|(-7_hookNv`l zvlo~ggBnl^XaNv1y;#Oq@=%a_KYtqfpqz0%&r2$p0L`|)kuU&R`(s{kB9>TK9yi+gqVoxV4^ww_~Y-}zi%&T1>5(~AF8i;=E;Kb+J})m4n23KWY|YU#XtfC z!pvE%eMcF?vBhGk=(x^Cbt5)*WO!7&ey!17TwM!USUFZ3al%G>z0qtqjxH6-3LRt$ z+H390DMu=FoM2=)vwPRX z%=Ga3#{4UQ`#B0 z&I7n-pH8qn^l#Tbx`ij~HW@6q4GF-T?hUv9-oJx4g=H*rQjLL#uIn~C?a0Jo7zR-| zJT%e?gLbDKS)0ve0U?OOT4ViBzV-)y`pwTj`_lKb`RL%`(a~`=G73{WyrEIEZ~s`K zpx2gGr^j~<6=rRx^n>r5`r_}txH?Y-XL4@xz<7DC;16?*C*C-D>fHHe6vwW+)T*@* z=l1W}f7iiGUOo2y`yRUgz{IEv09cJG`e zh;vF4u;Rp5Aw@5;u9tBf6i|S=hs5-5+1n4x^ktl}2f!2bgryKrNCa6d08mdw2SG3~ zLBMq4b6qfZ`}6rT#+CtqtHcJAP8&zvN~x6flrRvX>bZsxAOOc<{QB!hH#ax6;}~Oz z=+Ai7(dW&OB5Q3B1g`7!J!KqGTqdrusj8ujvMy574 zqh`C&Y%Tj4w_{CXJ$UJv>bbME9sA0A_mAz}KU=B{gKCjtFHGZnpIP4;&~Dx%q+_AIo{3>2y~nr$;-Tx`xc?(7w&p%<{#?vroSMgKxf0 zW>3kRo1U8+Dh-8!joB_O9htzOwY3w09bI%z)MG7UtZsIGWoy&xIVBS#1WBzBy&|r$eQUcw&41oR`Yzv z^PKG%Y43t7tyO9uk@_g$pY79!0)i-@5Ih3(2mmB9CaJ{(h!g8md@~sG&th;NIP;W1 ztx(FPLdI8#ENAk^MBZO(2LRgb=1+d|WNmXZlg&m^ptZt5DUY{syS5jU0{|ouo30b4 zl_F+twOXJ(FyXCy#hYlHfQ*UfUwWoYU{l#hjiex_;DLK~<%_wl>ENp5#tNm)RtLh( zjRq?%kup|77PRrji|4zQS{&3zMrMafvz|AUjf>6ha#k~&W>D`gv>KN#EnYs~K7Y2o zcmK#e_s)6_x!U1)ZRgH%*o}g&Z8vPUL#?*$v^K=j)cC}XsTntuTUcB_b@J@dmtX31 ztn20OfAHN?lQVnv?3tLD7#$tgNSS<2tR?O}yDXG=|K9ZJcx#w@D)n{!;Whz7`o^}s zFTK{TuK&;58q5=WdQN8did?M~V7J|AQHLCL`tpU7Cr+L@bLPyMGqvi*(D3lcSoxzL z`}yj|Nx^1$*qxfl60KH-ojZo67ne637_w2N)+`-=Y3Y04e17TD=AHXK5;Ssoe>CT1 z*ixfeU0qsQx^&sZA7X7h!Yk1VWIb2EFYp#|3i_8PjiK%Ba{Wc2Me>@6h{JYB>hNhXuc zWgL_gM zfr3b`=LkbDE7I>i7L@{!Fp6G3c1$}CTYE)8`Jc_4YwLiK63dRa{UIT_QMN4(yIC(| z2tpHjq*)+{i~-oQb42*O4XHUjGz?VLLioIiW<=#izDUpjy1y)zFyynn~|zD{^q$92>J z`drTW-dw3s?_9jFB(@qwwR+Qzj}J{u-qCH_^|i+OTI-dUfAkV)L?l$Rv$OZybN_=6 zK2XRO$416UKm>(ZSOB-Gf3Y`bVHvo!g8}{8exX<2o2|YrK-{xK8w}#xJ}U%Q60jLS zuE@y`eo=3Z-}4$9utLXv8Jlcn#e1JkDrlHZWY7qS<2gRLu6EWpHs|N(*Egz9J^%F5 z>dMCYa%{RgW+!(&FhdH;W$s3&N5-S!k)e^{Y_Z^Iof8hK)pnt{XE=N4^&^Xa@Vif( zcyXoRPge?imoDLCrIL5^Vr6-K?fj+l^Gk~);Fd<4h+Rib?3$b0HJmT|xdOfGvAYlK zpK&lIwh9y>XcQ7f0)UKwAj}AWHo;iLg3)mF^riV~GeRe?d}d3e0f=o3Dw(qnUe2G= zY@Gp_1QI?B3HYw(xsY%yh$%I;08mP6^|KKGQ4)p(BPflYU>pmJN&PTxKddKBUoQj= zI=I}a;47!fiFTU`?sgoxiM~R361(1km0to|vx}tkt zt6d!)l7uzkK<^z0BEFwlTU#rXOCuvAr%#Um z9M!eIGRMn^>hXxvaoM_bmjx^n?Jbr-S7YC;{57R z-kW*s;bTXRtu3rCZ`Ovg#i9I2rxn(_L2a|u=pGv?lxAk9CP#;6_Z_NlR+kqSmaF7s zhr>9w(pg#TzHxf~>6hD2KHq)h{vETWcxJRTJTw#QPNkCX#?8FvjE_y$nrn@AePg}d zY%W;I`i1;lIlpt?*!_>}Yt*9E>Sm+SSg&6A;nNp?@Z+zD!Ah|*Ju$au&%TL?>3k-e z%jJv3Vm6!eJP#R|5kyzlH(Zr*UB`8Nu|8;nT@tJS5;mljsmtLHB)G+OPATBFlyjFrk$ zBf0wy-!oKk4Of}#**r{5XPqqM3dM|*vym)c+?X1l9UGoR!%x1r@Y<1YzW&ms)-vSs z`?WKk&rVgG%&@Xyr+I#1;moD^7~RMjiM8r7I-}my+*oBKuiR*SsPLip-GBd~19<=i zp@V>8RnO8ORVD{c3tx~jsM{>8aG~1%qwhU)b~O-HuGK^38Bo~ zPjycP+OO3&w{?qwS~8GDwSX`VK9Ye&o*K_H5ljY6L+U)FXt=TwwMwAr?RsX#ZUaTBgap^ z_Qt78ODp^D*+0H(dhx>2nd4`dH#R3nrt*d1xZSO`HzV6_ha2mw<+;hJawflT#~rgX zdoI^%>)m>-vtey_EMEzN<}1%^zVZA;6`XzFyAHnpgAdQ`9ILK%fiyUtV3f_1SMVk# zODujEV51RLtDCj@nsC7{W_FYms!Gr;bUIO^8FbqwXa{HJUwiJgAGaFaY_>E!G%`Is zJv1~rIX*f(G&(agJ3Ks59vfnd#z>c~vZyr@xddR00aA|ANK)P0002@75djra$~+Mf z5u0`fLJ%RP06>^ip;`rfEEq*voi12}o_k^<0t!95X<@O6&!>opDAJk)5F!&;7Icw` z0vpF-i;wW1x z43CZOKRh=zy05l0pK(pbuPTgo>?*o`u23K^BNnOIt}CXA(LKZYJA6I->InMZ4Cz&OxG0(BvMN2t2mE0ULXING|{9SM_DnJ1%Rnn2nq;^fDhbS66h~L za3_*PM?c}C5C9Slj97T_(xs=Lc`BdZ64~vWzNfeDEv)~pCBsbsK!j({o^^b$SS-dS zK6mb%5k7eEU=VbJASmSXZ{rmhoS+Q)toHw!%t-q0OO;cF2@}pPY6V0vJz4NF_l%8= zJ%9Ab6VJckvob$WPgc4DSfDoss{ z=i2^I$7{5!8_iV@Kq=4j$0G4xdfB{u^heWk#fKi+vvbero_({Z8V;2;wnYRiyRIpf zBwHv=Td3FT?M}Vf4BDN@&E~zVH#F{vln{nmO{v$~t#-V$P;IwcFC2Zj)9$#wavbfs z8Lj*sbNhye#wRD|Mk^!b^04cAnM~Go-ApFqx^BjIT%y9n(7@&5eke*;;(!3qXg5Fv zz>q+$mmu4qtqsY5-vD2={r;eR?@tHR+U1%2L$w_x~ zq&!ye%ftE6Zp$>5&a8FX^;WHo7K>gklUwOj1L{m7H2{#jC55}U-VnucD6$C^ z@6GS$XE(U_7RfAti8s3HYd#17FoFeuIP9D}apK(BvkvLO&-U=mx0$ypk}_6&-|u#V zfAA0f!2=IGu(+`J^fS*KJ$7_{eqMx4Y_qu>NZfO20N4`#?eFB8O5bw*FYTY&wV%5b zK-)g=P+|crf)XSbvD4*=ic=}i4UJc3_V0N0jg#lkUT|`_|DHW#(<4hu>#GYZ$Z^(n zvyNA{anNXOhV65!%VU+{-P1b?x$NxNWTWL5T-}Y^-KZVMtn_%N-D-tvaqOHr`NG_; z%G{3OiD`dkN4`*|%22UX@bY=F99r&L=}yn)+nr9M-syJYZkxNI?F7v@ju35mxKJ4K zOq`k9Q;s8KOU$;_ZU$l8Zg<1LF4s=aub+AT$dlH92_%!r6^q48Hls*oGMPf5kjZ*G zckk|>excMKVyRpn0ZD`S_{6xdpnw618=EXh0wMxJ0E7Z00L+wN?#x!i_HWJBTAi0x zmjKeVe;Bp9-B!KT>~_2L`eqbG-6)QtsMBf1aTpnnqR3hUDK5{k349l`8Q0C?0}st< z#g2oHmP#oT+m?x2v0dwS=1T=NJCQ9E3L`^BO7Cq%+RNulg4AquAuxG+=g=WOld6kX9pu{SP>{mW-X=JxRp6`bO0l@3WPq8?zlMN##<&iZk zniBP!pPCR*+KbmNa?@wI|YOU6d;r6!P@|g2nqy&5I8pG$g8hzu5T8KMH;A8R$D~X zZP1yBz18DD0sz||Cbo;2wA-CeeBu-T?4SL!(TPbQ`ddp&-~ImgzW%kZojh}TVruHH z!-oMK#u$1^0lm*|Wihtq5dcYWzOH7_VD50RLc4#Y2qXfyy$&QzD}e%Q#fqqcr;G&x zm>MsPj^8ytHS)BtUVPxuENN(r}$ zP!S-q0H^lDEFuWDx6k#>YVZ1Tv)xK=978P7MY76u6j7;EBBhk09Ty$fXrC2f24G@* zy#LwBu_A#XvLZ1`3}O{pQif$^tdbcX%4hRM$1$3Wqpj9@Bsbb>(J-d49^kUG~ahxq=XPvxHp)XC(^YgBkZEQBrU6@CW-EOt!iEXi z&HMM=yJu)@lzeS5dhD?W?>>BBY}mH|WlsY@AjUx^L_$h+3Z?%95+hmA0$>5!7L^c6z;)eU|MkB=Iy$<(vNAF;F)}gnH~;qE ze*gR5|LT#~yiDe?#~+jUyt3B*X@62O&g`#>+H5G>kN4g}Xt!-fFfx)&{d||_xkwrSkYr+t6KxVCx_fMQ&%4}|hccwtaTEYpV*mght&|b$vP6_7a)T5i zU`t#DiAh+YRSsl*ozG`8IrQ^oQifCvHWolqj&fYBaw{7)>rG}nui3JV8XtY_!mF13}IJ~x#OEl8)q*sR5v#_yMZMR;;03oD&k)h() z*l1y*Or9McFFx?VqkDGjm>A9wfC5%Pj))RWGF(?bYm6kl$Zi0bV7(5nzW#<4rJRg4 z$bgQUje$UVN{}LN0~7YGizT^RoJ%z36w~In<$Y|OB{__Gt$iTv?Lod zNhY(g8FjbKjI7Q2S6iFOOx+qAsU?lIwWQHTN+dxNB(Vs@QdOuz?fYJp`^&d}TP*JP z&JT}>7w_fEL;@%P391}riSK=@hll(1>-U~}jwlfYQL|e`{GOezXjgX$0Pgv~y&w9> zN5CfSWe~ryvDxqSj-NVx{M4-g3O_5u-fXIJbfvpw&8@)29Pv*1Y(DHKdp(;xWL1>&hsj4b?3SmIxBGu&5twXNM zR(ZTL2Py!ndgjcs*2L$a=BT5p61j5Q6}0M%Lb~IYKTVzW0(kr$cUsG76<9d(&BKKWus}7#{Ow zlIIu~>2%vvrCYnSeevA-t1q8hzcSw5P}Y;>yzgk3n#5W=$cB9y(v)^~#&2AF`^v`7 z<&BNpWAVt5nN-s6RZhczY)ZYuOG_tKrsZ~TapA7}&ivFzKdA5)B~%T_AYQqU#@t

$y^Hyp_w*95Z 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 diff --git a/apps/admin/build/src/assets/images/login-background.jpg b/apps/admin/build/src/assets/images/login-background.jpg deleted file mode 100644 index 3e68486f2b6238b8c37ede9a581a5c501465f7e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89379 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 z 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 diff --git a/apps/admin/build/src/assets/images/logo.png b/apps/admin/build/src/assets/images/logo.png deleted file mode 100644 index 848e03950bc3eeba48ea8d86acbeba60c2ea6b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11266 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 HEk6Dq!_X9& diff --git a/apps/admin/build/src/assets/images/logo_name.png b/apps/admin/build/src/assets/images/logo_name.png deleted file mode 100644 index ff85108a4f3bad6dc1c2e1a99358a73e6505d9c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5866 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 diff --git a/apps/admin/build/src/assets/images/name_white.png b/apps/admin/build/src/assets/images/name_white.png deleted file mode 100644 index 2c25ebcdb27f3e680944bd508e65cde1224d6721..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5080 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

- - logo - logo - -
- ) -} - -export default AppLogo diff --git a/apps/admin/build/src/components/AppLogo/src/app-logo.module.less b/apps/admin/build/src/components/AppLogo/src/app-logo.module.less deleted file mode 100644 index 56186de7..00000000 --- a/apps/admin/build/src/components/AppLogo/src/app-logo.module.less +++ /dev/null @@ -1,24 +0,0 @@ -.app-logo { - display: flex; - align-items: center; - height: 48px; - padding-left: 24px; - cursor: pointer; - transition: all 0.3s ease; - - .logo-img { - display: block; - width: 32px; - height: 32px; - } - - .logo-name { - display: block; - width: 120px; - height: 15px; - - &.hidden { - display: none; - } - } -} diff --git a/apps/admin/build/src/components/LazyLoad/index.ts b/apps/admin/build/src/components/LazyLoad/index.ts deleted file mode 100644 index 6e954097..00000000 --- a/apps/admin/build/src/components/LazyLoad/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import LazyLoad from './src/LazyLoad' - -export { LazyLoad } \ No newline at end of file diff --git a/apps/admin/build/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/build/src/components/LazyLoad/src/LazyLoad.tsx deleted file mode 100644 index 06b6e887..00000000 --- a/apps/admin/build/src/components/LazyLoad/src/LazyLoad.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { ReactNode, Suspense, LazyExoticComponent } from 'react' -import { Spin } from 'antd' - -/** - * @description 路由懒加载 - * @param {Element} Component 需要访问的组件 - * @returns element - */ -const LazyLoad = (Component: LazyExoticComponent): ReactNode => { - return ( - - } - > - - - ) -} - -export default LazyLoad diff --git a/apps/admin/build/src/components/Page/index.ts b/apps/admin/build/src/components/Page/index.ts deleted file mode 100644 index 908eda9c..00000000 --- a/apps/admin/build/src/components/Page/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import PageWrapper from './src/PageWrapper' - -export { PageWrapper } \ No newline at end of file diff --git a/apps/admin/build/src/components/Page/src/PageWrapper.tsx b/apps/admin/build/src/components/Page/src/PageWrapper.tsx deleted file mode 100644 index 14edb8c3..00000000 --- a/apps/admin/build/src/components/Page/src/PageWrapper.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { Button } from 'antd' -import { openWindow } from '@/utils' -import SvgIcon from '@/components/SvgIcon' -import compoStyle from './compo.module.less' - -interface PluginProp { - name?: string - desc?: string - url?: string -} - -interface PageProp { - plugin: PluginProp - children: JSX.Element -} - -const PageWrapper = (props: PageProp) => { - - function openGithub() { - openWindow(props.plugin?.url!) - } - - return ( -
-
-
- - {props.plugin?.name} -
-

{props.plugin?.desc}

-

- github源码: - -

-
-
- {props.children} -
-
- ) -} - -export default PageWrapper \ No newline at end of file diff --git a/apps/admin/build/src/components/Page/src/compo.module.less b/apps/admin/build/src/components/Page/src/compo.module.less deleted file mode 100644 index 4bab958e..00000000 --- a/apps/admin/build/src/components/Page/src/compo.module.less +++ /dev/null @@ -1,26 +0,0 @@ -.compo_page-wrapper { - - .page-header { - width: 100%; - min-height: 48px; - padding: 16px 24px; - margin-bottom: 12px; - background: #fff; - box-sizing: border-box; - - &-name { - margin-bottom: 4px; - font-size: 16px; - font-weight: 600; - - svg { - margin-right: 6px; - } - } - - } - - .page-content { - min-height: 420px - } -} \ No newline at end of file diff --git a/apps/admin/build/src/components/SvgIcon/index.module.less b/apps/admin/build/src/components/SvgIcon/index.module.less deleted file mode 100644 index 88e9ca7c..00000000 --- a/apps/admin/build/src/components/SvgIcon/index.module.less +++ /dev/null @@ -1,6 +0,0 @@ -.svg-icon { - display: inline-block; - vertical-align: -0.15em; - fill: currentColor; - overflow: hidden; -} \ No newline at end of file diff --git a/apps/admin/build/src/components/SvgIcon/index.tsx b/apps/admin/build/src/components/SvgIcon/index.tsx deleted file mode 100644 index 8e6e52d6..00000000 --- a/apps/admin/build/src/components/SvgIcon/index.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { SvgIconProp } from './types' -import styles from './index.module.less' - -export default function SvgIcon({ - name, - prefix = 'icon', - size = 16, - style -} : SvgIconProp) { - const symbolId = `#${prefix}-${name}` - const iconStyle = { - width: `${size}px`, - height: `${size}px`, - ...style - } - - return ( - - ) -} \ No newline at end of file diff --git a/apps/admin/build/src/components/SvgIcon/types.ts b/apps/admin/build/src/components/SvgIcon/types.ts deleted file mode 100644 index 3402cee0..00000000 --- a/apps/admin/build/src/components/SvgIcon/types.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface SvgIconProp { - name: string - prefix?: string - size?: number, - style?: React.CSSProperties -} \ No newline at end of file diff --git a/apps/admin/build/src/components/Upload/index.ts b/apps/admin/build/src/components/Upload/index.ts deleted file mode 100644 index f96de6ae..00000000 --- a/apps/admin/build/src/components/Upload/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import UploadImage from './src/UploadImage' - -export { UploadImage } \ No newline at end of file diff --git a/apps/admin/build/src/components/Upload/src/UploadImage.tsx b/apps/admin/build/src/components/Upload/src/UploadImage.tsx deleted file mode 100644 index d629cbfe..00000000 --- a/apps/admin/build/src/components/Upload/src/UploadImage.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import { FC } from 'react' -import type { UploadChangeParam } from 'antd/es/upload' -import { Upload, Button, message } from 'antd' - -interface propState { - onSuccess: (data: any) => void -} - -const UploadImage: FC = ({ onSuccess }) => { - - const handleChange = (imageFile: UploadChangeParam) => { - const { file } = imageFile - const rawImage = file.originFileObj - - if (!rawImage) return - if (!/\.(jpg|png|bmp|jpeg|webp)$/.test(rawImage.name)) { - message.warning('图片只支持.jpg, .png, .bmp, .jpeg, .webp格式!') - return - } - - const isLimit1M = rawImage.size / 1024 /1024 < 5 - if (!isLimit1M) { - message.warning('上传的图片大小不能超过5M!') - return - } - - readImage(rawImage) - } - - const readImage = (image: any) => { - const reader = new FileReader() - reader.onload = e => { - const data = e.target && e.target.result as any - // Convert Array Buffer to blob if it is base64 - const result = typeof data === 'object' ? window.URL.createObjectURL(new Blob([data])) : data - onSuccess(result) - } - // Convert to base64 - reader.readAsDataURL(image) - // Convert to blob - // reader.readAsArrayBuffer(image) - reader.onerror = () => { - message.error('图片读取出错!') - } - } - - return ( - - - - ) -} - -export default UploadImage \ No newline at end of file diff --git a/apps/admin/build/src/design/antd.less b/apps/admin/build/src/design/antd.less deleted file mode 100644 index e3d87392..00000000 --- a/apps/admin/build/src/design/antd.less +++ /dev/null @@ -1,35 +0,0 @@ -.ant-menu { - - &.ant-menu-dark { - background: @primary-dark-bg !important; - - .ant-menu-sub { - background: @submenu-dark-bg !important; - } - } -} - -.ant-menu-inline { - svg +span { - margin-inline-start: 4px; - } -} - -.ant-layout-header { - padding: 0 !important; -} - -.ant-table-thead { - - .sub-title { - font-size: 12px; - color: rgba(0, 0, 0, .4); - } -} - -.ant-layout-sider { - - &-dark { - background: @primary-dark-bg !important; - } -} \ No newline at end of file diff --git a/apps/admin/build/src/design/index.less b/apps/admin/build/src/design/index.less deleted file mode 100644 index 0ffd18db..00000000 --- a/apps/admin/build/src/design/index.less +++ /dev/null @@ -1,102 +0,0 @@ -@import './antd.less'; -@import './variable/index.less'; -@import './public.less'; -@import './scroll-bar.less'; - -// CSS resets -* { - padding: 0; - margin: 0; -} - -ul,li { - list-style: none; -} - -p { - margin: 0!important; -} - -a, -a:focus, -a:hover { - cursor: pointer; - color: inherit; - outline: none; - text-decoration: none; -} - -html { - height: 100%; - line-height: 1.15; - -webkit-text-size-adjust: 100%; - box-sizing: border-box; - - &.color-weak { - filter: invert(80%); - } - - &.gray-mode { - filter: grayscale(100%); - filter: progid:dximagetransform.microsoft.basicimage(grayscale=1); - } -} - -body { - height: 100%; - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - text-rendering: optimizeLegibility; - font-family: Microsoft YaHei,Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Arial, sans-serif; - font-size: 14px; - color: #222; -} - -img { - width: 100%; - height: 100%; - max-width: none; - border-style: none; -} - -pre { - font-family: Consolas,Menlo,Courier,monospace; -} - -.fr { - float: right; -} - -.fl { - float: left; -} - -.clear-fix { - &:before, - &:after { - content: ''; - display: table; - clear: both; - } -} - -.flex-center-v { - display: flex; - align-items: center; -} - -.flex-center-h { - display: flex; - justify-content: center; -} - -.flex-center { - display: flex; - align-items: center; - justify-content: center; -} - -.flex-between-h { - display: flex; - justify-content: space-between; -} \ No newline at end of file diff --git a/apps/admin/build/src/design/public.less b/apps/admin/build/src/design/public.less deleted file mode 100644 index a82afe60..00000000 --- a/apps/admin/build/src/design/public.less +++ /dev/null @@ -1,23 +0,0 @@ -// html -span.icon-btn { - display: flex; - align-items: center; - cursor: pointer; - margin-left: 10px; -} - -.ant-upload-drag { - height: auto!important; -} - -.list-upload { - .ant-upload { - width: 100% !important; - } - - .ant-btn { - display: block; - margin: 0 auto 8px; - } -} - diff --git a/apps/admin/build/src/design/scroll-bar.less b/apps/admin/build/src/design/scroll-bar.less deleted file mode 100644 index ead950d2..00000000 --- a/apps/admin/build/src/design/scroll-bar.less +++ /dev/null @@ -1,29 +0,0 @@ -// Customize the scroll-bar style -&::-webkit-scrollbar-track-piece { - background-color: rgba(0, 0, 0, 0); - border-left: 1px solid rgba(0, 0, 0, 0); -} - -&::-webkit-scrollbar { - width: 6px; - height: 6px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -&::-webkit-scrollbar-thumb { - background-color: rgba(0, 0, 0, 0.2); - background-clip: padding-box; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - min-height: 28px; -} - -&::-webkit-scrollbar-thumb:hover { - background-color: rgba(0, 0, 0, 0.3); - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} diff --git a/apps/admin/build/src/design/variable/color.less b/apps/admin/build/src/design/variable/color.less deleted file mode 100644 index 8b41df9f..00000000 --- a/apps/admin/build/src/design/variable/color.less +++ /dev/null @@ -1,5 +0,0 @@ -@white: #fff; -@primary-color: #1890ff; - -@primary-dark-bg: #263238; -@submenu-dark-bg: #202b30; \ No newline at end of file diff --git a/apps/admin/build/src/design/variable/index.less b/apps/admin/build/src/design/variable/index.less deleted file mode 100644 index 2462f65e..00000000 --- a/apps/admin/build/src/design/variable/index.less +++ /dev/null @@ -1,5 +0,0 @@ -@import './color.less'; - -@namespace: v-desg; - -@layout-hybrid-sider-fixed-z-index: 550; diff --git a/apps/admin/build/src/enums/appEnum.ts b/apps/admin/build/src/enums/appEnum.ts deleted file mode 100644 index 6eda1b60..00000000 --- a/apps/admin/build/src/enums/appEnum.ts +++ /dev/null @@ -1,32 +0,0 @@ -export const SIDE_BAR_MIN_WIDTH = 48 -export const SIDE_BAR_SHOW_TITLE_MIN_WIDTH = 80 - -// App mode enum -export enum AppModeEnum { - DARK = 'dark', - LIGHT = 'light' -} - -// Menu theme enum -export enum ThemeEnum { - DARK = 'dark', - LIGHT = 'light' -} - -// Page switching animation -export enum PageTransitionEnum { - FADE = 'fade', - FADE_SIDE = 'fade-slide', - FADE_BOTTOM = 'fade-bottom', - FADE_SCALE = 'fade-scale', - ZOOM_FADE = 'zoom-fade', - ZOOM_OUT = 'zoom-out' -} - -// Permission mode -export enum PermissionModeEnum { - // Route mapping - MAPPING = 'MAPPING', - // The back-end response - BACKEND = 'BACKEND' -} diff --git a/apps/admin/build/src/enums/cacheEnum.ts b/apps/admin/build/src/enums/cacheEnum.ts deleted file mode 100644 index c7c740e5..00000000 --- a/apps/admin/build/src/enums/cacheEnum.ts +++ /dev/null @@ -1,18 +0,0 @@ -export const TOKEN_KEY = 'TOKEN_KEY' - -export const LOCALE_KEY = 'LOCALE_KEY' - -export const USER_INFO_KEY = 'USER_INFO_KEY' - -export const APP_CONFIG_KEY = 'APP_CONFIG_KEY' - -export const APP_TAGS_KEY = 'APP_TAGS_KEY' - -export const APP_LOCAL_CACHE_KEY = 'APP_LOCAL_CACHE_KEY' - -export const APP_SESSION_CACHE_KEY = 'APP_SESSION_CACHE_KEY' - -export enum CacheTypeEnum { - SESSION, - LOCAL, -} \ No newline at end of file diff --git a/apps/admin/build/src/enums/exceptionEnum.ts b/apps/admin/build/src/enums/exceptionEnum.ts deleted file mode 100644 index 47d048ec..00000000 --- a/apps/admin/build/src/enums/exceptionEnum.ts +++ /dev/null @@ -1,10 +0,0 @@ -export enum ExceptionEnum { - // page not access - PAGE_NOT_ACCESS = 403, - - // page not found - PAGE_NOT_FOUND = 404, - - // server error - SERVER_ERROR = 500 -} diff --git a/apps/admin/build/src/enums/menuEnum.ts b/apps/admin/build/src/enums/menuEnum.ts deleted file mode 100644 index 55b00de9..00000000 --- a/apps/admin/build/src/enums/menuEnum.ts +++ /dev/null @@ -1,26 +0,0 @@ -// Menu types -export enum MenuTypeEnum { - SIDER_MENU = 'sider-menu', - - HEADER_MENU = 'header-menu', - - HYBRID_MENU = 'hybrid-menu' -} - -// Menu modes -export enum MenuModeEnum { - VERTICAL = 'vertical', - - HORIZONTAL = 'horizontal', - - INLINE = 'inline' -} - -// Menu folding button location -export enum MenuFoldBtnEnum { - NONE = 'none', - - HEADER = 'header', - - SIDER = 'sider' -} diff --git a/apps/admin/build/src/enums/tagsEnum.ts b/apps/admin/build/src/enums/tagsEnum.ts deleted file mode 100644 index 0cbfdfab..00000000 --- a/apps/admin/build/src/enums/tagsEnum.ts +++ /dev/null @@ -1,8 +0,0 @@ -export enum TagActionEnum { - REFRESH, - CLOSE, - CLOSE_LEFT, - CLOSE_RIGHT, - CLOSE_OTHER, - CLOSE_ALL -} diff --git a/apps/admin/build/src/hooks/web/useECharts.ts b/apps/admin/build/src/hooks/web/useECharts.ts deleted file mode 100644 index ef6f8369..00000000 --- a/apps/admin/build/src/hooks/web/useECharts.ts +++ /dev/null @@ -1,75 +0,0 @@ -import type { EChartsOption } from 'echarts' -import { useRef, useEffect } from 'react' -import { useDebounceFn } from 'ahooks' -import echarts from '@/utils/echarts' - -export function useECharts( - options: EChartsOption, - loading: boolean = true, - theme: 'light' | 'dark' | 'default' = 'default' -) { - - const chartRef = useRef(null) - let chartInstance: echarts.ECharts | null = null - - const { run: resizeFn } = useDebounceFn( - () => { - chartInstance?.resize() - }, - { wait: 200 } - ) - - useEffect(() => { - initCharts() - - return () => { - disposeCharts() - } - }, []) - - useEffect(() => { - if (loading) return - setOptions(options) - - return () => { - disposeCharts() - } - }, [loading, options]) - - const initCharts = (t = theme) => { - const el = chartRef?.current - if (!el) return - - chartInstance = echarts.init(el, t) - - window.addEventListener('resize', resizeFn) - } - - const setOptions = (options: EChartsOption) => { - if (!chartInstance) { - initCharts() - - if (!chartInstance) return - } - - chartInstance?.clear() - - chartInstance?.setOption(options) - } - - const disposeCharts = () => { - if (!chartInstance) return - window.removeEventListener('resize', resizeFn) - chartInstance.dispose() - chartInstance = null - } - - const getInstance = (): echarts.ECharts | null => { - if (!chartInstance) { - initCharts() - } - return chartInstance - } - - return { chartRef, getInstance } -} \ No newline at end of file diff --git a/apps/admin/build/src/hooks/web/useMessage.tsx b/apps/admin/build/src/hooks/web/useMessage.tsx deleted file mode 100644 index c2461fc3..00000000 --- a/apps/admin/build/src/hooks/web/useMessage.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import type { ModalFuncProps } from 'antd' -import { Modal, message as Message } from 'antd' -import { InfoCircleFilled, CheckCircleFilled, CloseCircleFilled } from '@ant-design/icons' - -import { isString } from '@/utils/is' - -export interface ModalOptionsEx extends Omit { - iconType: 'success' | 'info' | 'warning' | 'error' -} - -function getIcon(iconType: string) { - if (iconType === 'warning') { - return - } else if (iconType === 'success') { - return - } else if (iconType === 'info') { - return - } else { - return - } -} - -function renderContent({ content }: Pick) { - if (isString(content)) { - // @ts-ignore - return
${content as string}
`}> - } else { - return content - } -} - -// Create confirmation box -function createConfirm(options: ModalOptionsEx) { - const iconType = options.iconType || 'warning' - Reflect.deleteProperty(options, 'iconType') - - const opt: ModalFuncProps = { - centered: true, - icon: getIcon(iconType), - content: renderContent(options), - okText: '确定', - cancelText: '取消', - ...options - } - - return Modal.confirm(opt) -} - -export function useMessage() { - return { - createMessage: Message, - createConfirm - } -} diff --git a/apps/admin/build/src/hooks/web/useTitle.ts b/apps/admin/build/src/hooks/web/useTitle.ts deleted file mode 100644 index b8839455..00000000 --- a/apps/admin/build/src/hooks/web/useTitle.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { useState, useEffect } from 'react' -import { useLocation } from 'react-router-dom' -import { useTitle as usePageTitle } from 'ahooks' -import { searchRoute } from '@/utils' -import { basicRoutes } from '@/router' - -// 监听页面变化和动态改变网站标题 -export function useTitle() { - const [pageTitle, setPageTitle] = useState('react-admin-design') - const { pathname } = useLocation() - - useEffect(() => { - const currRoute = searchRoute(pathname, basicRoutes) - setPageTitle(currRoute?.meta.title) - }, [pathname]) - - usePageTitle(pageTitle) -} diff --git a/apps/admin/build/src/layout/feature/components/DocLink.tsx b/apps/admin/build/src/layout/feature/components/DocLink.tsx deleted file mode 100644 index 470d23d3..00000000 --- a/apps/admin/build/src/layout/feature/components/DocLink.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { Tooltip } from 'antd' -import SvgIcon from '@/components/SvgIcon' - -export default function DocLink() { - return ( - - - - - - ) -} \ No newline at end of file diff --git a/apps/admin/build/src/layout/feature/components/FullScreen.tsx b/apps/admin/build/src/layout/feature/components/FullScreen.tsx deleted file mode 100644 index a9de3727..00000000 --- a/apps/admin/build/src/layout/feature/components/FullScreen.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { Tooltip } from 'antd' -import { useFullscreen } from 'ahooks' -import SvgIcon from '@/components/SvgIcon' - -export default function FullScreen() { - const [isFullscreen, { toggleFullscreen }] = useFullscreen(document.body) - - return ( - - - {!isFullscreen ? : } - - - ) -} diff --git a/apps/admin/build/src/layout/feature/components/GithubLink.tsx b/apps/admin/build/src/layout/feature/components/GithubLink.tsx deleted file mode 100644 index d98fdc91..00000000 --- a/apps/admin/build/src/layout/feature/components/GithubLink.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { Tooltip } from 'antd' -import { openWindow } from '@/utils' -import SvgIcon from '@/components/SvgIcon' - -export default function GithubLink() { - function openGithub () { - openWindow('https://github.com/baimingxuan/react-admin-design') - } - - return ( - - - - - - ) -} \ No newline at end of file diff --git a/apps/admin/build/src/layout/feature/components/UserDropdown.tsx b/apps/admin/build/src/layout/feature/components/UserDropdown.tsx deleted file mode 100644 index 1ef9b3d5..00000000 --- a/apps/admin/build/src/layout/feature/components/UserDropdown.tsx +++ /dev/null @@ -1,98 +0,0 @@ -import type { MenuProps } from 'antd' -import { Space, Dropdown } from 'antd' -import { LockOutlined, PoweroffOutlined } from '@ant-design/icons' -import { useNavigate } from 'react-router-dom' -import { getAuthCache, clearAuthCache } from '@/utils/auth' -import { TOKEN_KEY } from '@/enums/cacheEnum' -import { useAppDispatch, useAppSelector } from '@/stores' -import { useMessage } from '@/hooks/web/useMessage' -import { logoutApi } from '@/api' -import { resetState } from '@/stores/modules/user' -import headerImg from '@/assets/images/avatar.jpeg' - -export default function UserDropdown() { - const items: MenuProps['items'] = [ - { - key: 'lock', - label: ( - - - 锁定屏幕 - - ) - }, - { - key: 'logout', - label: ( - - - 退出登录 - - ) - } - ] - - const onClick: MenuProps['onClick'] = ({ key }) => { - switch (key) { - case 'lock': - handleLock() - break - case 'logout': - handleLogout() - break - } - } - - const navigate = useNavigate() - - const dispatch = useAppDispatch() - const { token } = useAppSelector(state => state.user) - const getToken = (): string => { - return token || getAuthCache(TOKEN_KEY) - } - - const handleLock = () => {} - - const handleLogout = () => { - const { createConfirm } = useMessage() - - createConfirm({ - iconType: 'warning', - title: 温馨提醒, - content: 是否确认退出系统?, - onOk: async () => { - await logoutAction(true) - } - }) - } - - const logoutAction = async (goLogin = false) => { - if (getToken()) { - try { - await logoutApi() - } catch (error) { - const { createMessage } = useMessage() - createMessage.error('注销失败!') - } - } - dispatch(resetState()) - clearAuthCache() - goLogin && navigate('/login') - } - - return ( - - - - - - ) -} diff --git a/apps/admin/build/src/layout/feature/components/index.ts b/apps/admin/build/src/layout/feature/components/index.ts deleted file mode 100644 index 5443d3ba..00000000 --- a/apps/admin/build/src/layout/feature/components/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import FullScreen from './FullScreen' -import DocLink from './DocLink' -import GithubLink from './GithubLink' -import UserDropdown from './UserDropdown' - -export { FullScreen, DocLink, GithubLink, UserDropdown } \ No newline at end of file diff --git a/apps/admin/build/src/layout/feature/index.module.less b/apps/admin/build/src/layout/feature/index.module.less deleted file mode 100644 index a5236973..00000000 --- a/apps/admin/build/src/layout/feature/index.module.less +++ /dev/null @@ -1,19 +0,0 @@ -.layout_feature { - display: flex; - align-items: center; - justify-content: space-between; - min-width: 210px; - height: 48px; - - &-main { - display: flex; - justify-content: right; - min-width: 156px; - } - - &-divider { - height: 50%; - margin: 0; - border-color: rgba(0, 0, 0, .3); - } -} \ No newline at end of file diff --git a/apps/admin/build/src/layout/feature/index.tsx b/apps/admin/build/src/layout/feature/index.tsx deleted file mode 100644 index 34771010..00000000 --- a/apps/admin/build/src/layout/feature/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { Divider } from 'antd' -import { FullScreen, DocLink, GithubLink, UserDropdown } from './components' -import moduleStyle from './index.module.less' - -export default function LayoutFeature() { - const prefixCls = 'layout_feature' - - return ( -
-
- {/* */} - - {/* */} - - -
- - -
- ) -} \ No newline at end of file diff --git a/apps/admin/build/src/layout/header/components/Breadcrumb.tsx b/apps/admin/build/src/layout/header/components/Breadcrumb.tsx deleted file mode 100644 index 086212a2..00000000 --- a/apps/admin/build/src/layout/header/components/Breadcrumb.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { useState, useEffect } from 'react' -import { Breadcrumb } from 'antd' -import { useLocation, matchRoutes } from 'react-router-dom' -import { useAppSelector } from '@/stores' -import SvgIcon from '@/components/SvgIcon' - -export default function LayoutBreadcrumb() { - const [breadcrumbs, setBreadcrumbs] = useState([]) - const { pathname } = useLocation() - const getMenuList = useAppSelector(state => state.menu.menuList) - - useEffect(() => { - const matchRouteList = matchRoutes(getMenuList, pathname) || [] - const breadcrumbList = matchRouteList.map((item: any) => { - const { name, icon = '' } = item?.route - return { - title: ( - <> - {icon && } - {name} - - ) - } - }) - setBreadcrumbs(breadcrumbList) - }, [pathname]) - - return ( -
- -
- ) -} diff --git a/apps/admin/build/src/layout/header/components/FoldTrigger/index.module.less b/apps/admin/build/src/layout/header/components/FoldTrigger/index.module.less deleted file mode 100644 index 37bfa791..00000000 --- a/apps/admin/build/src/layout/header/components/FoldTrigger/index.module.less +++ /dev/null @@ -1,14 +0,0 @@ -.compo_fold-trigger { - display: flex; - align-items: center; - cursor: pointer; - - &.unfold { - - svg { - transform: scaleX(-1); - transition: transform 0.2s; - } - } - -} diff --git a/apps/admin/build/src/layout/header/components/FoldTrigger/index.tsx b/apps/admin/build/src/layout/header/components/FoldTrigger/index.tsx deleted file mode 100644 index 67d57685..00000000 --- a/apps/admin/build/src/layout/header/components/FoldTrigger/index.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { useAppSelector, useAppDispatch } from '@/stores' -import { setAppConfig } from '@/stores/modules/app' -import SvgIcon from '@/components/SvgIcon' -import style from './index.module.less' -import classNames from 'classnames' - -export default function FoldTrigger() { - const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) - const dispatch = useAppDispatch() - - function toggledMenuFold() { - dispatch(setAppConfig({ menuSetting: { menuFold: !getMenuFold } })) - } - - return ( - - - - ) -} diff --git a/apps/admin/build/src/layout/header/components/index.ts b/apps/admin/build/src/layout/header/components/index.ts deleted file mode 100644 index 5bd547de..00000000 --- a/apps/admin/build/src/layout/header/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import FoldTrigger from './FoldTrigger' -import Breadcrumb from './Breadcrumb' - -export { FoldTrigger, Breadcrumb } \ No newline at end of file diff --git a/apps/admin/build/src/layout/header/index.tsx b/apps/admin/build/src/layout/header/index.tsx deleted file mode 100644 index ca0ad5da..00000000 --- a/apps/admin/build/src/layout/header/index.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Layout } from 'antd' -import { Breadcrumb, FoldTrigger } from './components' -import LayoutFeature from '../feature' -import LayoutTags from '../tags' - -const LayoutHeader = (props: any) => { - const { Header } = Layout - - return ( -
-
-
- - -
- -
- -
- ) -} - -export default LayoutHeader diff --git a/apps/admin/build/src/layout/index.less b/apps/admin/build/src/layout/index.less deleted file mode 100644 index 344a5fbc..00000000 --- a/apps/admin/build/src/layout/index.less +++ /dev/null @@ -1,14 +0,0 @@ -.layout_wrapper { - display: flex; - width: 100%; - height: 100vh; - overflow-x: hidden; - - .ant-layout-content { - height: calc(100vh - 48px); - box-sizing: border-box; - flex: 1; - padding: 12px; - overflow-x: hidden; - } -} \ No newline at end of file diff --git a/apps/admin/build/src/layout/index.tsx b/apps/admin/build/src/layout/index.tsx deleted file mode 100644 index f84110bb..00000000 --- a/apps/admin/build/src/layout/index.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import { Layout } from 'antd' -import { Outlet } from 'react-router-dom' -import LayoutMenu from './menu' -import LayoutHeader from './header' -import { AppLogo } from '@/components/AppLogo' -import './index.less' -import { useTitle } from '@/hooks/web/useTitle' -import { useAppSelector } from '@/stores' -import ErrorBoundary from 'antd/es/alert/ErrorBoundary' - -export const BasicLayout = (props: any) => { - useTitle() - const { Sider, Content } = Layout - - const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) - - return ( - - - - - - - - - - - - - - - ) -} diff --git a/apps/admin/build/src/layout/menu/index.tsx b/apps/admin/build/src/layout/menu/index.tsx deleted file mode 100644 index d25df59c..00000000 --- a/apps/admin/build/src/layout/menu/index.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import type { MenuProps } from 'antd' -import React, { useState, useEffect } from 'react' -import { useNavigate, useLocation } from 'react-router-dom' -import { connect } from 'react-redux' -import { Menu, Spin } from 'antd' -import { getAsyncMenus } from '@/router/menus' -import { AppMenu } from '@/router/types' -import { setMenuList } from '@/stores/modules/menu' -import { getOpenKeys } from '@/utils/helper/menuHelper' -import SvgIcon from '@/components/SvgIcon' - -type MenuItem = Required['items'][number] - -const getItem = ( - label: React.ReactNode, - key: React.Key, - icon?: React.ReactNode, - children?: MenuItem[], - type?: 'group' -): MenuItem => { - return { - label, - key, - icon, - children, - type - } as MenuItem -} - -const LayoutMenu = (props: any) => { - const { pathname } = useLocation() - const { setMenuList: setMenuListAction } = props - const [loading, setLoading] = useState(false) - const [menuList, setMenuList] = useState([]) - const [openKeys, setOpenKeys] = useState([]) - const [selectedKeys, setSelectedKeys] = useState([pathname]) - - useEffect(() => { - setSelectedKeys([pathname]) - - setOpenKeys(getOpenKeys(pathname)) - }, [pathname]) - - const addIcon = (icon?: string) => { - if (!icon) return null - return ( - - - - ) - } - - const getMenuItem = (data: AppMenu[], list: MenuItem[] = []) => { - data.forEach((item: AppMenu) => { - if (!item?.children?.length) { - return list.push(getItem(item.name, item.path, addIcon(item.icon))) - } - list.push(getItem(item.name, item.path, addIcon(item.icon), getMenuItem(item.children))) - }) - return list - } - - const getMenuList = async () => { - setLoading(true) - try { - const menus = await getAsyncMenus() - setMenuList(getMenuItem(menus)) - setMenuListAction(menus) - } finally { - setLoading(false) - } - } - - useEffect(() => { - getMenuList() - }, []) - - const handleOpenChange: MenuProps['onOpenChange'] = (keys: string[]) => { - if (keys.length === 0 || keys.length === 1) return setOpenKeys(keys) - const latestKey = keys[keys.length - 1] - if (latestKey.includes(keys[0])) return setOpenKeys(keys) - setOpenKeys([latestKey]) - } - - const navigate = useNavigate() - const handleMenuClick: MenuProps['onClick'] = ({ key }: { key: string }) => { - navigate(key) - } - - return ( -
- - - -
- ) -} - -const mapStateToProps = (state: any) => state.menu -const mapDispatchToProps = { setMenuList } - -export default connect(mapStateToProps, mapDispatchToProps)(LayoutMenu) diff --git a/apps/admin/build/src/layout/tags/components/TagItem/index.module.less b/apps/admin/build/src/layout/tags/components/TagItem/index.module.less deleted file mode 100644 index d31f9e2a..00000000 --- a/apps/admin/build/src/layout/tags/components/TagItem/index.module.less +++ /dev/null @@ -1,47 +0,0 @@ -.compo_tag-item { - display: inline-block; - vertical-align: top; - height: 24px; - margin: 0 2px; - padding: 0 8px; - border-radius: 3px; - line-height: 24px; - color: #555; - background: #fff; - overflow: hidden; - cursor: pointer; - - &__dot { - display: inline-block; - vertical-align: baseline; - width: 8px; - height: 8px; - margin-right: 6px; - border-radius: 50%; - background: #dcdee0; - } - - &__name { - font-size: 12px; - } - - :global .anticon-close { - vertical-align: baseline; - svg { - width: 8px; - height: 8px; - } - } - - &.active { - border: none; - color: #fff; - background: #1890ff; - & .compo_tag-item__dot{ - background: #fff; - } - :global .anticon-close { - color: #fff; - } - } -} diff --git a/apps/admin/build/src/layout/tags/components/TagItem/index.tsx b/apps/admin/build/src/layout/tags/components/TagItem/index.tsx deleted file mode 100644 index 56388f06..00000000 --- a/apps/admin/build/src/layout/tags/components/TagItem/index.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import { FC } from 'react' -import { Tag } from 'antd' -import classNames from 'classnames' -import styles from './index.module.less' - -interface PropState { - name: string - fixed?: boolean - active?: boolean - closeTag: () => void - onClick: () => void -} - -const TagItem: FC = ({ name, fixed, active, closeTag, onClick }) => { - return ( - - - {name} - - ) -} - -export default TagItem diff --git a/apps/admin/build/src/layout/tags/components/index.ts b/apps/admin/build/src/layout/tags/components/index.ts deleted file mode 100644 index 49acc629..00000000 --- a/apps/admin/build/src/layout/tags/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import TagItem from './TagItem' - -export { TagItem } diff --git a/apps/admin/build/src/layout/tags/index.module.less b/apps/admin/build/src/layout/tags/index.module.less deleted file mode 100644 index bb034ad6..00000000 --- a/apps/admin/build/src/layout/tags/index.module.less +++ /dev/null @@ -1,30 +0,0 @@ -.layout_tags { - z-index: 299; - display: flex; - justify-content: space-between; - height: 32px; - padding: 4px 12px; - line-height: 32px; - // border-top: dashed 1px #d9d9d9; - box-sizing: border-box; - - &__main { - position: relative; - width: calc(100% - 116px); - height: 24px; - overflow: hidden; - - &-body { - position: absolute; - height: 100%; - padding: 0 2px; - overflow: visible; - white-space: nowrap; - transition: left .5s ease; - } - } - - &__btn-space { - margin-left: 4px; - } -} diff --git a/apps/admin/build/src/layout/tags/index.tsx b/apps/admin/build/src/layout/tags/index.tsx deleted file mode 100644 index fa41a72a..00000000 --- a/apps/admin/build/src/layout/tags/index.tsx +++ /dev/null @@ -1,210 +0,0 @@ -import type { MenuProps } from 'antd' -import type { RouteObject } from '@/router/types' -import { FC, WheelEvent, useState, useEffect, useRef } from 'react' -import { Button, Dropdown } from 'antd' -import { LeftOutlined, RightOutlined, RedoOutlined, CloseOutlined } from '@ant-design/icons' -import { useLocation, useNavigate } from 'react-router-dom' -import { TagItem } from './components' -import { basicRoutes } from '@/router' -import { useAppSelector, useAppDispatch } from '@/stores' -import { addVisitedTags } from '@/stores/modules/tags' -import { searchRoute } from '@/utils' -import { closeAllTags, closeTagByKey, closeTagsByType } from '@/stores/modules/tags' -import classNames from 'classnames' -import styles from './index.module.less' - -const LayoutTags: FC = () => { - const items: MenuProps['items'] = [ - { key: 'left', label: '关闭左侧' }, - { key: 'right', label: '关闭右侧' }, - { key: 'other', label: '关闭其它' }, - { key: 'all', label: '关闭所有' } - ] - - const onClick: MenuProps['onClick'] = ({ key }) => { - if (key === 'all') { - // @ts-ignore - dispatch(closeAllTags()).then(({ payload }) => { - const lastTag = payload.slice(-1)[0] - if (activeTag !== lastTag?.fullPath) { - navigate(lastTag?.fullPath) - } - }) - } else { - dispatch(closeTagsByType({ type: key, path: activeTag })) - } - } - - const tagsMain = useRef(null) - const tagsMainBody = useRef(null) - - const [tagsBodyLeft, setTagsBodyLeft] = useState(0) - - const { pathname } = useLocation() - const navigate = useNavigate() - const visitedTags = useAppSelector(state => state.tags.visitedTags) - const dispatch = useAppDispatch() - - const [activeTag, setActiveTag] = useState(pathname) - - useEffect(() => { - const affixTags = initAffixTags(basicRoutes) - for (const tag of affixTags) { - dispatch(addVisitedTags(tag)) - } - }, []) - - useEffect(() => { - const currRoute = searchRoute(pathname, basicRoutes) - if (currRoute) { - dispatch(addVisitedTags(currRoute)) - } - setActiveTag(pathname) - }, [pathname]) - - useEffect(() => { - const tagNodeList = tagsMainBody.current?.childNodes as unknown as Array - const activeTagNode = Array.from(tagNodeList).find(item => item.dataset.path === activeTag)! - moveToActiveTag(activeTagNode) - }, [activeTag]) - - const initAffixTags = (routes: RouteObject[], basePath: string = '/') => { - let affixTags: RouteObject[] = [] - - for (const route of routes) { - if (route.meta?.affix) { - const fullPath = route.path!.startsWith('/') ? route.path : basePath + route.path - affixTags.push({ - ...route, - path: fullPath - }) - } - if (route.children && route.children.length) { - affixTags = affixTags.concat(initAffixTags(route.children, route.path)) - } - } - - return affixTags - } - - const moveToActiveTag = (tag: any) => { - let leftOffset: number = 0 - const mainBodyPadding = 4 - const mainWidth = tagsMain.current?.offsetWidth! - const mainBodyWidth = tagsMainBody.current?.offsetWidth! - if (mainBodyWidth < mainWidth) { - leftOffset = 0 - } else if (tag?.offsetLeft! < -tagsBodyLeft) { - // 标签在可视区域左侧 (The active tag on the left side of the layout_tags-main) - leftOffset = -tag?.offsetLeft! + mainBodyPadding - } else if (tag?.offsetLeft! > -tagsBodyLeft && tag?.offsetLeft! + tag?.offsetWidth! < -tagsBodyLeft + mainWidth) { - // 标签在可视区域 (The active tag on the layout_tags-main) - leftOffset = Math.min(0, mainWidth - tag?.offsetWidth! - tag?.offsetLeft! - mainBodyPadding) - } else { - // 标签在可视区域右侧 (The active tag on the right side of the layout_tags-main) - leftOffset = -(tag?.offsetLeft! - (mainWidth - mainBodyPadding - tag?.offsetWidth!)) - } - setTagsBodyLeft(leftOffset) - } - - const handleMove = (offset: number) => { - let leftOffset: number = 0 - const mainWidth = tagsMain.current?.offsetWidth! - const mainBodyWidth = tagsMainBody.current?.offsetWidth! - - if (offset > 0) { - leftOffset = Math.min(0, tagsBodyLeft + offset) - } else { - if (mainWidth < mainBodyWidth) { - if (tagsBodyLeft >= -(mainBodyWidth - mainWidth)) { - leftOffset = Math.max(tagsBodyLeft + offset, mainWidth - mainBodyWidth) - } - } else { - leftOffset = 0 - } - } - setTagsBodyLeft(leftOffset) - } - - const handleScroll = (e: WheelEvent) => { - const type = e.type - let distance: number = 0 - - if (type === 'wheel') { - distance = e.deltaY ? e.deltaY * 2 : -(e.detail || 0) * 2 - } - - handleMove(distance) - } - - const handleCloseTag = (path: string) => { - // @ts-ignore - dispatch(closeTagByKey(path)).then(({ payload }) => { - let currTag: RouteObject = {} - const { tagIndex, tagsList } = payload - const tagLen = tagsList.length - if (path === activeTag) { - if (tagIndex <= tagLen - 1) { - currTag = tagsList[tagIndex] - } else { - currTag = tagsList[tagLen - 1] - } - navigate(currTag?.fullPath!) - } - }) - } - - const handleClickTag = (path: string) => { - setActiveTag(path) - navigate(path) - } - - const handleReload = () => {} - - return ( -
-
- ) -} - -export default LayoutTags diff --git a/apps/admin/build/src/main.tsx b/apps/admin/build/src/main.tsx deleted file mode 100644 index 39e49e1e..00000000 --- a/apps/admin/build/src/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import { Provider } from 'react-redux' -import { PersistGate } from 'redux-persist/integration/react' -import { store, persistor } from './stores' -import App from './App' -import '@/design/index.less' - -// register svg icon -import 'virtual:svg-icons-register' - -ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( - - - - - - - -) diff --git a/apps/admin/build/src/router/guard/guardRoute.tsx b/apps/admin/build/src/router/guard/guardRoute.tsx deleted file mode 100644 index 4ea774b2..00000000 --- a/apps/admin/build/src/router/guard/guardRoute.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { ReactNode } from 'react' -import { Navigate, useLocation } from 'react-router-dom' -import { getAuthCache } from '@/utils/auth' -import { TOKEN_KEY } from '@/enums/cacheEnum' -import { useAppSelector } from '@/stores' - -export const GuardRoute = ({ children }: { children: ReactNode }) => { - const whiteList: string[] = ['/', '/home', '/login'] - const { pathname } = useLocation() - const { token } = useAppSelector(state => state.user) - const getToken = (): string => { - return token || getAuthCache(TOKEN_KEY) - } - - if (!getToken()) { - if (whiteList.includes(pathname)) { - return - } else { - return - } - } - - return children -} diff --git a/apps/admin/build/src/router/guard/index.tsx b/apps/admin/build/src/router/guard/index.tsx deleted file mode 100644 index 70db9087..00000000 --- a/apps/admin/build/src/router/guard/index.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { BasicLayout } from '@/layout' -import { GuardRoute } from './guardRoute' - -export const LayoutGuard = () => { - return ( - - - - ) -} diff --git a/apps/admin/build/src/router/helpers/index.ts b/apps/admin/build/src/router/helpers/index.ts deleted file mode 100644 index c4d890e4..00000000 --- a/apps/admin/build/src/router/helpers/index.ts +++ /dev/null @@ -1,63 +0,0 @@ -import type { RouteObject, AppMenu } from '../types' -import { cloneDeep } from 'lodash-es' -import { isUrl } from '@/utils/is' -import { treeMap } from '@/utils/helper/treeHelper' - -export function joinParentPath(menus: AppMenu[], parentPath = '') { - for (let index = 0; index < menus.length; index++) { - const menu = menus[index] - // Note that nested paths that start with / will be treated as a root path. - if (!(menu.path.startsWith('/') || isUrl(menu.path))) { - // Path doesn't start with /, nor is it a url, join parent path - menu.path = `${parentPath}/${menu.path}` - } - if (menu?.children?.length) { - joinParentPath(menu.children, menu.path) - } - } -} - -export function transformRouteToMenu(routes: RouteObject[]) { - const cloneRoutes = cloneDeep(routes) - const routeList: RouteObject[] = [] - - cloneRoutes.forEach(item => { - if (item.meta!.hideChildrenInMenu) { - item.children = [] - } - - routeList.push(item) - }) - - const list = treeMap(routeList, { - conversion: (node: RouteObject) => { - const { meta: { title, hideMenu = false, ...rest } = {} } = node - - return { - ...(rest || {}), - name: title, - hideMenu, - path: node.path - } - } - }) as AppMenu[] - - joinParentPath(list) - return cloneDeep(list) -} - -export function genFullPath(routes: RouteObject[], parentPath = '') { - for (let index = 0; index < routes.length; index++) { - const route = routes[index] - - if (route.path!.startsWith('/')) { - route.fullPath = route.path - } else { - route.fullPath = `${parentPath}/${route.path}` - } - - if (route?.children?.length) { - genFullPath(route.children, route.fullPath) - } - } -} diff --git a/apps/admin/build/src/router/index.tsx b/apps/admin/build/src/router/index.tsx deleted file mode 100644 index 49769255..00000000 --- a/apps/admin/build/src/router/index.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { RouteObject } from './types' -import { Navigate, createHashRouter, redirect } from 'react-router-dom' -import { genFullPath } from './helpers' -import { ExceptionEnum } from '@/enums/exceptionEnum' -import { getAuthCache } from '@/utils/auth' -import { TOKEN_KEY } from '@/enums/cacheEnum' -import LoginPage from '@/views/login' -import PageException from '@/views/exception' - -const metaRoutes = import.meta.glob('./routes/*.tsx', { eager: true }) as Recordable - -const routeList: RouteObject[] = [] - -Object.keys(metaRoutes).forEach(key => { - const module = metaRoutes[key].default || {} - const moduleList = Array.isArray(module) ? [...module] : [module] - genFullPath(moduleList) - routeList.push(...moduleList) -}) - -const rootRoutes: RouteObject[] = [ - { - path: '/', - element: - }, - { - path: '/login', - element: , - meta: { - title: '登录页', - key: 'login' - }, - loader: () => { - if (getAuthCache(TOKEN_KEY)) { - return redirect('/') - } - return null - } - }, - ...routeList, - { - path: '*', - element: - }, - { - path: '/403', - element: , - loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: false }) - }, - { - path: '/404', - element: , - loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: false }) - } -] - -export { routeList as basicRoutes } - -export default createHashRouter(rootRoutes) diff --git a/apps/admin/build/src/router/menus/index.ts b/apps/admin/build/src/router/menus/index.ts deleted file mode 100644 index b49b4c26..00000000 --- a/apps/admin/build/src/router/menus/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { AppMenu } from '../types' -import { basicRoutes } from '..' -import { transformRouteToMenu } from '../helpers' - -// Get async menus -export async function getAsyncMenus(): Promise { - const staticMenus = transformRouteToMenu(basicRoutes) - staticMenus.sort((a, b) => { - return (a?.orderNo || staticMenus.length) - (b?.orderNo || staticMenus.length) - }) - - return staticMenus.filter((item) => !item.hideMenu) -} diff --git a/apps/admin/build/src/router/routes/compo.tsx b/apps/admin/build/src/router/routes/compo.tsx deleted file mode 100644 index 049b716e..00000000 --- a/apps/admin/build/src/router/routes/compo.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' - -// component module page -const CompoRoute: RouteObject = { - path: '/compo', - element: , - meta: { - title: '组件', - icon: 'compo', - orderNo: 6 - }, - children: [ - { - path: 'image-upload', - element: LazyLoad(lazy(() => import('@/views/compo/image-upload'))), - meta: { - title: '图片上传', - key: 'imageUpload' - } - }, - { - path: 'drag', - meta: { - title: '拖拽' - }, - children: [ - { - path: 'drag-list', - element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-list'))), - meta: { - title: '列表拖拽', - key: 'dragList' - } - }, - { - path: 'drag-resize', - element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-resize'))), - meta: { - title: '组件拖拽', - key: 'dragResize' - } - } - ] - }, - { - path: 'transfer', - element: LazyLoad(lazy(() => import('@/views/compo/transfer'))), - meta: { - title: '穿梭框' - } - }, - { - path: 'count-up', - element: LazyLoad(lazy(() => import('@/views/compo/count-up'))), - meta: { - title: '数字滚动', - key: 'countUp' - } - } - ] -} - -export default CompoRoute diff --git a/apps/admin/build/src/router/routes/excel.tsx b/apps/admin/build/src/router/routes/excel.tsx deleted file mode 100644 index f4442649..00000000 --- a/apps/admin/build/src/router/routes/excel.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' - -// excel module page -const ExcelRoute: RouteObject = { - path: '/excel', - element: , - meta: { - title: 'Excel', - icon: 'excel', - orderNo: 10 - }, - children: [ - { - path: 'export-excel', - element: LazyLoad(lazy(() => import('@/views/excel/export-excel'))), - meta: { - title: '导出Excel', - key: 'exportExcel' - } - }, - { - path: 'import-excel', - element: LazyLoad(lazy(() => import('@/views/excel/import-excel'))), - meta: { - title: '导入Excel', - key: 'importExcel' - } - } - ] -} - -export default ExcelRoute diff --git a/apps/admin/build/src/router/routes/exception.tsx b/apps/admin/build/src/router/routes/exception.tsx deleted file mode 100644 index 0e62ee68..00000000 --- a/apps/admin/build/src/router/routes/exception.tsx +++ /dev/null @@ -1,47 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { ExceptionEnum } from '@/enums/exceptionEnum' -import { LazyLoad } from '@/components/LazyLoad' - -// exception module page -const ExceptionRoute: RouteObject = { - path: '/exception', - element: , - meta: { - title: '异常页面', - icon: 'bug', - orderNo: 11 - }, - children: [ - { - path: 'page-403', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '403页面', - key: 'page403' - }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }) - }, - { - path: 'page-404', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '404页面', - key: 'page404' - }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }) - }, - { - path: 'page-500', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '500页面', - key: 'page500' - }, - loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }) - } - ] -} - -export default ExceptionRoute diff --git a/apps/admin/build/src/router/routes/form.tsx b/apps/admin/build/src/router/routes/form.tsx deleted file mode 100644 index 7417fd67..00000000 --- a/apps/admin/build/src/router/routes/form.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' - -// form module page -const FormRoute: RouteObject = { - path: '/form', - element: , - meta: { - title: '表单', - icon: 'form', - orderNo: 2 - }, - children: [ - { - path: 'basic-form', - element: LazyLoad(lazy(() => import('@/views/form/basic-form'))), - meta: { - title: '基础表单', - key: 'basicForm' - } - }, - { - path: 'form-designer', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '表单设计器', - key: 'formDesigner' - } - }, - { - path: 'gbeata-form', - element: LazyLoad(lazy(() => import('@/views/form/gbeata-form'))), - meta: { - title: 'gbeata表单', - key: 'gbeataForm' - } - } - ] -} - -export default FormRoute diff --git a/apps/admin/build/src/router/routes/graph-editor.tsx b/apps/admin/build/src/router/routes/graph-editor.tsx deleted file mode 100644 index 26e3cd53..00000000 --- a/apps/admin/build/src/router/routes/graph-editor.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' - -// graph-editor module page -const GraphEditorRoute: RouteObject = { - path: '/graph-editor', - element: , - meta: { - title: '图形编辑器', - icon: 'flow', - orderNo: 8 - }, - children: [ - { - path: 'flow-chart', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '流程图', - key: 'flowChart' - } - }, - { - path: 'mind-chart', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '思维导图', - key: 'mindChart' - } - } - ] -} - -export default GraphEditorRoute diff --git a/apps/admin/build/src/router/routes/home.tsx b/apps/admin/build/src/router/routes/home.tsx deleted file mode 100644 index c7861110..00000000 --- a/apps/admin/build/src/router/routes/home.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import Home from '@/views/home' - -// Home route -const HomeRoute: RouteObject = { - path: '/home', - element: , - meta: { - title: '首页', - icon: 'home', - affix: true, - orderNo: 1, - hideChildrenInMenu: true - }, - children: [ - { - path: '', - element: , - meta: { - title: '首页', - key: 'home', - icon: 'home', - orderNo: 1, - hideMenu: true - } - } - ] -} - -export default HomeRoute diff --git a/apps/admin/build/src/router/routes/images.tsx b/apps/admin/build/src/router/routes/images.tsx deleted file mode 100644 index e41c795d..00000000 --- a/apps/admin/build/src/router/routes/images.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' - -// image module page -const ImageRoute: RouteObject = { - path: '/image', - element: , - meta: { - title: '图片处理', - icon: 'image', - orderNo: 4 - }, - children: [ - { - path: 'image-cropper', - element: LazyLoad(lazy(() => import('@/views/image/image-cropper'))), - meta: { - title: '图片裁剪', - key: 'imageCropper' - } - }, - { - path: 'image-compress', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '图片压缩', - key: 'imageCompress' - } - }, - { - path: 'image-composition', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '图片合成', - key: 'imageComposition' - } - } - ] -} - -export default ImageRoute diff --git a/apps/admin/build/src/router/routes/table.tsx b/apps/admin/build/src/router/routes/table.tsx deleted file mode 100644 index a925331e..00000000 --- a/apps/admin/build/src/router/routes/table.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' - -// table module page -const TableRoute: RouteObject = { - path: '/table', - element: , - meta: { - title: '表格', - icon: 'table', - orderNo: 3 - }, - children: [ - { - path: 'table-basic', - element: LazyLoad(lazy(() => import('@/views/table/table-basic'))), - meta: { - title: '基础表格', - key: 'tableBasic' - } - }, - { - path: 'table-edit-row', - element: LazyLoad(lazy(() => import('@/views/table/table-edit-row'))), - meta: { - title: '可编辑行表格', - key: 'tableEditRow' - } - } - ] -} - -export default TableRoute diff --git a/apps/admin/build/src/router/routes/text-editor.tsx b/apps/admin/build/src/router/routes/text-editor.tsx deleted file mode 100644 index 0ac9ec13..00000000 --- a/apps/admin/build/src/router/routes/text-editor.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' - -// text-editor module page -const TextEditorRoute: RouteObject = { - path: '/editor', - element: , - meta: { - title: '文本编辑器', - icon: 'editor', - orderNo: 7 - }, - children: [ - { - path: 'markdown', - element: LazyLoad(lazy(() => import('@/views/editor/markdown'))), - meta: { - title: 'Markdown编辑器', - key: 'markdown' - } - }, - { - path: 'rich-text', - element: LazyLoad(lazy(() => import('@/views/editor/rich-text'))), - meta: { - title: '富文本编辑器', - key: 'richText' - } - }, - { - path: 'code-editor', - element: LazyLoad(lazy(() => import('@/views/editor/code-mirror'))), - meta: { - title: '代码编辑器', - key: 'codeEditor' - } - } - ] -} - -export default TextEditorRoute diff --git a/apps/admin/build/src/router/routes/tree.tsx b/apps/admin/build/src/router/routes/tree.tsx deleted file mode 100644 index 3a6cf422..00000000 --- a/apps/admin/build/src/router/routes/tree.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' - -// tree module page -const TreeRoute: RouteObject = { - path: '/tree', - element: , - meta: { - title: '树形结构', - icon: 'tree', - orderNo: 9 - }, - children: [ - { - path: 'org-tree', - element: LazyLoad(lazy(() => import('@/views/tree/org-tree'))), - meta: { - title: '组织树', - key: 'orgTree' - } - }, - { - path: 'antd-tree', - element: LazyLoad(lazy(() => import('@/views/tree/antd-tree'))), - meta: { - title: '控件树', - key: 'antdTree' - } - } - ] -} - -export default TreeRoute diff --git a/apps/admin/build/src/router/routes/video.tsx b/apps/admin/build/src/router/routes/video.tsx deleted file mode 100644 index d2d78697..00000000 --- a/apps/admin/build/src/router/routes/video.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' - -// video module page -const VideoRoute: RouteObject = { - path: '/video', - element: , - meta: { - title: '视频处理', - icon: 'video', - orderNo: 5 - }, - children: [ - { - path: 'video-player', - element: LazyLoad(lazy(() => import('@/views/video/video-player'))), - meta: { - title: '视频播放器', - key: 'videoPlayer' - } - }, - { - path: 'video-mark', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '视频水印', - key: 'videoMark' - } - } - ] -} - -export default VideoRoute diff --git a/apps/admin/build/src/router/types.ts b/apps/admin/build/src/router/types.ts deleted file mode 100644 index 90bfb8d7..00000000 --- a/apps/admin/build/src/router/types.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { ReactNode } from 'react' -import { LoaderFunction } from 'react-router-dom' - -export interface MetaProps { - title: string - key?: string - icon?: string - affix?: boolean - keepAlive?: boolean - orderNo?: number - hideMenu?: boolean - hideChildrenInMenu?: boolean -} - -export interface RouteObject { - id?: string - loader?: LoaderFunction - element?: ReactNode - path?: string - fullPath?: string - children?: RouteObject[] - index?: false - meta?: MetaProps -} - -export interface AppMenu { - name: string - path: string - children?: AppMenu[] - disabled?: boolean - icon?: string - affix?: boolean - orderNo?: number - hideMenu?: boolean - hideChildrenInMenu?: boolean - hideBreadcrumb?: boolean -} diff --git a/apps/admin/build/src/settings/appBaseSetting.ts b/apps/admin/build/src/settings/appBaseSetting.ts deleted file mode 100644 index e550ff45..00000000 --- a/apps/admin/build/src/settings/appBaseSetting.ts +++ /dev/null @@ -1,78 +0,0 @@ -import type { AppConfig } from '@/types/config' -import { MenuTypeEnum, MenuModeEnum, MenuFoldBtnEnum } from '@/enums/menuEnum' -import { ThemeEnum, PageTransitionEnum, PermissionModeEnum } from '@/enums/appEnum' -import { CacheTypeEnum } from '@/enums/cacheEnum' - -export const appSetting: AppConfig = { - // Theme color - themeColor: '#1890ff', - // Permission-related cache is stored in sessionStorage or localStorage - permissionCacheType: CacheTypeEnum.LOCAL, - // Header configuration - headerSetting: { - // Show breadCrumb - showBreadCrumb: true, - // Show tags - showTags: true, - // Show search - showSearch: true, - // Turn on full screen - showFullScreen: true, - // Show locale - showLocale: false, - // Show document button - showDoc: false, - // Show github button - showGithub: true - }, - // Menu configuration - menuSetting: { - // Menu type - menuType: MenuTypeEnum.SIDER_MENU, - // Menu mode - menuMode: MenuModeEnum.INLINE, - // Menu theme - menuTheme: ThemeEnum.DARK, - // Menu split - menuSplit: false, - // Menu can drag - menuCanDrag: false, - // Menu collapse - menuFold: false, - // Menu collapse type - menuFoldBtn: MenuFoldBtnEnum.HEADER, - // Whether to display the menu name when folding the menu - menuFoldShowTitle: false, - // Menu width - menuWidth: 210, - // Hydrid sider menu fixed - menuFixed: false, - // Hybrid mode sider menu hidden - menuHidden: false - }, - // Transition settings - transitionSetting: { - // Whether to open the top progress bar - openNProgress: false, - // Whether to open page switching loading - openPageLoading: false, - // Whether to open the page switching animation - openTransition: true, - // Page basic switching animation - basicTransition: PageTransitionEnum.FADE - }, - // Permission mode - permissionMode: PermissionModeEnum.MAPPING, - // Whether tags cached - tagsCached: false, - // Route keepAlive - openKeepAlive: true, - // Lock screen time - lockScreenTime: 0, - // Whether to show the global footer - showFooter: false, - // Whether to turn on the color weak mode - colorWeak: false, - // Whether to turn on the gray mode - grayMode: false -} diff --git a/apps/admin/build/src/settings/designSetting.ts b/apps/admin/build/src/settings/designSetting.ts deleted file mode 100644 index 009a8539..00000000 --- a/apps/admin/build/src/settings/designSetting.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { AppModeEnum } from '@/enums/appEnum' - -// app mode -export const baseAppMode = AppModeEnum.LIGHT - -// app theme color -export const APP_THEME_COLOR_LIST = [ - { - name: '拂晓蓝', - color: '#1765AE' - }, - { - name: '薄暮', - color: '#A71A1F' - }, - { - name: '火山', - color: '#AE3E17' - }, - { - name: '日暮', - color: '#B8831B' - }, - { - name: '明青', - color: '#269491' - }, - { - name: '极光绿', - color: '#509827' - }, - { - name: '极客蓝', - color: '#20389A' - }, - { - name: '酱紫', - color: '#60339A' - } -] diff --git a/apps/admin/build/src/settings/encryptionSetting.ts b/apps/admin/build/src/settings/encryptionSetting.ts deleted file mode 100644 index 17459dc3..00000000 --- a/apps/admin/build/src/settings/encryptionSetting.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { isDevMode } from '@/utils/env' - -// System default cache time, in seconds -export const DEFAULT_CACHE_TIME = 60 * 60 * 24 * 7 - -// aes encryption key -export const cacheCipher = { - key: '_11111000001111@', - iv: '@11111000001111_' -} - -// Whether the system cache is encrypted using aes -export const enableStorageEncryption = !isDevMode() diff --git a/apps/admin/build/src/settings/websiteSetting.ts b/apps/admin/build/src/settings/websiteSetting.ts deleted file mode 100644 index 16acc09f..00000000 --- a/apps/admin/build/src/settings/websiteSetting.ts +++ /dev/null @@ -1,151 +0,0 @@ -// Github repo url -export const GITHUB_URL = 'https://github.com/baimingxuan/vue3-admin-design' - -// Form component -export const FORM_COMPO = { - name: 'Form表单', - url: 'https://www.antdv.com/components/form', - desc: 'ant-design-form: 使用 ant-design 的 form 组件, 可用以收集、校验和提交数据等操作。' -} - -// Form-create plugin -export const FORM_CREATE_DESIGNER = { - name: 'Form表单设计器', - url: 'https://github.com/xaboy/form-create-designer/tree/next', - desc: 'form-create-designer: 一个通过拖拽的方式快速创建表单的设计器组件, 能提高开发者对表单的开发效率, 节省开发者的时间。' -} - -// Table component -export const TABLE_COMPO = { - name: 'Table表格', - url: 'https://ant-design.antgroup.com/components/table', - desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行相关操作。' -} - -// Table edit component -export const TABLE_EDIT_COMPO = { - name: 'Table表格(可编辑行)', - url: 'https://ant-design.antgroup.com/components/table', - desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行行数据编辑操作。' -} - -// Tree component -export const TREE_COMPO = { - name: 'Tree树形控件', - url: 'https://ant-design.antgroup.com/components/tree', - desc: 'ant-design-tree: 基于Ant-Design的Tree组件, 可以完整展现其中的层级关系, 并具有展开收起选择等交互功能。' -} - -// Transfer component -export const TRANSFER_COMPO = { - name: 'Transfer穿梭框', - url: 'https://ant-design.antgroup.com/components/transfer', - desc: 'ant-design-transfer: 使用 ant-design 的 transfer 组件, 可用于对列表数据进行选中、取消等操作。' -} - -// Upload component -export const UPLOAD_COMPO = { - name: 'Upload图片上传组件', - url: 'https://antdv.com/components/upload', - desc: 'ant-design-upload: 使用 ant-design 的 upload 组件, 并具有多种列表展示方式。' -} - -// Video player plugin -export const VIDEO_PLUGIN = { - name: 'Video视频播放器', - url: 'https://github.com/video-react/video-react', - desc: 'Video-React: 一个使用 React 为 HTML5 构建的web视频播放器, 适用于目前主流网络视频的播放。' -} - -// Video resource src -export const VIDEO_RES_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/videos/houlang.mp4' - -// Xlsx plugin -export const XLSX_PLUGIN = { - name: 'JS-xlsx插件', - url: 'https://github.com/SheetJS/sheetjs', - desc: 'JS-xlsx: 由SheetJS出品的一款非常方便的只需要纯JS即可读取和导出excel的工具库, 功能强大, 支持xlsx、csv、txt等格式。' -} - -// React-Sortable plugin -export const SORTABLE_PLUGIN = { - name: 'Sortable拖拽列表', - url: 'https://github.com/SortableJS/react-sortablejs', - desc: 'ReactSortable: 基于Sortable.js的react组件, 用以实现拖拽功能。' -} - -// React-Rnd plugin -export const REACT_RND_PLUGIN = { - name: 'React-Rnd拖拽组件', - url: 'https://github.com/bokuweb/react-rnd', - desc: 'React-Rnd: 一款可调整大小和可拖拽的React组件。' -} - -// React-cropper plugin -export const REACT_CROPPER_PLUGIN = { - name: 'React-Cropper图片裁剪', - url: 'https://github.com/react-cropper/react-cropper', - desc: 'react-cropper: 一个优雅的图片裁剪插件, 可实现图片裁剪、图片生成等功能, 并支持生成png、jpeg、webp等图片格式。' -} - -// Image-composition component -export const IMAGE_COMPOSITION = { - name: 'Image图片合成', - url: 'https://github.com/xyxiao001/vue-cropper', - desc: '图片合成: 基于VueDRR拖拽功能, 在其上通过叠加图片、文字等, 实现图片的叠加伪合成功能。' -} - -// Cropper image src -export const CROPPER_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img02.jpg' - -// Compress image src -export const COMPRESS_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg' - -// Image-compress component -export const IMAGE_COMPRESS = { - name: 'Image图片压缩', - url: 'https://github.com/baimingxuan/vue3-admin-design/blob/main/src/views/image/image-compress.tsx', - desc: 'ImageCompress: 纯JS实现对图片的等比压缩和放大的功能, 并能对图片进行下载。' -} - -// Count-to plugin -export const COUNTUP_PLUGIN = { - name: 'CountUp数字滚动', - url: 'https://github.com/glennreyes/react-countup', - desc: 'React-CountUp: 一个无依赖、轻量级的react数字滚动插件, 以更有趣的方式显示数字数据。' -} - -// React-CodeMirror plugin -export const CODEMIRROR_PLUGIN = { - name: 'CodeMirror代码编辑器', - url: 'https://github.com/uiwjs/react-codemirror', - desc: 'React-CodeMirror: 是一款基于 react 的代码编辑器, 可支持html、javascript、typescript等。' -} - -// Antv-g6 plugin -export const ANTV_G6_PLUGIN = { - name: 'AntV-G6流程图', - url: 'https://github.com/antvis/g6', - desc: 'antv-g6: 一个图可视化引擎。它提供了图的绘制、布局、分析、交互、动画等图可视化的基础能力。' -} - -// ReactTreeOrg plugin -export const React_TREE_ORG_PLUGIN = { - name: 'Tree-Org树状组织图', - url: 'https://github.com/artdong/react-org-tree', - desc: 'react-tree-org: 基于 react 的树结构组织图, 可用于公司组织架构展示。' -} - -// WangEditor plugin -export const WANG_EDITOR_PLUGIN = { - name: '富文本编辑器', - url: 'https://github.com/wangeditor-team/wangEditor', - desc: 'wangEditor: 基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费。' -} - -// React-Markdown-Editor plugin -export const MARKDOWN_EDITOR_PLUGIN = { - name: 'Markdown编辑器', - url: 'https://github.com/uiwjs/react-md-editor', - desc: 'React-Md-Editor: 是一款基于 react 的 Markdown 编辑器,比较适合博客系统。' -} \ No newline at end of file diff --git a/apps/admin/build/src/stores/index.ts b/apps/admin/build/src/stores/index.ts deleted file mode 100644 index 422b570a..00000000 --- a/apps/admin/build/src/stores/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { Store } from 'redux' -import { configureStore, ThunkAction, Action } from '@reduxjs/toolkit' -import { useDispatch, useSelector, TypedUseSelectorHook } from 'react-redux' -import { persistStore, persistReducer } from 'redux-persist' -import storage from 'redux-persist/lib/storage' -import appSlice from './modules/app' -import menuSlice from './modules/menu' -import tagsSlice from './modules/tags' -import userSlice from './modules/user' - -const persistConfig = { - key: 'redux-persist', - storage -} - -export const store: Store = configureStore({ - reducer: { - app: persistReducer(persistConfig, appSlice), - menu: persistReducer(persistConfig, menuSlice), - tags: persistReducer(persistConfig, tagsSlice), - user: persistReducer(persistConfig, userSlice) - }, - middleware: getDefaultMiddleware => - getDefaultMiddleware({ - serializableCheck: false - }), - devTools: true -}) - -export const persistor = persistStore(store) - -export type RootState = ReturnType -export type AppDispatch = typeof store.dispatch -export type AppThunk = ThunkAction> - -export const useAppDispatch: () => AppDispatch = useDispatch -export const useAppSelector: TypedUseSelectorHook = useSelector diff --git a/apps/admin/build/src/stores/modules/app.ts b/apps/admin/build/src/stores/modules/app.ts deleted file mode 100644 index 6eebee44..00000000 --- a/apps/admin/build/src/stores/modules/app.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { createSlice } from '@reduxjs/toolkit' -import { AppState } from '../types' -import { Persistent } from '@/utils/cache/persistent' -import { APP_CONFIG_KEY } from '@/enums/cacheEnum' -import { deepMerge } from '@/utils' - -const initialState: AppState = { - appMode: undefined, - themeMode: undefined, - appConfig: Persistent.getLocal(APP_CONFIG_KEY) -} - -const app = createSlice({ - name: 'app', - initialState, - reducers: { - setAppMode: (state, action) => { - state.appMode = action.payload - }, - setThemeMode: (state, action) => { - state.themeMode = action.payload - }, - setAppConfig: (state, action) => { - state.appConfig = deepMerge(state.appConfig || {}, action.payload) - Persistent.setLocal(APP_CONFIG_KEY, state.appConfig, true) - }, - resetState(state) { - state.appMode = undefined - state.themeMode = undefined - state.appConfig = null - Persistent.clearAll() - } - } -}) - -export const { setAppMode, setThemeMode, setAppConfig, resetState } = app.actions - -export default app.reducer diff --git a/apps/admin/build/src/stores/modules/menu.ts b/apps/admin/build/src/stores/modules/menu.ts deleted file mode 100644 index b37e0cc3..00000000 --- a/apps/admin/build/src/stores/modules/menu.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { createSlice } from '@reduxjs/toolkit' -import { MenuState } from '@/stores/types' - -const initialState: MenuState = { - menuList: [], - isCollapse: false -} - -const menu = createSlice({ - name: 'menu', - initialState, - reducers: { - setMenuList: (state, action) => { - state.menuList = action.payload - }, - updateCollapse: (state, action) => { - state.isCollapse = action.payload - } - } -}) - -export const { setMenuList, updateCollapse } = menu.actions - -export default menu.reducer diff --git a/apps/admin/build/src/stores/modules/tags.ts b/apps/admin/build/src/stores/modules/tags.ts deleted file mode 100644 index 980adb97..00000000 --- a/apps/admin/build/src/stores/modules/tags.ts +++ /dev/null @@ -1,76 +0,0 @@ -// import type { PayloadAction } from '@reduxjs/toolkit' -import type { RouteObject } from '@/router/types' -import { createSlice, createAsyncThunk } from '@reduxjs/toolkit' -import { TagsState } from '@/stores/types' -import { RootState, AppDispatch } from '..' - -const initialState: TagsState = { - visitedTags: [], - cachedTags: [] -} - -const createAppAsyncThunk = createAsyncThunk.withTypes<{ - state: RootState - dispatch: AppDispatch - rejectValue: string - extra: { s: string; n: number } -}>() - -const tags = createSlice({ - name: 'tags', - initialState, - reducers: { - addVisitedTags: (state, action) => { - const hasExistIndex = state.visitedTags.findIndex(tag => tag.path === action.payload.path) - if (hasExistIndex < 0) { - state.visitedTags.push(action.payload) - } else { - state.visitedTags[hasExistIndex] = Object.assign({}, state.visitedTags[hasExistIndex], action.payload) - } - }, - updateVisitedTags: (state, action) => { - state.visitedTags = action.payload - }, - closeTagsByType: (state, action) => { - let restTags: RouteObject[] = [] - const { type, path } = action.payload - const { visitedTags } = state - const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path) - const affixTags = visitedTags.filter((tag: any) => tag?.meta?.affix) - switch (type) { - case 'left': - restTags = visitedTags.slice(tagIndex) - break - case 'right': - restTags = visitedTags.slice(0, tagIndex + 1) - break - case 'other': - restTags = visitedTags.filter((tag: any) => tag.fullPath === path) - break - } - state.visitedTags = affixTags.concat(restTags.filter((tag: RouteObject) => !tag.meta?.affix)) - } - } -}) - -export const closeTagByKey = createAppAsyncThunk('tags/closeTagByKey', (path: string, { getState, dispatch }) => { - const { visitedTags } = getState().tags - const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path) - const restTags = visitedTags.filter((tag: any) => tag.fullPath !== path) - dispatch(updateVisitedTags(restTags)) - return Promise.resolve({ - tagIndex, - tagsList: restTags - }) -}) - -export const closeAllTags = createAppAsyncThunk('tags/closeAllTags', (_, { getState, dispatch }) => { - const { visitedTags } = getState().tags - const restTags = visitedTags.filter((tag: any) => tag?.meta?.affix) - dispatch(updateVisitedTags(restTags)) - return Promise.resolve(restTags) -}) - -export const { addVisitedTags, updateVisitedTags, closeTagsByType } = tags.actions - -export default tags.reducer diff --git a/apps/admin/build/src/stores/modules/user.ts b/apps/admin/build/src/stores/modules/user.ts deleted file mode 100644 index c6b51741..00000000 --- a/apps/admin/build/src/stores/modules/user.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { UserState } from '@/stores/types' -import { createSlice } from '@reduxjs/toolkit' -import { TOKEN_KEY, USER_INFO_KEY } from '@/enums/cacheEnum' -import { setAuthCache } from '@/utils/auth' - -const initialState: UserState = { - userInfo: null, - token: undefined, - sessionTimeout: false, - lastUpdateTime: 0 -} - -const user = createSlice({ - name: 'user', - initialState, - reducers: { - setToken: (state, action) => { - state.token = action.payload ? action.payload : '' - setAuthCache(TOKEN_KEY, action.payload) - }, - setUserInfo: (state, action) => { - state.userInfo = action.payload - state.lastUpdateTime = new Date().getTime() - setAuthCache(USER_INFO_KEY, action.payload) - }, - setSessionTimeout: (state, action) => { - state.sessionTimeout = action.payload - }, - resetState(state) { - state.userInfo = null - state.token = undefined - state.sessionTimeout = false - state.lastUpdateTime = 0 - } - } -}) - -export const { setToken, setUserInfo, setSessionTimeout, resetState } = user.actions - -export default user.reducer diff --git a/apps/admin/build/src/stores/types.ts b/apps/admin/build/src/stores/types.ts deleted file mode 100644 index 19ffacab..00000000 --- a/apps/admin/build/src/stores/types.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { AppConfig } from '@/types/config' -import { AppModeEnum, ThemeEnum } from '@/enums/appEnum' -import { RouteObject } from '@/router/types' - -export interface UserInfo { - userId: string | number - username: string - realName: string - avatar: string - token: string - desc?: string - homePath?: string -} - -export interface UserState { - userInfo: Nullable - token?: string - sessionTimeout?: boolean - lastUpdateTime: number -} - -export interface MenuOptions { - path: string - title: string - icon?: string - isLink?: string - close?: boolean - children?: MenuOptions[] -} - -export interface MenuState { - menuList: MenuOptions[] - isCollapse: boolean -} - -export interface TagsState { - visitedTags: RouteObject[] - cachedTags: string[] -} - -export interface AppState { - appMode?: AppModeEnum - - themeMode?: ThemeEnum - - appConfig: AppConfig | null -} diff --git a/apps/admin/build/src/types/config.ts b/apps/admin/build/src/types/config.ts deleted file mode 100644 index 44cf4b92..00000000 --- a/apps/admin/build/src/types/config.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { MenuModeEnum, MenuTypeEnum, MenuFoldBtnEnum } from '../enums/menuEnum' -import { PageTransitionEnum, ThemeEnum } from '../enums/appEnum' -import { PermissionModeEnum } from '../enums/appEnum' -import { CacheTypeEnum } from '../enums/cacheEnum' - -export interface AppConfig { - // Theme color - themeColor: string - // Storage location of permission related information - permissionCacheType: CacheTypeEnum - // Header setting - headerSetting: HeaderSetting - // Menu setting - menuSetting: MenuSetting - // Transition setting - transitionSetting: TransitionSetting - // Permission mode - permissionMode: PermissionModeEnum - // Whether tags cached - tagsCached: boolean - // Route keepAlive - openKeepAlive: boolean - // Lock screen time - lockScreenTime: number - // Whether to show the global footer - showFooter: boolean - // Whether to turn on the color weak mode - colorWeak: boolean - // Whether to turn on the gray mode - grayMode: boolean -} - -export interface HeaderSetting { - // Show breadCrumb - showBreadCrumb: boolean - // Show tags - showTags: boolean - // Show search - showSearch: boolean - // Turn on full screen - showFullScreen: boolean - // Show locale - showLocale: boolean - // Show document button - showDoc: boolean - // Show github button - showGithub: boolean -} - -export interface MenuSetting { - // Menu type - menuType: MenuTypeEnum - // Menu mode - menuMode: MenuModeEnum - // Menu theme - menuTheme: ThemeEnum - // Menu split - menuSplit: boolean - // Menu can drag - menuCanDrag: boolean - // Menu collapse - menuFold: boolean - // Menu collapse type - menuFoldBtn: MenuFoldBtnEnum - // Whether to display the menu name when folding the menu - menuFoldShowTitle: boolean - // Menu width - menuWidth: number, - // Hydrid mode sider menu fixed - menuFixed: boolean, - // Hybrid mode sider menu hidden - menuHidden: boolean -} - -export interface TransitionSetting { - // Whether to open the top progress bar - openNProgress: boolean - // Whether to open page switching loading - openPageLoading: boolean - // Whether to open the page switching animation - openTransition: boolean - // Page basic switching animation - basicTransition: PageTransitionEnum -} \ No newline at end of file diff --git a/apps/admin/build/src/types/index.ts b/apps/admin/build/src/types/index.ts deleted file mode 100644 index 40d21287..00000000 --- a/apps/admin/build/src/types/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -export interface LoginParams { - username: string - password: string -} - -export interface UserInfo { - userId: string | number - username: string - realName: string - avatar: string - token: string - desc?: string - homePath?: string -} - -export type ThemeMode = 'dark' | 'light' - -export type LocaleType = 'zh_CN' | 'en' diff --git a/apps/admin/build/src/utils/auth.ts b/apps/admin/build/src/utils/auth.ts deleted file mode 100644 index d8f6289c..00000000 --- a/apps/admin/build/src/utils/auth.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Persistent, BasicKeys } from './cache/persistent' -import { appSetting } from '@/settings/appBaseSetting' -import { TOKEN_KEY, CacheTypeEnum } from '@/enums/cacheEnum' - -const { permissionCacheType } = appSetting -const isLocal = permissionCacheType === CacheTypeEnum.LOCAL - -export function getToken() { - return getAuthCache(TOKEN_KEY) -} - -export function getAuthCache(key: BasicKeys) { - const fn = isLocal ? Persistent.getLocal : Persistent.getSession - return fn(key) as T -} - -export function setAuthCache(key: BasicKeys, value: any) { - const fn = isLocal ? Persistent.setLocal : Persistent.setSession - return fn(key, value, true) -} - -export function clearAuthCache(immediate = true) { - const fn = isLocal ? Persistent.clearLocal : Persistent.clearSession - return fn(immediate) -} diff --git a/apps/admin/build/src/utils/axios.ts b/apps/admin/build/src/utils/axios.ts deleted file mode 100644 index 63df5f86..00000000 --- a/apps/admin/build/src/utils/axios.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios' -import axios from 'axios' -import { message } from 'antd' -import { getToken, clearAuthCache } from '@/utils/auth' - -// Create axios instance -const service = axios.create({ - baseURL: '/api', - timeout: 10 * 1000 -}) - -// Handle Error -const handleError = (error: AxiosError): Promise => { - if (error.response?.status === 401 || error.response?.status === 504) { - clearAuthCache() - location.href = '/login' - } - message.error(error.message || 'error') - return Promise.reject(error) -} - -// Request interceptors configuration -service.interceptors.request.use((config: InternalAxiosRequestConfig) => { - const token = getToken() - if (token) { - ;(config as Recordable).headers['Authorization'] = `${token}` - } - ;(config as Recordable).headers['Content-Type'] = 'application/json' - return config -}, handleError) - -// Respose interceptors configuration -service.interceptors.response.use((response: AxiosResponse) => { - const data = response.data - - if (data.code === 0) { - return data.data - } else { - message.error(data.message) - - return Promise.reject('error') - } -}, handleError) - -export { service } diff --git a/apps/admin/build/src/utils/cache/index.ts b/apps/admin/build/src/utils/cache/index.ts deleted file mode 100644 index f51abc33..00000000 --- a/apps/admin/build/src/utils/cache/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { createStorage as create, CreateStorageParams } from './storageCache' -import { enableStorageEncryption, DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting' - -type Options = Partial - -const createOptions = (storage: Storage, options: Options = {}): Options => { - return { - // No encryption in debug mode - hasEncrypt: enableStorageEncryption, - storage, - prefixKey: 'react-admin-design__', - ...options - } -} - -const WebStorage = create(createOptions(sessionStorage)) - -export const createStorage = (storage: Storage = sessionStorage, options: Options = {}) => { - return create(createOptions(storage, options)) -} - -export const createSessionStorage = (options: Options = {}) => { - return createStorage(sessionStorage, { ...options, timeout: DEFAULT_CACHE_TIME }) -} - -export const createLocalStorage = (options: Options = {}) => { - return createStorage(localStorage, { ...options, timeout: DEFAULT_CACHE_TIME }) -} - -export default WebStorage diff --git a/apps/admin/build/src/utils/cache/memory.ts b/apps/admin/build/src/utils/cache/memory.ts deleted file mode 100644 index d3c9a617..00000000 --- a/apps/admin/build/src/utils/cache/memory.ts +++ /dev/null @@ -1,88 +0,0 @@ -export interface Cache { - value?: V - timeoutId?: ReturnType - time?: number - alive?: number -} - -export class Memory { - private cache: { [key in keyof T]?: Cache } = {} - private alive: number - - constructor(alive = 0) { - this.alive = alive * 1000 - } - - get getCache() { - return this.cache - } - - get(key: K) { - return this.cache[key] - } - - set(key: K, value: V, expires?: number) { - let item = this.get(key) - - if (!expires || (expires as number) <= 0) { - expires = this.alive - } - if (item) { - if (item.timeoutId) { - clearTimeout(item.timeoutId) - item.timeoutId = undefined - } - item.value = value - } else { - item = { value, alive: expires } - this.cache[key] = item - } - - if (!expires) { - return value - } - - const now = new Date().getTime() - item.time = now + this.alive - item.timeoutId = setTimeout( - () => { - this.remove(key) - }, - expires > now ? expires - now : expires - ) - - return value - } - - remove(key: K) { - const item = this.get(key) - Reflect.deleteProperty(this.cache, key) - if (item) { - clearTimeout(item.timeoutId!) - return item.value - } - } - - resetCache(cache: { [K in keyof T]: Cache }) { - Object.keys(cache).forEach(key => { - const k = key as any as keyof T - const item = cache[k] - if (item && item.time) { - const now = new Date().getTime() - const expire = item.time - if (expire > now) { - this.set(k, item.value, expire) - } - } - }) - } - - clear() { - Object.keys(this.cache).forEach(key => { - // @ts-ignore - const item = this.cache[key] - item.timeoutId && clearTimeout(item.timeoutId) - }) - this.cache = {} - } -} diff --git a/apps/admin/build/src/utils/cache/persistent.ts b/apps/admin/build/src/utils/cache/persistent.ts deleted file mode 100644 index 7ab77b4e..00000000 --- a/apps/admin/build/src/utils/cache/persistent.ts +++ /dev/null @@ -1,113 +0,0 @@ -import type { RouteObject } from '@/router/types' - -import { Memory } from './memory' -import { AppConfig } from '@/types/config' -import { - TOKEN_KEY, - USER_INFO_KEY, - APP_CONFIG_KEY, - APP_TAGS_KEY, - APP_LOCAL_CACHE_KEY, - APP_SESSION_CACHE_KEY -} from '@/enums/cacheEnum' -import { createLocalStorage, createSessionStorage } from '@/utils/cache' -import { DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting' -import { UserInfo } from '@/types' - -interface BasicStore { - [TOKEN_KEY]: string | number | null | undefined - [USER_INFO_KEY]: UserInfo - [APP_CONFIG_KEY]: AppConfig - [APP_TAGS_KEY]: RouteObject[] -} - -type LocalStore = BasicStore -type SessionStore = BasicStore - -export type BasicKeys = keyof BasicStore -type LocalKeys = keyof LocalStore -type SessionKeys = keyof SessionStore - -const ls = createLocalStorage() -const ss = createSessionStorage() - -const localMemory = new Memory(DEFAULT_CACHE_TIME) -const sessionMemory = new Memory(DEFAULT_CACHE_TIME) - -function initPersistentMemory() { - const localCache = ls.get(APP_LOCAL_CACHE_KEY) - const sessionCache = ss.get(APP_SESSION_CACHE_KEY) - localCache && localMemory.resetCache(localCache) - sessionCache && sessionMemory.resetCache(sessionCache) -} - -export class Persistent { - static getLocal(key: LocalKeys) { - return localMemory.get(key)?.value as Nullable - } - - static setLocal(key: LocalKeys, value: LocalStore[LocalKeys], immediate = false): void { - localMemory.set(key, value) - immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache) - } - - static removeLocal(key: LocalKeys, immediate = false): void { - localMemory.remove(key) - immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache) - } - - static clearLocal(immediate = false): void { - localMemory.clear() - immediate && ls.clear() - } - - static getSession(key: SessionKeys) { - return sessionMemory.get(key)?.value as Nullable - } - - static setSession(key: SessionKeys, value: SessionStore[SessionKeys], immediate = false): void { - sessionMemory.set(key, value) - immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache) - } - - static removeSession(key: SessionKeys, immediate = false): void { - sessionMemory.remove(key) - immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache) - } - - static clearSession(immediate = false): void { - sessionMemory.clear() - immediate && ss.clear() - } - - static clearAll(immediate = false) { - sessionMemory.clear() - localMemory.clear() - if (immediate) { - ls.clear() - ss.clear() - } - } -} - -function storageChange(e: any) { - const { key, newValue, oldValue } = e - - if (!key) { - Persistent.clearAll() - return - } - - if (!!newValue && !!oldValue) { - if (APP_LOCAL_CACHE_KEY === key) { - Persistent.clearLocal() - } - if (APP_SESSION_CACHE_KEY === key) { - Persistent.clearSession() - } - } -} - -window.addEventListener('storage', storageChange) - -initPersistentMemory() diff --git a/apps/admin/build/src/utils/cache/storageCache.ts b/apps/admin/build/src/utils/cache/storageCache.ts deleted file mode 100644 index d07629fa..00000000 --- a/apps/admin/build/src/utils/cache/storageCache.ts +++ /dev/null @@ -1,110 +0,0 @@ -import type { EncryptParams } from '../cipher' -import { cacheCipher } from '@/settings/encryptionSetting' -import { AesEncrypt } from '../cipher' -import { isNullOrUnDef } from '../is' - -export interface CreateStorageParams extends EncryptParams { - prefixKey: string - storage: Storage - hasEncrypt: boolean - timeout?: Nullable -} - -export const createStorage = ({ - prefixKey = '', - storage = sessionStorage, - hasEncrypt = true, - key = cacheCipher.key, - iv = cacheCipher.iv, - timeout = null -}: Partial = {}) => { - if (hasEncrypt && [key.length, iv.length].some(item => item !== 16)) { - throw new Error('When hasEncrypt is true, the key or iv must be 16 bits!') - } - - const encrypt = new AesEncrypt({ key, iv }) - - /** - * Cache class - * Construction parameters can be passed into sessionStorage, localStorage - * @class Cache - * @example - */ - const WebStorage = class WebStorage { - private storage: Storage - private prefixKey?: string - private encrypt: AesEncrypt - private hasEncrypt: boolean - - constructor() { - this.storage = storage - this.prefixKey = prefixKey - this.encrypt = encrypt - this.hasEncrypt = hasEncrypt - } - - private getKey(key: string) { - return `${this.prefixKey}${key}`.toUpperCase() - } - - /** - * Set cache - * @param {string} key - * @param {*} value - * @param {*} expire Expiration time in seconds - * @memberof Cache - */ - set(key: string, value: any, expire: number | null = timeout) { - const stringData = JSON.stringify({ - value, - time: Date.now(), - expire: !isNullOrUnDef(expire) ? new Date().getTime() + expire * 1000 : null - }) - const stringifyValue = this.hasEncrypt - ? this.encrypt.encryptByAES(stringData) - : stringData - this.storage.setItem(this.getKey(key), stringifyValue) - } - - /** - * Read cache - * @param {string} key - * @param {*} def - * @memberof Cache - */ - get(key: string, def: any = null): any { - const val = this.storage.getItem(this.getKey(key)) - if (!val) return def - - try { - const decVal = this.hasEncrypt ? this.encrypt.decryptByAES(val) : val - const data = JSON.parse(decVal) - const { value, expire } = data - if (isNullOrUnDef(expire) || expire >= new Date().getTime()) { - return value - } - this.remove(key) - } catch (e) { - return def - } - } - - /** - * Delete cache based on key - * @param {string} key - * @memberof Cache - */ - remove(key: string) { - this.storage.removeItem(this.getKey(key)) - } - - /** - * Delete all caches of this instance - */ - clear(): void { - this.storage.clear() - } - } - - return new WebStorage() -} \ No newline at end of file diff --git a/apps/admin/build/src/utils/cipher.ts b/apps/admin/build/src/utils/cipher.ts deleted file mode 100644 index ae3c49cd..00000000 --- a/apps/admin/build/src/utils/cipher.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { encrypt, decrypt } from 'crypto-js/aes' -import { parse } from 'crypto-js/enc-utf8' -import UTF8 from 'crypto-js/enc-utf8' -import PKCS7 from 'crypto-js/pad-pkcs7' -import ECB from 'crypto-js/mode-ecb' - -export interface EncryptParams { - key: string - iv: string -} - -export class AesEncrypt { - private key - private iv - - constructor(opt: Partial = {}) { - const { key, iv } = opt - if (key) { - this.key = parse(key) - } - if (iv) { - this.iv = parse(iv) - } - } - - get getOptions() { - return { - mode: ECB, - padding: PKCS7, - iv: this.iv - }; - } - - encryptByAES(cipherText: string) { - return encrypt(cipherText, this.key!, this.getOptions).toString() - } - - decryptByAES(cipherText: string) { - return decrypt(cipherText, this.key!, this.getOptions).toString(UTF8) - } -} \ No newline at end of file diff --git a/apps/admin/build/src/utils/download.ts b/apps/admin/build/src/utils/download.ts deleted file mode 100644 index f65466a7..00000000 --- a/apps/admin/build/src/utils/download.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { openWindow } from '.' -import { base64toBlob, urlToBase64 } from './image' - -/** - * Download image by url - * @param url - * @param filename - * @param mineType - * @param bom - */ -export function downloadImgByUrl( - url: string, - filename: string, - mineType?: string, - bom?: BlobPart -) { - urlToBase64(url).then((base64) => { - downloadImgByBase64(base64, filename, mineType, bom) - }) -} - -/** - * Download image based on base64 - * @param buf - * @param filename - * @param mineType - * @param bom - */ -export function downloadImgByBase64( - buf: string, - filename: string, - mineType?: string, - bom?: BlobPart -) { - const base64Buf = base64toBlob(buf) - downloadByData(base64Buf, filename, mineType, bom) -} - -/** - * Download by the back-end interface file stream - * @param {*} data - * @param {*} filename - * @param {*} mineType - * @param {*} bom - */ -export function downloadByData( - data: BlobPart, - filename: string, - mineType?: string, - bom?: BlobPart -) { - const blobData = typeof bom !== 'undefined' ? [bom, data] : [data] - const blob = new Blob(blobData, { type: mineType || 'application/octet-stream' }) - - const blobURL = window.URL.createObjectURL(blob) - const tempLink = document.createElement('a') - tempLink.style.display = 'none' - tempLink.href = blobURL - tempLink.setAttribute('download', filename) - if (typeof tempLink.download === 'undefined') { - tempLink.setAttribute('target', '_blank') - } - document.body.appendChild(tempLink) - tempLink.click() - document.body.removeChild(tempLink) - window.URL.revokeObjectURL(blobURL) -} - -/** - * Download file by url - * @param {*} sUrl - */ -export function downloadByUrl({ - url, - target = '_blank', - fileName -}: { - url: string - target?: TargetContext - fileName?: string -}): boolean { - const isChrome = window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1 - const isSafari = window.navigator.userAgent.toLowerCase().indexOf('safari') > -1 - - if (/(iP)/g.test(window.navigator.userAgent)) { - console.error('Your browser does not support download!') - return false - } - if (isChrome || isSafari) { - const link = document.createElement('a') - link.href = url - link.target = target - - if (link.download !== undefined) { - link.download = fileName || url.substring(url.lastIndexOf('/') + 1, url.length) - } - - if (document.createEvent) { - const e = document.createEvent('MouseEvents') - e.initEvent('click', true, true) - link.dispatchEvent(e) - return true - } - } - if (url.indexOf('?') === -1) { - url += '?download' - } - - openWindow(url, { target }) - return true -} \ No newline at end of file diff --git a/apps/admin/build/src/utils/echarts.ts b/apps/admin/build/src/utils/echarts.ts deleted file mode 100644 index d0564593..00000000 --- a/apps/admin/build/src/utils/echarts.ts +++ /dev/null @@ -1,54 +0,0 @@ -import * as echarts from 'echarts/core' -import { SVGRenderer } from 'echarts/renderers' - -import { - BarChart, - LineChart, - PieChart, - MapChart, - PictorialBarChart, - RadarChart -} from 'echarts/charts' - -import { - TitleComponent, - TooltipComponent, - GridComponent, - PolarComponent, - AriaComponent, - ParallelComponent, - LegendComponent, - RadarComponent, - ToolboxComponent, - DataZoomComponent, - VisualMapComponent, - TimelineComponent, - CalendarComponent, - GraphicComponent -} from 'echarts/components' - -echarts.use([ - LegendComponent, - TitleComponent, - TooltipComponent, - GridComponent, - PolarComponent, - AriaComponent, - ParallelComponent, - BarChart, - LineChart, - PieChart, - MapChart, - RadarChart, - SVGRenderer, - PictorialBarChart, - RadarComponent, - ToolboxComponent, - DataZoomComponent, - VisualMapComponent, - TimelineComponent, - CalendarComponent, - GraphicComponent -]) - -export default echarts \ No newline at end of file diff --git a/apps/admin/build/src/utils/env.ts b/apps/admin/build/src/utils/env.ts deleted file mode 100644 index 7c91d053..00000000 --- a/apps/admin/build/src/utils/env.ts +++ /dev/null @@ -1,15 +0,0 @@ - // Get environment variables - export function getEnv(): string { - return import.meta.env.MODE - } - - // It is a development mode - export function isDevMode(): boolean { - return import.meta.env.DEV - } - - // It is a production mode - export function isProdMode(): boolean { - return import.meta.env.PROD - } - \ No newline at end of file diff --git a/apps/admin/build/src/utils/helper/menuHelper.ts b/apps/admin/build/src/utils/helper/menuHelper.ts deleted file mode 100644 index c8e9b07c..00000000 --- a/apps/admin/build/src/utils/helper/menuHelper.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * @description Get expand subMenu - * @param {String} path Current route path - * @returns subMenu array - */ -export const getOpenKeys = (path: string) => { - let pathStr: string = '' - const openKeys: string[] = [] - path.split('/').forEach(key => { - if (key) { - pathStr += '/' + key - openKeys.push(pathStr) - } - }) - return openKeys.slice(0, -1) -} \ No newline at end of file diff --git a/apps/admin/build/src/utils/helper/treeHelper.ts b/apps/admin/build/src/utils/helper/treeHelper.ts deleted file mode 100644 index b5ca16c2..00000000 --- a/apps/admin/build/src/utils/helper/treeHelper.ts +++ /dev/null @@ -1,182 +0,0 @@ -interface TreeHelperConfig { - id: string - children: string - pid: string -} - -const DEFAULT_CONFIG: TreeHelperConfig = { - id: 'id', - children: 'children', - pid: 'pid' -} - -const getConfig = (config: Partial) => Object.assign({}, DEFAULT_CONFIG, config) - -// tree from list -export function listToTree(list: any[], config: Partial = {}): T[] { - const conf = getConfig(config) as TreeHelperConfig - const nodeMap = new Map() - const result: T[] = [] - const { id, children, pid } = conf - - for (const node of list) { - node[children] = node[children] || [] - nodeMap.set(node[id], node) - } - for (const node of list) { - const parent = nodeMap.get(node[pid]) - ;(parent ? parent[children] : result).push(node) - } - return result -} - -export function treeToList(tree: any, config: Partial = {}): T { - config = getConfig(config) - const { children } = config - const result: any = [...tree] - for (let i = 0; i < result.length; i++) { - if (!result[i][children!]) continue - result.splice(i + 1, 0, ...result[i][children!]) - } - return result -} - -export function findNode(tree: any, func: Fn, config: Partial = {}): T | null { - config = getConfig(config) - const { children } = config - const list = [...tree] - for (const node of list) { - if (func(node)) return node - node[children!] && list.push(...node[children!]) - } - return null -} - -export function findNodeAll(tree: any, func: Fn, config: Partial = {}): T[] { - config = getConfig(config) - const { children } = config - const list = [...tree] - const result: T[] = [] - for (const node of list) { - func(node) && result.push(node) - node[children!] && list.push(...node[children!]) - } - return result -} - -export function findPath(tree: any, func: Fn, config: Partial = {}): T | T[] | null { - config = getConfig(config) - const path: T[] = [] - const list = [...tree] - const visitedSet = new Set() - const { children } = config - while (list.length) { - const node = list[0] - if (visitedSet.has(node)) { - path.pop() - list.shift() - } else { - visitedSet.add(node) - node[children!] && list.unshift(...node[children!]) - path.push(node) - if (func(node)) { - return path - } - } - } - return null -} - -export function findPathAll(tree: any, func: Fn, config: Partial = {}) { - config = getConfig(config) - const path: any[] = [] - const list = [...tree] - const result: any[] = [] - const visitedSet = new Set(), - { children } = config - while (list.length) { - const node = list[0] - if (visitedSet.has(node)) { - path.pop() - list.shift() - } else { - visitedSet.add(node) - node[children!] && list.unshift(...node[children!]) - path.push(node) - func(node) && result.push([...path]) - } - } - return result -} - -export function filter(tree: T[], func: (n: T) => boolean, config: Partial = {}): T[] { - config = getConfig(config) - const children = config.children as string - function listFilter(list: T[]) { - return list - .map((node: any) => ({ ...node })) - .filter(node => { - node[children] = node[children] && listFilter(node[children]) - return func(node) || (node[children] && node[children].length) - }) - } - return listFilter(tree) -} - -export function forEach(tree: T[], func: (n: T) => any, config: Partial = {}): void { - config = getConfig(config) - const list: any[] = [...tree] - const { children } = config - for (let i = 0; i < list.length; i++) { - //func 返回true就终止遍历,避免大量节点场景下无意义循环,引起浏览器卡顿 - if (func(list[i])) { - return - } - children && list[i][children] && list.splice(i + 1, 0, ...list[i][children]) - } -} - -/** - * @description: Extract tree specified structure - */ -export function treeMap(treeData: T[], opt: { children?: string; conversion: Fn }): T[] { - return treeData.map(item => treeMapEach(item, opt)) -} - -/** - * @description: Extract tree specified structure - */ -export function treeMapEach(data: any, { children = 'children', conversion }: { children?: string; conversion: Fn }) { - const haveChildren = Array.isArray(data[children]) && data[children].length > 0 - const conversionData = conversion(data) || {} - if (haveChildren) { - return { - ...conversionData, - [children]: data[children].map((i: number) => - treeMapEach(i, { - children, - conversion - }) - ) - } - } else { - return { - ...conversionData - } - } -} - -/** - * 递归遍历树结构 - * @param treeDatas 树 - * @param callBack 回调 - * @param parentNode 父节点 - */ -export function eachTree(treeDatas: any[], callBack: Fn, parentNode = {}) { - treeDatas.forEach(element => { - const newNode = callBack(element, parentNode) || element - if (element.children) { - eachTree(element.children, callBack, newNode) - } - }) -} diff --git a/apps/admin/build/src/utils/image.ts b/apps/admin/build/src/utils/image.ts deleted file mode 100644 index d23b8fe4..00000000 --- a/apps/admin/build/src/utils/image.ts +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Image base64 to Blob - * @param image - * @returns {Blob} - */ -export function base64toBlob(base64Buf: string): Blob { - const arr = base64Buf.split(',') - const typeItem = arr[0] - const mime = typeItem.match(/:(.*?);/)![1] - const bstr = window.atob(arr[1]) - let n = bstr.length - const u8arr = new Uint8Array(n) - while (n--) { - u8arr[n] = bstr.charCodeAt(n) - } - return new Blob([u8arr], { type: mime }) -} - -/** - * Image url to base64 - * @param url - * @param mineType - */ -export function urlToBase64(url: string, mineType?: string): Promise { - return new Promise((resolve, reject) => { - let canvas = document.createElement('CANVAS') as Nullable - const ctx = canvas!.getContext('2d') - - const img = new Image() - img.crossOrigin = '' - img.onload = function () { - if (!canvas || !ctx) { - return reject() - } - canvas.width = img.width - canvas.height = img.height - ctx.drawImage(img, 0, 0) - const dataURL = canvas.toDataURL(mineType || 'image/png') - canvas = null - resolve(dataURL) - } - img.src = url - }) -} \ No newline at end of file diff --git a/apps/admin/build/src/utils/index.ts b/apps/admin/build/src/utils/index.ts deleted file mode 100644 index 21a1c8ae..00000000 --- a/apps/admin/build/src/utils/index.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { isObject } from './is' - -export function openWindow( - url: string, - opt?: { - target?: TargetContext | string - noopener?: boolean - noreferrer?: boolean - } -) { - const { target = '__blank', noopener = true, noreferrer = true } = opt || {} - const feature: string[] = [] - - noopener && feature.push('noopener=yes') - noreferrer && feature.push('noreferrer=yes') - - window.open(url, target, feature.join(',')) -} - -export function promiseTimeout(ms: number, throwOnTimeout = false, reason = 'Timeout'): Promise { - return new Promise((resolve, reject) => { - if (throwOnTimeout) setTimeout(() => reject(reason), ms) - else setTimeout(resolve, ms) - }) -} - -export const searchRoute: any = (path: string, routes: any = []) => { - for (const item of routes) { - if (item.path === path || item.fullPath === path) return item - if (item.children) { - const result = searchRoute(path, item.children) - if (result) return result - } - } - return null -} - -export function deepMerge(src: any = {}, target: any = {}): T { - let key: string - for (key in target) { - src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key]) - } - return src -} diff --git a/apps/admin/build/src/utils/is.ts b/apps/admin/build/src/utils/is.ts deleted file mode 100644 index 2ff445e7..00000000 --- a/apps/admin/build/src/utils/is.ts +++ /dev/null @@ -1,49 +0,0 @@ -export function is(val: unknown, type: string) { - return Object.prototype.toString.call(val) === `[object ${type}]` -} - -export function isFunction(val: unknown): val is Function { - return typeof val === 'function' -} - -export function isArray(val: any): val is Array { - return val && Array.isArray(val) -} - -export function isObject(val: any): val is Record { - return val !== null && is(val, 'Object') -} - -export function isNumber(val: unknown): val is number { - return is(val, 'Number') -} - -export function isString(val: unknown): val is string { - return is(val, 'String') -} - -export function isDef(val?: T): val is T { - return typeof val !== 'undefined' -} - -export function isUnDef(val?: T): val is T { - return !isDef(val) -} - -export function isNull(val: unknown): val is null { - return val === null -} - -export function isNullOrUnDef(val: unknown): val is null | undefined { - return isUnDef(val) || isNull(val) -} - -export function isUrl(path: string): boolean { - const reg = - /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/; - return reg.test(path) -} - -export const isServer = typeof window === 'undefined' - -export const isClient = !isServer \ No newline at end of file diff --git a/apps/admin/build/src/views/blank.tsx b/apps/admin/build/src/views/blank.tsx deleted file mode 100644 index 42bddc96..00000000 --- a/apps/admin/build/src/views/blank.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import { FC } from 'react' - -const BlankPage: FC = () => { - return ( -
- 空页面 -
- ) -} - -export default BlankPage diff --git a/apps/admin/build/src/views/compo/count-up.tsx b/apps/admin/build/src/views/compo/count-up.tsx deleted file mode 100644 index 850f7d92..00000000 --- a/apps/admin/build/src/views/compo/count-up.tsx +++ /dev/null @@ -1,136 +0,0 @@ -import React, { useRef, useState, useEffect } from 'react' -import { Row, Col, Card, Button, Form, Input, InputNumber, Space } from 'antd' -import { PageWrapper } from '@/components/Page' -import CountUp, { useCountUp } from 'react-countup' -import { COUNTUP_PLUGIN } from '@/settings/websiteSetting' - -const CountUpPage: React.FC = () => { - const [form] = Form.useForm() - const [formData, setFromData] = useState({ - start: 0, - end: 2020, - duration: 4, - decimals: 0, - separator: ',', - prefix: '¥ ', - suffix: ' rmb' - }) - - const countUpRef = useRef(null) - const { start, reset } = useCountUp({ - ref: countUpRef, - ...formData - }) - - useEffect(() => { - reset() - }, []) - - const onValuesChange = (values: any) => { - setFromData({...formData, ...values}) - } - - return ( - - -
- - - - - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - ) -} - -export default CountUpPage \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/drag/drag-list.tsx b/apps/admin/build/src/views/compo/drag/drag-list.tsx deleted file mode 100644 index ae45fa1c..00000000 --- a/apps/admin/build/src/views/compo/drag/drag-list.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import React, { useState } from 'react' -import { Row, Col, Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { cloneDeep } from 'lodash-es' -import { SORTABLE_PLUGIN } from '@/settings/websiteSetting' -import { ReactSortable } from 'react-sortablejs' - -interface ItemState { - id: number - name: string -} - -const DragList: React.FC = () => { - const [listOne, setListOne] = useState([ - { name: 'ECMAScript6', id: 1 }, - { name: 'VueJS', id: 2 }, - { name: 'ReactJS', id: 3 }, - { name: 'AngularJS', id: 4 }, - { name: 'Webpack', id: 5 } - ]) - const [listTwo, setListTwo] = useState([ - { name: 'NodeJS', id: 6 }, - { name: 'TypeScript', id: 7 } - ]) - - const [dragLogs, setDragLogs] = useState([ - '列表1 => 列表2, 6 => 1', - '列表1 => 列表2, 6 => 2' - ]) - - const handleDrop = (event: any) => { - const listMap = new Map([ - ['list1', '列表1'], - ['list2', '列表2'] - ]) - const fromClsName = event.from.className - const toClsName = event.to.className - const from = listMap.get(fromClsName) - const to = listMap.get(toClsName) - const newDrapLogs = cloneDeep(dragLogs) - newDrapLogs.push(`${from} => ${to}, ${event.oldIndex + 1} => ${event.newIndex + 1}`) - setDragLogs(newDrapLogs) - } - - return ( - - - - - - { - listOne.map(item => ( - - {item.name} - - )) - } - - - - - - - { - listTwo.map(item => ( - - {item.name} - - )) - } - - - - - - { dragLogs.map(item => { - return

{item}

- }) } -
- -
- -
-              {JSON.stringify(listOne.map(({ name, id }) => ({ name, id })), null, 2)}
-            
-
- -
- -
-              {JSON.stringify(listTwo.map(({ name, id }) => ({ name, id })), null, 2)}
-            
-
- - - - ) -} - -export default DragList \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/drag/drag-resize.tsx b/apps/admin/build/src/views/compo/drag/drag-resize.tsx deleted file mode 100644 index 1a0b5018..00000000 --- a/apps/admin/build/src/views/compo/drag/drag-resize.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import React, { useRef, useState } from 'react' -import { Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { REACT_RND_PLUGIN } from '@/settings/websiteSetting' -import { Rnd } from 'react-rnd' - -interface configState { - x: number - y: number - width: number - height: number -} - -const DragResize: React.FC = () => { - const rectWrapper = useRef(null) - const [config, setConfig] = useState({ - x: 650, - y: 130, - width: 180, - height: 180 - }) - - const handleDragStop = (_: any, d: any) => { - setConfig({ - ...config, - x: d.x, - y: d.y - }) - } - - const handleResize = (_e: any, _direction: any, ref: any, _delta: any, position: any) => { - setConfig({ - ...config, - width: ref.offsetWidth, - height: ref.offsetHeight, - ...position - }) - } - - return ( - - -
- -
-
-

x: {config.x}

-

y: {config.y}

-

width: {config.width}

-

height: {config.height}

-
-
-
-
-
-
- ) -} - -export default DragResize \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/image-upload.tsx b/apps/admin/build/src/views/compo/image-upload.tsx deleted file mode 100644 index 81d98eac..00000000 --- a/apps/admin/build/src/views/compo/image-upload.tsx +++ /dev/null @@ -1,129 +0,0 @@ -import type { UploadFile } from 'antd/es/upload/interface' -import type { RcFile, UploadProps } from 'antd/es/upload' -import React, { useState } from 'react' -import { Row, Col, Card, Button, Upload, Modal } from 'antd' -import { CloudUploadOutlined, PlusOutlined } from '@ant-design/icons' -import { PageWrapper } from '@/components/Page' -import { UPLOAD_COMPO } from '@/settings/websiteSetting' - -const ImageUpload: React.FC = () => { - const { Dragger } = Upload - - const [previewVisible, setPreviewVisible] = useState(false) - const [previewImage, setPreviewImage] = useState('') - const [previewTitle, setPreviewTitle] = useState('') - - const dragImgs: UploadFile[] = [ - { uid: '-1', name: 'beautiful-girl.jpg' }, - { uid: '-2', name: 'beautiful-sunshine.jpg' } - ] - const [listImgs, setListImgs] = useState([ - { - uid: '-1', - name: 'beautiful-girl.jpg', - status: 'done', - url: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img04.jpg', - thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img04.jpg' - }, - { - uid: '-2', - name: 'beautiful-sunshine.jpg', - status: 'done', - url: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg', - thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg' - } - ]) - - const handlePreview = async (file: UploadFile) => { - if (!file.url && !file.preview) { - file.preview = (await getBase64(file.originFileObj as RcFile)) as string - } - setPreviewImage(file.url || (file.preview as string)) - setPreviewVisible(true) - setPreviewTitle(file.name || file.url!.substring(file.url!.lastIndexOf('/') + 1)) - } - - const getBase64 = (file: RcFile): Promise => { - return new Promise((resolve, reject) => { - const reader = new FileReader() - reader.readAsDataURL(file) - reader.onload = () => resolve(reader.result as string) - reader.onerror = error => reject(error) - }) - } - - const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => setListImgs(newFileList) - - const handleCancle = () => { - setPreviewVisible(false) - setPreviewTitle('') - } - - return ( - - -
- - -

- -

-

将图片拖到此处, 或点击上传

-

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

-
-
- -
- - - -

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

-
-
- -
- - -
- -
点击上传
-
-
-
- - - - - - - ) -} - -export default ImageUpload \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/transfer/data.ts b/apps/admin/build/src/views/compo/transfer/data.ts deleted file mode 100644 index 2d529af7..00000000 --- a/apps/admin/build/src/views/compo/transfer/data.ts +++ /dev/null @@ -1,56 +0,0 @@ -import type { TransferItem, TransferProps } from 'antd/es/transfer' - -interface DataState { - key: string - title: string - children?: DataState[] - disabled?: boolean -} - -const mockData: Record[] = [] -for (let i = 1; i < 10; i++) { - mockData.push({ - key: i.toString(), - title: `备选项 ${i}` - }) -} - -const treeData: DataState[] = [ - { key: '1', title: '备选项 1' }, - { - key: '2', - title: '备选项 2', - children: [ - { key: '2-1', title: '备选项 2-1' }, - { key: '2-2', title: '备选项 2-2' }, - { key: '2-3', title: '备选项 2-3' } - ], - }, - { key: '3', title: '备选项 3-1' }, - { - key: '4', - title: '备选项 4', - children: [ - { key: '4-1', title: '备选项 4-1' }, - { - key: '4-2', - title: '备选项 4-2', - children: [ - { key: '4-2-1', title: '备选项 4-2-1' } - ] - }, - { key: '4-3', title: '备选项 4-3' } - ] - } -] - -const transferDataSource: DataState[] = [] -function flatten(list: DataState[] = []) { - list.forEach(item => { - transferDataSource?.push(item) - flatten(item.children) - }) -} -flatten(JSON.parse(JSON.stringify(treeData))) - -export { mockData, treeData, transferDataSource } \ No newline at end of file diff --git a/apps/admin/build/src/views/compo/transfer/index.tsx b/apps/admin/build/src/views/compo/transfer/index.tsx deleted file mode 100644 index 887903c9..00000000 --- a/apps/admin/build/src/views/compo/transfer/index.tsx +++ /dev/null @@ -1,145 +0,0 @@ -import type { DataNode } from 'antd/es/tree' -import React, { useState } from 'react' -import { Row, Col, Card, Transfer, Table, Tree } from 'antd' -import { PageWrapper } from '@/components/Page' -import { TRANSFER_COMPO } from '@/settings/websiteSetting' -import { mockData, treeData, transferDataSource } from './data' - -const TransferPage: React.FC = () => { - const [targetKeys, setTargetKeys] = useState(['1', '5']) - const [selectedKeys, setSelectedKeys] = useState(['2', '6']) - const [treeTargetKeys, setTreeTargetKeys] = useState([]) - - const onChange = (nextTargetKeys: string[]) => { - setTargetKeys(nextTargetKeys) - } - - const onSelectChange = (sourceSelectedKeys: string[], targetSelectedKeys: string[]) => { - setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]) - } - - const isChecked = (selectedKeys: (string | number)[], eventKey: string | number) => - selectedKeys.includes(eventKey) - - const generateTree = (treeNodes: DataNode[] = [], checkedKeys: string[] = []): DataNode[] => - treeNodes.map(({ children, ...props }) => ({ - ...props, - disabled: checkedKeys.includes(props.key as string), - children: generateTree(children, checkedKeys) - })) - - const handleChange = (nextTargetKeys: string[]) => { - setTreeTargetKeys(nextTargetKeys) - } - - const getRowSelection = ({ - selectedKeys, - onItemSelectAll, - onItemSelect, - }: Record) => { - return { - onSelectAll(selected: boolean, selectedRows: Record[]) { - const treeSelectedKeys = selectedRows - .filter(item => !item.disabled) - .map(({ key }) => key) - onItemSelectAll(treeSelectedKeys, selected) - }, - onSelect({ key }: Record, selected: boolean) { - onItemSelect(key, selected) - }, - selectedRowKeys: selectedKeys - } - } - - return ( - - -
- - item.title} - listStyle={{width: '230px', height: '360px'}} - locale={{itemsUnit: '项 '}} - onChange={onChange} - onSelectChange={onSelectChange} - /> - - - - - item.title} - showSelectAll={false} - listStyle={{width: '230px', height: '360px'}} - onChange={handleChange} - > - { - ({ - direction, - selectedKeys, - onItemSelect - }) => { - if (direction === 'left') { - const treeCheckedKeys = [...selectedKeys, ...treeTargetKeys] - return ( - { - onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)) - }} - onSelect={(_, { node: { key } }) => { - onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)) - }} - /> - ) - } - } - } - - - - - - - { - ({ - filteredItems, - selectedKeys, - onItemSelectAll, - onItemSelect - }) => ( -
({onClick: () => {onItemSelect(key, !selectedKeys.includes(key))}})} - /> - ) - } - - - - - - ) -} - -export default TransferPage \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/code-mirror/components/CodeInfo.tsx b/apps/admin/build/src/views/editor/code-mirror/components/CodeInfo.tsx deleted file mode 100644 index d39cb281..00000000 --- a/apps/admin/build/src/views/editor/code-mirror/components/CodeInfo.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { FC } from 'react' -import { Form } from 'antd' -import { InfoState } from '../types' - -interface PropState { - info: InfoState -} - -const CodeInfo: FC = ({ info }) => { - - return ( -
-
- - {info.length} - - - {info.lines} - - - {info.cursor} - - - {info.selected} - - -
- ) -} - -export default CodeInfo \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/code-mirror/components/Toolbar.tsx b/apps/admin/build/src/views/editor/code-mirror/components/Toolbar.tsx deleted file mode 100644 index 89002205..00000000 --- a/apps/admin/build/src/views/editor/code-mirror/components/Toolbar.tsx +++ /dev/null @@ -1,64 +0,0 @@ -import { FC } from 'react' -import { Form, Select, Checkbox } from 'antd' -import { ConfigState } from '../types' - -interface PropState { - config: ConfigState - valueChange: (values: any) => void -} - -const CodeToolbar: FC = ({ config, valueChange }) => { - const [form] = Form.useForm() - - const onValuesChange = (values: any) => { - valueChange(values) - } - - return ( -
-
- - - - -
- ) -} - -export default CodeToolbar \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/code-mirror/index.tsx b/apps/admin/build/src/views/editor/code-mirror/index.tsx deleted file mode 100644 index a134c1e5..00000000 --- a/apps/admin/build/src/views/editor/code-mirror/index.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import { FC, useState } from 'react' -import { useImmer } from 'use-immer' -import { Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { CODEMIRROR_PLUGIN } from '@/settings/websiteSetting' -import { ConfigState, InfoState } from './types' -import Codemirror from '@uiw/react-codemirror' -import Toolbar from './components/Toolbar' -import CodeInfo from './components/CodeInfo' - -const CodeMirror: FC = () => { - const [codeVal, setCodeVal] = useState(`console.log('Hello, world!')`) - const [config, setConfig] = useState({ - language: 'javascript', - autoFocus: true, - indentWithTab: true, - height: '350px' - }) - const [codeInfo, setCodeInfo] = useImmer({ - lines: null as null | number, - cursor: null as null | number, - selected: null as null | number, - length: null as null | number - }) - - const handleValueChange = (values: any) => { - setConfig({...config, ...values}) - } - - const handleChange = (value: any) => { - setCodeVal(value) - } - - const handleStateUpdate = (viewUpdate: any) => { - const ranges = viewUpdate.state.selection.ranges - setCodeInfo({ - lines: viewUpdate.state.doc.lines, - cursor: ranges[0].anchor, - selected: ranges.reduce((plus: any, range: any) => plus + range.to - range.from, 0), - length: viewUpdate.state.doc.length - }) - } - - return ( - - - - - - - - ) -} - -export default CodeMirror \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/code-mirror/types.ts b/apps/admin/build/src/views/editor/code-mirror/types.ts deleted file mode 100644 index c3ff233e..00000000 --- a/apps/admin/build/src/views/editor/code-mirror/types.ts +++ /dev/null @@ -1,13 +0,0 @@ -export interface ConfigState { - language: string - autoFocus: boolean - indentWithTab: boolean - height: string -} - -export interface InfoState { - lines: null | number - cursor: null | number - selected: null | number - length: null | number -} \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/markdown.tsx b/apps/admin/build/src/views/editor/markdown.tsx deleted file mode 100644 index 77cdce0c..00000000 --- a/apps/admin/build/src/views/editor/markdown.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { FC, useState } from 'react' -import { PageWrapper } from '@/components/Page' -import { MARKDOWN_EDITOR_PLUGIN } from '@/settings/websiteSetting' -import MDEditor from '@uiw/react-md-editor' - -const MarkdownEditor: FC = () => { - const [value, setValue] = useState("**Hello world!!!**") - - const handleChange = (value: any) => { - setValue(value) - } - - return ( - -
- -
-
- ) -} - -export default MarkdownEditor \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/rich-text/components/Editor.tsx b/apps/admin/build/src/views/editor/rich-text/components/Editor.tsx deleted file mode 100644 index 360a99bf..00000000 --- a/apps/admin/build/src/views/editor/rich-text/components/Editor.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import React, { useRef, useEffect, useState } from 'react' -import {SlateDescendant, IEditorConfig, createEditor, IDomEditor, SlateEditor, SlateTransforms } from '@wangeditor/editor' - -interface IProps { - defaultContent?: SlateDescendant[] - onCreated?: (editor: IDomEditor) => void - defaultHtml?: string - value?: string - onChange: (editor: IDomEditor) => void - defaultConfig: Partial - mode?: string - style?: React.CSSProperties - className?: string -} - -function EditorComponent(props: Partial) { - const { defaultContent = [], onCreated, defaultHtml = '', value = '', onChange, defaultConfig = {}, mode = 'default', style = {}, className } = props - const ref = useRef(null) - const [editor, setEditor] = useState(null) - const [curValue, setCurValue] = useState('') - - const handleCreated = (editor: IDomEditor) => { - // Component attr onCreated。(组件属性 onCreated) - if (onCreated) onCreated(editor) - - // Editor config onCreate。(编辑器 配置 onCreated) - const { onCreated: onCreatedFromConfig } = defaultConfig - if (onCreatedFromConfig) onCreatedFromConfig(editor) - } - - const handleChanged = (editor: IDomEditor) => { - // Records the current html value。(记录当前 html 值) - setCurValue(editor.getHtml()) - - // Component attr onChange。(组件属性 onChange) - if (onChange) onChange(editor) - - // Editor config onChange。(编辑器 配置 onChange) - const { onChange: onChangeFromConfig } = defaultConfig - if (onChangeFromConfig) onChangeFromConfig(editor) - } - - const handleDestroyed = (editor: IDomEditor) => { - const { onDestroyed } = defaultConfig - setEditor(null) - if(onDestroyed) { - onDestroyed(editor) - } - } - - // Value changes, resets HTML。(value 变化,重置 HTML) - useEffect(() => { - if (editor == null) return - - // Ignore if it is equal to the current html value。(如果和当前 html 值相等,则忽略) - if (value === curValue) return - - // Reset HTML。(重新设置 HTML) - try { - editor.setHtml(value) - } catch (error) { - console.error(error) - } - - }, [value]) - - useEffect(() => { - if (ref.current == null) return - if (editor != null) return - // Prevents duplicate rendering when the editor is already created。(防止重复渲染 当编辑器已经创建就不在创建了) - if (ref.current?.getAttribute('data-w-e-textarea')) return - - const newEditor = createEditor({ - selector: ref.current, - config: { - ...defaultConfig, - onCreated: handleCreated, - onChange: handleChanged, - onDestroyed: handleDestroyed, - }, - content: defaultContent, - html: defaultHtml || value, - mode, - }) - setEditor(newEditor) - }, [editor]) - - return
-} - -export default EditorComponent \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/rich-text/components/Toolbar.tsx b/apps/admin/build/src/views/editor/rich-text/components/Toolbar.tsx deleted file mode 100644 index f8955ad3..00000000 --- a/apps/admin/build/src/views/editor/rich-text/components/Toolbar.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { useRef, useEffect } from 'react' -import * as wangEditor from '@wangeditor/editor' - -interface IProps { - editor: wangEditor.IDomEditor | null - defaultConfig?: Partial - mode?: string - style?: object - className?: string -} - -function ToolbarComponent(props: IProps) { - const { editor, defaultConfig = {}, mode = 'default', style = {}, className } = props - const ref = useRef(null) - - useEffect(() => { - if (ref.current == null) return - if (editor == null) return - - wangEditor.createToolbar({ - editor, - selector: ref.current, - config: defaultConfig, - mode, - }) - }, [editor]) - - return
-} - -export default ToolbarComponent \ No newline at end of file diff --git a/apps/admin/build/src/views/editor/rich-text/index.tsx b/apps/admin/build/src/views/editor/rich-text/index.tsx deleted file mode 100644 index e235eaae..00000000 --- a/apps/admin/build/src/views/editor/rich-text/index.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import {FC, useState, useEffect } from 'react' -import { PageWrapper } from '@/components/Page' -import { WANG_EDITOR_PLUGIN } from '@/settings/websiteSetting' -import { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor' -import Editor from './components/Editor' -import Toolbar from './components/Toolbar' -import '@wangeditor/editor/dist/css/style.css' - -const RichTextEditor: FC = () => { - const [editor, setEditor] = useState(null) - const [html, setHtml] = useState('

hello

') - - - const toolbarConfig: Partial = {} - const editorConfig: Partial = { // TS 语法 - placeholder: '请输入内容...' - } - - useEffect(() => { - return () => { - if (editor == null) return - editor.destroy() - setEditor(null) - } - }, [editor]) - - return ( - -
- - setHtml(editor.getHtml())} - mode='default' - style={{ height: '500px', overflowY: 'hidden' }} - /> -
-
- ) -} - -export default RichTextEditor \ No newline at end of file diff --git a/apps/admin/build/src/views/excel/export-excel/data.ts b/apps/admin/build/src/views/excel/export-excel/data.ts deleted file mode 100644 index 7d57239f..00000000 --- a/apps/admin/build/src/views/excel/export-excel/data.ts +++ /dev/null @@ -1,91 +0,0 @@ -export interface DataItem { - key: number - name: string - sex: string - phone: number - birth: string - education: string - hobby: string - forbid: boolean - editable: boolean -} - -export const tableData: DataItem[] = [ - { - key: 1001, - name: '张三', - sex: '男', - phone: 15266001235, - birth: '2002-05-06', - education: '高中', - hobby: '羽毛球、篮球、听歌、阅读', - forbid: false, - editable: true - }, - { - key: 1002, - name: '李四', - sex: '男', - phone: 15266006621, - birth: '1998-09-21', - education: '初中', - hobby: '乒乓球、排球、游泳', - forbid: true, - editable: false - }, - { - key: 1003, - name: '王五', - sex: '男', - phone: 15264848125, - birth: '1993-06-06', - education: '本科', - hobby: '旱冰、滑雪、跳高、打游戏', - forbid: false, - editable: false - }, - { - key: 1004, - name: '辛八', - sex: '男', - phone: 15248491001, - birth: '1995-08-03', - education: '大专', - hobby: '网球、篮球、跳伞', - forbid: true, - editable: false - }, - { - key: 1005, - name: '刘二', - sex: '女', - phone: 15248411021, - birth: '1999-11-05', - education: '本科', - hobby: '滑翔、游泳、篮球、看电影', - forbid: true, - editable: false - }, - { - key: 1006, - name: '赵七', - sex: '男', - phone: 15298621500, - birth: '2000-07-18', - education: '大专', - hobby: '游泳、篮球、潜水', - forbid: false, - editable: false - }, - { - key: 1007, - name: '杨一', - sex: '女', - phone: 15267499461, - birth: '1998-12-25', - education: '高中', - hobby: '冲浪、上网、看书、打游戏', - forbid: false, - editable: false - } -] diff --git a/apps/admin/build/src/views/excel/export-excel/index.tsx b/apps/admin/build/src/views/excel/export-excel/index.tsx deleted file mode 100644 index 6d40b3df..00000000 --- a/apps/admin/build/src/views/excel/export-excel/index.tsx +++ /dev/null @@ -1,125 +0,0 @@ -import { useState } from 'react' -import { Form, Button, Card, Input, Radio, Select, Table, Space, message } from 'antd' -import { ColumnType } from 'antd/es/table' -import { PageWrapper } from '@/components/Page' -import { XLSX_PLUGIN } from '@/settings/websiteSetting' -import { useExcel } from '../useExcel' -import { DataToSheet } from '../types' -import { tableData } from './data' - -type FileType = 'xlsx' | 'csv' | 'txt' - -interface FormState { - fileName: string - autoWidth: boolean - fileType: FileType -} - -const ExportExcel = (props: any) => { - const { Item } = Form - const { Group } = Radio - - const { exportDataToExcel } = useExcel() - - const formParam = { - fileName: '', - autoWidth: true, - fileType: 'xlsx' - } - - const tableColumns: ColumnType[] = [ - { title: '编号', dataIndex: 'key', align: 'center' }, - { title: '姓名', dataIndex: 'name', align: 'center' }, - { title: '性别', dataIndex: 'sex', align: 'center' }, - { title: '手机', dataIndex: 'phone', align: 'center' }, - { title: '学历', dataIndex: 'education', align: 'center' }, - { title: '爱好', dataIndex: 'hobby', align: 'center' } - ] - - const [tableSelectedKeys, setTableSelectedKeys] = useState([]) - const [tableSelectedRows, setTableSelectedRows] = useState([]) - - function handleTableChange(selectedKeys: any[]) { - setTableSelectedKeys(selectedKeys) - } - - function handleTableSelect( - _record: object, - _selected: boolean, - selectedRows: object[] - ) { - setTableSelectedRows(selectedRows) - } - - function handleTableSelectAll(_selected: boolean, selectedRows: object[]) { - setTableSelectedRows(selectedRows) - } - - - function handleExport(values: FormState) { - console.log('values', values) - if (!tableSelectedRows.length) { - message.warning('请勾选要导出的数据项!') - return - } - const { fileName, autoWidth, fileType: bookType } = values - - const params: DataToSheet = { - data: tableSelectedRows, - header: ['编号', '姓名', '性别', '手机', '学历', '爱好'], - key: ['key', 'name', 'sex', 'phone', 'education', 'hobby'], - fileName, autoWidth, bookType - } - exportDataToExcel(params) - setTableSelectedKeys([]) - setTableSelectedRows([]) - } - - return ( - - - -
- - - - - - - -
- - - - ) -} - -export default ExportExcel \ No newline at end of file diff --git a/apps/admin/build/src/views/excel/import-excel.tsx b/apps/admin/build/src/views/excel/import-excel.tsx deleted file mode 100644 index c98cec56..00000000 --- a/apps/admin/build/src/views/excel/import-excel.tsx +++ /dev/null @@ -1,76 +0,0 @@ -import type { UploadChangeParam } from 'antd/es/upload' -import type { ColumnType } from 'antd/es/table' -import { useState } from 'react' -import { Card, Table, Upload, Space, message } from 'antd' -import { CloudUploadOutlined } from '@ant-design/icons' -import { PageWrapper } from '@/components/Page' -import { XLSX_PLUGIN } from '@/settings/websiteSetting' -import { useExcel } from './useExcel' - -const ImportExcel = (props: any) => { - const { Dragger } = Upload - const [tableData, setTableData] = useState([]) - const [tableColumns, setTableColumns] = useState[]>([]) - const { readDataFromExcel } = useExcel() - - function handleChange(fileParam: UploadChangeParam) { - const { file } = fileParam - const rawFile = file.originFileObj - - if (!rawFile) return - if (!/\.(xlsx|xls|csv)$/.test(rawFile.name)) { - message.warning('Excel文件只支持.xlsx, .xls, .csv格式!') - return - } - - const isLimit1M = rawFile.size / 1024 /1024 < 1 - if (!isLimit1M) { - message.warning('上传的Excel文件大小不能超过1M!') - return - } - - readFile(rawFile) - } - - function readFile(rawFile: File) { - const reader = new FileReader() - reader.onload = e => { - const data = e.target && e.target.result - const { header, results } = readDataFromExcel(data, 'array') - const columns = header.map(key => ({title: key, dataIndex: key, align: 'center'})) as ColumnType[] - setTableColumns(columns) - setTableData(results as object[]) - } - reader.readAsArrayBuffer(rawFile) - reader.onerror = () => { - message.error('Excel文件读取出错!') - } - } - - return ( - - - - -

- -

-

将Excel文件拖到此处, 或点击上传

-
-
- - - - ) -} - -export default ImportExcel \ No newline at end of file diff --git a/apps/admin/build/src/views/excel/types.ts b/apps/admin/build/src/views/excel/types.ts deleted file mode 100644 index b27e22b2..00000000 --- a/apps/admin/build/src/views/excel/types.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { BookType } from 'xlsx' - -export type ImportType = 'base64' | 'binary' | 'string' | 'buffer' | 'array' | 'file' - -export interface DataToSheet { - data: T[] - header: T[] - key: T[] - fileName?: string - autoWidth?: boolean - bookType: BookType -} \ No newline at end of file diff --git a/apps/admin/build/src/views/excel/useExcel.ts b/apps/admin/build/src/views/excel/useExcel.ts deleted file mode 100644 index 15d2166a..00000000 --- a/apps/admin/build/src/views/excel/useExcel.ts +++ /dev/null @@ -1,119 +0,0 @@ -import type { WorkSheet } from 'xlsx' -import { write, read, utils } from 'xlsx' -import { saveAs } from 'file-saver' -import { ImportType, DataToSheet } from './types' - -export function useExcel() { - // Automatic width calculation (自动宽度计算) - function AutoWidth(ws: WorkSheet, arr: any[][]) { - // Sets the maximum width of each column of the worksheet (设置worksheet每列的最大宽度) - const colWidth = arr.map(row => row.map(val => { - // Checked null or undefined(判断是否为null/undefined) - if (val == null) { - return { wch: 10 } - } else if (val.toString().charCodeAt(0) > 255) { // Checked Chinese (判断是否为中文) - return { wch: val.toString().length * 2 } - } else { - return { wch: val.toString().length } - } - })) - // The initial value of the first row (以第一行为初始值) - const result = colWidth[0] - for (let i = 1; i < colWidth.length; i++) { - for (let j = 0; j < colWidth[i].length; j++) { - if (result[j].wch < colWidth[i][j].wch) { - result[j].wch = colWidth[i][j].wch - } - } - } - ws['!cols'] = result - } - - // Array to JSON (数组转换成JSON) - function formatJSON(key: any[], data: any[]) { - return data.map(v => key.map(i => { return v[i] })) - } - - // String to ArrayBuffer (字符串转ArrayBuffer) - function s2ab(s: string) { - const buf = new ArrayBuffer(s.length) - const view = new Uint8Array(buf) - for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF - return buf - } - - // Exporting EXCEL (导出EXCEL表格) - function exportDataToExcel( - { - header, // Table header label (表头名数组) - key, // Table header key (列对应字段数组) - data, // Data to be exported (需要导出数据的数组) - fileName, // Export file name (导出文件名) - autoWidth = true, // Automatic width (是否自动宽度) - bookType = 'xlsx' // Export file type (导出文件格式) - }: DataToSheet) { - // Create the Workbook object (创建Workbook对象) - const wb = utils.book_new() - const arr = formatJSON(key, data) - fileName = fileName || 'excel-list' - arr.unshift(header) - // Convert the array to worksheet (将数组数据转换为worksheet) - const ws = utils.aoa_to_sheet(arr) - if (autoWidth) { - AutoWidth(ws, arr) - } - // Appends the worksheet and fileName to the Workbook object (向Workbook对象中追加worksheet和fileName) - utils.book_append_sheet(wb, ws, fileName) - // Generate EXCEL configuration items (生成EXCEL的配置项) - const wbout = write(wb, { - bookType: bookType, - bookSST: false, - type: 'binary' - }) - // Browser download (浏览器下载) - saveAs(new Blob([s2ab(wbout)], { - type: 'application/octet-stream' - }), `${fileName}.${bookType}`) - } - - // Get the table header from the Excel file (从Excel文件中获取表格头) - function getHeaderRow(sheet: WorkSheet) { - if (!sheet || !sheet['!ref']) return [] - - const headers: string[] = [] - // Converts a string such as A1:G8 to a column and row object (将 A1:G8 这种字符串转换为行列对象) - const range = utils.decode_range(sheet['!ref']) - - const R = range.s.r - // Start in the first row, walk every column in the range (从第一列开始,遍历范围中的每一列) - for (let C = range.s.c; C <= range.e.c; ++C) { - // Converts a row object to a string such as A1 (将行列对象转换为 A1 这种字符串) - const cell = sheet[utils.encode_cell({ c: C, r: R })] - // Replace with your desired default (用默认值替换) - let hdr = 'UNKNOWN ' + C - if (cell && cell.t) hdr = utils.format_cell(cell) - headers.push(hdr) - } - return headers - } - - // Reading excel files (读取Excel文件) - function readDataFromExcel(data: any, type: ImportType) { - // Read the Excel file and save it to the Workbook object (读取Excel文件并保存到Workbook对象) - const workbook = read(data, { type: type }) - const firstSheetName = workbook.SheetNames[0] - // Gets the worksheet of the Workbook object (获取Workbook对象的worksheet) - const worksheet = workbook.Sheets[firstSheetName] - const header = getHeaderRow(worksheet) - // Convert the worksheet to an array (将worksheet转化成数组) - const results = utils.sheet_to_json(worksheet) - return { header, results } - } - - return { - exportDataToExcel, - readDataFromExcel - } - -} - diff --git a/apps/admin/build/src/views/exception/index.tsx b/apps/admin/build/src/views/exception/index.tsx deleted file mode 100644 index 4ad71cfa..00000000 --- a/apps/admin/build/src/views/exception/index.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { FC, ReactNode } from 'react' -import { Result, Card, Button } from 'antd' -import { useNavigate, useLoaderData } from 'react-router-dom' - -const subTitleMap = new Map([ - [403, '对不起,您没有权限访问此页面。'], - [404, '对不起,您访问的页面不存在。'], - [500, '对不起,服务器发生错误。'] -]) - -const PageException: FC = () => { - const navigate = useNavigate() - - const { status, withCard } = useLoaderData() as { status: any; withCard: boolean } - - const goHome = () => { - navigate('/home') - } - - const WithCard = ({ children }: { children: ReactNode }) => { - if (withCard) { - return {children} - } else { - return ( -
- {children} -
- ) - } - } - - return ( - - - 返回首页 - - } - /> - - ) -} - -export default PageException diff --git a/apps/admin/build/src/views/form/basic-form/data.ts b/apps/admin/build/src/views/form/basic-form/data.ts deleted file mode 100644 index 24f5cb50..00000000 --- a/apps/admin/build/src/views/form/basic-form/data.ts +++ /dev/null @@ -1,248 +0,0 @@ - -export const provinceData = ['guangdong', 'Zhejiang', 'Jiangsu'] - -export const cityData: Record = { - guangdong: ['guangzhou', 'shenzhen', 'foshan', 'dongguan', 'zhuhai'], - Zhejiang: ['Hangzhou', 'Ningbo', 'Wenzhou'], - Jiangsu: ['Nanjing', 'Suzhou', 'Zhenjiang', 'wuxi'] -} - -export const cascaderData = [{ - value: 'zhinan', - label: '指南', - children: [{ - value: 'shejiyuanze', - label: '设计原则', - children: [{ - value: 'yizhi', - label: '一致' - }, { - value: 'fankui', - label: '反馈' - }, { - value: 'xiaolv', - label: '效率' - }, { - value: 'kekong', - label: '可控' - }] - }, { - value: 'daohang', - label: '导航', - children: [{ - value: 'cexiangdaohang', - label: '侧向导航' - }, { - value: 'dingbudaohang', - label: '顶部导航' - }] - }] -}, { - value: 'zujian', - label: '组件', - children: [{ - value: 'basic', - label: 'Basic', - children: [{ - value: 'layout', - label: 'layout 布局' - }, { - value: 'color', - label: 'Color 色彩' - }, { - value: 'typography', - label: 'Typography 字体' - }, { - value: 'icon', - label: 'Icon 图标' - }, { - value: 'button', - label: 'Button 按钮' - }] - }, { - value: 'form', - label: 'Form', - children: [{ - value: 'radio', - label: 'Radio 单选框' - }, { - value: 'checkbox', - label: 'Checkbox 多选框' - }, { - value: 'input', - label: 'Input 输入框' - }, { - value: 'input-number', - label: 'InputNumber 计数器' - }, { - value: 'select', - label: 'Select 选择器' - }, { - value: 'cascader', - label: 'Cascader 级联选择器' - }, { - value: 'switch', - label: 'Switch 开关' - }, { - value: 'slider', - label: 'Slider 滑块' - }, { - value: 'time-picker', - label: 'TimePicker 时间选择器' - }, { - value: 'date-picker', - label: 'DatePicker 日期选择器' - }, { - value: 'datetime-picker', - label: 'DateTimePicker 日期时间选择器' - }, { - value: 'upload', - label: 'Upload 上传' - }, { - value: 'rate', - label: 'Rate 评分' - }, { - value: 'form', - label: 'Form 表单' - }] - }, { - value: 'data', - label: 'Data', - children: [{ - value: 'table', - label: 'Table 表格' - }, { - value: 'tag', - label: 'Tag 标签' - }, { - value: 'progress', - label: 'Progress 进度条' - }, { - value: 'tree', - label: 'Tree 树形控件' - }, { - value: 'pagination', - label: 'Pagination 分页' - }, { - value: 'badge', - label: 'Badge 标记' - }] - }, { - value: 'notice', - label: 'Notice', - children: [{ - value: 'alert', - label: 'Alert 警告' - }, { - value: 'loading', - label: 'Loading 加载' - }, { - value: 'message', - label: 'Message 消息提示' - }, { - value: 'message-box', - label: 'MessageBox 弹框' - }, { - value: 'notification', - label: 'Notification 通知' - }] - }, { - value: 'navigation', - label: 'Navigation', - children: [{ - value: 'menu', - label: 'NavMenu 导航菜单' - }, { - value: 'tabs', - label: 'Tabs 标签页' - }, { - value: 'breadcrumb', - label: 'Breadcrumb 面包屑' - }, { - value: 'dropdown', - label: 'Dropdown 下拉菜单' - }, { - value: 'steps', - label: 'Steps 步骤条' - }] - }, { - value: 'others', - label: 'Others', - children: [{ - value: 'dialog', - label: 'Dialog 对话框' - }, { - value: 'tooltip', - label: 'Tooltip 文字提示' - }, { - value: 'popover', - label: 'Popover 弹出框' - }, { - value: 'card', - label: 'Card 卡片' - }, { - value: 'carousel', - label: 'Carousel 走马灯' - }, { - value: 'collapse', - label: 'Collapse 折叠面板' - }] - }] -}, { - value: 'ziyuan', - label: '资源', - children: [{ - value: 'axure', - label: 'Axure Components' - }, { - value: 'sketch', - label: 'Sketch Templates' - }, { - value: 'jiaohu', - label: '组件交互文档' - }] -}] - -export const treeData = [{ - title: 'Node1', - value: '0-0', - children: [{ - title: 'Child Node1', - value: '0-0-0', - children: [{ - title: 'Child Node6', - value: '0-0-1' - }] - }] -}, { - title: 'Node2', - value: '0-1', - children: [{ - title: 'Child Node3', - value: '0-1-0', - disabled: true, - }, { - title: 'Child Node4', - value: '0-1-1', - }, { - title: 'Child Node5', - value: '0-1-2', - }] -}] - -export const radioData = [ - { label: '免费', value: 'free' }, - { label: '收费', value: 'fee' }, - { label: '赞助', value: 'sponsor' }, - { label: '线上', value: 'online', disabled: true }, - { label: '线下', value: 'offline', disabled: true } -] - -export const checkboxData = [ - { label: '游泳', value: 'swim' }, - { label: '跑步', value: 'run' }, - { label: '健身', value: 'fit' }, - { label: '阅读', value: 'read', disabled: true }, - { label: '音乐', value: 'music', disabled: true }, - { label: '电影', value: 'movie' } -] diff --git a/apps/admin/build/src/views/form/basic-form/index.tsx b/apps/admin/build/src/views/form/basic-form/index.tsx deleted file mode 100644 index 8d55119b..00000000 --- a/apps/admin/build/src/views/form/basic-form/index.tsx +++ /dev/null @@ -1,264 +0,0 @@ -import type { CascaderProps, TreeSelectProps } from 'antd' -import type { Rule } from 'antd/es/form' -import { FC, useState } from 'react' -import { Card, Form, Row, Col, Input, InputNumber, Button, Select, DatePicker, TimePicker, - Switch, Slider, Cascader, TreeSelect, Radio, Checkbox } from 'antd' -import { FORM_COMPO } from '@/settings/websiteSetting' -import { PageWrapper } from '@/components/Page' -import { provinceData, cityData, cascaderData, treeData, radioData, checkboxData } from './data' - -const BasicForm: FC = () => { - const [form] = Form.useForm() - - const province = provinceData[0] - const [formState, setFormState] = useState({ - inputLimit: '', - inputNum: '', - password: '', - selectProvince: province, - selectCity: cityData[province][0], - dateVal: '', - timeVal: '', - switchVal: true, - sliderVal: 32, - cascaderVal: [], - cascaderLazy: [], - treeVal: ['0-0-1'], - treeLazy: '1', - radioVal: 'offline', - checkboxVal: ['read'], - textareaVal: '' - }) - - const formRules: Record = { - inputLimit: [ - { required: true, message: '内容不能为空' } - ], - inputNum: [ - { required: true, message: '内容不能为空' }, - { type: 'number', message: '内容必须为数字值' } - ], - password: [ - { required: true, message: '内容不能为空' }, - { min: 6, max: 16, message: '密码长度在 6 到 16 个字符' }, - { pattern: /^[a-zA-Z0-9_-]{6,16}$/, message: '密码只支持字母、数字和下划线' } - ] - } - - const switchVal = Form.useWatch('switchVal', form) - - const [cascaderLazyData, setCascaderLazyData] = useState([ - { value: 1, label: '选项1', isLeaf: false } - ]) - - const [treeLazyData, setTreeLazyData] = useState([ - { id: 1, pId: 0, value: '1', title: 'Expand to load' }, - { id: 2, pId: 0, value: '2', title: 'Expand to load' }, - { id: 3, pId: 0, value: '3', title: 'Tree Node', isLeaf: true }, - ]) - - const handleProvinceChange = (value: any) => { - form.setFieldsValue({ selectCity: cityData[value][0] }) - } - - const loadCascaderLazy = (selectedOptions: any) => { - const targetOption = selectedOptions[selectedOptions.length - 1] - targetOption.loading = true - - setTimeout(() => { - targetOption.loading = false - let id = selectedOptions.length - const level = selectedOptions.length - targetOption.children = Array.from({ length: level + 1 }) - .map(() => ({ - value: ++id, - label: `选项${id}`, - isLeaf: level >= 2 - })) - setCascaderLazyData([...cascaderLazyData!]) - }, 1000) - } - - const loadTreeLazy: TreeSelectProps['loadData'] = ({ id }) => { - const genTreeNode = (parentId: number, isLeaf = false) => { - const random = Math.random().toString(36).substring(2, 6) - return { - id: random, - pId: parentId, - value: random, - title: isLeaf ? 'Tree Node' : 'Expand to load', - isLeaf - } - } - - return new Promise(resolve => { - setTimeout(() => { - setTreeLazyData(treeLazyData?.concat([ - genTreeNode(id, false), - genTreeNode(id, true), - genTreeNode(id, true) - ])) - resolve(undefined) - }, 500) - }) - } - - const onFinish = (values: any) => { - console.log('Success:', values) - } - - const resetForm = () => { - form.resetFields() - } - - return ( - - - - - - - - - - - - - - -
- - ({ value: city }))} - /> - - - - - - - - - - - - - - - - - - - - { - !switchVal - ? null - : ( - <> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ) - } - - - - - - - - ) -} - -export default BasicForm diff --git a/apps/admin/build/src/views/form/form-designer.tsx b/apps/admin/build/src/views/form/form-designer.tsx deleted file mode 100644 index c59d9e45..00000000 --- a/apps/admin/build/src/views/form/form-designer.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import { FC } from 'react' -import { Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { FORM_CREATE_DESIGNER } from '@/settings/websiteSetting' - -const FormCreate: FC = () => { - - return ( - - - - ) -} - -export default FormCreate \ No newline at end of file diff --git a/apps/admin/build/src/views/form/gbeata-form/index.tsx b/apps/admin/build/src/views/form/gbeata-form/index.tsx deleted file mode 100644 index 050a3597..00000000 --- a/apps/admin/build/src/views/form/gbeata-form/index.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { GButton } from 'gbeata' - -const GbeataForm = () => { - const fields: Array = [ - { - title: '中文名', - key: 'cn' - }, - { - title: '年龄', - type: 'slider', - key: 'sex' - } - ] - const handleConfirm = (form: any) => { - console.log(form) - alert(JSON.stringify(form)) - } - - return ( - - 提交 - - ) -} - -export default GbeataForm diff --git a/apps/admin/build/src/views/home/components/ChartsCard.tsx b/apps/admin/build/src/views/home/components/ChartsCard.tsx deleted file mode 100644 index 6be515cf..00000000 --- a/apps/admin/build/src/views/home/components/ChartsCard.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import type { EChartsOption } from 'echarts' -import { FC } from 'react' -import { Card } from 'antd' -import { useECharts } from '@/hooks/web/useECharts' - -interface propState { - loading: boolean - options: EChartsOption - height: number -} - -const ChartsCard: FC = ({ loading, options, height }) => { - - const { chartRef } = useECharts(options, loading) - - return ( - -
- - ) -} - -export default ChartsCard \ No newline at end of file diff --git a/apps/admin/build/src/views/home/components/CountUpCard.tsx b/apps/admin/build/src/views/home/components/CountUpCard.tsx deleted file mode 100644 index a20f98d6..00000000 --- a/apps/admin/build/src/views/home/components/CountUpCard.tsx +++ /dev/null @@ -1,55 +0,0 @@ -import { FC } from 'react' -import { Card } from 'antd' -import CountUp from 'react-countup' -import SvgIcon from '@/components/SvgIcon' - -interface propState { - loading: boolean - title: string - color: string - iconName: string - countNum: number -} - -const CountUpCard: FC = (props) => { - - return ( - -
-
- -
-
- -

{props.title}

-
-
-
- ) -} - -export default CountUpCard \ No newline at end of file diff --git a/apps/admin/build/src/views/home/data.ts b/apps/admin/build/src/views/home/data.ts deleted file mode 100644 index 51cd354b..00000000 --- a/apps/admin/build/src/views/home/data.ts +++ /dev/null @@ -1,278 +0,0 @@ -import type { EChartsOption } from 'echarts' - -export const countUpData = [ - { - title: '今日点击', - icon: 'location', - count: 682, - color: '#1890ff' - }, - { - title: '新增用户', - icon: 'person', - count: 259, - color: '#fa541c' - }, - { - title: '信息发送', - icon: 'message', - count: 1262, - color: '#faad14' - }, - { - title: '点赞统计', - icon: 'like', - count: 508, - color: '#13c2c2' - }, - { - title: '累计收藏', - icon: 'heart', - count: 379, - color: '#722ed1' - } -] - -export const pieOptions: EChartsOption = { - tooltip: { - trigger: 'item' - }, - legend: { - bottom: 0, - left: 'center' - }, - series: [ - { - name: '访问来源', - type: 'pie', - radius: '70%', - center: ['50%', '45%'], - color: ['#1890ff', '#fa541c', '#faad14', '#13c2c2', '#722ed1'], - data: [ - { value: 1620, name: '直接访问' }, - { value: 1169, name: '邮件营销' }, - { value: 986, name: '联盟广告' }, - { value: 624, name: '视频广告' }, - { value: 857, name: '搜索引擎' } - ], - roseType: 'radius', - animationType: 'scale', - animationEasing: 'exponentialInOut', - animationDelay: function () { - return Math.random() * 400 - } - } - ] -} - -export const ringOptions: EChartsOption = { - tooltip: { - trigger: 'item' - }, - legend: { - bottom: 0, - left: 'center' - }, - series: [ - { - color: ['#1890ff', '#fa541c', '#faad14', '#13c2c2', '#722ed1'], - name: '访问来源', - type: 'pie', - radius: ['40%', '70%'], - center: ['50%', '45%'], - avoidLabelOverlap: false, - itemStyle: { - borderRadius: 10, - borderColor: '#fff', - borderWidth: 2 - }, - label: { - show: false, - position: 'center' - }, - emphasis: { - label: { - show: true, - fontSize: '12', - fontWeight: 'bold' - } - }, - labelLine: { - show: false - }, - data: [ - { value: 1620, name: '直接访问' }, - { value: 1169, name: '邮件营销' }, - { value: 986, name: '联盟广告' }, - { value: 624, name: '视频广告' }, - { value: 2758, name: '搜索引擎' } - ], - animationType: 'scale', - animationEasing: 'exponentialInOut', - animationDelay: function () { - return Math.random() * 100 - } - } - ] -} - -export const radarOptions: EChartsOption = { - legend: { - bottom: 0, - data: ['推广渠道', '广告投放', '访问来源'] - }, - radar: { - radius: '70%', - center: ['50%', '45%'], - splitNumber: 8, - indicator: [ - { - name: '直接访问' - }, - { - name: '邮件营销' - }, - { - name: '联盟广告' - }, - { - name: '视频广告' - }, - { - name: '搜索引擎' - } - ] - }, - series: [ - { - type: 'radar', - symbolSize: 0, - areaStyle: { - shadowBlur: 0, - shadowColor: 'rgba(0,0,0,.2)', - shadowOffsetX: 0, - shadowOffsetY: 10, - opacity: 1 - }, - data: [ - { - value: [1920, 1920, 1920, 0, 0], - name: '推广渠道', - itemStyle: { - color: '#1890ff' - } - }, - { - value: [1920, 0, 0, 1920, 1920], - name: '访问来源', - itemStyle: { - color: '#722ed1' - } - }, - { - value: [920, 920, 920, 920, 920], - name: '广告投放', - itemStyle: { - color: '#faad14' - } - } - ] - } - ] -} - -export const barOptions: EChartsOption = { - tooltip: { - trigger: 'axis', - axisPointer: { - lineStyle: { - width: 1, - color: '#fa541c' - } - } - }, - grid: { - left: 0, - right: '1%', - top: '2%', - bottom: 0, - containLabel: true - }, - xAxis: { - type: 'category', - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - axisTick: { - alignWithLabel: true - } - }, - yAxis: { - type: 'value', - max: value => { - return Math.ceil(value.max / 100) * 100 + 300 - } - }, - label: { - show: true, - fontSize: 14, - color: '#1890ff', - position: 'top', - formatter: '{c}' - }, - series: [ - { - type: 'bar', - name: '访问量', - barWidth: '40%', - color: ['#1890ff'], - data: [782, 925, 1196, 812, 328, 223, 1080] - } - ] -} - -export const lineOptions: EChartsOption = { - tooltip: { - trigger: 'axis', - axisPointer: { - lineStyle: { - width: 1, - color: '#fa541c' - } - } - }, - grid: { - left: 0, - right: '1%', - top: '2%', - bottom: 0, - containLabel: true - }, - xAxis: { - type: 'category', - data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - axisTick: { - alignWithLabel: true - } - }, - yAxis: { - type: 'value', - max: value => { - return Math.ceil(value.max / 100) * 100 + 300 - } - }, - label: { - show: true, - fontSize: 14, - color: '#722ed1', - position: 'top', - formatter: '{c}' - }, - series: [ - { - type: 'line', - name: '访问量', - color: ['#722ed1'], - smooth: true, - data: [782, 925, 1196, 812, 328, 223, 1080] - } - ] -} diff --git a/apps/admin/build/src/views/home/index.tsx b/apps/admin/build/src/views/home/index.tsx deleted file mode 100644 index 45d148c6..00000000 --- a/apps/admin/build/src/views/home/index.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { FC, useState } from 'react' -import { Row, Col, Space } from 'antd' -import CountUpCard from './components/CountUpCard' -import ChartsCard from './components/ChartsCard' -import { countUpData, pieOptions, ringOptions, radarOptions, barOptions, lineOptions } from './data' - -const HomePage: FC = () => { - const [isLoading, setIsLoading] = useState(true) - - setTimeout(() => { - setIsLoading(false) - }, 1500) - - return ( - - - { - countUpData.map(item => { - return ( -
- - - ) - }) - } - - - - - - - - - - - - - - - - - - - - - - ) -} - -export default HomePage \ No newline at end of file diff --git a/apps/admin/build/src/views/image/image-cropper.tsx b/apps/admin/build/src/views/image/image-cropper.tsx deleted file mode 100644 index efb98f45..00000000 --- a/apps/admin/build/src/views/image/image-cropper.tsx +++ /dev/null @@ -1,74 +0,0 @@ -import React, { useRef, useState } from 'react' -import { Row, Col, Card, Button, Space } from 'antd' -import { PageWrapper } from '@/components/Page' -import { REACT_CROPPER_PLUGIN, CROPPER_IMG_SRC } from '@/settings/websiteSetting' -import Cropper, { ReactCropperElement } from 'react-cropper' -import 'cropperjs/dist/cropper.css' -import { downloadImgByUrl } from '@/utils/download' -import { UploadImage } from '@/components/Upload' - -const ImageCropper: React.FC = () => { - const cropperRef = useRef(null) - const [imgSrc, setImgSrc] = useState(CROPPER_IMG_SRC) - - const handleSuccess = (data: any) => { - setImgSrc(data) - } - - const downloadImage = () => { - if (typeof cropperRef.current?.cropper !== 'undefined') { - const imgUrl = cropperRef.current?.cropper.getCroppedCanvas().toDataURL() - - downloadImgByUrl(imgUrl, 'demo.png') - } - } - - return ( - - - - - - - - - -
- - - - -
-
- -
- -
- - - - - ) -} - -export default ImageCropper \ No newline at end of file diff --git a/apps/admin/build/src/views/login/index.less b/apps/admin/build/src/views/login/index.less deleted file mode 100644 index 2a8969f5..00000000 --- a/apps/admin/build/src/views/login/index.less +++ /dev/null @@ -1,42 +0,0 @@ -.login-wrapper { - display: flex; - justify-content: center; - align-items: center; - width: 100vw; - height: 100vh; - background-image: url('@/assets/images/login-background.jpg'); - background-size: cover; - - .login-box { - padding: 16px 30px 10px; - background: #fff; - border-radius: 4px; - box-shadow: 0 15px 30px 0 rgba(0, 0, 1, .1); - - &-title { - margin: 0 auto 35px; - text-align: center; - color: #707070; - font-size: 18px; - letter-spacing: 2px; - - img { - width: 200px; - height: 82px; - margin: 12px auto 0; - } - } - - &-form { - width: 320px; - } - - .login-btn { - width: 100%; - } - - .no-margin { - margin-bottom: 0; - } - } -} diff --git a/apps/admin/build/src/views/login/index.tsx b/apps/admin/build/src/views/login/index.tsx deleted file mode 100644 index 977a42bd..00000000 --- a/apps/admin/build/src/views/login/index.tsx +++ /dev/null @@ -1,144 +0,0 @@ -import type { FormInstance } from 'antd/es/form' -import type { LoginParams, UserInfo } from '@/types' -import { FC, useRef, useState } from 'react' -import { useNavigate, useSearchParams } from 'react-router-dom' -import { Form, Input, Checkbox, Button, message } from 'antd' -import { UserOutlined, LockOutlined } from '@ant-design/icons' -import { useAppSelector, useAppDispatch } from '@/stores' -import { setToken, setUserInfo, setSessionTimeout } from '@/stores/modules/user' -import { getAuthCache } from '@/utils/auth' -import { TOKEN_KEY } from '@/enums/cacheEnum' -import { loginApi, getUserInfo } from '@/api' -import logoIcon from '@/assets/images/logo_name.png' -import classNames from 'classnames' -import './index.less' - -const LoginPage: FC = () => { - const [form] = Form.useForm() - const loginFormRef = useRef(null) - const [loading, setLoading] = useState(false) - - const dispatch = useAppDispatch() - - const { token, sessionTimeout } = useAppSelector(state => state.user) - const getToken = (): string => { - return token || getAuthCache(TOKEN_KEY) - } - - const navigate = useNavigate() - const [searchParams] = useSearchParams() - - const handleLogin = async (values: any) => { - try { - setLoading(true) - const userInfo = await loginAction({ - username: values.username, - password: values.password - }) - if (userInfo) { - message.success('登陆成功!') - } - } catch (error) { - message.error((error as unknown as Error).message) - } finally { - setLoading(false) - } - } - - const loginAction = async ( - params: LoginParams & { - goHome?: boolean - } - ): Promise => { - try { - const { goHome = true, ...loginParams } = params - const data = await loginApi(loginParams) - - // 保存 Token - dispatch(setToken(data?.token)) - return afterLoginAction(goHome) - } catch (error) { - return Promise.reject(error) - } - } - - const afterLoginAction = async (goHome?: boolean): Promise => { - if (!getToken()) return null - - const userInfo = await getUserInfoAction() - - if (sessionTimeout) { - dispatch(setSessionTimeout(false)) - } else { - const redirect = searchParams.get('redirect') - if (redirect) { - navigate(redirect) - } else { - goHome && navigate(userInfo?.homePath || '/home') - } - } - - return userInfo - } - - const getUserInfoAction = async (): Promise => { - if (!getToken()) return null - - const userInfo = await getUserInfo() - - dispatch(setUserInfo(userInfo)) - - return userInfo - } - - return ( - - ) -} - -export default LoginPage diff --git a/apps/admin/build/src/views/table/table-basic/index.tsx b/apps/admin/build/src/views/table/table-basic/index.tsx deleted file mode 100644 index 708a0a8f..00000000 --- a/apps/admin/build/src/views/table/table-basic/index.tsx +++ /dev/null @@ -1,172 +0,0 @@ -import type { ColumnsType } from 'antd/es/table' -import { FC, useState, useEffect } from 'react' -import { Card, Button, Table, Tag, Select, Switch, Popover, Space, Modal, TableProps } from 'antd' -import { ExclamationCircleOutlined } from '@ant-design/icons' -import { TABLE_COMPO } from '@/settings/websiteSetting' -import { getTableList } from '@/api' -import { PageWrapper } from '@/components/Page' -import { APIResult, PageState, TableDataType } from './types' - -const marriedOptions = [ - { label: '单身', value: 0 }, - { label: '未婚', value: 1 }, - { label: '已婚', value: 2 }, - { label: '离异', value: 3 } -] - -const TableBasic: FC = () => { - - const [tableLoading, setTableLoading] = useState(false) - const [tableData, setTableData] = useState([]) - const [tableTotal, setTableTotal] = useState(0) - const [tableQuery, setTableQuery] = useState({ current: 1, pageSize: 10 }) - - const columns: ColumnsType = [ - { - title: '编号', - dataIndex: 'id', - align: 'center', - sorter: true - }, - { - title: '姓名', - dataIndex: 'name', - align: 'center', - render: (_, record: any) => { - const content = ( -
-

姓名: {record.name}

-

手机: {record.phone}

-

爱好: {record.hobby.join('、')}

-
- ) - return ( - - {record.name} - - ) - } - }, - { - title: '性别', - dataIndex: 'sex', - align: 'center' - }, - { - title: '手机', - dataIndex: 'phone', - align: 'center' - }, - { - title: '学历', - dataIndex: 'education', - align: 'center' - }, - { - title: '婚姻状况', - dataIndex: 'married', - align: 'center', - render: (text, record: any) => ( -
`Total ${tableTotal} items`, - showSizeChanger: true, - showQuickJumper: true, - onChange: handlePageChange - }} - /> - - - ) -} - -export default TableBasic \ No newline at end of file diff --git a/apps/admin/build/src/views/table/table-basic/types.ts b/apps/admin/build/src/views/table/table-basic/types.ts deleted file mode 100644 index 6b82581a..00000000 --- a/apps/admin/build/src/views/table/table-basic/types.ts +++ /dev/null @@ -1,20 +0,0 @@ -export interface APIResult { - list: any[], - total: number -} - -export interface PageState { - current: number - pageSize: number -} - -export interface TableDataType { - id: number - name: string - sex: string - phone: number - education: string - married: number - forbid: boolean - hobby: string[] -} \ No newline at end of file diff --git a/apps/admin/build/src/views/table/table-edit-row/data.ts b/apps/admin/build/src/views/table/table-edit-row/data.ts deleted file mode 100644 index d76a136c..00000000 --- a/apps/admin/build/src/views/table/table-edit-row/data.ts +++ /dev/null @@ -1,75 +0,0 @@ -export interface DataItem { - key: string - name: string - sex: string - birth: string - education: string - hobby: string - forbid: boolean -} - -export const tableData: DataItem[] = [ - { - key: '1001', - name: '张三', - sex: '男', - birth: '2002-05-06', - education: '高中', - hobby: '羽毛球、篮球、听歌、阅读', - forbid: false - }, - { - key: '1002', - name: '李四', - sex: '男', - birth: '1998-09-21', - education: '初中', - hobby: '乒乓球、排球、游泳', - forbid: true - }, - { - key: '1003', - name: '王五', - sex: '男', - birth: '1993-06-06', - education: '本科', - hobby: '旱冰、滑雪、跳高、打游戏', - forbid: false - }, - { - key: '1004', - name: '辛八', - sex: '男', - birth: '1995-08-03', - education: '大专', - hobby: '网球、篮球、跳伞', - forbid: true - }, - { - key: '1005', - name: '刘二', - sex: '女', - birth: '1999-11-05', - education: '本科', - hobby: '滑翔、游泳、篮球、看电影', - forbid: true - }, - { - key: '1006', - name: '赵七', - sex: '男', - birth: '2000-07-18', - education: '大专', - hobby: '游泳、篮球、潜水', - forbid: false - }, - { - key: '1007', - name: '杨一', - sex: '女', - birth: '1998-12-25', - education: '高中', - hobby: '冲浪、上网、看书、打游戏', - forbid: false - } -] diff --git a/apps/admin/build/src/views/table/table-edit-row/index.tsx b/apps/admin/build/src/views/table/table-edit-row/index.tsx deleted file mode 100644 index f66764dd..00000000 --- a/apps/admin/build/src/views/table/table-edit-row/index.tsx +++ /dev/null @@ -1,305 +0,0 @@ -import React, { useState } from 'react' -import { Form, Button, Table, Select, Switch, InputNumber, Input, DatePicker, Radio, Checkbox, Card, Popconfirm, Space } from 'antd' -import { ColumnType } from 'antd/es/table' -import { PageWrapper } from '@/components/Page' -import dayjs from 'dayjs' -import { TABLE_EDIT_COMPO } from '@/settings/websiteSetting' -import { tableData, DataItem } from './data' - -type CellType = 'number' | 'text' | 'radio' | 'date' | 'select' | 'checkbox' | 'switch' - -interface EditableCellProps extends React.HTMLAttributes { - editing: boolean - dataIndex: string - title: any - cellType: CellType - record: DataItem - index: number - children: React.ReactNode -} - -type theadKey = Record -const theadMap: theadKey = { - key: { title: '数字输入框', type: 'number' }, - name: { title: '输入框', type: 'text' }, - sex: { title: '单选框', type: 'radio' }, - birth: { title: '日期选择框', type: 'date' }, - education: { title: '选择器', type: 'select' }, - hobby: { title: '多选框', type: 'checkbox' }, - forbid: { title: '开关', type: 'switch' }, - action: { title: '按钮', type: 'button' } -} - -const nodeType = (type: CellType, record: DataItem) => { - switch (type) { - case 'number': - return - case 'text': - return - case 'radio': - return ({value: item, label: item}))} /> - case 'date': - return
- case 'select': - return
- ) -} - -const TableEditRow: React.FC = () => { - - const [form] = Form.useForm() - const [data, setData] = useState(tableData) - const [editingKey, setEditingKey] = useState('') - - const isEditing = (record: DataItem) => record.key === editingKey - - const edit = (record: Partial) => { - form.setFieldsValue({ ...record }) - setEditingKey(record.key!) - } - - const cancel = () => { - setEditingKey('') - } - - const save = async (key: React.Key) => { - try { - const row = (await form.validateFields()) as DataItem - - const newData = [...data] - const index = newData.findIndex((item) => key === item.key) - - if (index > -1) { - const item = newData[index] - newData.splice(index, 1, { - ...item, - ...row - }) - setData(newData) - setEditingKey('') - } else { - newData.push(row) - setData(newData) - setEditingKey('') - } - } catch (errInfo) { - console.log('Validate Failed:', errInfo); - } - } - - // @ts-ignore - const columns: ColumnType[] = [ - { - title: () => { - return ( - <> - 编号 -

(数字输入框)

- - ) - }, - dataIndex: 'key', - width: 70, - editable: true, - align: 'center' - }, - { - title: () => { - return ( - <> - 姓名 -

(输入框)

- - ) - }, - dataIndex: 'name', - width: 110, - editable: true, - align: 'center' - }, - { - title: () => { - return ( - <> - 性别 -

(单选框)

- - ) - }, - dataIndex: 'sex', - width: 120, - editable: true, - align: 'center' - }, - { - title: () => { - return ( - <> - 生日 -

(日期选择器)

- - ) - }, - dataIndex: 'birth', - width: 140, - editable: true, - align: 'center' - }, - { - title: () => { - return ( - <> - 学历 -

(选择器)

- - ) - }, - dataIndex: 'education', - width: 80, - editable: true, - align: 'center' - }, - { - title: () => { - return ( - <> - 爱好 -

(多选框)

- - ) - }, - dataIndex: 'hobby', - width: 250, - editable: true, - align: 'center' - }, - { - title: () => { - return ( - <> - 禁止编辑 -

(开关)

- - ) - }, - dataIndex: 'forbid', - width: 70, - editable: true, - align: 'center', - render: (text: string, record: DataItem) => { - return ( - {record.forbid ? '是' : '否'} - ) - } - }, - { - title: () => { - return ( - <> - 操作 -

(按钮)

- - ) - }, - dataIndex: 'action', - width: 70, - align: 'center', - render: (_: any, record: DataItem) => { - const editable = isEditing(record) - return editable ? ( - - - - - - - ) : ( - - ) - } - } - ] - - const mergedColumns = columns.map((col) => { - if (!col.editable) { - return col - } - return { - ...col, - onCell: (record: DataItem) => ({ - record, - cellType: theadMap[col.dataIndex].type, - dataIndex: col.dataIndex, - title: col.title, - editing: isEditing(record) - }) - } - }) - - return ( - - -
-
- {editing ? ( - - {cellNode} - - ) : ( - children - )} -
- - - - ) -} - -export default TableEditRow \ No newline at end of file diff --git a/apps/admin/build/src/views/tree/antd-tree/data.ts b/apps/admin/build/src/views/tree/antd-tree/data.ts deleted file mode 100644 index a599f8b0..00000000 --- a/apps/admin/build/src/views/tree/antd-tree/data.ts +++ /dev/null @@ -1,48 +0,0 @@ -export const treeData = [{ - key: '1-0', - title: '一级 1', - children: [{ - key: '1-1', - title: '二级 1-1', - children: [{ - key: '1-1-1', - title: '三级 1-1-1' - }, { - key: '1-1-2', - title: '三级 1-1-2' - }] - }] -}, { - key: '2-0', - title: '一级 2', - children: [{ - key: '2-1', - title: '二级 2-1' - }, { - key:'2-2', - title: '二级 2-2', - disabled: true - }] -}, { - key: '3-0', - title: '一级 3', - children: [{ - key: '3-1', - title: '二级 3-1' - }, { - key: '3-2', - title: '二级 3-2', - children: [{ - key: '3-2-1', - title: '三级 3-2-1', - disableCheckbox: true - }, { - key: '3-2-2', - title: '三级 3-2-2' - }, { - key: '3-2-3', - title: '三级 3-2-3' - }] - }] -}] - diff --git a/apps/admin/build/src/views/tree/antd-tree/index.tsx b/apps/admin/build/src/views/tree/antd-tree/index.tsx deleted file mode 100644 index 928fcf55..00000000 --- a/apps/admin/build/src/views/tree/antd-tree/index.tsx +++ /dev/null @@ -1,79 +0,0 @@ -import { useState } from 'react' -import { Row, Col, Card, Tree } from 'antd' -import { TREE_COMPO } from '@/settings/websiteSetting' -import { PageWrapper } from '@/components/Page' -import { treeData } from './data' - -interface DataNode { - title: string; - key: string; - isLeaf?: boolean; - children?: DataNode[]; -} - -const initTreeData: DataNode[] = [ - { title: 'Expand to load', key: '0' }, - { title: 'Expand to load', key: '1' }, - { title: 'Tree Node', key: '2', isLeaf: true } -] - -const AntdTree = () => { - const [lazyTreeData, setLazyTreeData] = useState(initTreeData) - - function handleLoadData(treeNode: any) { - return new Promise(resolve => { - if (treeNode.dataRef.children) { - resolve() - return - } - setTimeout(() => { - treeNode.dataRef.children = [ - { title: 'Child Node', key: `${treeNode.eventKey}-0` }, - { title: 'Child Node', key: `${treeNode.eventKey}-1` } - ] - setLazyTreeData([...lazyTreeData]) - resolve() - }, 1000) - }) - } - - function handleDrop() {} - - return ( - - - - - - - - - - - - - - - - - - - - ) -} - -export default AntdTree \ No newline at end of file diff --git a/apps/admin/build/src/views/tree/org-tree/data.ts b/apps/admin/build/src/views/tree/org-tree/data.ts deleted file mode 100644 index 0f1dda3a..00000000 --- a/apps/admin/build/src/views/tree/org-tree/data.ts +++ /dev/null @@ -1,78 +0,0 @@ -export const data = { - id: 1, - label: 'XXX科技有限公司', - children: [ - { - id: 2, - pid: 1, - label: '产品研发部', - children: [ - { - id: 5, - pid: 2, - label: '产品经理' - }, { - id: 6, - pid: 2, - label: 'UI设计' - }, { - id: 9, - pid: 2, - label: '研发-前端' - }, { - id: 10, - pid: 2, - label: '研发-后端' - }, { - id: 12, - pid: 2, - label: '测试' - } - ] - }, - { - id: 3, - pid: 1, - label: '销售部', - children: [ - { - id: 7, - pid: 3, - label: '销售一部', - children: [ - { - id: 14, - pid: 7, - label: '售前' - }, { - id: 15, - pid: 7, - label: '售后' - }, { - id: 16, - pid: 7, - label: '客服' - } - ] - }, { - id: 8, - pid: 3, - label: '销售二部' - }, { - id: 13, - pid: 3, - label: '销售三部' - } - ] - }, - { - id: 4, - pid: 1, - label: '财务部' - }, { - id: 11, - pid: 1, - label: 'HR人事' - } - ] -} diff --git a/apps/admin/build/src/views/tree/org-tree/index.tsx b/apps/admin/build/src/views/tree/org-tree/index.tsx deleted file mode 100644 index 4a11358a..00000000 --- a/apps/admin/build/src/views/tree/org-tree/index.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { FC, useState } from 'react' -import { Card, Form, Radio, Switch } from 'antd' -import { PageWrapper } from '@/components/Page' -import { React_TREE_ORG_PLUGIN } from '@/settings/websiteSetting' -import OrgTree from 'react-org-tree' -import { data } from './data' - -const OrgTreePage: FC = () => { - const [form] = Form.useForm() - - const [config, setConfig] = useState({ - horizontal: false, - expandAll: true - }) - - const onValuesChange = (values: any) => { - console.log('values', values) - setConfig({...config, ...values}) - } - - return ( - - -
- - - 水平 - 垂直 - - - - - - -
- -
-
-
- ) -} - -export default OrgTreePage \ No newline at end of file diff --git a/apps/admin/build/src/views/video/video-player.tsx b/apps/admin/build/src/views/video/video-player.tsx deleted file mode 100644 index a3423632..00000000 --- a/apps/admin/build/src/views/video/video-player.tsx +++ /dev/null @@ -1,47 +0,0 @@ - -// @ts-nocheck -import { Row, Col, Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { VIDEO_RES_SRC, VIDEO_PLUGIN } from '@/settings/websiteSetting' -import { Player, ControlBar, BigPlayButton, CurrentTimeDisplay, TimeDivider, - PlaybackRateMenuButton, VolumeMenuButton } from 'video-react' -import 'video-react/dist/video-react.css' - -const VideoPlayers = () => { - - return ( - - -
- - - - - - - - - - - - - - - - - - - ) -} - -export default VideoPlayers \ No newline at end of file diff --git a/apps/admin/build/tsconfig.json b/apps/admin/build/tsconfig.json deleted file mode 100644 index 4c56e434..00000000 --- a/apps/admin/build/tsconfig.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "compilerOptions": { - "target": "ESNext", - "useDefineForClassFields": true, - "lib": ["DOM", "DOM.Iterable", "ESNext"], - "baseUrl": ".", - "allowJs": false, - "skipLibCheck": true, - "esModuleInterop": false, - "allowSyntheticDefaultImports": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "module": "ESNext", - "moduleResolution": "Node", - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - "paths": { - "@/*": ["src/*"], - "#/*": ["types/*"] - }, - "types": [ - "vite/client", - "vite-plugin-svg-icons/client" - ] - }, - "include": [ - "src/**/*.ts", - "src/**/*.d.ts", - "src/**/*.tsx", - "src/**/*.vue", - "typings/**/*.d.ts", - "typings/**/*.ts", - "build/**/*.ts", - "build/**/*.d.ts", - "mock/*.ts", - "vite.config.ts" - ], - "exclude": [ - "node_modules", - "dist", - "**/*.js" - ] -} diff --git a/apps/admin/build/typings/global.d.ts b/apps/admin/build/typings/global.d.ts deleted file mode 100644 index 44afcf90..00000000 --- a/apps/admin/build/typings/global.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -declare type Nullable = T | null -declare type Recordable = Record -declare type ElRef = Nullable diff --git a/apps/admin/build/typings/index.d.ts b/apps/admin/build/typings/index.d.ts deleted file mode 100644 index 69f39d3b..00000000 --- a/apps/admin/build/typings/index.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -declare interface Fn { - (...arg: T[]): R -} - -declare type AnyFn = (...args: any[]) => any - -declare type TargetContext = '_self' | '_blank' - -declare module 'react-org-tree' \ No newline at end of file diff --git a/apps/admin/build/utils.ts b/apps/admin/build/utils.ts index 39850141..fbab0b9b 100644 --- a/apps/admin/build/utils.ts +++ b/apps/admin/build/utils.ts @@ -1,4 +1,4 @@ -declare type Recordable = Record +declare type Recordable = Record; interface ViteEnv { VITE_PORT: number @@ -8,32 +8,32 @@ interface ViteEnv { // read all environment variable configuration files to process.env export function wrapperEnv(envConf: Recordable): ViteEnv { - const result: any = {} + const result: any = {}; for (const envName of Object.keys(envConf)) { - let realName = envConf[envName].replace(/\\n/g, '\n') - realName = realName === 'true' ? true : realName === 'false' ? false : realName + let realName = envConf[envName].replace(/\\n/g, '\n'); + realName = realName === 'true' ? true : realName === 'false' ? false : realName; if (envName === 'VITE_PORT') { - realName = Number(realName) + realName = Number(realName); } if (envName === 'VITE_PROXY' && realName) { try { - realName = JSON.parse(realName.replace(/'/g, '"')) + realName = JSON.parse(realName.replace(/'/g, '"')); } catch (error) { - realName = '' + realName = ''; } } - result[envName] = realName + result[envName] = realName; if (typeof realName === 'string') { - process.env[envName] = realName + process.env[envName] = realName; } else if (typeof realName === 'object') { - process.env[envName] = JSON.stringify(realName) + process.env[envName] = JSON.stringify(realName); } } - return result -} \ No newline at end of file + return result; +} diff --git a/apps/admin/build/vite.config.ts b/apps/admin/build/vite.config.ts deleted file mode 100644 index b5f144b4..00000000 --- a/apps/admin/build/vite.config.ts +++ /dev/null @@ -1,60 +0,0 @@ -import type { ConfigEnv, UserConfig } from 'vite' -import { loadEnv } from 'vite' -import react from '@vitejs/plugin-react' -import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' -import { viteMockServe } from 'vite-plugin-mock' -import { wrapperEnv } from './build/utils' -// 需要安装 @typings/node 插件 -import { resolve } from 'path' - -/** @type {import('vite').UserConfig} */ -export default ({ command, mode }: ConfigEnv): UserConfig => { - const root = process.cwd() - const isBuild = command === 'build' - - const env = loadEnv(mode, root) - - // this function can be converted to different typings - const viteEnv: any = wrapperEnv(env) - const { VITE_PORT, VITE_DROP_CONSOLE } = viteEnv - - return { - base: isBuild ? '/react-admin-design/' : './', - server: { - // Listening on all local ips - host: true, - port: VITE_PORT - }, - plugins: [ - react(), - createSvgIconsPlugin({ - iconDirs: [resolve(process.cwd(), 'src/assets/icons')], - symbolId: 'icon-[dir]-[name]' - }), - viteMockServe({ - mockPath: 'mock', - ignore: /^_/ - }) - ], - - build: { - target: 'es2015', - cssTarget: 'chrome86', - minify: 'terser', - terserOptions: { - compress: { - keep_infinity: true, - // used to delete console and debugger in production environment - drop_console: VITE_DROP_CONSOLE - } - }, - chunkSizeWarningLimit: 2000 - }, - - resolve: { - alias: { - '@': resolve(__dirname, './src') - } - } - } -} diff --git a/apps/admin/eslint.config.js b/apps/admin/eslint.config.js deleted file mode 100644 index 111e3f71..00000000 --- a/apps/admin/eslint.config.js +++ /dev/null @@ -1,128 +0,0 @@ -// 配置文档: https://eslint.nodejs.cn/ - -export default { - root: true, - env: { - browser: true, - node: true, - es6: true - }, - settings: { - react: { - version: 'detect' - } - }, - // 指定如何解析语法 - parser: '@typescript-eslint/parser', - // 优先级低于 parse 的语法解析配置 - parserOptions: { - ecmaVersion: 7, - sourceType: 'module', - jsxPragma: 'React', - ecmaFeatures: { - jsx: true - } - }, - plugins: ['react', '@typescript-eslint', 'react-hooks', 'prettier'], - // 继承某些已有的规则 - extends: [ - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:react/jsx-runtime', - 'plugin:react-hooks/recommended', - 'prettier', - 'plugin:prettier/recommended' - ], - /* - * 'off' 或 0 ==> 关闭规则 - * 'warn' 或 1 ==> 规则提示为警告(不影响代码执行) - * 'error' 或 2 ==> 规则提示为错误(代码不能执行,界面报错) - */ - rules: { - /* - * Eslint规则配置 - * 配置文档: https://eslint.nodejs.cn/docs/latest/rules/ - */ - // 需要 let 或 const 而不是 var - 'no-var': 'error', - // 禁止在定义变量之前使用变量 - 'no-use-before-define': 'off', - // 声明后永远不会重新分配的变量需要 const 声明 - 'prefer-const': 'error', - // 禁止不规则空格 - 'no-irregular-whitespace': 'off', - // 禁止使用 debugger - 'no-debugger': 'off', - // 禁止未使用的变量 - 'no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_', - varsIgnorePattern: '^_' - } - ], - // 使用 prettier 插件 - 'prettier/prettier': [ - 'error', - { - endOfLine: 'auto' - } - ], - - /* - * TypeScript规则配置 - * 配置文档: https://typescript-eslint.nodejs.cn/rules/) - */ - // 根据参数、属性和变量的默认值或初始值推断其类型 - '@typescript-eslint/no-inferrable-types': 'off', - // 禁止使用自定义 ts 模块和命名空间 - '@typescript-eslint/no-namespace': 'off', - // 禁止使用 any 类型 - '@typescript-eslint/no-explicit-any': 'off', - // 禁止使用特定类型 - '@typescript-eslint/ban-types': 'off', - // 不允许对初始化为数字、字符串或布尔值的变量或参数进行显式返回类型声明 - '@typescript-eslint/explicit-function-return-type': 'off', - // 不允许在 import 语句中使用 require 语句 - '@typescript-eslint/no-var-requires': 'off', - // 禁止空函数 - '@typescript-eslint/no-empty-function': 'off', - // 禁止在变量定义之前使用它们 - '@typescript-eslint/no-use-before-define': 'off', - // 禁止 @ts- 注释代码 - '@typescript-eslint/ban-ts-comment': 'off', - // 不允许使用后缀运算符的非空断言(!) - '@typescript-eslint/no-non-null-assertion': 'off', - // 要求导出函数和类的公共类方法的显式返回和参数类型 - '@typescript-eslint/explicit-module-boundary-types': 'off', - // 使用顶层 type 限定符进行导入 - '@typescript-eslint/no-import-type-side-effects': 'error', - // 禁止定义未使用的变量 - '@typescript-eslint/no-unused-vars': [ - 'error', - { - argsIgnorePattern: '^_', - varsIgnorePattern: '^_' - } - ], - // 允许在导入上指定 type 关键字 - '@typescript-eslint/consistent-type-imports': [ - 'error', - { - disallowTypeAnnotations: false, - fixStyle: 'inline-type-imports' - } - ], - // 允许枚举成员的值是多种不同类型的有效 js 表达式 - '@typescript-eslint/prefer-literal-enum-member': [ - 'error', - { - allowBitwiseExpressions: true - } - ], - - 'react-hooks/rules-of-hooks': 'off', - 'react-hooks/exhaustive-deps': 'off' - } -} diff --git a/apps/admin/mock/_utils.ts b/apps/admin/mock/_utils.ts index 8701dbec..0e2b991d 100644 --- a/apps/admin/mock/_utils.ts +++ b/apps/admin/mock/_utils.ts @@ -12,8 +12,8 @@ export function resultSuccess(data: T, { message = '成功' } = type: 'success', code: 0, data, - message - } + message, + }; } export function resultError(message = '失败', { code = -1, data = null } = {}) { @@ -21,39 +21,39 @@ export function resultError(message = '失败', { code = -1, data = null } = {}) type: 'error', code, data, - message - } + message, + }; } // This function is used to get a token from the request data export function getRequestToken({ headers }: requestParams): string | undefined { - return headers?.authorization + return headers?.authorization; } export function pagination( currentPage: number, pageSize: number, - array: T[] + array: T[], ): T[] { - const offset = (currentPage - 1) * Number(pageSize) + const offset = (currentPage - 1) * Number(pageSize); return (offset + Number(pageSize)) >= array.length ? array.slice(offset, array.length) - : array.slice(offset, offset + Number(pageSize)) + : array.slice(offset, offset + Number(pageSize)); } -export function resultPageSuccess ( +export function resultPageSuccess( currentPage: number, pageSize: number, list: T[], - { message = 'ok' } = {} + { message = 'ok' } = {}, ) { - const pageData = pagination(currentPage, pageSize, list) + const pageData = pagination(currentPage, pageSize, list); return { ...resultSuccess({ list: pageData, - total: list.length + total: list.length, }), - message - } -} \ No newline at end of file + message, + }; +} diff --git a/apps/admin/package.json b/apps/admin/package.json index 06fa6c81..0f45e6eb 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -1,16 +1,13 @@ { "name": "react-admin-design", "version": "0.0.0", - "type": "module", "scripts": { "serve": "vite", "build": "rimraf dist && tsc && vite build", "preview": "vite preview", "clean:cache": "rimraf .eslintcache && rimraf node_modules && pnpm install", - "lint:eslint": "eslint --cache --fix \"{src,mock,build}/**/*.{js,ts,tsx}\"", - "lint:prettier": "prettier --write \"src/**/*.{js,json,ts,tsx,css,less,html,md}\"", - "lint:lint-staged": "lint-staged", - "prepare": "husky install" + "lint": "eslint --cache --fix \"{src,mock,build}/**/*.{js,ts,tsx}\"", + "lint:prettier": "prettier --write \"src/**/*.{js,json,ts,tsx,css,less,html,md}\"" }, "dependencies": { "@ant-design/icons": "^5.2.6", @@ -60,21 +57,14 @@ "@types/react-dom": "^18.2.15", "@types/sortablejs": "^1.15.5", "@types/video-react": "^0.15.4", - "@typescript-eslint/eslint-plugin": "^6.11.0", - "@typescript-eslint/parser": "^6.11.0", "@vitejs/plugin-react": "^4.2.0", "autoprefixer": "^10.4.16", "commitizen": "^4.3.0", "cssnano": "^6.0.1", "cz-git": "^1.7.1", "esbuild": "^0.19.6", - "eslint": "^8.54.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-prettier": "^5.0.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint-config-gbeata-eslint": "workspace:^", "fast-glob": "^3.3.2", - "husky": "^8.0.3", "less": "^4.2.0", "lint-staged": "^15.1.0", "postcss": "^8.4.31", @@ -92,10 +82,5 @@ "{src,mock,build}/**/*.{js,ts,tsx}": [ "eslint --fix" ] - }, - "config": { - "commitizen": { - "path": "node_modules/cz-git" - } } } diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 0c3216e4..d6c08832 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -1,11 +1,11 @@ -import { RouterProvider } from 'react-router-dom' -import router from '@/router' +import { RouterProvider } from 'react-router-dom'; -function App() { +import router from '@/router'; +function App() { return ( - ) + ); } -export default App +export default App; diff --git a/apps/admin/src/api/index.ts b/apps/admin/src/api/index.ts index cd3a80b0..446a9449 100644 --- a/apps/admin/src/api/index.ts +++ b/apps/admin/src/api/index.ts @@ -1,4 +1,4 @@ -import { service } from '@/utils/axios' +import { service } from '@/utils/axios'; interface LoginParams { username: string @@ -10,24 +10,24 @@ export function loginApi(data: LoginParams): Promise { return service({ url: '/login', method: 'post', - data - }) + data, + }); } // Get User info export function getUserInfo(): Promise { return service({ url: '/getUserInfo', - method: 'get' - }) + method: 'get', + }); } // User logout api export function logoutApi() { return service({ url: '/logout', - method: 'get' - }) + method: 'get', + }); } // Table list @@ -35,6 +35,6 @@ export function getTableList(params: any) { return service({ url: '/table/getTableList', method: 'get', - params - }) + params, + }); } diff --git a/apps/admin/src/components/AppLogo/index.ts b/apps/admin/src/components/AppLogo/index.ts index 9bba104a..51d0960f 100644 --- a/apps/admin/src/components/AppLogo/index.ts +++ b/apps/admin/src/components/AppLogo/index.ts @@ -1,3 +1,3 @@ -import AppLogo from './src/AppLogo' +import AppLogo from './src/AppLogo'; -export { AppLogo } +export { AppLogo }; diff --git a/apps/admin/src/components/AppLogo/src/AppLogo.tsx b/apps/admin/src/components/AppLogo/src/AppLogo.tsx index e0e85f24..d685f34b 100644 --- a/apps/admin/src/components/AppLogo/src/AppLogo.tsx +++ b/apps/admin/src/components/AppLogo/src/AppLogo.tsx @@ -1,10 +1,12 @@ -import { FC } from 'react' import { Space } from 'antd' -import { useAppSelector } from '@/stores' import classNames from 'classnames' -import styles from './app-logo.module.less' +import { FC } from 'react' + import logoImg from '@/assets/images/logo.png' import logoName from '@/assets/images/name_white.png' +import { useAppSelector } from '@/stores' + +import styles from './app-logo.module.less' const AppLogo: FC = () => { const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) @@ -13,11 +15,7 @@ const AppLogo: FC = () => {
logo - logo + logo
) diff --git a/apps/admin/src/components/LazyLoad/index.ts b/apps/admin/src/components/LazyLoad/index.ts index 6e954097..9509fbf0 100644 --- a/apps/admin/src/components/LazyLoad/index.ts +++ b/apps/admin/src/components/LazyLoad/index.ts @@ -1,3 +1,3 @@ -import LazyLoad from './src/LazyLoad' +import LazyLoad from './src/LazyLoad'; -export { LazyLoad } \ No newline at end of file +export { LazyLoad }; diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index 06b6e887..48ba542b 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -1,13 +1,12 @@ -import { ReactNode, Suspense, LazyExoticComponent } from 'react' -import { Spin } from 'antd' +import { Spin } from 'antd'; +import { LazyExoticComponent, ReactNode, Suspense } from 'react'; /** * @description 路由懒加载 * @param {Element} Component 需要访问的组件 * @returns element */ -const LazyLoad = (Component: LazyExoticComponent): ReactNode => { - return ( +const LazyLoad = (Component: LazyExoticComponent): ReactNode => ( ): ReactNode => { display: 'flex', alignItems: 'center', justifyContent: 'center', - height: '100%' + height: '100%', }} /> } > - ) -} +); -export default LazyLoad +export default LazyLoad; diff --git a/apps/admin/src/components/Page/index.ts b/apps/admin/src/components/Page/index.ts index 908eda9c..c269086f 100644 --- a/apps/admin/src/components/Page/index.ts +++ b/apps/admin/src/components/Page/index.ts @@ -1,3 +1,3 @@ -import PageWrapper from './src/PageWrapper' +import PageWrapper from './src/PageWrapper'; -export { PageWrapper } \ No newline at end of file +export { PageWrapper }; diff --git a/apps/admin/src/components/Page/src/PageWrapper.tsx b/apps/admin/src/components/Page/src/PageWrapper.tsx index 14edb8c3..da000980 100644 --- a/apps/admin/src/components/Page/src/PageWrapper.tsx +++ b/apps/admin/src/components/Page/src/PageWrapper.tsx @@ -1,7 +1,10 @@ -import { Button } from 'antd' -import { openWindow } from '@/utils' -import SvgIcon from '@/components/SvgIcon' -import compoStyle from './compo.module.less' +import { Button } from 'antd'; + +import SvgIcon from '@/components/SvgIcon'; + +import { openWindow } from '@/utils'; + +import compoStyle from './compo.module.less'; interface PluginProp { name?: string @@ -15,9 +18,8 @@ interface PageProp { } const PageWrapper = (props: PageProp) => { - function openGithub() { - openWindow(props.plugin?.url!) + openWindow(props.plugin?.url!); } return ( @@ -37,7 +39,7 @@ const PageWrapper = (props: PageProp) => { {props.children} - ) -} + ); +}; -export default PageWrapper \ No newline at end of file +export default PageWrapper; diff --git a/apps/admin/src/components/SvgIcon/index.tsx b/apps/admin/src/components/SvgIcon/index.tsx index 8e6e52d6..83a13550 100644 --- a/apps/admin/src/components/SvgIcon/index.tsx +++ b/apps/admin/src/components/SvgIcon/index.tsx @@ -1,22 +1,22 @@ -import { SvgIconProp } from './types' -import styles from './index.module.less' +import styles from './index.module.less'; +import { SvgIconProp } from './types'; export default function SvgIcon({ name, prefix = 'icon', size = 16, - style + style, } : SvgIconProp) { - const symbolId = `#${prefix}-${name}` + const symbolId = `#${prefix}-${name}`; const iconStyle = { width: `${size}px`, height: `${size}px`, - ...style - } + ...style, + }; return ( - ) -} \ No newline at end of file + ); +} diff --git a/apps/admin/src/components/SvgIcon/types.ts b/apps/admin/src/components/SvgIcon/types.ts index 3402cee0..4c4b1043 100644 --- a/apps/admin/src/components/SvgIcon/types.ts +++ b/apps/admin/src/components/SvgIcon/types.ts @@ -3,4 +3,4 @@ export interface SvgIconProp { prefix?: string size?: number, style?: React.CSSProperties -} \ No newline at end of file +} diff --git a/apps/admin/src/components/Upload/index.ts b/apps/admin/src/components/Upload/index.ts index f96de6ae..64eb1aa0 100644 --- a/apps/admin/src/components/Upload/index.ts +++ b/apps/admin/src/components/Upload/index.ts @@ -1,3 +1,3 @@ -import UploadImage from './src/UploadImage' +import UploadImage from './src/UploadImage'; -export { UploadImage } \ No newline at end of file +export { UploadImage }; diff --git a/apps/admin/src/components/Upload/src/UploadImage.tsx b/apps/admin/src/components/Upload/src/UploadImage.tsx index d629cbfe..b73468aa 100644 --- a/apps/admin/src/components/Upload/src/UploadImage.tsx +++ b/apps/admin/src/components/Upload/src/UploadImage.tsx @@ -1,48 +1,48 @@ -import { FC } from 'react' -import type { UploadChangeParam } from 'antd/es/upload' -import { Upload, Button, message } from 'antd' +import { Button, message, Upload } from 'antd'; +import { FC } from 'react'; + +import type { UploadChangeParam } from 'antd/es/upload'; interface propState { onSuccess: (data: any) => void } const UploadImage: FC = ({ onSuccess }) => { - const handleChange = (imageFile: UploadChangeParam) => { - const { file } = imageFile - const rawImage = file.originFileObj + const { file } = imageFile; + const rawImage = file.originFileObj; - if (!rawImage) return + if (!rawImage) return; if (!/\.(jpg|png|bmp|jpeg|webp)$/.test(rawImage.name)) { - message.warning('图片只支持.jpg, .png, .bmp, .jpeg, .webp格式!') - return + message.warning('图片只支持.jpg, .png, .bmp, .jpeg, .webp格式!'); + return; } - const isLimit1M = rawImage.size / 1024 /1024 < 5 + const isLimit1M = rawImage.size / 1024 / 1024 < 5; if (!isLimit1M) { - message.warning('上传的图片大小不能超过5M!') - return + message.warning('上传的图片大小不能超过5M!'); + return; } - readImage(rawImage) - } + readImage(rawImage); + }; const readImage = (image: any) => { - const reader = new FileReader() - reader.onload = e => { - const data = e.target && e.target.result as any + const reader = new FileReader(); + reader.onload = (e) => { + const data = e.target && e.target.result as any; // Convert Array Buffer to blob if it is base64 - const result = typeof data === 'object' ? window.URL.createObjectURL(new Blob([data])) : data - onSuccess(result) - } + const result = typeof data === 'object' ? window.URL.createObjectURL(new Blob([data])) : data; + onSuccess(result); + }; // Convert to base64 - reader.readAsDataURL(image) + reader.readAsDataURL(image); // Convert to blob // reader.readAsArrayBuffer(image) reader.onerror = () => { - message.error('图片读取出错!') - } - } + message.error('图片读取出错!'); + }; + }; return ( = ({ onSuccess }) => { > - ) -} + ); +}; -export default UploadImage \ No newline at end of file +export default UploadImage; diff --git a/apps/admin/src/enums/appEnum.ts b/apps/admin/src/enums/appEnum.ts index 6eda1b60..62282b51 100644 --- a/apps/admin/src/enums/appEnum.ts +++ b/apps/admin/src/enums/appEnum.ts @@ -1,16 +1,16 @@ -export const SIDE_BAR_MIN_WIDTH = 48 -export const SIDE_BAR_SHOW_TITLE_MIN_WIDTH = 80 +export const SIDE_BAR_MIN_WIDTH = 48; +export const SIDE_BAR_SHOW_TITLE_MIN_WIDTH = 80; // App mode enum export enum AppModeEnum { DARK = 'dark', - LIGHT = 'light' + LIGHT = 'light', } // Menu theme enum export enum ThemeEnum { DARK = 'dark', - LIGHT = 'light' + LIGHT = 'light', } // Page switching animation @@ -20,7 +20,7 @@ export enum PageTransitionEnum { FADE_BOTTOM = 'fade-bottom', FADE_SCALE = 'fade-scale', ZOOM_FADE = 'zoom-fade', - ZOOM_OUT = 'zoom-out' + ZOOM_OUT = 'zoom-out', } // Permission mode @@ -28,5 +28,5 @@ export enum PermissionModeEnum { // Route mapping MAPPING = 'MAPPING', // The back-end response - BACKEND = 'BACKEND' + BACKEND = 'BACKEND', } diff --git a/apps/admin/src/enums/cacheEnum.ts b/apps/admin/src/enums/cacheEnum.ts index c7c740e5..f33888e8 100644 --- a/apps/admin/src/enums/cacheEnum.ts +++ b/apps/admin/src/enums/cacheEnum.ts @@ -1,18 +1,18 @@ -export const TOKEN_KEY = 'TOKEN_KEY' +export const TOKEN_KEY = 'TOKEN_KEY'; -export const LOCALE_KEY = 'LOCALE_KEY' +export const LOCALE_KEY = 'LOCALE_KEY'; -export const USER_INFO_KEY = 'USER_INFO_KEY' +export const USER_INFO_KEY = 'USER_INFO_KEY'; -export const APP_CONFIG_KEY = 'APP_CONFIG_KEY' +export const APP_CONFIG_KEY = 'APP_CONFIG_KEY'; -export const APP_TAGS_KEY = 'APP_TAGS_KEY' +export const APP_TAGS_KEY = 'APP_TAGS_KEY'; -export const APP_LOCAL_CACHE_KEY = 'APP_LOCAL_CACHE_KEY' +export const APP_LOCAL_CACHE_KEY = 'APP_LOCAL_CACHE_KEY'; -export const APP_SESSION_CACHE_KEY = 'APP_SESSION_CACHE_KEY' +export const APP_SESSION_CACHE_KEY = 'APP_SESSION_CACHE_KEY'; export enum CacheTypeEnum { SESSION, LOCAL, -} \ No newline at end of file +} diff --git a/apps/admin/src/enums/exceptionEnum.ts b/apps/admin/src/enums/exceptionEnum.ts index 47d048ec..8c6ff351 100644 --- a/apps/admin/src/enums/exceptionEnum.ts +++ b/apps/admin/src/enums/exceptionEnum.ts @@ -6,5 +6,5 @@ export enum ExceptionEnum { PAGE_NOT_FOUND = 404, // server error - SERVER_ERROR = 500 + SERVER_ERROR = 500, } diff --git a/apps/admin/src/enums/menuEnum.ts b/apps/admin/src/enums/menuEnum.ts index 55b00de9..50dd35bf 100644 --- a/apps/admin/src/enums/menuEnum.ts +++ b/apps/admin/src/enums/menuEnum.ts @@ -4,7 +4,7 @@ export enum MenuTypeEnum { HEADER_MENU = 'header-menu', - HYBRID_MENU = 'hybrid-menu' + HYBRID_MENU = 'hybrid-menu', } // Menu modes @@ -13,7 +13,7 @@ export enum MenuModeEnum { HORIZONTAL = 'horizontal', - INLINE = 'inline' + INLINE = 'inline', } // Menu folding button location @@ -22,5 +22,5 @@ export enum MenuFoldBtnEnum { HEADER = 'header', - SIDER = 'sider' + SIDER = 'sider', } diff --git a/apps/admin/src/enums/tagsEnum.ts b/apps/admin/src/enums/tagsEnum.ts index 0cbfdfab..5907c035 100644 --- a/apps/admin/src/enums/tagsEnum.ts +++ b/apps/admin/src/enums/tagsEnum.ts @@ -4,5 +4,5 @@ export enum TagActionEnum { CLOSE_LEFT, CLOSE_RIGHT, CLOSE_OTHER, - CLOSE_ALL + CLOSE_ALL, } diff --git a/apps/admin/src/hooks/web/useECharts.ts b/apps/admin/src/hooks/web/useECharts.ts index ef6f8369..727682b6 100644 --- a/apps/admin/src/hooks/web/useECharts.ts +++ b/apps/admin/src/hooks/web/useECharts.ts @@ -1,75 +1,76 @@ -import type { EChartsOption } from 'echarts' -import { useRef, useEffect } from 'react' -import { useDebounceFn } from 'ahooks' -import echarts from '@/utils/echarts' +import { useDebounceFn } from 'ahooks'; +import { useEffect, useRef } from 'react'; + +import echarts from '@/utils/echarts'; + +import type { EChartsOption } from 'echarts'; export function useECharts( options: EChartsOption, loading: boolean = true, - theme: 'light' | 'dark' | 'default' = 'default' + theme: 'light' | 'dark' | 'default' = 'default', ) { - - const chartRef = useRef(null) - let chartInstance: echarts.ECharts | null = null + const chartRef = useRef(null); + let chartInstance: echarts.ECharts | null = null; const { run: resizeFn } = useDebounceFn( () => { - chartInstance?.resize() + chartInstance?.resize(); }, - { wait: 200 } - ) + { wait: 200 }, + ); useEffect(() => { - initCharts() + initCharts(); return () => { - disposeCharts() - } - }, []) + disposeCharts(); + }; + }, []); useEffect(() => { - if (loading) return - setOptions(options) + if (loading) return; + setOptions(options); return () => { - disposeCharts() - } - }, [loading, options]) + disposeCharts(); + }; + }, [loading, options]); const initCharts = (t = theme) => { - const el = chartRef?.current - if (!el) return + const el = chartRef?.current; + if (!el) return; - chartInstance = echarts.init(el, t) + chartInstance = echarts.init(el, t); - window.addEventListener('resize', resizeFn) - } + window.addEventListener('resize', resizeFn); + }; const setOptions = (options: EChartsOption) => { if (!chartInstance) { - initCharts() + initCharts(); - if (!chartInstance) return + if (!chartInstance) return; } - chartInstance?.clear() + chartInstance?.clear(); - chartInstance?.setOption(options) - } + chartInstance?.setOption(options); + }; const disposeCharts = () => { - if (!chartInstance) return - window.removeEventListener('resize', resizeFn) - chartInstance.dispose() - chartInstance = null - } + if (!chartInstance) return; + window.removeEventListener('resize', resizeFn); + chartInstance.dispose(); + chartInstance = null; + }; const getInstance = (): echarts.ECharts | null => { if (!chartInstance) { - initCharts() + initCharts(); } - return chartInstance - } + return chartInstance; + }; - return { chartRef, getInstance } -} \ No newline at end of file + return { chartRef, getInstance }; +} diff --git a/apps/admin/src/hooks/web/useMessage.tsx b/apps/admin/src/hooks/web/useMessage.tsx index c2461fc3..1e314989 100644 --- a/apps/admin/src/hooks/web/useMessage.tsx +++ b/apps/admin/src/hooks/web/useMessage.tsx @@ -1,8 +1,9 @@ -import type { ModalFuncProps } from 'antd' -import { Modal, message as Message } from 'antd' -import { InfoCircleFilled, CheckCircleFilled, CloseCircleFilled } from '@ant-design/icons' +import { CheckCircleFilled, CloseCircleFilled, InfoCircleFilled } from '@ant-design/icons'; +import { message as Message, Modal } from 'antd'; -import { isString } from '@/utils/is' +import { isString } from '@/utils/is'; + +import type { ModalFuncProps } from 'antd'; export interface ModalOptionsEx extends Omit { iconType: 'success' | 'info' | 'warning' | 'error' @@ -10,29 +11,27 @@ export interface ModalOptionsEx extends Omit { function getIcon(iconType: string) { if (iconType === 'warning') { - return - } else if (iconType === 'success') { - return - } else if (iconType === 'info') { - return - } else { - return + return ; + } if (iconType === 'success') { + return ; + } if (iconType === 'info') { + return ; } + return ; } function renderContent({ content }: Pick) { if (isString(content)) { // @ts-ignore - return
${content as string}
`}> - } else { - return content + return
${content as string}
`}>; } + return content; } // Create confirmation box function createConfirm(options: ModalOptionsEx) { - const iconType = options.iconType || 'warning' - Reflect.deleteProperty(options, 'iconType') + const iconType = options.iconType || 'warning'; + Reflect.deleteProperty(options, 'iconType'); const opt: ModalFuncProps = { centered: true, @@ -40,15 +39,15 @@ function createConfirm(options: ModalOptionsEx) { content: renderContent(options), okText: '确定', cancelText: '取消', - ...options - } + ...options, + }; - return Modal.confirm(opt) + return Modal.confirm(opt); } export function useMessage() { return { createMessage: Message, - createConfirm - } + createConfirm, + }; } diff --git a/apps/admin/src/hooks/web/useTitle.ts b/apps/admin/src/hooks/web/useTitle.ts index b8839455..3c150083 100644 --- a/apps/admin/src/hooks/web/useTitle.ts +++ b/apps/admin/src/hooks/web/useTitle.ts @@ -1,18 +1,20 @@ -import { useState, useEffect } from 'react' -import { useLocation } from 'react-router-dom' -import { useTitle as usePageTitle } from 'ahooks' -import { searchRoute } from '@/utils' -import { basicRoutes } from '@/router' +import { useTitle as usePageTitle } from 'ahooks'; +import { useEffect, useState } from 'react'; +import { useLocation } from 'react-router-dom'; + +import { searchRoute } from '@/utils'; + +import { basicRoutes } from '@/router'; // 监听页面变化和动态改变网站标题 export function useTitle() { - const [pageTitle, setPageTitle] = useState('react-admin-design') - const { pathname } = useLocation() + const [pageTitle, setPageTitle] = useState('react-admin-design'); + const { pathname } = useLocation(); useEffect(() => { - const currRoute = searchRoute(pathname, basicRoutes) - setPageTitle(currRoute?.meta.title) - }, [pathname]) + const currRoute = searchRoute(pathname, basicRoutes); + setPageTitle(currRoute?.meta.title); + }, [pathname]); - usePageTitle(pageTitle) + usePageTitle(pageTitle); } diff --git a/apps/admin/src/layout/feature/components/DocLink.tsx b/apps/admin/src/layout/feature/components/DocLink.tsx index 470d23d3..998c4726 100644 --- a/apps/admin/src/layout/feature/components/DocLink.tsx +++ b/apps/admin/src/layout/feature/components/DocLink.tsx @@ -1,5 +1,6 @@ -import { Tooltip } from 'antd' -import SvgIcon from '@/components/SvgIcon' +import { Tooltip } from 'antd'; + +import SvgIcon from '@/components/SvgIcon'; export default function DocLink() { return ( @@ -12,5 +13,5 @@ export default function DocLink() { - ) -} \ No newline at end of file + ); +} diff --git a/apps/admin/src/layout/feature/components/FullScreen.tsx b/apps/admin/src/layout/feature/components/FullScreen.tsx index a9de3727..49e59960 100644 --- a/apps/admin/src/layout/feature/components/FullScreen.tsx +++ b/apps/admin/src/layout/feature/components/FullScreen.tsx @@ -1,9 +1,10 @@ -import { Tooltip } from 'antd' -import { useFullscreen } from 'ahooks' -import SvgIcon from '@/components/SvgIcon' +import { useFullscreen } from 'ahooks'; +import { Tooltip } from 'antd'; + +import SvgIcon from '@/components/SvgIcon'; export default function FullScreen() { - const [isFullscreen, { toggleFullscreen }] = useFullscreen(document.body) + const [isFullscreen, { toggleFullscreen }] = useFullscreen(document.body); return ( @@ -11,5 +12,5 @@ export default function FullScreen() { {!isFullscreen ? : } - ) + ); } diff --git a/apps/admin/src/layout/feature/components/GithubLink.tsx b/apps/admin/src/layout/feature/components/GithubLink.tsx index d98fdc91..c5199823 100644 --- a/apps/admin/src/layout/feature/components/GithubLink.tsx +++ b/apps/admin/src/layout/feature/components/GithubLink.tsx @@ -1,10 +1,12 @@ -import { Tooltip } from 'antd' -import { openWindow } from '@/utils' -import SvgIcon from '@/components/SvgIcon' +import { Tooltip } from 'antd'; + +import SvgIcon from '@/components/SvgIcon'; + +import { openWindow } from '@/utils'; export default function GithubLink() { - function openGithub () { - openWindow('https://github.com/baimingxuan/react-admin-design') + function openGithub() { + openWindow('https://github.com/baimingxuan/react-admin-design'); } return ( @@ -23,5 +25,5 @@ export default function GithubLink() { /> - ) -} \ No newline at end of file + ); +} diff --git a/apps/admin/src/layout/feature/components/UserDropdown.tsx b/apps/admin/src/layout/feature/components/UserDropdown.tsx index 1ef9b3d5..2079f75f 100644 --- a/apps/admin/src/layout/feature/components/UserDropdown.tsx +++ b/apps/admin/src/layout/feature/components/UserDropdown.tsx @@ -1,14 +1,18 @@ -import type { MenuProps } from 'antd' -import { Space, Dropdown } from 'antd' -import { LockOutlined, PoweroffOutlined } from '@ant-design/icons' -import { useNavigate } from 'react-router-dom' -import { getAuthCache, clearAuthCache } from '@/utils/auth' -import { TOKEN_KEY } from '@/enums/cacheEnum' -import { useAppDispatch, useAppSelector } from '@/stores' -import { useMessage } from '@/hooks/web/useMessage' -import { logoutApi } from '@/api' -import { resetState } from '@/stores/modules/user' -import headerImg from '@/assets/images/avatar.jpeg' +import { LockOutlined, PoweroffOutlined } from '@ant-design/icons'; +import { Dropdown, Space } from 'antd'; +import { useNavigate } from 'react-router-dom'; + +import { useMessage } from '@/hooks/web/useMessage'; + +import { clearAuthCache, getAuthCache } from '@/utils/auth'; + +import { logoutApi } from '@/api'; +import headerImg from '@/assets/images/avatar.jpeg'; +import { TOKEN_KEY } from '@/enums/cacheEnum'; +import { useAppDispatch, useAppSelector } from '@/stores'; +import { resetState } from '@/stores/modules/user'; + +import type { MenuProps } from 'antd'; export default function UserDropdown() { const items: MenuProps['items'] = [ @@ -19,7 +23,7 @@ export default function UserDropdown() { 锁定屏幕 - ) + ), }, { key: 'logout', @@ -28,57 +32,55 @@ export default function UserDropdown() { 退出登录 - ) - } - ] + ), + }, + ]; const onClick: MenuProps['onClick'] = ({ key }) => { switch (key) { case 'lock': - handleLock() - break + handleLock(); + break; case 'logout': - handleLogout() - break + handleLogout(); + break; } - } + }; - const navigate = useNavigate() + const navigate = useNavigate(); - const dispatch = useAppDispatch() - const { token } = useAppSelector(state => state.user) - const getToken = (): string => { - return token || getAuthCache(TOKEN_KEY) - } + const dispatch = useAppDispatch(); + const { token } = useAppSelector((state) => state.user); + const getToken = (): string => token || getAuthCache(TOKEN_KEY); - const handleLock = () => {} + const handleLock = () => {}; const handleLogout = () => { - const { createConfirm } = useMessage() + const { createConfirm } = useMessage(); createConfirm({ iconType: 'warning', title: 温馨提醒, content: 是否确认退出系统?, onOk: async () => { - await logoutAction(true) - } - }) - } + await logoutAction(true); + }, + }); + }; const logoutAction = async (goLogin = false) => { if (getToken()) { try { - await logoutApi() + await logoutApi(); } catch (error) { - const { createMessage } = useMessage() - createMessage.error('注销失败!') + const { createMessage } = useMessage(); + createMessage.error('注销失败!'); } } - dispatch(resetState()) - clearAuthCache() - goLogin && navigate('/login') - } + dispatch(resetState()); + clearAuthCache(); + goLogin && navigate('/login'); + }; return ( @@ -88,11 +90,11 @@ export default function UserDropdown() { style={{ width: '24px', height: '24px', - borderRadius: '50%' + borderRadius: '50%', }} alt='' /> - ) + ); } diff --git a/apps/admin/src/layout/feature/components/index.ts b/apps/admin/src/layout/feature/components/index.ts index 5443d3ba..bb37402d 100644 --- a/apps/admin/src/layout/feature/components/index.ts +++ b/apps/admin/src/layout/feature/components/index.ts @@ -1,6 +1,8 @@ -import FullScreen from './FullScreen' -import DocLink from './DocLink' -import GithubLink from './GithubLink' -import UserDropdown from './UserDropdown' +import DocLink from './DocLink'; +import FullScreen from './FullScreen'; +import GithubLink from './GithubLink'; +import UserDropdown from './UserDropdown'; -export { FullScreen, DocLink, GithubLink, UserDropdown } \ No newline at end of file +export { + DocLink, FullScreen, GithubLink, UserDropdown, +}; diff --git a/apps/admin/src/layout/feature/index.tsx b/apps/admin/src/layout/feature/index.tsx index 34771010..b4cd8c2c 100644 --- a/apps/admin/src/layout/feature/index.tsx +++ b/apps/admin/src/layout/feature/index.tsx @@ -1,9 +1,12 @@ -import { Divider } from 'antd' -import { FullScreen, DocLink, GithubLink, UserDropdown } from './components' -import moduleStyle from './index.module.less' +import { Divider } from 'antd'; + +import { + DocLink, FullScreen, GithubLink, UserDropdown, +} from './components'; +import moduleStyle from './index.module.less'; export default function LayoutFeature() { - const prefixCls = 'layout_feature' + const prefixCls = 'layout_feature'; return (
@@ -17,5 +20,5 @@ export default function LayoutFeature() {
- ) -} \ No newline at end of file + ); +} diff --git a/apps/admin/src/layout/header/components/Breadcrumb.tsx b/apps/admin/src/layout/header/components/Breadcrumb.tsx index 086212a2..22c1bab6 100644 --- a/apps/admin/src/layout/header/components/Breadcrumb.tsx +++ b/apps/admin/src/layout/header/components/Breadcrumb.tsx @@ -1,33 +1,35 @@ -import { useState, useEffect } from 'react' -import { Breadcrumb } from 'antd' -import { useLocation, matchRoutes } from 'react-router-dom' -import { useAppSelector } from '@/stores' -import SvgIcon from '@/components/SvgIcon' +import { Breadcrumb } from 'antd'; +import { useEffect, useState } from 'react'; +import { matchRoutes, useLocation } from 'react-router-dom'; + +import SvgIcon from '@/components/SvgIcon'; + +import { useAppSelector } from '@/stores'; export default function LayoutBreadcrumb() { - const [breadcrumbs, setBreadcrumbs] = useState([]) - const { pathname } = useLocation() - const getMenuList = useAppSelector(state => state.menu.menuList) + const [breadcrumbs, setBreadcrumbs] = useState([]); + const { pathname } = useLocation(); + const getMenuList = useAppSelector((state) => state.menu.menuList); useEffect(() => { - const matchRouteList = matchRoutes(getMenuList, pathname) || [] + const matchRouteList = matchRoutes(getMenuList, pathname) || []; const breadcrumbList = matchRouteList.map((item: any) => { - const { name, icon = '' } = item?.route + const { name, icon = '' } = item?.route; return { title: ( <> {icon && } {name} - ) - } - }) - setBreadcrumbs(breadcrumbList) - }, [pathname]) + ), + }; + }); + setBreadcrumbs(breadcrumbList); + }, [pathname]); return (
- ) + ); } diff --git a/apps/admin/src/layout/header/components/FoldTrigger/index.tsx b/apps/admin/src/layout/header/components/FoldTrigger/index.tsx index 67d57685..808d3554 100644 --- a/apps/admin/src/layout/header/components/FoldTrigger/index.tsx +++ b/apps/admin/src/layout/header/components/FoldTrigger/index.tsx @@ -1,23 +1,26 @@ -import { useAppSelector, useAppDispatch } from '@/stores' -import { setAppConfig } from '@/stores/modules/app' -import SvgIcon from '@/components/SvgIcon' -import style from './index.module.less' -import classNames from 'classnames' +import classNames from 'classnames'; + +import SvgIcon from '@/components/SvgIcon'; + +import { useAppDispatch, useAppSelector } from '@/stores'; +import { setAppConfig } from '@/stores/modules/app'; + +import style from './index.module.less'; export default function FoldTrigger() { - const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) - const dispatch = useAppDispatch() + const getMenuFold = useAppSelector((state) => state.app.appConfig?.menuSetting?.menuFold); + const dispatch = useAppDispatch(); function toggledMenuFold() { - dispatch(setAppConfig({ menuSetting: { menuFold: !getMenuFold } })) + dispatch(setAppConfig({ menuSetting: { menuFold: !getMenuFold } })); } return ( - ) + ); } diff --git a/apps/admin/src/layout/header/components/index.ts b/apps/admin/src/layout/header/components/index.ts index 5bd547de..d3d3d929 100644 --- a/apps/admin/src/layout/header/components/index.ts +++ b/apps/admin/src/layout/header/components/index.ts @@ -1,4 +1,4 @@ -import FoldTrigger from './FoldTrigger' -import Breadcrumb from './Breadcrumb' +import Breadcrumb from './Breadcrumb'; +import FoldTrigger from './FoldTrigger'; -export { FoldTrigger, Breadcrumb } \ No newline at end of file +export { Breadcrumb, FoldTrigger }; diff --git a/apps/admin/src/layout/header/index.tsx b/apps/admin/src/layout/header/index.tsx index ca0ad5da..b4e09a4a 100644 --- a/apps/admin/src/layout/header/index.tsx +++ b/apps/admin/src/layout/header/index.tsx @@ -1,10 +1,11 @@ -import { Layout } from 'antd' -import { Breadcrumb, FoldTrigger } from './components' -import LayoutFeature from '../feature' -import LayoutTags from '../tags' +import { Layout } from 'antd'; + +import LayoutFeature from '../feature'; +import LayoutTags from '../tags'; +import { Breadcrumb, FoldTrigger } from './components'; const LayoutHeader = (props: any) => { - const { Header } = Layout + const { Header } = Layout; return (
{ style={{ flexDirection: 'column', height: 'auto', - background: '#fff' + background: '#fff', }} >
@@ -24,7 +25,7 @@ const LayoutHeader = (props: any) => {
- ) -} + ); +}; -export default LayoutHeader +export default LayoutHeader; diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index f84110bb..2d67ebd1 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -1,18 +1,22 @@ -import { Layout } from 'antd' -import { Outlet } from 'react-router-dom' -import LayoutMenu from './menu' -import LayoutHeader from './header' -import { AppLogo } from '@/components/AppLogo' -import './index.less' -import { useTitle } from '@/hooks/web/useTitle' -import { useAppSelector } from '@/stores' -import ErrorBoundary from 'antd/es/alert/ErrorBoundary' +import { Layout } from 'antd'; +import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; +import { Outlet } from 'react-router-dom'; +import './index.less'; + +import { AppLogo } from '@/components/AppLogo'; + +import { useTitle } from '@/hooks/web/useTitle'; + +import { useAppSelector } from '@/stores'; + +import LayoutHeader from './header'; +import LayoutMenu from './menu'; export const BasicLayout = (props: any) => { - useTitle() - const { Sider, Content } = Layout + useTitle(); + const { Sider, Content } = Layout; - const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) + const getMenuFold = useAppSelector((state) => state.app.appConfig?.menuSetting?.menuFold); return ( @@ -29,5 +33,5 @@ export const BasicLayout = (props: any) => { - ) -} + ); +}; diff --git a/apps/admin/src/layout/menu/index.tsx b/apps/admin/src/layout/menu/index.tsx index d25df59c..0f445b48 100644 --- a/apps/admin/src/layout/menu/index.tsx +++ b/apps/admin/src/layout/menu/index.tsx @@ -1,91 +1,95 @@ -import type { MenuProps } from 'antd' -import React, { useState, useEffect } from 'react' -import { useNavigate, useLocation } from 'react-router-dom' -import { connect } from 'react-redux' -import { Menu, Spin } from 'antd' -import { getAsyncMenus } from '@/router/menus' -import { AppMenu } from '@/router/types' -import { setMenuList } from '@/stores/modules/menu' -import { getOpenKeys } from '@/utils/helper/menuHelper' -import SvgIcon from '@/components/SvgIcon' - -type MenuItem = Required['items'][number] +import { Menu, Spin } from 'antd'; +import React, { useEffect, useState } from 'react'; +import { connect } from 'react-redux'; +import { useLocation, useNavigate } from 'react-router-dom'; + +import SvgIcon from '@/components/SvgIcon'; + +import { getOpenKeys } from '@/utils/helper/menuHelper'; + +import { getAsyncMenus } from '@/router/menus'; +import { AppMenu } from '@/router/types'; +import { setMenuList } from '@/stores/modules/menu'; + +import type { MenuProps } from 'antd'; + +type MenuItem = Required['items'][number]; const getItem = ( label: React.ReactNode, key: React.Key, icon?: React.ReactNode, children?: MenuItem[], - type?: 'group' -): MenuItem => { - return { - label, - key, - icon, - children, - type - } as MenuItem -} + type?: 'group', +): MenuItem => ({ + label, + key, + icon, + children, + type, +} as MenuItem); const LayoutMenu = (props: any) => { - const { pathname } = useLocation() - const { setMenuList: setMenuListAction } = props - const [loading, setLoading] = useState(false) - const [menuList, setMenuList] = useState([]) - const [openKeys, setOpenKeys] = useState([]) - const [selectedKeys, setSelectedKeys] = useState([pathname]) + const { pathname } = useLocation(); + const { setMenuList: setMenuListAction } = props; + const [loading, setLoading] = useState(false); + const [menuList, setMenuList] = useState([]); + const [openKeys, setOpenKeys] = useState([]); + const [selectedKeys, setSelectedKeys] = useState([pathname]); useEffect(() => { - setSelectedKeys([pathname]) + setSelectedKeys([pathname]); - setOpenKeys(getOpenKeys(pathname)) - }, [pathname]) + setOpenKeys(getOpenKeys(pathname)); + }, [pathname]); const addIcon = (icon?: string) => { - if (!icon) return null + if (!icon) return null; return ( - ) - } + ); + }; const getMenuItem = (data: AppMenu[], list: MenuItem[] = []) => { data.forEach((item: AppMenu) => { if (!item?.children?.length) { - return list.push(getItem(item.name, item.path, addIcon(item.icon))) + return list.push(getItem(item.name, item.path, addIcon(item.icon))); } - list.push(getItem(item.name, item.path, addIcon(item.icon), getMenuItem(item.children))) - }) - return list - } + list.push(getItem(item.name, item.path, addIcon(item.icon), getMenuItem(item.children))); + }); + return list; + }; const getMenuList = async () => { - setLoading(true) + setLoading(true); try { - const menus = await getAsyncMenus() - setMenuList(getMenuItem(menus)) - setMenuListAction(menus) + const menus = await getAsyncMenus(); + setMenuList(getMenuItem(menus)); + setMenuListAction(menus); } finally { - setLoading(false) + setLoading(false); } - } + }; useEffect(() => { - getMenuList() - }, []) + getMenuList(); + }, []); const handleOpenChange: MenuProps['onOpenChange'] = (keys: string[]) => { - if (keys.length === 0 || keys.length === 1) return setOpenKeys(keys) - const latestKey = keys[keys.length - 1] - if (latestKey.includes(keys[0])) return setOpenKeys(keys) - setOpenKeys([latestKey]) - } + if (keys.length === 0 || keys.length === 1) return setOpenKeys(keys); + const latestKey = keys[keys.length - 1]; + if (latestKey.includes(keys[0])) return setOpenKeys(keys); + setOpenKeys([latestKey]); + }; - const navigate = useNavigate() + const navigate = useNavigate(); const handleMenuClick: MenuProps['onClick'] = ({ key }: { key: string }) => { - navigate(key) - } + navigate(key); + }; + const a = 1; + console.log(a); return (
@@ -104,10 +108,10 @@ const LayoutMenu = (props: any) => { />
- ) -} + ); +}; -const mapStateToProps = (state: any) => state.menu -const mapDispatchToProps = { setMenuList } +const mapStateToProps = (state: any) => state.menu; +const mapDispatchToProps = { setMenuList }; -export default connect(mapStateToProps, mapDispatchToProps)(LayoutMenu) +export default connect(mapStateToProps, mapDispatchToProps)(LayoutMenu); diff --git a/apps/admin/src/layout/tags/components/TagItem/index.tsx b/apps/admin/src/layout/tags/components/TagItem/index.tsx index 56388f06..8ca447a7 100644 --- a/apps/admin/src/layout/tags/components/TagItem/index.tsx +++ b/apps/admin/src/layout/tags/components/TagItem/index.tsx @@ -1,7 +1,8 @@ -import { FC } from 'react' -import { Tag } from 'antd' -import classNames from 'classnames' -import styles from './index.module.less' +import { Tag } from 'antd'; +import classNames from 'classnames'; +import { FC } from 'react'; + +import styles from './index.module.less'; interface PropState { name: string @@ -11,10 +12,11 @@ interface PropState { onClick: () => void } -const TagItem: FC = ({ name, fixed, active, closeTag, onClick }) => { - return ( +const TagItem: FC = ({ + name, fixed, active, closeTag, onClick, +}) => ( = ({ name, fixed, active, closeTag, onClick }) => { {name} - ) -} +); -export default TagItem +export default TagItem; diff --git a/apps/admin/src/layout/tags/components/index.ts b/apps/admin/src/layout/tags/components/index.ts index 49acc629..5923459c 100644 --- a/apps/admin/src/layout/tags/components/index.ts +++ b/apps/admin/src/layout/tags/components/index.ts @@ -1,3 +1,3 @@ -import TagItem from './TagItem' +import TagItem from './TagItem'; -export { TagItem } +export { TagItem }; diff --git a/apps/admin/src/layout/tags/index.tsx b/apps/admin/src/layout/tags/index.tsx index fa41a72a..0c04d333 100644 --- a/apps/admin/src/layout/tags/index.tsx +++ b/apps/admin/src/layout/tags/index.tsx @@ -1,176 +1,183 @@ -import type { MenuProps } from 'antd' -import type { RouteObject } from '@/router/types' -import { FC, WheelEvent, useState, useEffect, useRef } from 'react' -import { Button, Dropdown } from 'antd' -import { LeftOutlined, RightOutlined, RedoOutlined, CloseOutlined } from '@ant-design/icons' -import { useLocation, useNavigate } from 'react-router-dom' -import { TagItem } from './components' -import { basicRoutes } from '@/router' -import { useAppSelector, useAppDispatch } from '@/stores' -import { addVisitedTags } from '@/stores/modules/tags' -import { searchRoute } from '@/utils' -import { closeAllTags, closeTagByKey, closeTagsByType } from '@/stores/modules/tags' -import classNames from 'classnames' -import styles from './index.module.less' +import { + CloseOutlined, LeftOutlined, RedoOutlined, RightOutlined, +} from '@ant-design/icons'; +import { Button, Dropdown } from 'antd'; +import classNames from 'classnames'; +import { + FC, useEffect, useRef, useState, WheelEvent, +} from 'react'; +import { useLocation, useNavigate } from 'react-router-dom'; + +import { searchRoute } from '@/utils'; + +import { basicRoutes } from '@/router'; +import { useAppDispatch, useAppSelector } from '@/stores'; +import { + addVisitedTags, closeAllTags, closeTagByKey, closeTagsByType, +} from '@/stores/modules/tags'; + +import { TagItem } from './components'; +import styles from './index.module.less'; + +import type { RouteObject } from '@/router/types'; +import type { MenuProps } from 'antd'; const LayoutTags: FC = () => { const items: MenuProps['items'] = [ { key: 'left', label: '关闭左侧' }, { key: 'right', label: '关闭右侧' }, { key: 'other', label: '关闭其它' }, - { key: 'all', label: '关闭所有' } - ] + { key: 'all', label: '关闭所有' }, + ]; const onClick: MenuProps['onClick'] = ({ key }) => { if (key === 'all') { // @ts-ignore dispatch(closeAllTags()).then(({ payload }) => { - const lastTag = payload.slice(-1)[0] + const lastTag = payload.slice(-1)[0]; if (activeTag !== lastTag?.fullPath) { - navigate(lastTag?.fullPath) + navigate(lastTag?.fullPath); } - }) + }); } else { - dispatch(closeTagsByType({ type: key, path: activeTag })) + dispatch(closeTagsByType({ type: key, path: activeTag })); } - } + }; - const tagsMain = useRef(null) - const tagsMainBody = useRef(null) + const tagsMain = useRef(null); + const tagsMainBody = useRef(null); - const [tagsBodyLeft, setTagsBodyLeft] = useState(0) + const [tagsBodyLeft, setTagsBodyLeft] = useState(0); - const { pathname } = useLocation() - const navigate = useNavigate() - const visitedTags = useAppSelector(state => state.tags.visitedTags) - const dispatch = useAppDispatch() + const { pathname } = useLocation(); + const navigate = useNavigate(); + const visitedTags = useAppSelector((state) => state.tags.visitedTags); + const dispatch = useAppDispatch(); - const [activeTag, setActiveTag] = useState(pathname) + const [activeTag, setActiveTag] = useState(pathname); useEffect(() => { - const affixTags = initAffixTags(basicRoutes) + const affixTags = initAffixTags(basicRoutes); for (const tag of affixTags) { - dispatch(addVisitedTags(tag)) + dispatch(addVisitedTags(tag)); } - }, []) + }, []); useEffect(() => { - const currRoute = searchRoute(pathname, basicRoutes) + const currRoute = searchRoute(pathname, basicRoutes); if (currRoute) { - dispatch(addVisitedTags(currRoute)) + dispatch(addVisitedTags(currRoute)); } - setActiveTag(pathname) - }, [pathname]) + setActiveTag(pathname); + }, [pathname]); useEffect(() => { - const tagNodeList = tagsMainBody.current?.childNodes as unknown as Array - const activeTagNode = Array.from(tagNodeList).find(item => item.dataset.path === activeTag)! - moveToActiveTag(activeTagNode) - }, [activeTag]) + const tagNodeList = tagsMainBody.current?.childNodes as unknown as Array; + const activeTagNode = Array.from(tagNodeList).find((item) => item.dataset.path === activeTag)!; + moveToActiveTag(activeTagNode); + }, [activeTag]); const initAffixTags = (routes: RouteObject[], basePath: string = '/') => { - let affixTags: RouteObject[] = [] + let affixTags: RouteObject[] = []; for (const route of routes) { if (route.meta?.affix) { - const fullPath = route.path!.startsWith('/') ? route.path : basePath + route.path + const fullPath = route.path!.startsWith('/') ? route.path : basePath + route.path; affixTags.push({ ...route, - path: fullPath - }) + path: fullPath, + }); } if (route.children && route.children.length) { - affixTags = affixTags.concat(initAffixTags(route.children, route.path)) + affixTags = affixTags.concat(initAffixTags(route.children, route.path)); } } - return affixTags - } + return affixTags; + }; const moveToActiveTag = (tag: any) => { - let leftOffset: number = 0 - const mainBodyPadding = 4 - const mainWidth = tagsMain.current?.offsetWidth! - const mainBodyWidth = tagsMainBody.current?.offsetWidth! + let leftOffset: number = 0; + const mainBodyPadding = 4; + const mainWidth = tagsMain.current?.offsetWidth!; + const mainBodyWidth = tagsMainBody.current?.offsetWidth!; if (mainBodyWidth < mainWidth) { - leftOffset = 0 + leftOffset = 0; } else if (tag?.offsetLeft! < -tagsBodyLeft) { // 标签在可视区域左侧 (The active tag on the left side of the layout_tags-main) - leftOffset = -tag?.offsetLeft! + mainBodyPadding + leftOffset = -tag?.offsetLeft! + mainBodyPadding; } else if (tag?.offsetLeft! > -tagsBodyLeft && tag?.offsetLeft! + tag?.offsetWidth! < -tagsBodyLeft + mainWidth) { // 标签在可视区域 (The active tag on the layout_tags-main) - leftOffset = Math.min(0, mainWidth - tag?.offsetWidth! - tag?.offsetLeft! - mainBodyPadding) + leftOffset = Math.min(0, mainWidth - tag?.offsetWidth! - tag?.offsetLeft! - mainBodyPadding); } else { // 标签在可视区域右侧 (The active tag on the right side of the layout_tags-main) - leftOffset = -(tag?.offsetLeft! - (mainWidth - mainBodyPadding - tag?.offsetWidth!)) + leftOffset = -(tag?.offsetLeft! - (mainWidth - mainBodyPadding - tag?.offsetWidth!)); } - setTagsBodyLeft(leftOffset) - } + setTagsBodyLeft(leftOffset); + }; const handleMove = (offset: number) => { - let leftOffset: number = 0 - const mainWidth = tagsMain.current?.offsetWidth! - const mainBodyWidth = tagsMainBody.current?.offsetWidth! + let leftOffset: number = 0; + const mainWidth = tagsMain.current?.offsetWidth!; + const mainBodyWidth = tagsMainBody.current?.offsetWidth!; if (offset > 0) { - leftOffset = Math.min(0, tagsBodyLeft + offset) - } else { - if (mainWidth < mainBodyWidth) { - if (tagsBodyLeft >= -(mainBodyWidth - mainWidth)) { - leftOffset = Math.max(tagsBodyLeft + offset, mainWidth - mainBodyWidth) - } - } else { - leftOffset = 0 + leftOffset = Math.min(0, tagsBodyLeft + offset); + } else if (mainWidth < mainBodyWidth) { + if (tagsBodyLeft >= -(mainBodyWidth - mainWidth)) { + leftOffset = Math.max(tagsBodyLeft + offset, mainWidth - mainBodyWidth); } + } else { + leftOffset = 0; } - setTagsBodyLeft(leftOffset) - } + setTagsBodyLeft(leftOffset); + }; const handleScroll = (e: WheelEvent) => { - const type = e.type - let distance: number = 0 + const { type } = e; + let distance: number = 0; if (type === 'wheel') { - distance = e.deltaY ? e.deltaY * 2 : -(e.detail || 0) * 2 + distance = e.deltaY ? e.deltaY * 2 : -(e.detail || 0) * 2; } - handleMove(distance) - } + handleMove(distance); + }; const handleCloseTag = (path: string) => { // @ts-ignore dispatch(closeTagByKey(path)).then(({ payload }) => { - let currTag: RouteObject = {} - const { tagIndex, tagsList } = payload - const tagLen = tagsList.length + let currTag: RouteObject = {}; + const { tagIndex, tagsList } = payload; + const tagLen = tagsList.length; if (path === activeTag) { if (tagIndex <= tagLen - 1) { - currTag = tagsList[tagIndex] + currTag = tagsList[tagIndex]; } else { - currTag = tagsList[tagLen - 1] + currTag = tagsList[tagLen - 1]; } - navigate(currTag?.fullPath!) + navigate(currTag?.fullPath!); } - }) - } + }); + }; const handleClickTag = (path: string) => { - setActiveTag(path) - navigate(path) - } + setActiveTag(path); + navigate(path); + }; - const handleReload = () => {} + const handleReload = () => {}; return ( -
+
- ) -} + ); +}; -export default LayoutTags +export default LayoutTags; diff --git a/apps/admin/src/main.tsx b/apps/admin/src/main.tsx index 39e49e1e..947b97e5 100644 --- a/apps/admin/src/main.tsx +++ b/apps/admin/src/main.tsx @@ -1,13 +1,13 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import { Provider } from 'react-redux' -import { PersistGate } from 'redux-persist/integration/react' -import { store, persistor } from './stores' -import App from './App' -import '@/design/index.less' - +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import { Provider } from 'react-redux'; +import { PersistGate } from 'redux-persist/integration/react'; +import '@/design/index.less'; // register svg icon -import 'virtual:svg-icons-register' +import 'virtual:svg-icons-register'; + +import App from './App'; +import { persistor, store } from './stores'; ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( @@ -16,5 +16,5 @@ ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( - -) + , +); diff --git a/apps/admin/src/router/guard/guardRoute.tsx b/apps/admin/src/router/guard/guardRoute.tsx index 4ea774b2..5f1d4341 100644 --- a/apps/admin/src/router/guard/guardRoute.tsx +++ b/apps/admin/src/router/guard/guardRoute.tsx @@ -1,24 +1,23 @@ -import { ReactNode } from 'react' -import { Navigate, useLocation } from 'react-router-dom' -import { getAuthCache } from '@/utils/auth' -import { TOKEN_KEY } from '@/enums/cacheEnum' -import { useAppSelector } from '@/stores' +import { ReactNode } from 'react'; +import { Navigate, useLocation } from 'react-router-dom'; + +import { getAuthCache } from '@/utils/auth'; + +import { TOKEN_KEY } from '@/enums/cacheEnum'; +import { useAppSelector } from '@/stores'; export const GuardRoute = ({ children }: { children: ReactNode }) => { - const whiteList: string[] = ['/', '/home', '/login'] - const { pathname } = useLocation() - const { token } = useAppSelector(state => state.user) - const getToken = (): string => { - return token || getAuthCache(TOKEN_KEY) - } + const whiteList: string[] = ['/', '/home', '/login']; + const { pathname } = useLocation(); + const { token } = useAppSelector((state) => state.user); + const getToken = (): string => token || getAuthCache(TOKEN_KEY); if (!getToken()) { if (whiteList.includes(pathname)) { - return - } else { - return + return ; } + return ; } - return children -} + return children; +}; diff --git a/apps/admin/src/router/guard/index.tsx b/apps/admin/src/router/guard/index.tsx index 70db9087..de991e4b 100644 --- a/apps/admin/src/router/guard/index.tsx +++ b/apps/admin/src/router/guard/index.tsx @@ -1,10 +1,9 @@ -import { BasicLayout } from '@/layout' -import { GuardRoute } from './guardRoute' +import { BasicLayout } from '@/layout'; -export const LayoutGuard = () => { - return ( +import { GuardRoute } from './guardRoute'; + +export const LayoutGuard = () => ( - ) -} +); diff --git a/apps/admin/src/router/helpers/index.ts b/apps/admin/src/router/helpers/index.ts index c4d890e4..8a95391d 100644 --- a/apps/admin/src/router/helpers/index.ts +++ b/apps/admin/src/router/helpers/index.ts @@ -1,63 +1,65 @@ -import type { RouteObject, AppMenu } from '../types' -import { cloneDeep } from 'lodash-es' -import { isUrl } from '@/utils/is' -import { treeMap } from '@/utils/helper/treeHelper' +import { cloneDeep } from 'lodash-es'; + +import { treeMap } from '@/utils/helper/treeHelper'; +import { isUrl } from '@/utils/is'; + +import type { AppMenu, RouteObject } from '../types'; export function joinParentPath(menus: AppMenu[], parentPath = '') { for (let index = 0; index < menus.length; index++) { - const menu = menus[index] + const menu = menus[index]; // Note that nested paths that start with / will be treated as a root path. if (!(menu.path.startsWith('/') || isUrl(menu.path))) { // Path doesn't start with /, nor is it a url, join parent path - menu.path = `${parentPath}/${menu.path}` + menu.path = `${parentPath}/${menu.path}`; } if (menu?.children?.length) { - joinParentPath(menu.children, menu.path) + joinParentPath(menu.children, menu.path); } } } export function transformRouteToMenu(routes: RouteObject[]) { - const cloneRoutes = cloneDeep(routes) - const routeList: RouteObject[] = [] + const cloneRoutes = cloneDeep(routes); + const routeList: RouteObject[] = []; - cloneRoutes.forEach(item => { + cloneRoutes.forEach((item) => { if (item.meta!.hideChildrenInMenu) { - item.children = [] + item.children = []; } - routeList.push(item) - }) + routeList.push(item); + }); const list = treeMap(routeList, { conversion: (node: RouteObject) => { - const { meta: { title, hideMenu = false, ...rest } = {} } = node + const { meta: { title, hideMenu = false, ...rest } = {} } = node; return { ...(rest || {}), name: title, hideMenu, - path: node.path - } - } - }) as AppMenu[] + path: node.path, + }; + }, + }) as AppMenu[]; - joinParentPath(list) - return cloneDeep(list) + joinParentPath(list); + return cloneDeep(list); } export function genFullPath(routes: RouteObject[], parentPath = '') { for (let index = 0; index < routes.length; index++) { - const route = routes[index] + const route = routes[index]; if (route.path!.startsWith('/')) { - route.fullPath = route.path + route.fullPath = route.path; } else { - route.fullPath = `${parentPath}/${route.path}` + route.fullPath = `${parentPath}/${route.path}`; } if (route?.children?.length) { - genFullPath(route.children, route.fullPath) + genFullPath(route.children, route.fullPath); } } } diff --git a/apps/admin/src/router/index.tsx b/apps/admin/src/router/index.tsx index 49769255..4d3ee9c6 100644 --- a/apps/admin/src/router/index.tsx +++ b/apps/admin/src/router/index.tsx @@ -1,59 +1,62 @@ -import { RouteObject } from './types' -import { Navigate, createHashRouter, redirect } from 'react-router-dom' -import { genFullPath } from './helpers' -import { ExceptionEnum } from '@/enums/exceptionEnum' -import { getAuthCache } from '@/utils/auth' -import { TOKEN_KEY } from '@/enums/cacheEnum' -import LoginPage from '@/views/login' -import PageException from '@/views/exception' - -const metaRoutes = import.meta.glob('./routes/*.tsx', { eager: true }) as Recordable - -const routeList: RouteObject[] = [] - -Object.keys(metaRoutes).forEach(key => { - const module = metaRoutes[key].default || {} - const moduleList = Array.isArray(module) ? [...module] : [module] - genFullPath(moduleList) - routeList.push(...moduleList) -}) +import { createHashRouter, Navigate, redirect } from 'react-router-dom'; + +import { getAuthCache } from '@/utils/auth'; + +import { TOKEN_KEY } from '@/enums/cacheEnum'; +import { ExceptionEnum } from '@/enums/exceptionEnum'; +import PageException from '@/views/exception'; +import LoginPage from '@/views/login'; + +import { genFullPath } from './helpers'; +import { RouteObject } from './types'; + +const metaRoutes = import.meta.glob('./routes/*.tsx', { eager: true }) as Recordable; + +const routeList: RouteObject[] = []; + +Object.keys(metaRoutes).forEach((key) => { + const module = metaRoutes[key].default || {}; + const moduleList = Array.isArray(module) ? [...module] : [module]; + genFullPath(moduleList); + routeList.push(...moduleList); +}); const rootRoutes: RouteObject[] = [ { path: '/', - element: + element: , }, { path: '/login', element: , meta: { title: '登录页', - key: 'login' + key: 'login', }, loader: () => { if (getAuthCache(TOKEN_KEY)) { - return redirect('/') + return redirect('/'); } - return null - } + return null; + }, }, ...routeList, { path: '*', - element: + element: , }, { path: '/403', element: , - loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: false }) + loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: false }), }, { path: '/404', element: , - loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: false }) - } -] + loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: false }), + }, +]; -export { routeList as basicRoutes } +export { routeList as basicRoutes }; -export default createHashRouter(rootRoutes) +export default createHashRouter(rootRoutes); diff --git a/apps/admin/src/router/menus/index.ts b/apps/admin/src/router/menus/index.ts index b49b4c26..c54187ae 100644 --- a/apps/admin/src/router/menus/index.ts +++ b/apps/admin/src/router/menus/index.ts @@ -1,13 +1,12 @@ -import type { AppMenu } from '../types' -import { basicRoutes } from '..' -import { transformRouteToMenu } from '../helpers' +import { basicRoutes } from '..'; +import { transformRouteToMenu } from '../helpers'; + +import type { AppMenu } from '../types'; // Get async menus export async function getAsyncMenus(): Promise { - const staticMenus = transformRouteToMenu(basicRoutes) - staticMenus.sort((a, b) => { - return (a?.orderNo || staticMenus.length) - (b?.orderNo || staticMenus.length) - }) + const staticMenus = transformRouteToMenu(basicRoutes); + staticMenus.sort((a, b) => (a?.orderNo || staticMenus.length) - (b?.orderNo || staticMenus.length)); - return staticMenus.filter((item) => !item.hideMenu) + return staticMenus.filter((item) => !item.hideMenu); } diff --git a/apps/admin/src/router/routes/compo.tsx b/apps/admin/src/router/routes/compo.tsx index 049b716e..aad2ea41 100644 --- a/apps/admin/src/router/routes/compo.tsx +++ b/apps/admin/src/router/routes/compo.tsx @@ -1,7 +1,9 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // component module page const CompoRoute: RouteObject = { @@ -10,7 +12,7 @@ const CompoRoute: RouteObject = { meta: { title: '组件', icon: 'compo', - orderNo: 6 + orderNo: 6, }, children: [ { @@ -18,13 +20,13 @@ const CompoRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/compo/image-upload'))), meta: { title: '图片上传', - key: 'imageUpload' - } + key: 'imageUpload', + }, }, { path: 'drag', meta: { - title: '拖拽' + title: '拖拽', }, children: [ { @@ -32,35 +34,35 @@ const CompoRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-list'))), meta: { title: '列表拖拽', - key: 'dragList' - } + key: 'dragList', + }, }, { path: 'drag-resize', element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-resize'))), meta: { title: '组件拖拽', - key: 'dragResize' - } - } - ] + key: 'dragResize', + }, + }, + ], }, { path: 'transfer', element: LazyLoad(lazy(() => import('@/views/compo/transfer'))), meta: { - title: '穿梭框' - } + title: '穿梭框', + }, }, { path: 'count-up', element: LazyLoad(lazy(() => import('@/views/compo/count-up'))), meta: { title: '数字滚动', - key: 'countUp' - } - } - ] -} + key: 'countUp', + }, + }, + ], +}; -export default CompoRoute +export default CompoRoute; diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/routes/excel.tsx index f4442649..e70eeb8e 100644 --- a/apps/admin/src/router/routes/excel.tsx +++ b/apps/admin/src/router/routes/excel.tsx @@ -1,7 +1,9 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // excel module page const ExcelRoute: RouteObject = { @@ -10,7 +12,7 @@ const ExcelRoute: RouteObject = { meta: { title: 'Excel', icon: 'excel', - orderNo: 10 + orderNo: 10, }, children: [ { @@ -18,18 +20,18 @@ const ExcelRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/excel/export-excel'))), meta: { title: '导出Excel', - key: 'exportExcel' - } + key: 'exportExcel', + }, }, { path: 'import-excel', element: LazyLoad(lazy(() => import('@/views/excel/import-excel'))), meta: { title: '导入Excel', - key: 'importExcel' - } - } - ] -} + key: 'importExcel', + }, + }, + ], +}; -export default ExcelRoute +export default ExcelRoute; diff --git a/apps/admin/src/router/routes/exception.tsx b/apps/admin/src/router/routes/exception.tsx index 0e62ee68..daf9c739 100644 --- a/apps/admin/src/router/routes/exception.tsx +++ b/apps/admin/src/router/routes/exception.tsx @@ -1,8 +1,11 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { ExceptionEnum } from '@/enums/exceptionEnum' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { ExceptionEnum } from '@/enums/exceptionEnum'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // exception module page const ExceptionRoute: RouteObject = { @@ -11,7 +14,7 @@ const ExceptionRoute: RouteObject = { meta: { title: '异常页面', icon: 'bug', - orderNo: 11 + orderNo: 11, }, children: [ { @@ -19,29 +22,29 @@ const ExceptionRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/exception'))), meta: { title: '403页面', - key: 'page403' + key: 'page403', }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }) + loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }), }, { path: 'page-404', element: LazyLoad(lazy(() => import('@/views/exception'))), meta: { title: '404页面', - key: 'page404' + key: 'page404', }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }) + loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }), }, { path: 'page-500', element: LazyLoad(lazy(() => import('@/views/exception'))), meta: { title: '500页面', - key: 'page500' + key: 'page500', }, - loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }) - } - ] -} + loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }), + }, + ], +}; -export default ExceptionRoute +export default ExceptionRoute; diff --git a/apps/admin/src/router/routes/form.tsx b/apps/admin/src/router/routes/form.tsx index 7417fd67..c6ac70de 100644 --- a/apps/admin/src/router/routes/form.tsx +++ b/apps/admin/src/router/routes/form.tsx @@ -1,7 +1,9 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // form module page const FormRoute: RouteObject = { @@ -10,7 +12,7 @@ const FormRoute: RouteObject = { meta: { title: '表单', icon: 'form', - orderNo: 2 + orderNo: 2, }, children: [ { @@ -18,26 +20,26 @@ const FormRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/form/basic-form'))), meta: { title: '基础表单', - key: 'basicForm' - } + key: 'basicForm', + }, }, { path: 'form-designer', element: LazyLoad(lazy(() => import('@/views/blank'))), meta: { title: '表单设计器', - key: 'formDesigner' - } + key: 'formDesigner', + }, }, { path: 'gbeata-form', element: LazyLoad(lazy(() => import('@/views/form/gbeata-form'))), meta: { title: 'gbeata表单', - key: 'gbeataForm' - } - } - ] -} + key: 'gbeataForm', + }, + }, + ], +}; -export default FormRoute +export default FormRoute; diff --git a/apps/admin/src/router/routes/graph-editor.tsx b/apps/admin/src/router/routes/graph-editor.tsx index 26e3cd53..812789b7 100644 --- a/apps/admin/src/router/routes/graph-editor.tsx +++ b/apps/admin/src/router/routes/graph-editor.tsx @@ -1,7 +1,9 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // graph-editor module page const GraphEditorRoute: RouteObject = { @@ -10,7 +12,7 @@ const GraphEditorRoute: RouteObject = { meta: { title: '图形编辑器', icon: 'flow', - orderNo: 8 + orderNo: 8, }, children: [ { @@ -18,18 +20,18 @@ const GraphEditorRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/blank'))), meta: { title: '流程图', - key: 'flowChart' - } + key: 'flowChart', + }, }, { path: 'mind-chart', element: LazyLoad(lazy(() => import('@/views/blank'))), meta: { title: '思维导图', - key: 'mindChart' - } - } - ] -} + key: 'mindChart', + }, + }, + ], +}; -export default GraphEditorRoute +export default GraphEditorRoute; diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index c7861110..25592497 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -1,6 +1,7 @@ -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import Home from '@/views/home' +import Home from '@/views/home'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // Home route const HomeRoute: RouteObject = { @@ -11,7 +12,7 @@ const HomeRoute: RouteObject = { icon: 'home', affix: true, orderNo: 1, - hideChildrenInMenu: true + hideChildrenInMenu: true, }, children: [ { @@ -22,10 +23,10 @@ const HomeRoute: RouteObject = { key: 'home', icon: 'home', orderNo: 1, - hideMenu: true - } - } - ] -} + hideMenu: true, + }, + }, + ], +}; -export default HomeRoute +export default HomeRoute; diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/routes/images.tsx index e41c795d..bb012939 100644 --- a/apps/admin/src/router/routes/images.tsx +++ b/apps/admin/src/router/routes/images.tsx @@ -1,7 +1,9 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // image module page const ImageRoute: RouteObject = { @@ -10,7 +12,7 @@ const ImageRoute: RouteObject = { meta: { title: '图片处理', icon: 'image', - orderNo: 4 + orderNo: 4, }, children: [ { @@ -18,26 +20,26 @@ const ImageRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/image/image-cropper'))), meta: { title: '图片裁剪', - key: 'imageCropper' - } + key: 'imageCropper', + }, }, { path: 'image-compress', element: LazyLoad(lazy(() => import('@/views/blank'))), meta: { title: '图片压缩', - key: 'imageCompress' - } + key: 'imageCompress', + }, }, { path: 'image-composition', element: LazyLoad(lazy(() => import('@/views/blank'))), meta: { title: '图片合成', - key: 'imageComposition' - } - } - ] -} + key: 'imageComposition', + }, + }, + ], +}; -export default ImageRoute +export default ImageRoute; diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/routes/table.tsx index a925331e..b1111ea6 100644 --- a/apps/admin/src/router/routes/table.tsx +++ b/apps/admin/src/router/routes/table.tsx @@ -1,7 +1,9 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // table module page const TableRoute: RouteObject = { @@ -10,7 +12,7 @@ const TableRoute: RouteObject = { meta: { title: '表格', icon: 'table', - orderNo: 3 + orderNo: 3, }, children: [ { @@ -18,18 +20,18 @@ const TableRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/table/table-basic'))), meta: { title: '基础表格', - key: 'tableBasic' - } + key: 'tableBasic', + }, }, { path: 'table-edit-row', element: LazyLoad(lazy(() => import('@/views/table/table-edit-row'))), meta: { title: '可编辑行表格', - key: 'tableEditRow' - } - } - ] -} + key: 'tableEditRow', + }, + }, + ], +}; -export default TableRoute +export default TableRoute; diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/routes/text-editor.tsx index 0ac9ec13..5c94480d 100644 --- a/apps/admin/src/router/routes/text-editor.tsx +++ b/apps/admin/src/router/routes/text-editor.tsx @@ -1,7 +1,9 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // text-editor module page const TextEditorRoute: RouteObject = { @@ -10,7 +12,7 @@ const TextEditorRoute: RouteObject = { meta: { title: '文本编辑器', icon: 'editor', - orderNo: 7 + orderNo: 7, }, children: [ { @@ -18,26 +20,26 @@ const TextEditorRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/editor/markdown'))), meta: { title: 'Markdown编辑器', - key: 'markdown' - } + key: 'markdown', + }, }, { path: 'rich-text', element: LazyLoad(lazy(() => import('@/views/editor/rich-text'))), meta: { title: '富文本编辑器', - key: 'richText' - } + key: 'richText', + }, }, { path: 'code-editor', element: LazyLoad(lazy(() => import('@/views/editor/code-mirror'))), meta: { title: '代码编辑器', - key: 'codeEditor' - } - } - ] -} + key: 'codeEditor', + }, + }, + ], +}; -export default TextEditorRoute +export default TextEditorRoute; diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/routes/tree.tsx index 3a6cf422..c75c35cd 100644 --- a/apps/admin/src/router/routes/tree.tsx +++ b/apps/admin/src/router/routes/tree.tsx @@ -1,7 +1,9 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // tree module page const TreeRoute: RouteObject = { @@ -10,7 +12,7 @@ const TreeRoute: RouteObject = { meta: { title: '树形结构', icon: 'tree', - orderNo: 9 + orderNo: 9, }, children: [ { @@ -18,18 +20,18 @@ const TreeRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/tree/org-tree'))), meta: { title: '组织树', - key: 'orgTree' - } + key: 'orgTree', + }, }, { path: 'antd-tree', element: LazyLoad(lazy(() => import('@/views/tree/antd-tree'))), meta: { title: '控件树', - key: 'antdTree' - } - } - ] -} + key: 'antdTree', + }, + }, + ], +}; -export default TreeRoute +export default TreeRoute; diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/routes/video.tsx index d2d78697..840deb4e 100644 --- a/apps/admin/src/router/routes/video.tsx +++ b/apps/admin/src/router/routes/video.tsx @@ -1,7 +1,9 @@ -import { lazy } from 'react' -import { RouteObject } from '../types' -import { LayoutGuard } from '../guard' -import { LazyLoad } from '@/components/LazyLoad' +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; +import { RouteObject } from '../types'; // video module page const VideoRoute: RouteObject = { @@ -10,7 +12,7 @@ const VideoRoute: RouteObject = { meta: { title: '视频处理', icon: 'video', - orderNo: 5 + orderNo: 5, }, children: [ { @@ -18,18 +20,18 @@ const VideoRoute: RouteObject = { element: LazyLoad(lazy(() => import('@/views/video/video-player'))), meta: { title: '视频播放器', - key: 'videoPlayer' - } + key: 'videoPlayer', + }, }, { path: 'video-mark', element: LazyLoad(lazy(() => import('@/views/blank'))), meta: { title: '视频水印', - key: 'videoMark' - } - } - ] -} + key: 'videoMark', + }, + }, + ], +}; -export default VideoRoute +export default VideoRoute; diff --git a/apps/admin/src/router/types.ts b/apps/admin/src/router/types.ts index 90bfb8d7..6b233bd4 100644 --- a/apps/admin/src/router/types.ts +++ b/apps/admin/src/router/types.ts @@ -1,5 +1,5 @@ -import { ReactNode } from 'react' -import { LoaderFunction } from 'react-router-dom' +import { ReactNode } from 'react'; +import { LoaderFunction } from 'react-router-dom'; export interface MetaProps { title: string diff --git a/apps/admin/src/settings/appBaseSetting.ts b/apps/admin/src/settings/appBaseSetting.ts index e550ff45..b92eaa38 100644 --- a/apps/admin/src/settings/appBaseSetting.ts +++ b/apps/admin/src/settings/appBaseSetting.ts @@ -1,7 +1,8 @@ -import type { AppConfig } from '@/types/config' -import { MenuTypeEnum, MenuModeEnum, MenuFoldBtnEnum } from '@/enums/menuEnum' -import { ThemeEnum, PageTransitionEnum, PermissionModeEnum } from '@/enums/appEnum' -import { CacheTypeEnum } from '@/enums/cacheEnum' +import { PageTransitionEnum, PermissionModeEnum, ThemeEnum } from '@/enums/appEnum'; +import { CacheTypeEnum } from '@/enums/cacheEnum'; +import { MenuFoldBtnEnum, MenuModeEnum, MenuTypeEnum } from '@/enums/menuEnum'; + +import type { AppConfig } from '@/types/config'; export const appSetting: AppConfig = { // Theme color @@ -23,7 +24,7 @@ export const appSetting: AppConfig = { // Show document button showDoc: false, // Show github button - showGithub: true + showGithub: true, }, // Menu configuration menuSetting: { @@ -48,7 +49,7 @@ export const appSetting: AppConfig = { // Hydrid sider menu fixed menuFixed: false, // Hybrid mode sider menu hidden - menuHidden: false + menuHidden: false, }, // Transition settings transitionSetting: { @@ -59,7 +60,7 @@ export const appSetting: AppConfig = { // Whether to open the page switching animation openTransition: true, // Page basic switching animation - basicTransition: PageTransitionEnum.FADE + basicTransition: PageTransitionEnum.FADE, }, // Permission mode permissionMode: PermissionModeEnum.MAPPING, @@ -74,5 +75,5 @@ export const appSetting: AppConfig = { // Whether to turn on the color weak mode colorWeak: false, // Whether to turn on the gray mode - grayMode: false -} + grayMode: false, +}; diff --git a/apps/admin/src/settings/designSetting.ts b/apps/admin/src/settings/designSetting.ts index 009a8539..a9d9e8fe 100644 --- a/apps/admin/src/settings/designSetting.ts +++ b/apps/admin/src/settings/designSetting.ts @@ -1,40 +1,40 @@ -import { AppModeEnum } from '@/enums/appEnum' +import { AppModeEnum } from '@/enums/appEnum'; // app mode -export const baseAppMode = AppModeEnum.LIGHT +export const baseAppMode = AppModeEnum.LIGHT; // app theme color export const APP_THEME_COLOR_LIST = [ - { - name: '拂晓蓝', - color: '#1765AE' - }, - { - name: '薄暮', - color: '#A71A1F' - }, - { - name: '火山', - color: '#AE3E17' - }, - { - name: '日暮', - color: '#B8831B' - }, - { - name: '明青', - color: '#269491' - }, - { - name: '极光绿', - color: '#509827' - }, - { - name: '极客蓝', - color: '#20389A' - }, - { - name: '酱紫', - color: '#60339A' - } -] + { + name: '拂晓蓝', + color: '#1765AE', + }, + { + name: '薄暮', + color: '#A71A1F', + }, + { + name: '火山', + color: '#AE3E17', + }, + { + name: '日暮', + color: '#B8831B', + }, + { + name: '明青', + color: '#269491', + }, + { + name: '极光绿', + color: '#509827', + }, + { + name: '极客蓝', + color: '#20389A', + }, + { + name: '酱紫', + color: '#60339A', + }, +]; diff --git a/apps/admin/src/settings/encryptionSetting.ts b/apps/admin/src/settings/encryptionSetting.ts index 17459dc3..871acf0f 100644 --- a/apps/admin/src/settings/encryptionSetting.ts +++ b/apps/admin/src/settings/encryptionSetting.ts @@ -1,13 +1,13 @@ -import { isDevMode } from '@/utils/env' +import { isDevMode } from '@/utils/env'; // System default cache time, in seconds -export const DEFAULT_CACHE_TIME = 60 * 60 * 24 * 7 +export const DEFAULT_CACHE_TIME = 60 * 60 * 24 * 7; // aes encryption key export const cacheCipher = { key: '_11111000001111@', - iv: '@11111000001111_' -} + iv: '@11111000001111_', +}; // Whether the system cache is encrypted using aes -export const enableStorageEncryption = !isDevMode() +export const enableStorageEncryption = !isDevMode(); diff --git a/apps/admin/src/settings/websiteSetting.ts b/apps/admin/src/settings/websiteSetting.ts index 16acc09f..09c14d52 100644 --- a/apps/admin/src/settings/websiteSetting.ts +++ b/apps/admin/src/settings/websiteSetting.ts @@ -1,151 +1,151 @@ // Github repo url -export const GITHUB_URL = 'https://github.com/baimingxuan/vue3-admin-design' +export const GITHUB_URL = 'https://github.com/baimingxuan/vue3-admin-design'; // Form component export const FORM_COMPO = { name: 'Form表单', url: 'https://www.antdv.com/components/form', - desc: 'ant-design-form: 使用 ant-design 的 form 组件, 可用以收集、校验和提交数据等操作。' -} + desc: 'ant-design-form: 使用 ant-design 的 form 组件, 可用以收集、校验和提交数据等操作。', +}; // Form-create plugin export const FORM_CREATE_DESIGNER = { name: 'Form表单设计器', url: 'https://github.com/xaboy/form-create-designer/tree/next', - desc: 'form-create-designer: 一个通过拖拽的方式快速创建表单的设计器组件, 能提高开发者对表单的开发效率, 节省开发者的时间。' -} + desc: 'form-create-designer: 一个通过拖拽的方式快速创建表单的设计器组件, 能提高开发者对表单的开发效率, 节省开发者的时间。', +}; // Table component export const TABLE_COMPO = { name: 'Table表格', url: 'https://ant-design.antgroup.com/components/table', - desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行相关操作。' -} + desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行相关操作。', +}; // Table edit component export const TABLE_EDIT_COMPO = { name: 'Table表格(可编辑行)', url: 'https://ant-design.antgroup.com/components/table', - desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行行数据编辑操作。' -} + desc: 'ant-design-table: 使用 ant-design 的 table 组件, 可用于展示多条结构类似的数据, 并对其进行行数据编辑操作。', +}; // Tree component export const TREE_COMPO = { name: 'Tree树形控件', url: 'https://ant-design.antgroup.com/components/tree', - desc: 'ant-design-tree: 基于Ant-Design的Tree组件, 可以完整展现其中的层级关系, 并具有展开收起选择等交互功能。' -} + desc: 'ant-design-tree: 基于Ant-Design的Tree组件, 可以完整展现其中的层级关系, 并具有展开收起选择等交互功能。', +}; // Transfer component export const TRANSFER_COMPO = { name: 'Transfer穿梭框', url: 'https://ant-design.antgroup.com/components/transfer', - desc: 'ant-design-transfer: 使用 ant-design 的 transfer 组件, 可用于对列表数据进行选中、取消等操作。' -} + desc: 'ant-design-transfer: 使用 ant-design 的 transfer 组件, 可用于对列表数据进行选中、取消等操作。', +}; // Upload component export const UPLOAD_COMPO = { name: 'Upload图片上传组件', url: 'https://antdv.com/components/upload', - desc: 'ant-design-upload: 使用 ant-design 的 upload 组件, 并具有多种列表展示方式。' -} + desc: 'ant-design-upload: 使用 ant-design 的 upload 组件, 并具有多种列表展示方式。', +}; // Video player plugin export const VIDEO_PLUGIN = { name: 'Video视频播放器', url: 'https://github.com/video-react/video-react', - desc: 'Video-React: 一个使用 React 为 HTML5 构建的web视频播放器, 适用于目前主流网络视频的播放。' -} + desc: 'Video-React: 一个使用 React 为 HTML5 构建的web视频播放器, 适用于目前主流网络视频的播放。', +}; // Video resource src -export const VIDEO_RES_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/videos/houlang.mp4' +export const VIDEO_RES_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/videos/houlang.mp4'; // Xlsx plugin export const XLSX_PLUGIN = { name: 'JS-xlsx插件', url: 'https://github.com/SheetJS/sheetjs', - desc: 'JS-xlsx: 由SheetJS出品的一款非常方便的只需要纯JS即可读取和导出excel的工具库, 功能强大, 支持xlsx、csv、txt等格式。' -} + desc: 'JS-xlsx: 由SheetJS出品的一款非常方便的只需要纯JS即可读取和导出excel的工具库, 功能强大, 支持xlsx、csv、txt等格式。', +}; // React-Sortable plugin export const SORTABLE_PLUGIN = { name: 'Sortable拖拽列表', url: 'https://github.com/SortableJS/react-sortablejs', - desc: 'ReactSortable: 基于Sortable.js的react组件, 用以实现拖拽功能。' -} + desc: 'ReactSortable: 基于Sortable.js的react组件, 用以实现拖拽功能。', +}; // React-Rnd plugin export const REACT_RND_PLUGIN = { name: 'React-Rnd拖拽组件', url: 'https://github.com/bokuweb/react-rnd', - desc: 'React-Rnd: 一款可调整大小和可拖拽的React组件。' -} + desc: 'React-Rnd: 一款可调整大小和可拖拽的React组件。', +}; // React-cropper plugin export const REACT_CROPPER_PLUGIN = { name: 'React-Cropper图片裁剪', url: 'https://github.com/react-cropper/react-cropper', - desc: 'react-cropper: 一个优雅的图片裁剪插件, 可实现图片裁剪、图片生成等功能, 并支持生成png、jpeg、webp等图片格式。' -} + desc: 'react-cropper: 一个优雅的图片裁剪插件, 可实现图片裁剪、图片生成等功能, 并支持生成png、jpeg、webp等图片格式。', +}; // Image-composition component export const IMAGE_COMPOSITION = { name: 'Image图片合成', url: 'https://github.com/xyxiao001/vue-cropper', - desc: '图片合成: 基于VueDRR拖拽功能, 在其上通过叠加图片、文字等, 实现图片的叠加伪合成功能。' -} + desc: '图片合成: 基于VueDRR拖拽功能, 在其上通过叠加图片、文字等, 实现图片的叠加伪合成功能。', +}; // Cropper image src -export const CROPPER_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img02.jpg' +export const CROPPER_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img02.jpg'; // Compress image src -export const COMPRESS_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg' +export const COMPRESS_IMG_SRC = 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg'; // Image-compress component export const IMAGE_COMPRESS = { name: 'Image图片压缩', url: 'https://github.com/baimingxuan/vue3-admin-design/blob/main/src/views/image/image-compress.tsx', - desc: 'ImageCompress: 纯JS实现对图片的等比压缩和放大的功能, 并能对图片进行下载。' -} + desc: 'ImageCompress: 纯JS实现对图片的等比压缩和放大的功能, 并能对图片进行下载。', +}; // Count-to plugin export const COUNTUP_PLUGIN = { name: 'CountUp数字滚动', url: 'https://github.com/glennreyes/react-countup', - desc: 'React-CountUp: 一个无依赖、轻量级的react数字滚动插件, 以更有趣的方式显示数字数据。' -} + desc: 'React-CountUp: 一个无依赖、轻量级的react数字滚动插件, 以更有趣的方式显示数字数据。', +}; // React-CodeMirror plugin export const CODEMIRROR_PLUGIN = { name: 'CodeMirror代码编辑器', url: 'https://github.com/uiwjs/react-codemirror', - desc: 'React-CodeMirror: 是一款基于 react 的代码编辑器, 可支持html、javascript、typescript等。' -} + desc: 'React-CodeMirror: 是一款基于 react 的代码编辑器, 可支持html、javascript、typescript等。', +}; // Antv-g6 plugin export const ANTV_G6_PLUGIN = { name: 'AntV-G6流程图', url: 'https://github.com/antvis/g6', - desc: 'antv-g6: 一个图可视化引擎。它提供了图的绘制、布局、分析、交互、动画等图可视化的基础能力。' -} + desc: 'antv-g6: 一个图可视化引擎。它提供了图的绘制、布局、分析、交互、动画等图可视化的基础能力。', +}; // ReactTreeOrg plugin export const React_TREE_ORG_PLUGIN = { name: 'Tree-Org树状组织图', url: 'https://github.com/artdong/react-org-tree', - desc: 'react-tree-org: 基于 react 的树结构组织图, 可用于公司组织架构展示。' -} + desc: 'react-tree-org: 基于 react 的树结构组织图, 可用于公司组织架构展示。', +}; // WangEditor plugin export const WANG_EDITOR_PLUGIN = { name: '富文本编辑器', url: 'https://github.com/wangeditor-team/wangEditor', - desc: 'wangEditor: 基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费。' -} + desc: 'wangEditor: 基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费。', +}; // React-Markdown-Editor plugin export const MARKDOWN_EDITOR_PLUGIN = { name: 'Markdown编辑器', url: 'https://github.com/uiwjs/react-md-editor', - desc: 'React-Md-Editor: 是一款基于 react 的 Markdown 编辑器,比较适合博客系统。' -} \ No newline at end of file + desc: 'React-Md-Editor: 是一款基于 react 的 Markdown 编辑器,比较适合博客系统。', +}; diff --git a/apps/admin/src/stores/index.ts b/apps/admin/src/stores/index.ts index 422b570a..ab203bcb 100644 --- a/apps/admin/src/stores/index.ts +++ b/apps/admin/src/stores/index.ts @@ -1,37 +1,38 @@ -import type { Store } from 'redux' -import { configureStore, ThunkAction, Action } from '@reduxjs/toolkit' -import { useDispatch, useSelector, TypedUseSelectorHook } from 'react-redux' -import { persistStore, persistReducer } from 'redux-persist' -import storage from 'redux-persist/lib/storage' -import appSlice from './modules/app' -import menuSlice from './modules/menu' -import tagsSlice from './modules/tags' -import userSlice from './modules/user' +import { Action, configureStore, ThunkAction } from '@reduxjs/toolkit'; +import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'; +import { persistReducer, persistStore } from 'redux-persist'; +import storage from 'redux-persist/lib/storage'; + +import appSlice from './modules/app'; +import menuSlice from './modules/menu'; +import tagsSlice from './modules/tags'; +import userSlice from './modules/user'; + +import type { Store } from 'redux'; const persistConfig = { key: 'redux-persist', - storage -} + storage, +}; export const store: Store = configureStore({ reducer: { app: persistReducer(persistConfig, appSlice), menu: persistReducer(persistConfig, menuSlice), tags: persistReducer(persistConfig, tagsSlice), - user: persistReducer(persistConfig, userSlice) + user: persistReducer(persistConfig, userSlice), }, - middleware: getDefaultMiddleware => - getDefaultMiddleware({ - serializableCheck: false - }), - devTools: true -}) + middleware: (getDefaultMiddleware) => getDefaultMiddleware({ + serializableCheck: false, + }), + devTools: true, +}); -export const persistor = persistStore(store) +export const persistor = persistStore(store); -export type RootState = ReturnType -export type AppDispatch = typeof store.dispatch -export type AppThunk = ThunkAction> +export type RootState = ReturnType; +export type AppDispatch = typeof store.dispatch; +export type AppThunk = ThunkAction>; -export const useAppDispatch: () => AppDispatch = useDispatch -export const useAppSelector: TypedUseSelectorHook = useSelector +export const useAppDispatch: () => AppDispatch = useDispatch; +export const useAppSelector: TypedUseSelectorHook = useSelector; diff --git a/apps/admin/src/stores/modules/app.ts b/apps/admin/src/stores/modules/app.ts index 6eebee44..954db134 100644 --- a/apps/admin/src/stores/modules/app.ts +++ b/apps/admin/src/stores/modules/app.ts @@ -1,38 +1,43 @@ -import { createSlice } from '@reduxjs/toolkit' -import { AppState } from '../types' -import { Persistent } from '@/utils/cache/persistent' -import { APP_CONFIG_KEY } from '@/enums/cacheEnum' -import { deepMerge } from '@/utils' +import { createSlice } from '@reduxjs/toolkit'; + +import { deepMerge } from '@/utils'; +import { Persistent } from '@/utils/cache/persistent'; + +import { APP_CONFIG_KEY } from '@/enums/cacheEnum'; + +import { AppState } from '../types'; const initialState: AppState = { appMode: undefined, themeMode: undefined, - appConfig: Persistent.getLocal(APP_CONFIG_KEY) -} + appConfig: Persistent.getLocal(APP_CONFIG_KEY), +}; const app = createSlice({ name: 'app', initialState, reducers: { setAppMode: (state, action) => { - state.appMode = action.payload + state.appMode = action.payload; }, setThemeMode: (state, action) => { - state.themeMode = action.payload + state.themeMode = action.payload; }, setAppConfig: (state, action) => { - state.appConfig = deepMerge(state.appConfig || {}, action.payload) - Persistent.setLocal(APP_CONFIG_KEY, state.appConfig, true) + state.appConfig = deepMerge(state.appConfig || {}, action.payload); + Persistent.setLocal(APP_CONFIG_KEY, state.appConfig, true); }, resetState(state) { - state.appMode = undefined - state.themeMode = undefined - state.appConfig = null - Persistent.clearAll() - } - } -}) + state.appMode = undefined; + state.themeMode = undefined; + state.appConfig = null; + Persistent.clearAll(); + }, + }, +}); -export const { setAppMode, setThemeMode, setAppConfig, resetState } = app.actions +export const { + setAppMode, setThemeMode, setAppConfig, resetState, +} = app.actions; -export default app.reducer +export default app.reducer; diff --git a/apps/admin/src/stores/modules/menu.ts b/apps/admin/src/stores/modules/menu.ts index b37e0cc3..7a0674fb 100644 --- a/apps/admin/src/stores/modules/menu.ts +++ b/apps/admin/src/stores/modules/menu.ts @@ -1,24 +1,25 @@ -import { createSlice } from '@reduxjs/toolkit' -import { MenuState } from '@/stores/types' +import { createSlice } from '@reduxjs/toolkit'; + +import { MenuState } from '@/stores/types'; const initialState: MenuState = { menuList: [], - isCollapse: false -} + isCollapse: false, +}; const menu = createSlice({ name: 'menu', initialState, reducers: { setMenuList: (state, action) => { - state.menuList = action.payload + state.menuList = action.payload; }, updateCollapse: (state, action) => { - state.isCollapse = action.payload - } - } -}) + state.isCollapse = action.payload; + }, + }, +}); -export const { setMenuList, updateCollapse } = menu.actions +export const { setMenuList, updateCollapse } = menu.actions; -export default menu.reducer +export default menu.reducer; diff --git a/apps/admin/src/stores/modules/tags.ts b/apps/admin/src/stores/modules/tags.ts index 980adb97..87b27209 100644 --- a/apps/admin/src/stores/modules/tags.ts +++ b/apps/admin/src/stores/modules/tags.ts @@ -1,76 +1,79 @@ // import type { PayloadAction } from '@reduxjs/toolkit' -import type { RouteObject } from '@/router/types' -import { createSlice, createAsyncThunk } from '@reduxjs/toolkit' -import { TagsState } from '@/stores/types' -import { RootState, AppDispatch } from '..' +import { createAsyncThunk, createSlice } from '@reduxjs/toolkit'; + +import { TagsState } from '@/stores/types'; + +import { AppDispatch, RootState } from '..'; + +import type { RouteObject } from '@/router/types'; const initialState: TagsState = { visitedTags: [], - cachedTags: [] -} + cachedTags: [], +}; const createAppAsyncThunk = createAsyncThunk.withTypes<{ state: RootState dispatch: AppDispatch rejectValue: string extra: { s: string; n: number } -}>() +}>(); const tags = createSlice({ name: 'tags', initialState, reducers: { addVisitedTags: (state, action) => { - const hasExistIndex = state.visitedTags.findIndex(tag => tag.path === action.payload.path) + const hasExistIndex = state.visitedTags.findIndex((tag) => tag.path === action.payload.path); if (hasExistIndex < 0) { - state.visitedTags.push(action.payload) + state.visitedTags.push(action.payload); } else { - state.visitedTags[hasExistIndex] = Object.assign({}, state.visitedTags[hasExistIndex], action.payload) + state.visitedTags[hasExistIndex] = { ...state.visitedTags[hasExistIndex], ...action.payload }; } }, updateVisitedTags: (state, action) => { - state.visitedTags = action.payload + state.visitedTags = action.payload; }, closeTagsByType: (state, action) => { - let restTags: RouteObject[] = [] - const { type, path } = action.payload - const { visitedTags } = state - const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path) - const affixTags = visitedTags.filter((tag: any) => tag?.meta?.affix) + let restTags: RouteObject[] = []; + const { type, path } = action.payload; + const { visitedTags } = state; + const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path); + const affixTags = visitedTags.filter((tag: any) => tag?.meta?.affix); switch (type) { case 'left': - restTags = visitedTags.slice(tagIndex) - break + restTags = visitedTags.slice(tagIndex); + break; case 'right': - restTags = visitedTags.slice(0, tagIndex + 1) - break + restTags = visitedTags.slice(0, tagIndex + 1); + break; case 'other': - restTags = visitedTags.filter((tag: any) => tag.fullPath === path) - break + restTags = visitedTags.filter((tag: any) => tag.fullPath === path); + break; } - state.visitedTags = affixTags.concat(restTags.filter((tag: RouteObject) => !tag.meta?.affix)) - } - } -}) + state.visitedTags = affixTags.concat(restTags.filter((tag: RouteObject) => !tag.meta?.affix)); + }, + }, +}); export const closeTagByKey = createAppAsyncThunk('tags/closeTagByKey', (path: string, { getState, dispatch }) => { - const { visitedTags } = getState().tags - const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path) - const restTags = visitedTags.filter((tag: any) => tag.fullPath !== path) - dispatch(updateVisitedTags(restTags)) + const { visitedTags } = getState().tags; + const tagIndex = visitedTags.findIndex((tag: any) => tag.fullPath === path); + const restTags = visitedTags.filter((tag: any) => tag.fullPath !== path); + dispatch(updateVisitedTags(restTags)); return Promise.resolve({ tagIndex, - tagsList: restTags - }) -}) + tagsList: restTags, + }); +}); export const closeAllTags = createAppAsyncThunk('tags/closeAllTags', (_, { getState, dispatch }) => { - const { visitedTags } = getState().tags - const restTags = visitedTags.filter((tag: any) => tag?.meta?.affix) - dispatch(updateVisitedTags(restTags)) - return Promise.resolve(restTags) -}) + const { visitedTags } = getState().tags; + const restTags = visitedTags.filter((tag: any) => tag?.meta?.affix); + dispatch(updateVisitedTags(restTags)); + return Promise.resolve(restTags); +}); -export const { addVisitedTags, updateVisitedTags, closeTagsByType } = tags.actions +export const { addVisitedTags, updateVisitedTags, closeTagsByType } = tags.actions; -export default tags.reducer +export default tags.reducer; diff --git a/apps/admin/src/stores/modules/user.ts b/apps/admin/src/stores/modules/user.ts index c6b51741..b3d00b49 100644 --- a/apps/admin/src/stores/modules/user.ts +++ b/apps/admin/src/stores/modules/user.ts @@ -1,40 +1,45 @@ -import type { UserState } from '@/stores/types' -import { createSlice } from '@reduxjs/toolkit' -import { TOKEN_KEY, USER_INFO_KEY } from '@/enums/cacheEnum' -import { setAuthCache } from '@/utils/auth' +import { createSlice } from '@reduxjs/toolkit'; + +import { setAuthCache } from '@/utils/auth'; + +import { TOKEN_KEY, USER_INFO_KEY } from '@/enums/cacheEnum'; + +import type { UserState } from '@/stores/types'; const initialState: UserState = { userInfo: null, token: undefined, sessionTimeout: false, - lastUpdateTime: 0 -} + lastUpdateTime: 0, +}; const user = createSlice({ name: 'user', initialState, reducers: { setToken: (state, action) => { - state.token = action.payload ? action.payload : '' - setAuthCache(TOKEN_KEY, action.payload) + state.token = action.payload ? action.payload : ''; + setAuthCache(TOKEN_KEY, action.payload); }, setUserInfo: (state, action) => { - state.userInfo = action.payload - state.lastUpdateTime = new Date().getTime() - setAuthCache(USER_INFO_KEY, action.payload) + state.userInfo = action.payload; + state.lastUpdateTime = new Date().getTime(); + setAuthCache(USER_INFO_KEY, action.payload); }, setSessionTimeout: (state, action) => { - state.sessionTimeout = action.payload + state.sessionTimeout = action.payload; }, resetState(state) { - state.userInfo = null - state.token = undefined - state.sessionTimeout = false - state.lastUpdateTime = 0 - } - } -}) + state.userInfo = null; + state.token = undefined; + state.sessionTimeout = false; + state.lastUpdateTime = 0; + }, + }, +}); -export const { setToken, setUserInfo, setSessionTimeout, resetState } = user.actions +export const { + setToken, setUserInfo, setSessionTimeout, resetState, +} = user.actions; -export default user.reducer +export default user.reducer; diff --git a/apps/admin/src/stores/types.ts b/apps/admin/src/stores/types.ts index 19ffacab..989ca695 100644 --- a/apps/admin/src/stores/types.ts +++ b/apps/admin/src/stores/types.ts @@ -1,6 +1,7 @@ -import { AppConfig } from '@/types/config' -import { AppModeEnum, ThemeEnum } from '@/enums/appEnum' -import { RouteObject } from '@/router/types' +import { AppModeEnum, ThemeEnum } from '@/enums/appEnum'; +import { RouteObject } from '@/router/types'; + +import { AppConfig } from '@/types/config'; export interface UserInfo { userId: string | number diff --git a/apps/admin/src/types/config.ts b/apps/admin/src/types/config.ts index 44cf4b92..f5146ffd 100644 --- a/apps/admin/src/types/config.ts +++ b/apps/admin/src/types/config.ts @@ -1,7 +1,6 @@ -import { MenuModeEnum, MenuTypeEnum, MenuFoldBtnEnum } from '../enums/menuEnum' -import { PageTransitionEnum, ThemeEnum } from '../enums/appEnum' -import { PermissionModeEnum } from '../enums/appEnum' -import { CacheTypeEnum } from '../enums/cacheEnum' +import { PageTransitionEnum, PermissionModeEnum, ThemeEnum } from '../enums/appEnum'; +import { CacheTypeEnum } from '../enums/cacheEnum'; +import { MenuFoldBtnEnum, MenuModeEnum, MenuTypeEnum } from '../enums/menuEnum'; export interface AppConfig { // Theme color @@ -81,4 +80,4 @@ export interface TransitionSetting { openTransition: boolean // Page basic switching animation basicTransition: PageTransitionEnum -} \ No newline at end of file +} diff --git a/apps/admin/src/types/index.ts b/apps/admin/src/types/index.ts index 40d21287..10910c4e 100644 --- a/apps/admin/src/types/index.ts +++ b/apps/admin/src/types/index.ts @@ -13,6 +13,6 @@ export interface UserInfo { homePath?: string } -export type ThemeMode = 'dark' | 'light' +export type ThemeMode = 'dark' | 'light'; -export type LocaleType = 'zh_CN' | 'en' +export type LocaleType = 'zh_CN' | 'en'; diff --git a/apps/admin/src/utils/auth.ts b/apps/admin/src/utils/auth.ts index d8f6289c..9ec27776 100644 --- a/apps/admin/src/utils/auth.ts +++ b/apps/admin/src/utils/auth.ts @@ -1,25 +1,26 @@ -import { Persistent, BasicKeys } from './cache/persistent' -import { appSetting } from '@/settings/appBaseSetting' -import { TOKEN_KEY, CacheTypeEnum } from '@/enums/cacheEnum' +import { CacheTypeEnum, TOKEN_KEY } from '@/enums/cacheEnum'; +import { appSetting } from '@/settings/appBaseSetting'; -const { permissionCacheType } = appSetting -const isLocal = permissionCacheType === CacheTypeEnum.LOCAL +import { BasicKeys, Persistent } from './cache/persistent'; + +const { permissionCacheType } = appSetting; +const isLocal = permissionCacheType === CacheTypeEnum.LOCAL; export function getToken() { - return getAuthCache(TOKEN_KEY) + return getAuthCache(TOKEN_KEY); } export function getAuthCache(key: BasicKeys) { - const fn = isLocal ? Persistent.getLocal : Persistent.getSession - return fn(key) as T + const fn = isLocal ? Persistent.getLocal : Persistent.getSession; + return fn(key) as T; } export function setAuthCache(key: BasicKeys, value: any) { - const fn = isLocal ? Persistent.setLocal : Persistent.setSession - return fn(key, value, true) + const fn = isLocal ? Persistent.setLocal : Persistent.setSession; + return fn(key, value, true); } export function clearAuthCache(immediate = true) { - const fn = isLocal ? Persistent.clearLocal : Persistent.clearSession - return fn(immediate) + const fn = isLocal ? Persistent.clearLocal : Persistent.clearSession; + return fn(immediate); } diff --git a/apps/admin/src/utils/axios.ts b/apps/admin/src/utils/axios.ts index 63df5f86..8d3f35c8 100644 --- a/apps/admin/src/utils/axios.ts +++ b/apps/admin/src/utils/axios.ts @@ -1,45 +1,46 @@ -import type { InternalAxiosRequestConfig, AxiosResponse, AxiosError } from 'axios' -import axios from 'axios' -import { message } from 'antd' -import { getToken, clearAuthCache } from '@/utils/auth' +import { message } from 'antd'; +import axios from 'axios'; + +import { clearAuthCache, getToken } from '@/utils/auth'; + +import type { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios'; // Create axios instance const service = axios.create({ baseURL: '/api', - timeout: 10 * 1000 -}) + timeout: 10 * 1000, +}); // Handle Error const handleError = (error: AxiosError): Promise => { if (error.response?.status === 401 || error.response?.status === 504) { - clearAuthCache() - location.href = '/login' + clearAuthCache(); + location.href = '/login'; } - message.error(error.message || 'error') - return Promise.reject(error) -} + message.error(error.message || 'error'); + return Promise.reject(error); +}; // Request interceptors configuration service.interceptors.request.use((config: InternalAxiosRequestConfig) => { - const token = getToken() + const token = getToken(); if (token) { - ;(config as Recordable).headers['Authorization'] = `${token}` + (config as Recordable).headers.Authorization = `${token}`; } - ;(config as Recordable).headers['Content-Type'] = 'application/json' - return config -}, handleError) + (config as Recordable).headers['Content-Type'] = 'application/json'; + return config; +}, handleError); // Respose interceptors configuration service.interceptors.response.use((response: AxiosResponse) => { - const data = response.data + const { data } = response; if (data.code === 0) { - return data.data - } else { - message.error(data.message) - - return Promise.reject('error') + return data.data; } -}, handleError) + message.error(data.message); + + return Promise.reject('error'); +}, handleError); -export { service } +export { service }; diff --git a/apps/admin/src/utils/cache/index.ts b/apps/admin/src/utils/cache/index.ts index f51abc33..3fa4c6ad 100644 --- a/apps/admin/src/utils/cache/index.ts +++ b/apps/admin/src/utils/cache/index.ts @@ -1,30 +1,23 @@ -import { createStorage as create, CreateStorageParams } from './storageCache' -import { enableStorageEncryption, DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting' +import { DEFAULT_CACHE_TIME, enableStorageEncryption } from '@/settings/encryptionSetting'; -type Options = Partial +import { createStorage as create, CreateStorageParams } from './storageCache'; -const createOptions = (storage: Storage, options: Options = {}): Options => { - return { - // No encryption in debug mode - hasEncrypt: enableStorageEncryption, - storage, - prefixKey: 'react-admin-design__', - ...options - } -} +type Options = Partial; -const WebStorage = create(createOptions(sessionStorage)) +const createOptions = (storage: Storage, options: Options = {}): Options => ({ + // No encryption in debug mode + hasEncrypt: enableStorageEncryption, + storage, + prefixKey: 'react-admin-design__', + ...options, +}); -export const createStorage = (storage: Storage = sessionStorage, options: Options = {}) => { - return create(createOptions(storage, options)) -} +const WebStorage = create(createOptions(sessionStorage)); -export const createSessionStorage = (options: Options = {}) => { - return createStorage(sessionStorage, { ...options, timeout: DEFAULT_CACHE_TIME }) -} +export const createStorage = (storage: Storage = sessionStorage, options: Options = {}) => create(createOptions(storage, options)); -export const createLocalStorage = (options: Options = {}) => { - return createStorage(localStorage, { ...options, timeout: DEFAULT_CACHE_TIME }) -} +export const createSessionStorage = (options: Options = {}) => createStorage(sessionStorage, { ...options, timeout: DEFAULT_CACHE_TIME }); -export default WebStorage +export const createLocalStorage = (options: Options = {}) => createStorage(localStorage, { ...options, timeout: DEFAULT_CACHE_TIME }); + +export default WebStorage; diff --git a/apps/admin/src/utils/cache/memory.ts b/apps/admin/src/utils/cache/memory.ts index d3c9a617..711d230a 100644 --- a/apps/admin/src/utils/cache/memory.ts +++ b/apps/admin/src/utils/cache/memory.ts @@ -6,83 +6,84 @@ export interface Cache { } export class Memory { - private cache: { [key in keyof T]?: Cache } = {} - private alive: number + private cache: { [key in keyof T]?: Cache } = {}; + + private alive: number; constructor(alive = 0) { - this.alive = alive * 1000 + this.alive = alive * 1000; } get getCache() { - return this.cache + return this.cache; } get(key: K) { - return this.cache[key] + return this.cache[key]; } set(key: K, value: V, expires?: number) { - let item = this.get(key) + let item = this.get(key); if (!expires || (expires as number) <= 0) { - expires = this.alive + expires = this.alive; } if (item) { if (item.timeoutId) { - clearTimeout(item.timeoutId) - item.timeoutId = undefined + clearTimeout(item.timeoutId); + item.timeoutId = undefined; } - item.value = value + item.value = value; } else { - item = { value, alive: expires } - this.cache[key] = item + item = { value, alive: expires }; + this.cache[key] = item; } if (!expires) { - return value + return value; } - const now = new Date().getTime() - item.time = now + this.alive + const now = new Date().getTime(); + item.time = now + this.alive; item.timeoutId = setTimeout( () => { - this.remove(key) + this.remove(key); }, - expires > now ? expires - now : expires - ) + expires > now ? expires - now : expires, + ); - return value + return value; } remove(key: K) { - const item = this.get(key) - Reflect.deleteProperty(this.cache, key) + const item = this.get(key); + Reflect.deleteProperty(this.cache, key); if (item) { - clearTimeout(item.timeoutId!) - return item.value + clearTimeout(item.timeoutId!); + return item.value; } } resetCache(cache: { [K in keyof T]: Cache }) { - Object.keys(cache).forEach(key => { - const k = key as any as keyof T - const item = cache[k] + Object.keys(cache).forEach((key) => { + const k = key as any as keyof T; + const item = cache[k]; if (item && item.time) { - const now = new Date().getTime() - const expire = item.time + const now = new Date().getTime(); + const expire = item.time; if (expire > now) { - this.set(k, item.value, expire) + this.set(k, item.value, expire); } } - }) + }); } clear() { - Object.keys(this.cache).forEach(key => { + Object.keys(this.cache).forEach((key) => { // @ts-ignore - const item = this.cache[key] - item.timeoutId && clearTimeout(item.timeoutId) - }) - this.cache = {} + const item = this.cache[key]; + item.timeoutId && clearTimeout(item.timeoutId); + }); + this.cache = {}; } } diff --git a/apps/admin/src/utils/cache/persistent.ts b/apps/admin/src/utils/cache/persistent.ts index 7ab77b4e..b1aea07f 100644 --- a/apps/admin/src/utils/cache/persistent.ts +++ b/apps/admin/src/utils/cache/persistent.ts @@ -1,18 +1,20 @@ -import type { RouteObject } from '@/router/types' +import { createLocalStorage, createSessionStorage } from '@/utils/cache'; -import { Memory } from './memory' -import { AppConfig } from '@/types/config' import { - TOKEN_KEY, - USER_INFO_KEY, APP_CONFIG_KEY, - APP_TAGS_KEY, APP_LOCAL_CACHE_KEY, - APP_SESSION_CACHE_KEY -} from '@/enums/cacheEnum' -import { createLocalStorage, createSessionStorage } from '@/utils/cache' -import { DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting' -import { UserInfo } from '@/types' + APP_SESSION_CACHE_KEY, + APP_TAGS_KEY, + TOKEN_KEY, + USER_INFO_KEY, +} from '@/enums/cacheEnum'; +import { DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting'; + +import { Memory } from './memory'; + +import type { RouteObject } from '@/router/types'; +import { UserInfo } from '@/types'; +import { AppConfig } from '@/types/config'; interface BasicStore { [TOKEN_KEY]: string | number | null | undefined @@ -21,93 +23,93 @@ interface BasicStore { [APP_TAGS_KEY]: RouteObject[] } -type LocalStore = BasicStore -type SessionStore = BasicStore +type LocalStore = BasicStore; +type SessionStore = BasicStore; -export type BasicKeys = keyof BasicStore -type LocalKeys = keyof LocalStore -type SessionKeys = keyof SessionStore +export type BasicKeys = keyof BasicStore; +type LocalKeys = keyof LocalStore; +type SessionKeys = keyof SessionStore; -const ls = createLocalStorage() -const ss = createSessionStorage() +const ls = createLocalStorage(); +const ss = createSessionStorage(); -const localMemory = new Memory(DEFAULT_CACHE_TIME) -const sessionMemory = new Memory(DEFAULT_CACHE_TIME) +const localMemory = new Memory(DEFAULT_CACHE_TIME); +const sessionMemory = new Memory(DEFAULT_CACHE_TIME); function initPersistentMemory() { - const localCache = ls.get(APP_LOCAL_CACHE_KEY) - const sessionCache = ss.get(APP_SESSION_CACHE_KEY) - localCache && localMemory.resetCache(localCache) - sessionCache && sessionMemory.resetCache(sessionCache) + const localCache = ls.get(APP_LOCAL_CACHE_KEY); + const sessionCache = ss.get(APP_SESSION_CACHE_KEY); + localCache && localMemory.resetCache(localCache); + sessionCache && sessionMemory.resetCache(sessionCache); } export class Persistent { static getLocal(key: LocalKeys) { - return localMemory.get(key)?.value as Nullable + return localMemory.get(key)?.value as Nullable; } static setLocal(key: LocalKeys, value: LocalStore[LocalKeys], immediate = false): void { - localMemory.set(key, value) - immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache) + localMemory.set(key, value); + immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache); } static removeLocal(key: LocalKeys, immediate = false): void { - localMemory.remove(key) - immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache) + localMemory.remove(key); + immediate && ls.set(APP_LOCAL_CACHE_KEY, localMemory.getCache); } static clearLocal(immediate = false): void { - localMemory.clear() - immediate && ls.clear() + localMemory.clear(); + immediate && ls.clear(); } static getSession(key: SessionKeys) { - return sessionMemory.get(key)?.value as Nullable + return sessionMemory.get(key)?.value as Nullable; } static setSession(key: SessionKeys, value: SessionStore[SessionKeys], immediate = false): void { - sessionMemory.set(key, value) - immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache) + sessionMemory.set(key, value); + immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache); } static removeSession(key: SessionKeys, immediate = false): void { - sessionMemory.remove(key) - immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache) + sessionMemory.remove(key); + immediate && ss.set(APP_SESSION_CACHE_KEY, sessionMemory.getCache); } static clearSession(immediate = false): void { - sessionMemory.clear() - immediate && ss.clear() + sessionMemory.clear(); + immediate && ss.clear(); } static clearAll(immediate = false) { - sessionMemory.clear() - localMemory.clear() + sessionMemory.clear(); + localMemory.clear(); if (immediate) { - ls.clear() - ss.clear() + ls.clear(); + ss.clear(); } } } function storageChange(e: any) { - const { key, newValue, oldValue } = e + const { key, newValue, oldValue } = e; if (!key) { - Persistent.clearAll() - return + Persistent.clearAll(); + return; } if (!!newValue && !!oldValue) { if (APP_LOCAL_CACHE_KEY === key) { - Persistent.clearLocal() + Persistent.clearLocal(); } if (APP_SESSION_CACHE_KEY === key) { - Persistent.clearSession() + Persistent.clearSession(); } } } -window.addEventListener('storage', storageChange) +window.addEventListener('storage', storageChange); -initPersistentMemory() +initPersistentMemory(); diff --git a/apps/admin/src/utils/cache/storageCache.ts b/apps/admin/src/utils/cache/storageCache.ts index d07629fa..cee0d3ab 100644 --- a/apps/admin/src/utils/cache/storageCache.ts +++ b/apps/admin/src/utils/cache/storageCache.ts @@ -1,7 +1,9 @@ -import type { EncryptParams } from '../cipher' -import { cacheCipher } from '@/settings/encryptionSetting' -import { AesEncrypt } from '../cipher' -import { isNullOrUnDef } from '../is' +import { cacheCipher } from '@/settings/encryptionSetting'; + +import { AesEncrypt } from '../cipher'; +import { isNullOrUnDef } from '../is'; + +import type { EncryptParams } from '../cipher'; export interface CreateStorageParams extends EncryptParams { prefixKey: string @@ -16,13 +18,13 @@ export const createStorage = ({ hasEncrypt = true, key = cacheCipher.key, iv = cacheCipher.iv, - timeout = null + timeout = null, }: Partial = {}) => { - if (hasEncrypt && [key.length, iv.length].some(item => item !== 16)) { - throw new Error('When hasEncrypt is true, the key or iv must be 16 bits!') + if (hasEncrypt && [key.length, iv.length].some((item) => item !== 16)) { + throw new Error('When hasEncrypt is true, the key or iv must be 16 bits!'); } - const encrypt = new AesEncrypt({ key, iv }) + const encrypt = new AesEncrypt({ key, iv }); /** * Cache class @@ -31,20 +33,23 @@ export const createStorage = ({ * @example */ const WebStorage = class WebStorage { - private storage: Storage - private prefixKey?: string - private encrypt: AesEncrypt - private hasEncrypt: boolean + private storage: Storage; + + private prefixKey?: string; + + private encrypt: AesEncrypt; + + private hasEncrypt: boolean; constructor() { - this.storage = storage - this.prefixKey = prefixKey - this.encrypt = encrypt - this.hasEncrypt = hasEncrypt + this.storage = storage; + this.prefixKey = prefixKey; + this.encrypt = encrypt; + this.hasEncrypt = hasEncrypt; } private getKey(key: string) { - return `${this.prefixKey}${key}`.toUpperCase() + return `${this.prefixKey}${key}`.toUpperCase(); } /** @@ -54,16 +59,16 @@ export const createStorage = ({ * @param {*} expire Expiration time in seconds * @memberof Cache */ - set(key: string, value: any, expire: number | null = timeout) { + set(key: string, value: any, expire: number | null = timeout) { const stringData = JSON.stringify({ value, time: Date.now(), - expire: !isNullOrUnDef(expire) ? new Date().getTime() + expire * 1000 : null - }) + expire: !isNullOrUnDef(expire) ? new Date().getTime() + expire * 1000 : null, + }); const stringifyValue = this.hasEncrypt ? this.encrypt.encryptByAES(stringData) - : stringData - this.storage.setItem(this.getKey(key), stringifyValue) + : stringData; + this.storage.setItem(this.getKey(key), stringifyValue); } /** @@ -72,39 +77,39 @@ export const createStorage = ({ * @param {*} def * @memberof Cache */ - get(key: string, def: any = null): any { - const val = this.storage.getItem(this.getKey(key)) - if (!val) return def + get(key: string, def: any = null): any { + const val = this.storage.getItem(this.getKey(key)); + if (!val) return def; try { - const decVal = this.hasEncrypt ? this.encrypt.decryptByAES(val) : val - const data = JSON.parse(decVal) - const { value, expire } = data + const decVal = this.hasEncrypt ? this.encrypt.decryptByAES(val) : val; + const data = JSON.parse(decVal); + const { value, expire } = data; if (isNullOrUnDef(expire) || expire >= new Date().getTime()) { - return value + return value; } - this.remove(key) + this.remove(key); } catch (e) { - return def + return def; } } - /** + /** * Delete cache based on key * @param {string} key * @memberof Cache */ remove(key: string) { - this.storage.removeItem(this.getKey(key)) + this.storage.removeItem(this.getKey(key)); } /** * Delete all caches of this instance */ clear(): void { - this.storage.clear() + this.storage.clear(); } - } - - return new WebStorage() -} \ No newline at end of file + }; + + return new WebStorage(); +}; diff --git a/apps/admin/src/utils/cipher.ts b/apps/admin/src/utils/cipher.ts index ae3c49cd..145ddaf5 100644 --- a/apps/admin/src/utils/cipher.ts +++ b/apps/admin/src/utils/cipher.ts @@ -1,8 +1,7 @@ -import { encrypt, decrypt } from 'crypto-js/aes' -import { parse } from 'crypto-js/enc-utf8' -import UTF8 from 'crypto-js/enc-utf8' -import PKCS7 from 'crypto-js/pad-pkcs7' -import ECB from 'crypto-js/mode-ecb' +import { decrypt, encrypt } from 'crypto-js/aes'; +import UTF8, { parse } from 'crypto-js/enc-utf8'; +import ECB from 'crypto-js/mode-ecb'; +import PKCS7 from 'crypto-js/pad-pkcs7'; export interface EncryptParams { key: string @@ -10,32 +9,33 @@ export interface EncryptParams { } export class AesEncrypt { - private key - private iv - - constructor(opt: Partial = {}) { - const { key, iv } = opt - if (key) { - this.key = parse(key) - } - if (iv) { - this.iv = parse(iv) - } - } - - get getOptions() { - return { - mode: ECB, - padding: PKCS7, - iv: this.iv - }; - } - - encryptByAES(cipherText: string) { - return encrypt(cipherText, this.key!, this.getOptions).toString() + private key; + + private iv; + + constructor(opt: Partial = {}) { + const { key, iv } = opt; + if (key) { + this.key = parse(key); } - - decryptByAES(cipherText: string) { - return decrypt(cipherText, this.key!, this.getOptions).toString(UTF8) + if (iv) { + this.iv = parse(iv); } -} \ No newline at end of file + } + + get getOptions() { + return { + mode: ECB, + padding: PKCS7, + iv: this.iv, + }; + } + + encryptByAES(cipherText: string) { + return encrypt(cipherText, this.key!, this.getOptions).toString(); + } + + decryptByAES(cipherText: string) { + return decrypt(cipherText, this.key!, this.getOptions).toString(UTF8); + } +} diff --git a/apps/admin/src/utils/download.ts b/apps/admin/src/utils/download.ts index f65466a7..13446d10 100644 --- a/apps/admin/src/utils/download.ts +++ b/apps/admin/src/utils/download.ts @@ -1,5 +1,5 @@ -import { openWindow } from '.' -import { base64toBlob, urlToBase64 } from './image' +import { openWindow } from '.'; +import { base64toBlob, urlToBase64 } from './image'; /** * Download image by url @@ -12,11 +12,11 @@ export function downloadImgByUrl( url: string, filename: string, mineType?: string, - bom?: BlobPart + bom?: BlobPart, ) { urlToBase64(url).then((base64) => { - downloadImgByBase64(base64, filename, mineType, bom) - }) + downloadImgByBase64(base64, filename, mineType, bom); + }); } /** @@ -30,10 +30,10 @@ export function downloadImgByBase64( buf: string, filename: string, mineType?: string, - bom?: BlobPart + bom?: BlobPart, ) { - const base64Buf = base64toBlob(buf) - downloadByData(base64Buf, filename, mineType, bom) + const base64Buf = base64toBlob(buf); + downloadByData(base64Buf, filename, mineType, bom); } /** @@ -47,23 +47,23 @@ export function downloadByData( data: BlobPart, filename: string, mineType?: string, - bom?: BlobPart + bom?: BlobPart, ) { - const blobData = typeof bom !== 'undefined' ? [bom, data] : [data] - const blob = new Blob(blobData, { type: mineType || 'application/octet-stream' }) + const blobData = typeof bom !== 'undefined' ? [bom, data] : [data]; + const blob = new Blob(blobData, { type: mineType || 'application/octet-stream' }); - const blobURL = window.URL.createObjectURL(blob) - const tempLink = document.createElement('a') - tempLink.style.display = 'none' - tempLink.href = blobURL - tempLink.setAttribute('download', filename) + const blobURL = window.URL.createObjectURL(blob); + const tempLink = document.createElement('a'); + tempLink.style.display = 'none'; + tempLink.href = blobURL; + tempLink.setAttribute('download', filename); if (typeof tempLink.download === 'undefined') { - tempLink.setAttribute('target', '_blank') + tempLink.setAttribute('target', '_blank'); } - document.body.appendChild(tempLink) - tempLink.click() - document.body.removeChild(tempLink) - window.URL.revokeObjectURL(blobURL) + document.body.appendChild(tempLink); + tempLink.click(); + document.body.removeChild(tempLink); + window.URL.revokeObjectURL(blobURL); } /** @@ -73,39 +73,39 @@ export function downloadByData( export function downloadByUrl({ url, target = '_blank', - fileName + fileName, }: { url: string target?: TargetContext fileName?: string }): boolean { - const isChrome = window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1 - const isSafari = window.navigator.userAgent.toLowerCase().indexOf('safari') > -1 + const isChrome = window.navigator.userAgent.toLowerCase().indexOf('chrome') > -1; + const isSafari = window.navigator.userAgent.toLowerCase().indexOf('safari') > -1; if (/(iP)/g.test(window.navigator.userAgent)) { - console.error('Your browser does not support download!') - return false + console.error('Your browser does not support download!'); + return false; } if (isChrome || isSafari) { - const link = document.createElement('a') - link.href = url - link.target = target + const link = document.createElement('a'); + link.href = url; + link.target = target; if (link.download !== undefined) { - link.download = fileName || url.substring(url.lastIndexOf('/') + 1, url.length) + link.download = fileName || url.substring(url.lastIndexOf('/') + 1, url.length); } if (document.createEvent) { - const e = document.createEvent('MouseEvents') - e.initEvent('click', true, true) - link.dispatchEvent(e) - return true + const e = document.createEvent('MouseEvents'); + e.initEvent('click', true, true); + link.dispatchEvent(e); + return true; } } if (url.indexOf('?') === -1) { - url += '?download' + url += '?download'; } - openWindow(url, { target }) - return true -} \ No newline at end of file + openWindow(url, { target }); + return true; +} diff --git a/apps/admin/src/utils/echarts.ts b/apps/admin/src/utils/echarts.ts index d0564593..74ccbd60 100644 --- a/apps/admin/src/utils/echarts.ts +++ b/apps/admin/src/utils/echarts.ts @@ -1,31 +1,29 @@ -import * as echarts from 'echarts/core' -import { SVGRenderer } from 'echarts/renderers' - import { BarChart, LineChart, - PieChart, MapChart, PictorialBarChart, - RadarChart -} from 'echarts/charts' - + PieChart, + RadarChart, +} from 'echarts/charts'; import { - TitleComponent, - TooltipComponent, - GridComponent, - PolarComponent, AriaComponent, - ParallelComponent, + CalendarComponent, + DataZoomComponent, + GraphicComponent, + GridComponent, LegendComponent, + ParallelComponent, + PolarComponent, RadarComponent, + TimelineComponent, + TitleComponent, ToolboxComponent, - DataZoomComponent, + TooltipComponent, VisualMapComponent, - TimelineComponent, - CalendarComponent, - GraphicComponent -} from 'echarts/components' +} from 'echarts/components'; +import * as echarts from 'echarts/core'; +import { SVGRenderer } from 'echarts/renderers'; echarts.use([ LegendComponent, @@ -48,7 +46,7 @@ echarts.use([ VisualMapComponent, TimelineComponent, CalendarComponent, - GraphicComponent -]) + GraphicComponent, +]); -export default echarts \ No newline at end of file +export default echarts; diff --git a/apps/admin/src/utils/env.ts b/apps/admin/src/utils/env.ts index 7c91d053..770897e3 100644 --- a/apps/admin/src/utils/env.ts +++ b/apps/admin/src/utils/env.ts @@ -1,15 +1,14 @@ - // Get environment variables - export function getEnv(): string { - return import.meta.env.MODE - } - - // It is a development mode - export function isDevMode(): boolean { - return import.meta.env.DEV - } - - // It is a production mode - export function isProdMode(): boolean { - return import.meta.env.PROD - } - \ No newline at end of file +// Get environment variables +export function getEnv(): string { + return import.meta.env.MODE; +} + +// It is a development mode +export function isDevMode(): boolean { + return import.meta.env.DEV; +} + +// It is a production mode +export function isProdMode(): boolean { + return import.meta.env.PROD; +} diff --git a/apps/admin/src/utils/helper/menuHelper.ts b/apps/admin/src/utils/helper/menuHelper.ts index c8e9b07c..01f2abab 100644 --- a/apps/admin/src/utils/helper/menuHelper.ts +++ b/apps/admin/src/utils/helper/menuHelper.ts @@ -4,13 +4,13 @@ * @returns subMenu array */ export const getOpenKeys = (path: string) => { - let pathStr: string = '' - const openKeys: string[] = [] - path.split('/').forEach(key => { + let pathStr: string = ''; + const openKeys: string[] = []; + path.split('/').forEach((key) => { if (key) { - pathStr += '/' + key - openKeys.push(pathStr) + pathStr += `/${key}`; + openKeys.push(pathStr); } - }) - return openKeys.slice(0, -1) -} \ No newline at end of file + }); + return openKeys.slice(0, -1); +}; diff --git a/apps/admin/src/utils/helper/treeHelper.ts b/apps/admin/src/utils/helper/treeHelper.ts index b5ca16c2..69431702 100644 --- a/apps/admin/src/utils/helper/treeHelper.ts +++ b/apps/admin/src/utils/helper/treeHelper.ts @@ -7,132 +7,132 @@ interface TreeHelperConfig { const DEFAULT_CONFIG: TreeHelperConfig = { id: 'id', children: 'children', - pid: 'pid' -} + pid: 'pid', +}; -const getConfig = (config: Partial) => Object.assign({}, DEFAULT_CONFIG, config) +const getConfig = (config: Partial) => ({ ...DEFAULT_CONFIG, ...config }); // tree from list export function listToTree(list: any[], config: Partial = {}): T[] { - const conf = getConfig(config) as TreeHelperConfig - const nodeMap = new Map() - const result: T[] = [] - const { id, children, pid } = conf + const conf = getConfig(config) as TreeHelperConfig; + const nodeMap = new Map(); + const result: T[] = []; + const { id, children, pid } = conf; for (const node of list) { - node[children] = node[children] || [] - nodeMap.set(node[id], node) + node[children] = node[children] || []; + nodeMap.set(node[id], node); } for (const node of list) { - const parent = nodeMap.get(node[pid]) - ;(parent ? parent[children] : result).push(node) + const parent = nodeMap.get(node[pid]); + (parent ? parent[children] : result).push(node); } - return result + return result; } export function treeToList(tree: any, config: Partial = {}): T { - config = getConfig(config) - const { children } = config - const result: any = [...tree] + config = getConfig(config); + const { children } = config; + const result: any = [...tree]; for (let i = 0; i < result.length; i++) { - if (!result[i][children!]) continue - result.splice(i + 1, 0, ...result[i][children!]) + if (!result[i][children!]) continue; + result.splice(i + 1, 0, ...result[i][children!]); } - return result + return result; } export function findNode(tree: any, func: Fn, config: Partial = {}): T | null { - config = getConfig(config) - const { children } = config - const list = [...tree] + config = getConfig(config); + const { children } = config; + const list = [...tree]; for (const node of list) { - if (func(node)) return node - node[children!] && list.push(...node[children!]) + if (func(node)) return node; + node[children!] && list.push(...node[children!]); } - return null + return null; } export function findNodeAll(tree: any, func: Fn, config: Partial = {}): T[] { - config = getConfig(config) - const { children } = config - const list = [...tree] - const result: T[] = [] + config = getConfig(config); + const { children } = config; + const list = [...tree]; + const result: T[] = []; for (const node of list) { - func(node) && result.push(node) - node[children!] && list.push(...node[children!]) + func(node) && result.push(node); + node[children!] && list.push(...node[children!]); } - return result + return result; } export function findPath(tree: any, func: Fn, config: Partial = {}): T | T[] | null { - config = getConfig(config) - const path: T[] = [] - const list = [...tree] - const visitedSet = new Set() - const { children } = config + config = getConfig(config); + const path: T[] = []; + const list = [...tree]; + const visitedSet = new Set(); + const { children } = config; while (list.length) { - const node = list[0] + const node = list[0]; if (visitedSet.has(node)) { - path.pop() - list.shift() + path.pop(); + list.shift(); } else { - visitedSet.add(node) - node[children!] && list.unshift(...node[children!]) - path.push(node) + visitedSet.add(node); + node[children!] && list.unshift(...node[children!]); + path.push(node); if (func(node)) { - return path + return path; } } } - return null + return null; } export function findPathAll(tree: any, func: Fn, config: Partial = {}) { - config = getConfig(config) - const path: any[] = [] - const list = [...tree] - const result: any[] = [] - const visitedSet = new Set(), - { children } = config + config = getConfig(config); + const path: any[] = []; + const list = [...tree]; + const result: any[] = []; + const visitedSet = new Set(); + const { children } = config; while (list.length) { - const node = list[0] + const node = list[0]; if (visitedSet.has(node)) { - path.pop() - list.shift() + path.pop(); + list.shift(); } else { - visitedSet.add(node) - node[children!] && list.unshift(...node[children!]) - path.push(node) - func(node) && result.push([...path]) + visitedSet.add(node); + node[children!] && list.unshift(...node[children!]); + path.push(node); + func(node) && result.push([...path]); } } - return result + return result; } export function filter(tree: T[], func: (n: T) => boolean, config: Partial = {}): T[] { - config = getConfig(config) - const children = config.children as string + config = getConfig(config); + const children = config.children as string; function listFilter(list: T[]) { return list .map((node: any) => ({ ...node })) - .filter(node => { - node[children] = node[children] && listFilter(node[children]) - return func(node) || (node[children] && node[children].length) - }) + .filter((node) => { + node[children] = node[children] && listFilter(node[children]); + return func(node) || (node[children] && node[children].length); + }); } - return listFilter(tree) + return listFilter(tree); } export function forEach(tree: T[], func: (n: T) => any, config: Partial = {}): void { - config = getConfig(config) - const list: any[] = [...tree] - const { children } = config + config = getConfig(config); + const list: any[] = [...tree]; + const { children } = config; for (let i = 0; i < list.length; i++) { - //func 返回true就终止遍历,避免大量节点场景下无意义循环,引起浏览器卡顿 + // func 返回true就终止遍历,避免大量节点场景下无意义循环,引起浏览器卡顿 if (func(list[i])) { - return + return; } - children && list[i][children] && list.splice(i + 1, 0, ...list[i][children]) + children && list[i][children] && list.splice(i + 1, 0, ...list[i][children]); } } @@ -140,30 +140,27 @@ export function forEach(tree: T[], func: (n: T) => any, config: Partial * @description: Extract tree specified structure */ export function treeMap(treeData: T[], opt: { children?: string; conversion: Fn }): T[] { - return treeData.map(item => treeMapEach(item, opt)) + return treeData.map((item) => treeMapEach(item, opt)); } /** * @description: Extract tree specified structure */ export function treeMapEach(data: any, { children = 'children', conversion }: { children?: string; conversion: Fn }) { - const haveChildren = Array.isArray(data[children]) && data[children].length > 0 - const conversionData = conversion(data) || {} + const haveChildren = Array.isArray(data[children]) && data[children].length > 0; + const conversionData = conversion(data) || {}; if (haveChildren) { return { ...conversionData, - [children]: data[children].map((i: number) => - treeMapEach(i, { - children, - conversion - }) - ) - } - } else { - return { - ...conversionData - } + [children]: data[children].map((i: number) => treeMapEach(i, { + children, + conversion, + })), + }; } + return { + ...conversionData, + }; } /** @@ -173,10 +170,10 @@ export function treeMapEach(data: any, { children = 'children', conversion }: { * @param parentNode 父节点 */ export function eachTree(treeDatas: any[], callBack: Fn, parentNode = {}) { - treeDatas.forEach(element => { - const newNode = callBack(element, parentNode) || element + treeDatas.forEach((element) => { + const newNode = callBack(element, parentNode) || element; if (element.children) { - eachTree(element.children, callBack, newNode) + eachTree(element.children, callBack, newNode); } - }) + }); } diff --git a/apps/admin/src/utils/image.ts b/apps/admin/src/utils/image.ts index d23b8fe4..734d660d 100644 --- a/apps/admin/src/utils/image.ts +++ b/apps/admin/src/utils/image.ts @@ -4,16 +4,16 @@ * @returns {Blob} */ export function base64toBlob(base64Buf: string): Blob { - const arr = base64Buf.split(',') - const typeItem = arr[0] - const mime = typeItem.match(/:(.*?);/)![1] - const bstr = window.atob(arr[1]) - let n = bstr.length - const u8arr = new Uint8Array(n) + const arr = base64Buf.split(','); + const typeItem = arr[0]; + const mime = typeItem.match(/:(.*?);/)![1]; + const bstr = window.atob(arr[1]); + let n = bstr.length; + const u8arr = new Uint8Array(n); while (n--) { - u8arr[n] = bstr.charCodeAt(n) + u8arr[n] = bstr.charCodeAt(n); } - return new Blob([u8arr], { type: mime }) + return new Blob([u8arr], { type: mime }); } /** @@ -23,22 +23,22 @@ export function base64toBlob(base64Buf: string): Blob { */ export function urlToBase64(url: string, mineType?: string): Promise { return new Promise((resolve, reject) => { - let canvas = document.createElement('CANVAS') as Nullable - const ctx = canvas!.getContext('2d') + let canvas = document.createElement('CANVAS') as Nullable; + const ctx = canvas!.getContext('2d'); - const img = new Image() - img.crossOrigin = '' + const img = new Image(); + img.crossOrigin = ''; img.onload = function () { if (!canvas || !ctx) { - return reject() + return reject(); } - canvas.width = img.width - canvas.height = img.height - ctx.drawImage(img, 0, 0) - const dataURL = canvas.toDataURL(mineType || 'image/png') - canvas = null - resolve(dataURL) - } - img.src = url - }) -} \ No newline at end of file + canvas.width = img.width; + canvas.height = img.height; + ctx.drawImage(img, 0, 0); + const dataURL = canvas.toDataURL(mineType || 'image/png'); + canvas = null; + resolve(dataURL); + }; + img.src = url; + }); +} diff --git a/apps/admin/src/utils/index.ts b/apps/admin/src/utils/index.ts index 21a1c8ae..4e155fae 100644 --- a/apps/admin/src/utils/index.ts +++ b/apps/admin/src/utils/index.ts @@ -1,4 +1,4 @@ -import { isObject } from './is' +import { isObject } from './is'; export function openWindow( url: string, @@ -6,39 +6,39 @@ export function openWindow( target?: TargetContext | string noopener?: boolean noreferrer?: boolean - } + }, ) { - const { target = '__blank', noopener = true, noreferrer = true } = opt || {} - const feature: string[] = [] + const { target = '__blank', noopener = true, noreferrer = true } = opt || {}; + const feature: string[] = []; - noopener && feature.push('noopener=yes') - noreferrer && feature.push('noreferrer=yes') + noopener && feature.push('noopener=yes'); + noreferrer && feature.push('noreferrer=yes'); - window.open(url, target, feature.join(',')) + window.open(url, target, feature.join(',')); } export function promiseTimeout(ms: number, throwOnTimeout = false, reason = 'Timeout'): Promise { return new Promise((resolve, reject) => { - if (throwOnTimeout) setTimeout(() => reject(reason), ms) - else setTimeout(resolve, ms) - }) + if (throwOnTimeout) setTimeout(() => reject(reason), ms); + else setTimeout(resolve, ms); + }); } export const searchRoute: any = (path: string, routes: any = []) => { for (const item of routes) { - if (item.path === path || item.fullPath === path) return item + if (item.path === path || item.fullPath === path) return item; if (item.children) { - const result = searchRoute(path, item.children) - if (result) return result + const result = searchRoute(path, item.children); + if (result) return result; } } - return null -} + return null; +}; export function deepMerge(src: any = {}, target: any = {}): T { - let key: string + let key: string; for (key in target) { - src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key]) + src[key] = isObject(src[key]) ? deepMerge(src[key], target[key]) : (src[key] = target[key]); } - return src + return src; } diff --git a/apps/admin/src/utils/is.ts b/apps/admin/src/utils/is.ts index 2ff445e7..baae8f19 100644 --- a/apps/admin/src/utils/is.ts +++ b/apps/admin/src/utils/is.ts @@ -1,49 +1,48 @@ export function is(val: unknown, type: string) { - return Object.prototype.toString.call(val) === `[object ${type}]` + return Object.prototype.toString.call(val) === `[object ${type}]`; } export function isFunction(val: unknown): val is Function { - return typeof val === 'function' + return typeof val === 'function'; } export function isArray(val: any): val is Array { - return val && Array.isArray(val) + return val && Array.isArray(val); } export function isObject(val: any): val is Record { - return val !== null && is(val, 'Object') + return val !== null && is(val, 'Object'); } export function isNumber(val: unknown): val is number { - return is(val, 'Number') + return is(val, 'Number'); } export function isString(val: unknown): val is string { - return is(val, 'String') + return is(val, 'String'); } export function isDef(val?: T): val is T { - return typeof val !== 'undefined' + return typeof val !== 'undefined'; } export function isUnDef(val?: T): val is T { - return !isDef(val) + return !isDef(val); } export function isNull(val: unknown): val is null { - return val === null + return val === null; } export function isNullOrUnDef(val: unknown): val is null | undefined { - return isUnDef(val) || isNull(val) + return isUnDef(val) || isNull(val); } export function isUrl(path: string): boolean { - const reg = - /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/; - return reg.test(path) + const reg = /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(?::\d+)?|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/; + return reg.test(path); } -export const isServer = typeof window === 'undefined' +export const isServer = typeof window === 'undefined'; -export const isClient = !isServer \ No newline at end of file +export const isClient = !isServer; diff --git a/apps/admin/src/views/blank.tsx b/apps/admin/src/views/blank.tsx index 42bddc96..47464549 100644 --- a/apps/admin/src/views/blank.tsx +++ b/apps/admin/src/views/blank.tsx @@ -1,11 +1,9 @@ -import { FC } from 'react' +import { FC } from 'react'; -const BlankPage: FC = () => { - return ( +const BlankPage: FC = () => (
空页面
- ) -} +); -export default BlankPage +export default BlankPage; diff --git a/apps/admin/src/views/compo/count-up.tsx b/apps/admin/src/views/compo/count-up.tsx index 850f7d92..d1d2b385 100644 --- a/apps/admin/src/views/compo/count-up.tsx +++ b/apps/admin/src/views/compo/count-up.tsx @@ -1,11 +1,15 @@ -import React, { useRef, useState, useEffect } from 'react' -import { Row, Col, Card, Button, Form, Input, InputNumber, Space } from 'antd' -import { PageWrapper } from '@/components/Page' -import CountUp, { useCountUp } from 'react-countup' -import { COUNTUP_PLUGIN } from '@/settings/websiteSetting' +import { + Button, Card, Col, Form, Input, InputNumber, Row, Space, +} from 'antd'; +import React, { useEffect, useRef, useState } from 'react'; +import CountUp, { useCountUp } from 'react-countup'; + +import { PageWrapper } from '@/components/Page'; + +import { COUNTUP_PLUGIN } from '@/settings/websiteSetting'; const CountUpPage: React.FC = () => { - const [form] = Form.useForm() + const [form] = Form.useForm(); const [formData, setFromData] = useState({ start: 0, end: 2020, @@ -13,28 +17,28 @@ const CountUpPage: React.FC = () => { decimals: 0, separator: ',', prefix: '¥ ', - suffix: ' rmb' - }) + suffix: ' rmb', + }); - const countUpRef = useRef(null) + const countUpRef = useRef(null); const { start, reset } = useCountUp({ ref: countUpRef, - ...formData - }) + ...formData, + }); useEffect(() => { - reset() - }, []) + reset(); + }, []); const onValuesChange = (values: any) => { - setFromData({...formData, ...values}) - } - + setFromData({ ...formData, ...values }); + }; + return (
- + { style={{ height: '100%', fontSize: '40px', - color: '#e65d6e' + color: '#e65d6e', }} className='flex-center' /> - -
+ +
- + - + - + @@ -114,7 +118,7 @@ const CountUpPage: React.FC = () => {
- + { style={{ height: '100%', fontSize: '40px', - color: '#30b08f' + color: '#30b08f', }} className='flex-center' /> @@ -130,7 +134,7 @@ const CountUpPage: React.FC = () => { - ) -} + ); +}; -export default CountUpPage \ No newline at end of file +export default CountUpPage; diff --git a/apps/admin/src/views/compo/drag/drag-list.tsx b/apps/admin/src/views/compo/drag/drag-list.tsx index ae45fa1c..63c8df7e 100644 --- a/apps/admin/src/views/compo/drag/drag-list.tsx +++ b/apps/admin/src/views/compo/drag/drag-list.tsx @@ -1,9 +1,11 @@ -import React, { useState } from 'react' -import { Row, Col, Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { cloneDeep } from 'lodash-es' -import { SORTABLE_PLUGIN } from '@/settings/websiteSetting' -import { ReactSortable } from 'react-sortablejs' +import { Card, Col, Row } from 'antd'; +import { cloneDeep } from 'lodash-es'; +import React, { useState } from 'react'; +import { ReactSortable } from 'react-sortablejs'; + +import { PageWrapper } from '@/components/Page'; + +import { SORTABLE_PLUGIN } from '@/settings/websiteSetting'; interface ItemState { id: number @@ -16,45 +18,45 @@ const DragList: React.FC = () => { { name: 'VueJS', id: 2 }, { name: 'ReactJS', id: 3 }, { name: 'AngularJS', id: 4 }, - { name: 'Webpack', id: 5 } - ]) + { name: 'Webpack', id: 5 }, + ]); const [listTwo, setListTwo] = useState([ { name: 'NodeJS', id: 6 }, - { name: 'TypeScript', id: 7 } - ]) + { name: 'TypeScript', id: 7 }, + ]); const [dragLogs, setDragLogs] = useState([ '列表1 => 列表2, 6 => 1', - '列表1 => 列表2, 6 => 2' - ]) + '列表1 => 列表2, 6 => 2', + ]); const handleDrop = (event: any) => { const listMap = new Map([ ['list1', '列表1'], - ['list2', '列表2'] - ]) - const fromClsName = event.from.className - const toClsName = event.to.className - const from = listMap.get(fromClsName) - const to = listMap.get(toClsName) - const newDrapLogs = cloneDeep(dragLogs) - newDrapLogs.push(`${from} => ${to}, ${event.oldIndex + 1} => ${event.newIndex + 1}`) - setDragLogs(newDrapLogs) - } + ['list2', '列表2'], + ]); + const fromClsName = event.from.className; + const toClsName = event.to.className; + const from = listMap.get(fromClsName); + const to = listMap.get(toClsName); + const newDrapLogs = cloneDeep(dragLogs); + newDrapLogs.push(`${from} => ${to}, ${event.oldIndex + 1} => ${event.newIndex + 1}`); + setDragLogs(newDrapLogs); + }; return ( - - + + { - listOne.map(item => ( + listOne.map((item) => ( {item.name} @@ -64,15 +66,15 @@ const DragList: React.FC = () => { - - + + { - listTwo.map(item => ( + listTwo.map((item) => ( {item.name} @@ -82,21 +84,19 @@ const DragList: React.FC = () => { - - { dragLogs.map(item => { - return

{item}

- }) } + + { dragLogs.map((item) =>

{item}

) }
- +
               {JSON.stringify(listOne.map(({ name, id }) => ({ name, id })), null, 2)}
             
- +
               {JSON.stringify(listTwo.map(({ name, id }) => ({ name, id })), null, 2)}
             
@@ -104,7 +104,7 @@ const DragList: React.FC = () => { - ) -} + ); +}; -export default DragList \ No newline at end of file +export default DragList; diff --git a/apps/admin/src/views/compo/drag/drag-resize.tsx b/apps/admin/src/views/compo/drag/drag-resize.tsx index 1a0b5018..73bc9ecd 100644 --- a/apps/admin/src/views/compo/drag/drag-resize.tsx +++ b/apps/admin/src/views/compo/drag/drag-resize.tsx @@ -1,8 +1,10 @@ -import React, { useRef, useState } from 'react' -import { Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { REACT_RND_PLUGIN } from '@/settings/websiteSetting' -import { Rnd } from 'react-rnd' +import { Card } from 'antd'; +import React, { useRef, useState } from 'react'; +import { Rnd } from 'react-rnd'; + +import { PageWrapper } from '@/components/Page'; + +import { REACT_RND_PLUGIN } from '@/settings/websiteSetting'; interface configState { x: number @@ -12,47 +14,47 @@ interface configState { } const DragResize: React.FC = () => { - const rectWrapper = useRef(null) + const rectWrapper = useRef(null); const [config, setConfig] = useState({ x: 650, y: 130, width: 180, - height: 180 - }) + height: 180, + }); const handleDragStop = (_: any, d: any) => { setConfig({ ...config, x: d.x, - y: d.y - }) - } + y: d.y, + }); + }; const handleResize = (_e: any, _direction: any, ref: any, _delta: any, position: any) => { setConfig({ ...config, width: ref.offsetWidth, height: ref.offsetHeight, - ...position - }) - } - + ...position, + }); + }; + return ( - -
+ +
-
-
+
+

x: {config.x}

y: {config.y}

width: {config.width}

@@ -63,7 +65,7 @@ const DragResize: React.FC = () => {
- ) -} + ); +}; -export default DragResize \ No newline at end of file +export default DragResize; diff --git a/apps/admin/src/views/compo/image-upload.tsx b/apps/admin/src/views/compo/image-upload.tsx index 81d98eac..86f1b97e 100644 --- a/apps/admin/src/views/compo/image-upload.tsx +++ b/apps/admin/src/views/compo/image-upload.tsx @@ -1,85 +1,88 @@ -import type { UploadFile } from 'antd/es/upload/interface' -import type { RcFile, UploadProps } from 'antd/es/upload' -import React, { useState } from 'react' -import { Row, Col, Card, Button, Upload, Modal } from 'antd' -import { CloudUploadOutlined, PlusOutlined } from '@ant-design/icons' -import { PageWrapper } from '@/components/Page' -import { UPLOAD_COMPO } from '@/settings/websiteSetting' +import { CloudUploadOutlined, PlusOutlined } from '@ant-design/icons'; +import { + Button, Card, Col, Modal, Row, Upload, +} from 'antd'; +import React, { useState } from 'react'; + +import { PageWrapper } from '@/components/Page'; + +import { UPLOAD_COMPO } from '@/settings/websiteSetting'; + +import type { RcFile, UploadProps } from 'antd/es/upload'; +import type { UploadFile } from 'antd/es/upload/interface'; const ImageUpload: React.FC = () => { - const { Dragger } = Upload + const { Dragger } = Upload; - const [previewVisible, setPreviewVisible] = useState(false) - const [previewImage, setPreviewImage] = useState('') - const [previewTitle, setPreviewTitle] = useState('') + const [previewVisible, setPreviewVisible] = useState(false); + const [previewImage, setPreviewImage] = useState(''); + const [previewTitle, setPreviewTitle] = useState(''); const dragImgs: UploadFile[] = [ { uid: '-1', name: 'beautiful-girl.jpg' }, - { uid: '-2', name: 'beautiful-sunshine.jpg' } - ] + { uid: '-2', name: 'beautiful-sunshine.jpg' }, + ]; const [listImgs, setListImgs] = useState([ { uid: '-1', name: 'beautiful-girl.jpg', status: 'done', url: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img04.jpg', - thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img04.jpg' + thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img04.jpg', }, { uid: '-2', name: 'beautiful-sunshine.jpg', status: 'done', url: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg', - thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg' - } - ]) + thumbUrl: 'https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/img03.jpg', + }, + ]); const handlePreview = async (file: UploadFile) => { if (!file.url && !file.preview) { - file.preview = (await getBase64(file.originFileObj as RcFile)) as string + file.preview = (await getBase64(file.originFileObj as RcFile)) as string; } - setPreviewImage(file.url || (file.preview as string)) - setPreviewVisible(true) - setPreviewTitle(file.name || file.url!.substring(file.url!.lastIndexOf('/') + 1)) - } + setPreviewImage(file.url || (file.preview as string)); + setPreviewVisible(true); + setPreviewTitle(file.name || file.url!.substring(file.url!.lastIndexOf('/') + 1)); + }; - const getBase64 = (file: RcFile): Promise => { - return new Promise((resolve, reject) => { - const reader = new FileReader() - reader.readAsDataURL(file) - reader.onload = () => resolve(reader.result as string) - reader.onerror = error => reject(error) - }) - } + const getBase64 = (file: RcFile): Promise => new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.readAsDataURL(file); + reader.onload = () => resolve(reader.result as string); + reader.onerror = (error) => reject(error); + }); - const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => setListImgs(newFileList) + const handleChange: UploadProps['onChange'] = ({ fileList: newFileList }) => setListImgs(newFileList); const handleCancle = () => { - setPreviewVisible(false) - setPreviewTitle('') - } + setPreviewVisible(false); + setPreviewTitle(''); + }; return (
- + -

+

-

将图片拖到此处, 或点击上传

+

将图片拖到此处, 或点击上传

只能上传jpg、jpeg、gif、png、bmp文件, 且不超过500kb

- + { - + { >
-
点击上传
+
点击上传
@@ -118,12 +121,12 @@ const ImageUpload: React.FC = () => { footer={null} onCancel={handleCancle} > - + - ) -} + ); +}; -export default ImageUpload \ No newline at end of file +export default ImageUpload; diff --git a/apps/admin/src/views/compo/transfer/data.ts b/apps/admin/src/views/compo/transfer/data.ts index 2d529af7..ff692c12 100644 --- a/apps/admin/src/views/compo/transfer/data.ts +++ b/apps/admin/src/views/compo/transfer/data.ts @@ -1,4 +1,4 @@ -import type { TransferItem, TransferProps } from 'antd/es/transfer' +import type { TransferItem, TransferProps } from 'antd/es/transfer'; interface DataState { key: string @@ -7,12 +7,12 @@ interface DataState { disabled?: boolean } -const mockData: Record[] = [] +const mockData: Record[] = []; for (let i = 1; i < 10; i++) { mockData.push({ key: i.toString(), - title: `备选项 ${i}` - }) + title: `备选项 ${i}`, + }); } const treeData: DataState[] = [ @@ -23,7 +23,7 @@ const treeData: DataState[] = [ children: [ { key: '2-1', title: '备选项 2-1' }, { key: '2-2', title: '备选项 2-2' }, - { key: '2-3', title: '备选项 2-3' } + { key: '2-3', title: '备选项 2-3' }, ], }, { key: '3', title: '备选项 3-1' }, @@ -36,21 +36,21 @@ const treeData: DataState[] = [ key: '4-2', title: '备选项 4-2', children: [ - { key: '4-2-1', title: '备选项 4-2-1' } - ] + { key: '4-2-1', title: '备选项 4-2-1' }, + ], }, - { key: '4-3', title: '备选项 4-3' } - ] - } -] + { key: '4-3', title: '备选项 4-3' }, + ], + }, +]; -const transferDataSource: DataState[] = [] +const transferDataSource: DataState[] = []; function flatten(list: DataState[] = []) { - list.forEach(item => { - transferDataSource?.push(item) - flatten(item.children) - }) + list.forEach((item) => { + transferDataSource?.push(item); + flatten(item.children); + }); } -flatten(JSON.parse(JSON.stringify(treeData))) +flatten(JSON.parse(JSON.stringify(treeData))); -export { mockData, treeData, transferDataSource } \ No newline at end of file +export { mockData, transferDataSource, treeData }; diff --git a/apps/admin/src/views/compo/transfer/index.tsx b/apps/admin/src/views/compo/transfer/index.tsx index 887903c9..d9b3be19 100644 --- a/apps/admin/src/views/compo/transfer/index.tsx +++ b/apps/admin/src/views/compo/transfer/index.tsx @@ -1,91 +1,93 @@ -import type { DataNode } from 'antd/es/tree' -import React, { useState } from 'react' -import { Row, Col, Card, Transfer, Table, Tree } from 'antd' -import { PageWrapper } from '@/components/Page' -import { TRANSFER_COMPO } from '@/settings/websiteSetting' -import { mockData, treeData, transferDataSource } from './data' +import { + Card, Col, Row, Table, Transfer, Tree, +} from 'antd'; +import React, { useState } from 'react'; + +import { PageWrapper } from '@/components/Page'; + +import { TRANSFER_COMPO } from '@/settings/websiteSetting'; + +import { mockData, transferDataSource, treeData } from './data'; + +import type { DataNode } from 'antd/es/tree'; const TransferPage: React.FC = () => { - const [targetKeys, setTargetKeys] = useState(['1', '5']) - const [selectedKeys, setSelectedKeys] = useState(['2', '6']) - const [treeTargetKeys, setTreeTargetKeys] = useState([]) + const [targetKeys, setTargetKeys] = useState(['1', '5']); + const [selectedKeys, setSelectedKeys] = useState(['2', '6']); + const [treeTargetKeys, setTreeTargetKeys] = useState([]); const onChange = (nextTargetKeys: string[]) => { - setTargetKeys(nextTargetKeys) - } + setTargetKeys(nextTargetKeys); + }; const onSelectChange = (sourceSelectedKeys: string[], targetSelectedKeys: string[]) => { - setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]) - } + setSelectedKeys([...sourceSelectedKeys, ...targetSelectedKeys]); + }; - const isChecked = (selectedKeys: (string | number)[], eventKey: string | number) => - selectedKeys.includes(eventKey) + const isChecked = (selectedKeys: (string | number)[], eventKey: string | number) => selectedKeys.includes(eventKey); - const generateTree = (treeNodes: DataNode[] = [], checkedKeys: string[] = []): DataNode[] => - treeNodes.map(({ children, ...props }) => ({ - ...props, - disabled: checkedKeys.includes(props.key as string), - children: generateTree(children, checkedKeys) - })) + const generateTree = (treeNodes: DataNode[] = [], checkedKeys: string[] = []): DataNode[] => treeNodes.map(({ children, ...props }) => ({ + ...props, + disabled: checkedKeys.includes(props.key as string), + children: generateTree(children, checkedKeys), + })); const handleChange = (nextTargetKeys: string[]) => { - setTreeTargetKeys(nextTargetKeys) - } + setTreeTargetKeys(nextTargetKeys); + }; const getRowSelection = ({ selectedKeys, onItemSelectAll, onItemSelect, - }: Record) => { - return { - onSelectAll(selected: boolean, selectedRows: Record[]) { - const treeSelectedKeys = selectedRows - .filter(item => !item.disabled) - .map(({ key }) => key) - onItemSelectAll(treeSelectedKeys, selected) - }, - onSelect({ key }: Record, selected: boolean) { - onItemSelect(key, selected) - }, - selectedRowKeys: selectedKeys - } - } + }: Record) => ({ + onSelectAll(selected: boolean, selectedRows: Record[]) { + const treeSelectedKeys = selectedRows + .filter((item) => !item.disabled) + .map(({ key }) => key); + onItemSelectAll(treeSelectedKeys, selected); + }, + onSelect({ key }: Record, selected: boolean) { + onItemSelect(key, selected); + }, + selectedRowKeys: selectedKeys, + }); return (
- + item.title} - listStyle={{width: '230px', height: '360px'}} - locale={{itemsUnit: '项 '}} + render={(item) => item.title} + listStyle={{ width: '230px', height: '360px' }} + locale={{ itemsUnit: '项 ' }} onChange={onChange} onSelectChange={onSelectChange} /> - + item.title} + render={(item) => item.title} showSelectAll={false} - listStyle={{width: '230px', height: '360px'}} + listStyle={{ width: '230px', height: '360px' }} onChange={handleChange} > { ({ direction, selectedKeys, - onItemSelect + onItemSelect, }) => { if (direction === 'left') { - const treeCheckedKeys = [...selectedKeys, ...treeTargetKeys] + const treeCheckedKeys = [...selectedKeys, ...treeTargetKeys]; return ( { checkedKeys={treeCheckedKeys} treeData={generateTree(treeData, treeTargetKeys)} onCheck={(_, { node: { key } }) => { - onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)) + onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)); }} onSelect={(_, { node: { key } }) => { - onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)) + onItemSelect(key as string, !isChecked(treeCheckedKeys, key as string)); }} /> - ) + ); } } } @@ -109,12 +111,12 @@ const TransferPage: React.FC = () => { - + { @@ -122,15 +124,15 @@ const TransferPage: React.FC = () => { filteredItems, selectedKeys, onItemSelectAll, - onItemSelect + onItemSelect, }) => (
({onClick: () => {onItemSelect(key, !selectedKeys.includes(key))}})} + onRow={({ key }) => ({ onClick: () => { onItemSelect(key, !selectedKeys.includes(key)); } })} /> ) } @@ -139,7 +141,7 @@ const TransferPage: React.FC = () => { - ) -} + ); +}; -export default TransferPage \ No newline at end of file +export default TransferPage; diff --git a/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx b/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx index d39cb281..4d81f090 100644 --- a/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx +++ b/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx @@ -1,15 +1,14 @@ -import { FC } from 'react' -import { Form } from 'antd' -import { InfoState } from '../types' +import { Form } from 'antd'; +import { FC } from 'react'; + +import { InfoState } from '../types'; interface PropState { info: InfoState } -const CodeInfo: FC = ({ info }) => { - - return ( -
+const CodeInfo: FC = ({ info }) => ( +
{info.length} @@ -25,7 +24,6 @@ const CodeInfo: FC = ({ info }) => {
- ) -} +); -export default CodeInfo \ No newline at end of file +export default CodeInfo; diff --git a/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx b/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx index 89002205..504c40f6 100644 --- a/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx +++ b/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx @@ -1,6 +1,7 @@ -import { FC } from 'react' -import { Form, Select, Checkbox } from 'antd' -import { ConfigState } from '../types' +import { Checkbox, Form, Select } from 'antd'; +import { FC } from 'react'; + +import { ConfigState } from '../types'; interface PropState { config: ConfigState @@ -8,22 +9,22 @@ interface PropState { } const CodeToolbar: FC = ({ config, valueChange }) => { - const [form] = Form.useForm() + const [form] = Form.useForm(); const onValuesChange = (values: any) => { - valueChange(values) - } + valueChange(values); + }; return (
= ({ config, valueChange }) => { options={[ { label: 'html', value: 'html' }, { label: 'javascript', value: 'javascript' }, - { label: 'typescript', value: 'typescript' } + { label: 'typescript', value: 'typescript' }, ]} - style={{width: '100px'}} + style={{ width: '100px' }} /> @@ -51,14 +52,14 @@ const CodeToolbar: FC = ({ config, valueChange }) => { options={[ { label: 'auto', value: 'auto' }, { label: '350px', value: '350px' }, - { label: '500px', value: '500px' } + { label: '500px', value: '500px' }, ]} - style={{width: '100px'}} + style={{ width: '100px' }} />
- ) -} + ); +}; -export default CodeToolbar \ No newline at end of file +export default CodeToolbar; diff --git a/apps/admin/src/views/editor/code-mirror/index.tsx b/apps/admin/src/views/editor/code-mirror/index.tsx index a134c1e5..6ab94bc4 100644 --- a/apps/admin/src/views/editor/code-mirror/index.tsx +++ b/apps/admin/src/views/editor/code-mirror/index.tsx @@ -1,45 +1,48 @@ -import { FC, useState } from 'react' -import { useImmer } from 'use-immer' -import { Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { CODEMIRROR_PLUGIN } from '@/settings/websiteSetting' -import { ConfigState, InfoState } from './types' -import Codemirror from '@uiw/react-codemirror' -import Toolbar from './components/Toolbar' -import CodeInfo from './components/CodeInfo' +import Codemirror from '@uiw/react-codemirror'; +import { Card } from 'antd'; +import { FC, useState } from 'react'; +import { useImmer } from 'use-immer'; + +import { PageWrapper } from '@/components/Page'; + +import { CODEMIRROR_PLUGIN } from '@/settings/websiteSetting'; + +import CodeInfo from './components/CodeInfo'; +import Toolbar from './components/Toolbar'; +import { ConfigState, InfoState } from './types'; const CodeMirror: FC = () => { - const [codeVal, setCodeVal] = useState(`console.log('Hello, world!')`) + const [codeVal, setCodeVal] = useState('console.log(\'Hello, world!\')'); const [config, setConfig] = useState({ language: 'javascript', autoFocus: true, indentWithTab: true, - height: '350px' - }) + height: '350px', + }); const [codeInfo, setCodeInfo] = useImmer({ lines: null as null | number, cursor: null as null | number, selected: null as null | number, - length: null as null | number - }) + length: null as null | number, + }); const handleValueChange = (values: any) => { - setConfig({...config, ...values}) - } + setConfig({ ...config, ...values }); + }; const handleChange = (value: any) => { - setCodeVal(value) - } + setCodeVal(value); + }; const handleStateUpdate = (viewUpdate: any) => { - const ranges = viewUpdate.state.selection.ranges + const { ranges } = viewUpdate.state.selection; setCodeInfo({ lines: viewUpdate.state.doc.lines, cursor: ranges[0].anchor, selected: ranges.reduce((plus: any, range: any) => plus + range.to - range.from, 0), - length: viewUpdate.state.doc.length - }) - } + length: viewUpdate.state.doc.length, + }); + }; return ( @@ -52,7 +55,7 @@ const CodeMirror: FC = () => { indentWithTab={config.indentWithTab} style={{ borderLeft: 'solid 1px #ddd', - borderRight: 'solid 1px #ddd' + borderRight: 'solid 1px #ddd', }} extensions={[]} placeholder="Please enter the code..." @@ -62,7 +65,7 @@ const CodeMirror: FC = () => { - ) -} + ); +}; -export default CodeMirror \ No newline at end of file +export default CodeMirror; diff --git a/apps/admin/src/views/editor/code-mirror/types.ts b/apps/admin/src/views/editor/code-mirror/types.ts index c3ff233e..018179de 100644 --- a/apps/admin/src/views/editor/code-mirror/types.ts +++ b/apps/admin/src/views/editor/code-mirror/types.ts @@ -10,4 +10,4 @@ export interface InfoState { cursor: null | number selected: null | number length: null | number -} \ No newline at end of file +} diff --git a/apps/admin/src/views/editor/markdown.tsx b/apps/admin/src/views/editor/markdown.tsx index 77cdce0c..f77fd2a4 100644 --- a/apps/admin/src/views/editor/markdown.tsx +++ b/apps/admin/src/views/editor/markdown.tsx @@ -1,14 +1,16 @@ -import { FC, useState } from 'react' -import { PageWrapper } from '@/components/Page' -import { MARKDOWN_EDITOR_PLUGIN } from '@/settings/websiteSetting' -import MDEditor from '@uiw/react-md-editor' +import MDEditor from '@uiw/react-md-editor'; +import { FC, useState } from 'react'; + +import { PageWrapper } from '@/components/Page'; + +import { MARKDOWN_EDITOR_PLUGIN } from '@/settings/websiteSetting'; const MarkdownEditor: FC = () => { - const [value, setValue] = useState("**Hello world!!!**") + const [value, setValue] = useState('**Hello world!!!**'); const handleChange = (value: any) => { - setValue(value) - } + setValue(value); + }; return ( @@ -20,7 +22,7 @@ const MarkdownEditor: FC = () => { />
- ) -} + ); +}; -export default MarkdownEditor \ No newline at end of file +export default MarkdownEditor; diff --git a/apps/admin/src/views/editor/rich-text/components/Editor.tsx b/apps/admin/src/views/editor/rich-text/components/Editor.tsx index 360a99bf..bcd1da4a 100644 --- a/apps/admin/src/views/editor/rich-text/components/Editor.tsx +++ b/apps/admin/src/views/editor/rich-text/components/Editor.tsx @@ -1,5 +1,7 @@ -import React, { useRef, useEffect, useState } from 'react' -import {SlateDescendant, IEditorConfig, createEditor, IDomEditor, SlateEditor, SlateTransforms } from '@wangeditor/editor' +import { + createEditor, IDomEditor, IEditorConfig, SlateDescendant, SlateEditor, SlateTransforms, +} from '@wangeditor/editor'; +import React, { useEffect, useRef, useState } from 'react'; interface IProps { defaultContent?: SlateDescendant[] @@ -14,61 +16,62 @@ interface IProps { } function EditorComponent(props: Partial) { - const { defaultContent = [], onCreated, defaultHtml = '', value = '', onChange, defaultConfig = {}, mode = 'default', style = {}, className } = props - const ref = useRef(null) - const [editor, setEditor] = useState(null) - const [curValue, setCurValue] = useState('') + const { + defaultContent = [], onCreated, defaultHtml = '', value = '', onChange, defaultConfig = {}, mode = 'default', style = {}, className, + } = props; + const ref = useRef(null); + const [editor, setEditor] = useState(null); + const [curValue, setCurValue] = useState(''); const handleCreated = (editor: IDomEditor) => { // Component attr onCreated。(组件属性 onCreated) - if (onCreated) onCreated(editor) + if (onCreated) onCreated(editor); // Editor config onCreate。(编辑器 配置 onCreated) - const { onCreated: onCreatedFromConfig } = defaultConfig - if (onCreatedFromConfig) onCreatedFromConfig(editor) - } + const { onCreated: onCreatedFromConfig } = defaultConfig; + if (onCreatedFromConfig) onCreatedFromConfig(editor); + }; const handleChanged = (editor: IDomEditor) => { // Records the current html value。(记录当前 html 值) - setCurValue(editor.getHtml()) + setCurValue(editor.getHtml()); // Component attr onChange。(组件属性 onChange) - if (onChange) onChange(editor) + if (onChange) onChange(editor); // Editor config onChange。(编辑器 配置 onChange) - const { onChange: onChangeFromConfig } = defaultConfig - if (onChangeFromConfig) onChangeFromConfig(editor) - } + const { onChange: onChangeFromConfig } = defaultConfig; + if (onChangeFromConfig) onChangeFromConfig(editor); + }; const handleDestroyed = (editor: IDomEditor) => { - const { onDestroyed } = defaultConfig - setEditor(null) - if(onDestroyed) { - onDestroyed(editor) + const { onDestroyed } = defaultConfig; + setEditor(null); + if (onDestroyed) { + onDestroyed(editor); } - } + }; // Value changes, resets HTML。(value 变化,重置 HTML) useEffect(() => { - if (editor == null) return + if (editor == null) return; // Ignore if it is equal to the current html value。(如果和当前 html 值相等,则忽略) - if (value === curValue) return + if (value === curValue) return; // Reset HTML。(重新设置 HTML) try { - editor.setHtml(value) + editor.setHtml(value); } catch (error) { - console.error(error) + console.error(error); } - - }, [value]) + }, [value]); useEffect(() => { - if (ref.current == null) return - if (editor != null) return + if (ref.current == null) return; + if (editor != null) return; // Prevents duplicate rendering when the editor is already created。(防止重复渲染 当编辑器已经创建就不在创建了) - if (ref.current?.getAttribute('data-w-e-textarea')) return + if (ref.current?.getAttribute('data-w-e-textarea')) return; const newEditor = createEditor({ selector: ref.current, @@ -81,11 +84,11 @@ function EditorComponent(props: Partial) { content: defaultContent, html: defaultHtml || value, mode, - }) - setEditor(newEditor) - }, [editor]) + }); + setEditor(newEditor); + }, [editor]); - return
+ return
; } -export default EditorComponent \ No newline at end of file +export default EditorComponent; diff --git a/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx b/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx index f8955ad3..b0879ee4 100644 --- a/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx +++ b/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx @@ -1,5 +1,5 @@ -import { useRef, useEffect } from 'react' -import * as wangEditor from '@wangeditor/editor' +import * as wangEditor from '@wangeditor/editor'; +import { useEffect, useRef } from 'react'; interface IProps { editor: wangEditor.IDomEditor | null @@ -10,22 +10,24 @@ interface IProps { } function ToolbarComponent(props: IProps) { - const { editor, defaultConfig = {}, mode = 'default', style = {}, className } = props - const ref = useRef(null) + const { + editor, defaultConfig = {}, mode = 'default', style = {}, className, + } = props; + const ref = useRef(null); useEffect(() => { - if (ref.current == null) return - if (editor == null) return + if (ref.current == null) return; + if (editor == null) return; wangEditor.createToolbar({ editor, selector: ref.current, config: defaultConfig, mode, - }) - }, [editor]) + }); + }, [editor]); - return
+ return
; } -export default ToolbarComponent \ No newline at end of file +export default ToolbarComponent; diff --git a/apps/admin/src/views/editor/rich-text/index.tsx b/apps/admin/src/views/editor/rich-text/index.tsx index e235eaae..785a9b13 100644 --- a/apps/admin/src/views/editor/rich-text/index.tsx +++ b/apps/admin/src/views/editor/rich-text/index.tsx @@ -1,28 +1,29 @@ -import {FC, useState, useEffect } from 'react' -import { PageWrapper } from '@/components/Page' -import { WANG_EDITOR_PLUGIN } from '@/settings/websiteSetting' -import { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor' -import Editor from './components/Editor' -import Toolbar from './components/Toolbar' -import '@wangeditor/editor/dist/css/style.css' +import { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor'; +import { FC, useEffect, useState } from 'react'; -const RichTextEditor: FC = () => { - const [editor, setEditor] = useState(null) - const [html, setHtml] = useState('

hello

') +import { PageWrapper } from '@/components/Page'; + +import { WANG_EDITOR_PLUGIN } from '@/settings/websiteSetting'; + +import Editor from './components/Editor'; +import Toolbar from './components/Toolbar'; +import '@wangeditor/editor/dist/css/style.css'; + +const RichTextEditor: FC = () => { + const [editor, setEditor] = useState(null); + const [html, setHtml] = useState('

hello

'); - const toolbarConfig: Partial = {} - const editorConfig: Partial = { // TS 语法 - placeholder: '请输入内容...' - } + const toolbarConfig: Partial = {}; + const editorConfig: Partial = { // TS 语法 + placeholder: '请输入内容...', + }; - useEffect(() => { - return () => { - if (editor == null) return - editor.destroy() - setEditor(null) - } - }, [editor]) + useEffect(() => () => { + if (editor == null) return; + editor.destroy(); + setEditor(null); + }, [editor]); return ( @@ -37,13 +38,13 @@ const RichTextEditor: FC = () => { defaultConfig={editorConfig} value={html} onCreated={setEditor} - onChange={editor => setHtml(editor.getHtml())} + onChange={(editor) => setHtml(editor.getHtml())} mode='default' style={{ height: '500px', overflowY: 'hidden' }} /> - ) -} + ); +}; -export default RichTextEditor \ No newline at end of file +export default RichTextEditor; diff --git a/apps/admin/src/views/excel/export-excel/data.ts b/apps/admin/src/views/excel/export-excel/data.ts index 7d57239f..366a2152 100644 --- a/apps/admin/src/views/excel/export-excel/data.ts +++ b/apps/admin/src/views/excel/export-excel/data.ts @@ -20,7 +20,7 @@ export const tableData: DataItem[] = [ education: '高中', hobby: '羽毛球、篮球、听歌、阅读', forbid: false, - editable: true + editable: true, }, { key: 1002, @@ -31,7 +31,7 @@ export const tableData: DataItem[] = [ education: '初中', hobby: '乒乓球、排球、游泳', forbid: true, - editable: false + editable: false, }, { key: 1003, @@ -42,7 +42,7 @@ export const tableData: DataItem[] = [ education: '本科', hobby: '旱冰、滑雪、跳高、打游戏', forbid: false, - editable: false + editable: false, }, { key: 1004, @@ -53,7 +53,7 @@ export const tableData: DataItem[] = [ education: '大专', hobby: '网球、篮球、跳伞', forbid: true, - editable: false + editable: false, }, { key: 1005, @@ -64,7 +64,7 @@ export const tableData: DataItem[] = [ education: '本科', hobby: '滑翔、游泳、篮球、看电影', forbid: true, - editable: false + editable: false, }, { key: 1006, @@ -75,7 +75,7 @@ export const tableData: DataItem[] = [ education: '大专', hobby: '游泳、篮球、潜水', forbid: false, - editable: false + editable: false, }, { key: 1007, @@ -86,6 +86,6 @@ export const tableData: DataItem[] = [ education: '高中', hobby: '冲浪、上网、看书、打游戏', forbid: false, - editable: false - } -] + editable: false, + }, +]; diff --git a/apps/admin/src/views/excel/export-excel/index.tsx b/apps/admin/src/views/excel/export-excel/index.tsx index 6d40b3df..baaf5c12 100644 --- a/apps/admin/src/views/excel/export-excel/index.tsx +++ b/apps/admin/src/views/excel/export-excel/index.tsx @@ -1,13 +1,18 @@ -import { useState } from 'react' -import { Form, Button, Card, Input, Radio, Select, Table, Space, message } from 'antd' -import { ColumnType } from 'antd/es/table' -import { PageWrapper } from '@/components/Page' -import { XLSX_PLUGIN } from '@/settings/websiteSetting' -import { useExcel } from '../useExcel' -import { DataToSheet } from '../types' -import { tableData } from './data' +import { + Button, Card, Form, Input, message, Radio, Select, Space, Table, +} from 'antd'; +import { ColumnType } from 'antd/es/table'; +import { useState } from 'react'; -type FileType = 'xlsx' | 'csv' | 'txt' +import { PageWrapper } from '@/components/Page'; + +import { XLSX_PLUGIN } from '@/settings/websiteSetting'; + +import { DataToSheet } from '../types'; +import { useExcel } from '../useExcel'; +import { tableData } from './data'; + +type FileType = 'xlsx' | 'csv' | 'txt'; interface FormState { fileName: string @@ -16,16 +21,16 @@ interface FormState { } const ExportExcel = (props: any) => { - const { Item } = Form - const { Group } = Radio + const { Item } = Form; + const { Group } = Radio; - const { exportDataToExcel } = useExcel() + const { exportDataToExcel } = useExcel(); const formParam = { fileName: '', autoWidth: true, - fileType: 'xlsx' - } + fileType: 'xlsx', + }; const tableColumns: ColumnType[] = [ { title: '编号', dataIndex: 'key', align: 'center' }, @@ -33,52 +38,53 @@ const ExportExcel = (props: any) => { { title: '性别', dataIndex: 'sex', align: 'center' }, { title: '手机', dataIndex: 'phone', align: 'center' }, { title: '学历', dataIndex: 'education', align: 'center' }, - { title: '爱好', dataIndex: 'hobby', align: 'center' } - ] + { title: '爱好', dataIndex: 'hobby', align: 'center' }, + ]; - const [tableSelectedKeys, setTableSelectedKeys] = useState([]) - const [tableSelectedRows, setTableSelectedRows] = useState([]) + const [tableSelectedKeys, setTableSelectedKeys] = useState([]); + const [tableSelectedRows, setTableSelectedRows] = useState([]); function handleTableChange(selectedKeys: any[]) { - setTableSelectedKeys(selectedKeys) + setTableSelectedKeys(selectedKeys); } function handleTableSelect( _record: object, _selected: boolean, - selectedRows: object[] + selectedRows: object[], ) { - setTableSelectedRows(selectedRows) + setTableSelectedRows(selectedRows); } function handleTableSelectAll(_selected: boolean, selectedRows: object[]) { - setTableSelectedRows(selectedRows) + setTableSelectedRows(selectedRows); } - function handleExport(values: FormState) { - console.log('values', values) + console.log('values', values); if (!tableSelectedRows.length) { - message.warning('请勾选要导出的数据项!') - return + message.warning('请勾选要导出的数据项!'); + return; } - const { fileName, autoWidth, fileType: bookType } = values + const { fileName, autoWidth, fileType: bookType } = values; const params: DataToSheet = { data: tableSelectedRows, header: ['编号', '姓名', '性别', '手机', '学历', '爱好'], key: ['key', 'name', 'sex', 'phone', 'education', 'hobby'], - fileName, autoWidth, bookType - } - exportDataToExcel(params) - setTableSelectedKeys([]) - setTableSelectedRows([]) + fileName, + autoWidth, + bookType, + }; + exportDataToExcel(params); + setTableSelectedKeys([]); + setTableSelectedRows([]); } return ( - +
@@ -87,7 +93,7 @@ const ExportExcel = (props: any) => { @@ -96,9 +102,9 @@ const ExportExcel = (props: any) => { options={[ { label: 'xlsx', value: 'xlsx' }, { label: 'csv', value: 'csv' }, - { label: 'txt', value: 'txt' } + { label: 'txt', value: 'txt' }, ]} - style={{width: '180px'}} + style={{ width: '180px' }} /> @@ -112,14 +118,14 @@ const ExportExcel = (props: any) => { selectedRowKeys: tableSelectedKeys, onChange: handleTableChange, onSelect: handleTableSelect, - onSelectAll: handleTableSelectAll + onSelectAll: handleTableSelectAll, }} pagination={false} />
- ) -} + ); +}; -export default ExportExcel \ No newline at end of file +export default ExportExcel; diff --git a/apps/admin/src/views/excel/import-excel.tsx b/apps/admin/src/views/excel/import-excel.tsx index c98cec56..fed5da3f 100644 --- a/apps/admin/src/views/excel/import-excel.tsx +++ b/apps/admin/src/views/excel/import-excel.tsx @@ -1,66 +1,72 @@ -import type { UploadChangeParam } from 'antd/es/upload' -import type { ColumnType } from 'antd/es/table' -import { useState } from 'react' -import { Card, Table, Upload, Space, message } from 'antd' -import { CloudUploadOutlined } from '@ant-design/icons' -import { PageWrapper } from '@/components/Page' -import { XLSX_PLUGIN } from '@/settings/websiteSetting' -import { useExcel } from './useExcel' +import { CloudUploadOutlined } from '@ant-design/icons'; +import { + Card, message, Space, Table, Upload, +} from 'antd'; +import { useState } from 'react'; + +import { PageWrapper } from '@/components/Page'; + +import { XLSX_PLUGIN } from '@/settings/websiteSetting'; + +import { useExcel } from './useExcel'; + +import type { ColumnType } from 'antd/es/table'; +import type { UploadChangeParam } from 'antd/es/upload'; const ImportExcel = (props: any) => { - const { Dragger } = Upload - const [tableData, setTableData] = useState([]) - const [tableColumns, setTableColumns] = useState[]>([]) - const { readDataFromExcel } = useExcel() + const { Dragger } = Upload; + const [tableData, setTableData] = useState([]); + const [tableColumns, setTableColumns] = useState[]>([]); + const { readDataFromExcel } = useExcel(); function handleChange(fileParam: UploadChangeParam) { - const { file } = fileParam - const rawFile = file.originFileObj + const { file } = fileParam; + const rawFile = file.originFileObj; - if (!rawFile) return + if (!rawFile) return; if (!/\.(xlsx|xls|csv)$/.test(rawFile.name)) { - message.warning('Excel文件只支持.xlsx, .xls, .csv格式!') - return + message.warning('Excel文件只支持.xlsx, .xls, .csv格式!'); + return; } - const isLimit1M = rawFile.size / 1024 /1024 < 1 + const isLimit1M = rawFile.size / 1024 / 1024 < 1; if (!isLimit1M) { - message.warning('上传的Excel文件大小不能超过1M!') - return + message.warning('上传的Excel文件大小不能超过1M!'); + return; } - readFile(rawFile) + readFile(rawFile); } function readFile(rawFile: File) { - const reader = new FileReader() - reader.onload = e => { - const data = e.target && e.target.result - const { header, results } = readDataFromExcel(data, 'array') - const columns = header.map(key => ({title: key, dataIndex: key, align: 'center'})) as ColumnType[] - setTableColumns(columns) - setTableData(results as object[]) - } - reader.readAsArrayBuffer(rawFile) + const reader = new FileReader(); + reader.onload = (e) => { + const data = e.target && e.target.result; + const { header, results } = readDataFromExcel(data, 'array'); + const columns = header.map((key) => ({ title: key, dataIndex: key, align: 'center' })) as ColumnType[]; + setTableColumns(columns); + setTableData(results as object[]); + }; + reader.readAsArrayBuffer(rawFile); reader.onerror = () => { - message.error('Excel文件读取出错!') - } + message.error('Excel文件读取出错!'); + }; } return ( - + -

+

-

将Excel文件拖到此处, 或点击上传

+

将Excel文件拖到此处, 或点击上传

{ - ) -} + ); +}; -export default ImportExcel \ No newline at end of file +export default ImportExcel; diff --git a/apps/admin/src/views/excel/types.ts b/apps/admin/src/views/excel/types.ts index b27e22b2..93f8cff6 100644 --- a/apps/admin/src/views/excel/types.ts +++ b/apps/admin/src/views/excel/types.ts @@ -1,6 +1,6 @@ -import type { BookType } from 'xlsx' +import type { BookType } from 'xlsx'; -export type ImportType = 'base64' | 'binary' | 'string' | 'buffer' | 'array' | 'file' +export type ImportType = 'base64' | 'binary' | 'string' | 'buffer' | 'array' | 'file'; export interface DataToSheet { data: T[] @@ -9,4 +9,4 @@ export interface DataToSheet { fileName?: string autoWidth?: boolean bookType: BookType -} \ No newline at end of file +} diff --git a/apps/admin/src/views/excel/useExcel.ts b/apps/admin/src/views/excel/useExcel.ts index 15d2166a..0e1fa59a 100644 --- a/apps/admin/src/views/excel/useExcel.ts +++ b/apps/admin/src/views/excel/useExcel.ts @@ -1,45 +1,46 @@ -import type { WorkSheet } from 'xlsx' -import { write, read, utils } from 'xlsx' -import { saveAs } from 'file-saver' -import { ImportType, DataToSheet } from './types' +import { saveAs } from 'file-saver'; +import { read, utils, write } from 'xlsx'; + +import { DataToSheet, ImportType } from './types'; + +import type { WorkSheet } from 'xlsx'; export function useExcel() { // Automatic width calculation (自动宽度计算) function AutoWidth(ws: WorkSheet, arr: any[][]) { // Sets the maximum width of each column of the worksheet (设置worksheet每列的最大宽度) - const colWidth = arr.map(row => row.map(val => { + const colWidth = arr.map((row) => row.map((val) => { // Checked null or undefined(判断是否为null/undefined) if (val == null) { - return { wch: 10 } - } else if (val.toString().charCodeAt(0) > 255) { // Checked Chinese (判断是否为中文) - return { wch: val.toString().length * 2 } - } else { - return { wch: val.toString().length } + return { wch: 10 }; + } if (val.toString().charCodeAt(0) > 255) { // Checked Chinese (判断是否为中文) + return { wch: val.toString().length * 2 }; } - })) + return { wch: val.toString().length }; + })); // The initial value of the first row (以第一行为初始值) - const result = colWidth[0] + const result = colWidth[0]; for (let i = 1; i < colWidth.length; i++) { for (let j = 0; j < colWidth[i].length; j++) { if (result[j].wch < colWidth[i][j].wch) { - result[j].wch = colWidth[i][j].wch + result[j].wch = colWidth[i][j].wch; } } } - ws['!cols'] = result + ws['!cols'] = result; } // Array to JSON (数组转换成JSON) function formatJSON(key: any[], data: any[]) { - return data.map(v => key.map(i => { return v[i] })) + return data.map((v) => key.map((i) => v[i])); } // String to ArrayBuffer (字符串转ArrayBuffer) function s2ab(s: string) { - const buf = new ArrayBuffer(s.length) - const view = new Uint8Array(buf) - for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF - return buf + const buf = new ArrayBuffer(s.length); + const view = new Uint8Array(buf); + for (let i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF; + return buf; } // Exporting EXCEL (导出EXCEL表格) @@ -50,70 +51,69 @@ export function useExcel() { data, // Data to be exported (需要导出数据的数组) fileName, // Export file name (导出文件名) autoWidth = true, // Automatic width (是否自动宽度) - bookType = 'xlsx' // Export file type (导出文件格式) - }: DataToSheet) { + bookType = 'xlsx', // Export file type (导出文件格式) + }: DataToSheet, + ) { // Create the Workbook object (创建Workbook对象) - const wb = utils.book_new() - const arr = formatJSON(key, data) - fileName = fileName || 'excel-list' - arr.unshift(header) + const wb = utils.book_new(); + const arr = formatJSON(key, data); + fileName = fileName || 'excel-list'; + arr.unshift(header); // Convert the array to worksheet (将数组数据转换为worksheet) - const ws = utils.aoa_to_sheet(arr) + const ws = utils.aoa_to_sheet(arr); if (autoWidth) { - AutoWidth(ws, arr) + AutoWidth(ws, arr); } // Appends the worksheet and fileName to the Workbook object (向Workbook对象中追加worksheet和fileName) - utils.book_append_sheet(wb, ws, fileName) + utils.book_append_sheet(wb, ws, fileName); // Generate EXCEL configuration items (生成EXCEL的配置项) const wbout = write(wb, { - bookType: bookType, + bookType, bookSST: false, - type: 'binary' - }) + type: 'binary', + }); // Browser download (浏览器下载) saveAs(new Blob([s2ab(wbout)], { - type: 'application/octet-stream' - }), `${fileName}.${bookType}`) + type: 'application/octet-stream', + }), `${fileName}.${bookType}`); } // Get the table header from the Excel file (从Excel文件中获取表格头) function getHeaderRow(sheet: WorkSheet) { - if (!sheet || !sheet['!ref']) return [] + if (!sheet || !sheet['!ref']) return []; - const headers: string[] = [] + const headers: string[] = []; // Converts a string such as A1:G8 to a column and row object (将 A1:G8 这种字符串转换为行列对象) - const range = utils.decode_range(sheet['!ref']) - - const R = range.s.r + const range = utils.decode_range(sheet['!ref']); + + const R = range.s.r; // Start in the first row, walk every column in the range (从第一列开始,遍历范围中的每一列) for (let C = range.s.c; C <= range.e.c; ++C) { // Converts a row object to a string such as A1 (将行列对象转换为 A1 这种字符串) - const cell = sheet[utils.encode_cell({ c: C, r: R })] + const cell = sheet[utils.encode_cell({ c: C, r: R })]; // Replace with your desired default (用默认值替换) - let hdr = 'UNKNOWN ' + C - if (cell && cell.t) hdr = utils.format_cell(cell) - headers.push(hdr) + let hdr = `UNKNOWN ${C}`; + if (cell && cell.t) hdr = utils.format_cell(cell); + headers.push(hdr); } - return headers + return headers; } // Reading excel files (读取Excel文件) function readDataFromExcel(data: any, type: ImportType) { // Read the Excel file and save it to the Workbook object (读取Excel文件并保存到Workbook对象) - const workbook = read(data, { type: type }) - const firstSheetName = workbook.SheetNames[0] + const workbook = read(data, { type }); + const firstSheetName = workbook.SheetNames[0]; // Gets the worksheet of the Workbook object (获取Workbook对象的worksheet) - const worksheet = workbook.Sheets[firstSheetName] - const header = getHeaderRow(worksheet) + const worksheet = workbook.Sheets[firstSheetName]; + const header = getHeaderRow(worksheet); // Convert the worksheet to an array (将worksheet转化成数组) - const results = utils.sheet_to_json(worksheet) - return { header, results } + const results = utils.sheet_to_json(worksheet); + return { header, results }; } return { exportDataToExcel, - readDataFromExcel - } - + readDataFromExcel, + }; } - diff --git a/apps/admin/src/views/exception/index.tsx b/apps/admin/src/views/exception/index.tsx index 4ad71cfa..12304452 100644 --- a/apps/admin/src/views/exception/index.tsx +++ b/apps/admin/src/views/exception/index.tsx @@ -1,33 +1,32 @@ -import { FC, ReactNode } from 'react' -import { Result, Card, Button } from 'antd' -import { useNavigate, useLoaderData } from 'react-router-dom' +import { Button, Card, Result } from 'antd'; +import { FC, ReactNode } from 'react'; +import { useLoaderData, useNavigate } from 'react-router-dom'; const subTitleMap = new Map([ [403, '对不起,您没有权限访问此页面。'], [404, '对不起,您访问的页面不存在。'], - [500, '对不起,服务器发生错误。'] -]) + [500, '对不起,服务器发生错误。'], +]); const PageException: FC = () => { - const navigate = useNavigate() + const navigate = useNavigate(); - const { status, withCard } = useLoaderData() as { status: any; withCard: boolean } + const { status, withCard } = useLoaderData() as { status: any; withCard: boolean }; const goHome = () => { - navigate('/home') - } + navigate('/home'); + }; const WithCard = ({ children }: { children: ReactNode }) => { if (withCard) { - return {children} - } else { - return ( + return {children}; + } + return (
{children}
- ) - } - } + ); + }; return ( @@ -42,7 +41,7 @@ const PageException: FC = () => { } /> - ) -} + ); +}; -export default PageException +export default PageException; diff --git a/apps/admin/src/views/form/basic-form/data.ts b/apps/admin/src/views/form/basic-form/data.ts index 24f5cb50..dd70d544 100644 --- a/apps/admin/src/views/form/basic-form/data.ts +++ b/apps/admin/src/views/form/basic-form/data.ts @@ -1,11 +1,10 @@ - -export const provinceData = ['guangdong', 'Zhejiang', 'Jiangsu'] +export const provinceData = ['guangdong', 'Zhejiang', 'Jiangsu']; export const cityData: Record = { guangdong: ['guangzhou', 'shenzhen', 'foshan', 'dongguan', 'zhuhai'], Zhejiang: ['Hangzhou', 'Ningbo', 'Wenzhou'], - Jiangsu: ['Nanjing', 'Suzhou', 'Zhenjiang', 'wuxi'] -} + Jiangsu: ['Nanjing', 'Suzhou', 'Zhenjiang', 'wuxi'], +}; export const cascaderData = [{ value: 'zhinan', @@ -15,28 +14,28 @@ export const cascaderData = [{ label: '设计原则', children: [{ value: 'yizhi', - label: '一致' + label: '一致', }, { value: 'fankui', - label: '反馈' + label: '反馈', }, { value: 'xiaolv', - label: '效率' + label: '效率', }, { value: 'kekong', - label: '可控' - }] + label: '可控', + }], }, { value: 'daohang', label: '导航', children: [{ value: 'cexiangdaohang', - label: '侧向导航' + label: '侧向导航', }, { value: 'dingbudaohang', - label: '顶部导航' - }] - }] + label: '顶部导航', + }], + }], }, { value: 'zujian', label: '组件', @@ -45,163 +44,163 @@ export const cascaderData = [{ label: 'Basic', children: [{ value: 'layout', - label: 'layout 布局' + label: 'layout 布局', }, { value: 'color', - label: 'Color 色彩' + label: 'Color 色彩', }, { value: 'typography', - label: 'Typography 字体' + label: 'Typography 字体', }, { value: 'icon', - label: 'Icon 图标' + label: 'Icon 图标', }, { value: 'button', - label: 'Button 按钮' - }] + label: 'Button 按钮', + }], }, { value: 'form', label: 'Form', children: [{ value: 'radio', - label: 'Radio 单选框' + label: 'Radio 单选框', }, { value: 'checkbox', - label: 'Checkbox 多选框' + label: 'Checkbox 多选框', }, { value: 'input', - label: 'Input 输入框' + label: 'Input 输入框', }, { value: 'input-number', - label: 'InputNumber 计数器' + label: 'InputNumber 计数器', }, { value: 'select', - label: 'Select 选择器' + label: 'Select 选择器', }, { value: 'cascader', - label: 'Cascader 级联选择器' + label: 'Cascader 级联选择器', }, { value: 'switch', - label: 'Switch 开关' + label: 'Switch 开关', }, { value: 'slider', - label: 'Slider 滑块' + label: 'Slider 滑块', }, { value: 'time-picker', - label: 'TimePicker 时间选择器' + label: 'TimePicker 时间选择器', }, { value: 'date-picker', - label: 'DatePicker 日期选择器' + label: 'DatePicker 日期选择器', }, { value: 'datetime-picker', - label: 'DateTimePicker 日期时间选择器' + label: 'DateTimePicker 日期时间选择器', }, { value: 'upload', - label: 'Upload 上传' + label: 'Upload 上传', }, { value: 'rate', - label: 'Rate 评分' + label: 'Rate 评分', }, { value: 'form', - label: 'Form 表单' - }] + label: 'Form 表单', + }], }, { value: 'data', label: 'Data', children: [{ value: 'table', - label: 'Table 表格' + label: 'Table 表格', }, { value: 'tag', - label: 'Tag 标签' + label: 'Tag 标签', }, { value: 'progress', - label: 'Progress 进度条' + label: 'Progress 进度条', }, { value: 'tree', - label: 'Tree 树形控件' + label: 'Tree 树形控件', }, { value: 'pagination', - label: 'Pagination 分页' + label: 'Pagination 分页', }, { value: 'badge', - label: 'Badge 标记' - }] + label: 'Badge 标记', + }], }, { value: 'notice', label: 'Notice', children: [{ value: 'alert', - label: 'Alert 警告' + label: 'Alert 警告', }, { value: 'loading', - label: 'Loading 加载' + label: 'Loading 加载', }, { value: 'message', - label: 'Message 消息提示' + label: 'Message 消息提示', }, { value: 'message-box', - label: 'MessageBox 弹框' + label: 'MessageBox 弹框', }, { value: 'notification', - label: 'Notification 通知' - }] + label: 'Notification 通知', + }], }, { value: 'navigation', label: 'Navigation', children: [{ value: 'menu', - label: 'NavMenu 导航菜单' + label: 'NavMenu 导航菜单', }, { value: 'tabs', - label: 'Tabs 标签页' + label: 'Tabs 标签页', }, { value: 'breadcrumb', - label: 'Breadcrumb 面包屑' + label: 'Breadcrumb 面包屑', }, { value: 'dropdown', - label: 'Dropdown 下拉菜单' + label: 'Dropdown 下拉菜单', }, { value: 'steps', - label: 'Steps 步骤条' - }] + label: 'Steps 步骤条', + }], }, { value: 'others', label: 'Others', children: [{ value: 'dialog', - label: 'Dialog 对话框' + label: 'Dialog 对话框', }, { value: 'tooltip', - label: 'Tooltip 文字提示' + label: 'Tooltip 文字提示', }, { value: 'popover', - label: 'Popover 弹出框' + label: 'Popover 弹出框', }, { value: 'card', - label: 'Card 卡片' + label: 'Card 卡片', }, { value: 'carousel', - label: 'Carousel 走马灯' + label: 'Carousel 走马灯', }, { value: 'collapse', - label: 'Collapse 折叠面板' - }] - }] + label: 'Collapse 折叠面板', + }], + }], }, { value: 'ziyuan', label: '资源', children: [{ value: 'axure', - label: 'Axure Components' + label: 'Axure Components', }, { value: 'sketch', - label: 'Sketch Templates' + label: 'Sketch Templates', }, { value: 'jiaohu', - label: '组件交互文档' - }] -}] + label: '组件交互文档', + }], +}]; export const treeData = [{ title: 'Node1', @@ -211,9 +210,9 @@ export const treeData = [{ value: '0-0-0', children: [{ title: 'Child Node6', - value: '0-0-1' - }] - }] + value: '0-0-1', + }], + }], }, { title: 'Node2', value: '0-1', @@ -227,16 +226,16 @@ export const treeData = [{ }, { title: 'Child Node5', value: '0-1-2', - }] -}] + }], +}]; export const radioData = [ { label: '免费', value: 'free' }, { label: '收费', value: 'fee' }, { label: '赞助', value: 'sponsor' }, { label: '线上', value: 'online', disabled: true }, - { label: '线下', value: 'offline', disabled: true } -] + { label: '线下', value: 'offline', disabled: true }, +]; export const checkboxData = [ { label: '游泳', value: 'swim' }, @@ -244,5 +243,5 @@ export const checkboxData = [ { label: '健身', value: 'fit' }, { label: '阅读', value: 'read', disabled: true }, { label: '音乐', value: 'music', disabled: true }, - { label: '电影', value: 'movie' } -] + { label: '电影', value: 'movie' }, +]; diff --git a/apps/admin/src/views/form/basic-form/index.tsx b/apps/admin/src/views/form/basic-form/index.tsx index 8d55119b..d2019eb9 100644 --- a/apps/admin/src/views/form/basic-form/index.tsx +++ b/apps/admin/src/views/form/basic-form/index.tsx @@ -1,16 +1,24 @@ -import type { CascaderProps, TreeSelectProps } from 'antd' -import type { Rule } from 'antd/es/form' -import { FC, useState } from 'react' -import { Card, Form, Row, Col, Input, InputNumber, Button, Select, DatePicker, TimePicker, - Switch, Slider, Cascader, TreeSelect, Radio, Checkbox } from 'antd' -import { FORM_COMPO } from '@/settings/websiteSetting' -import { PageWrapper } from '@/components/Page' -import { provinceData, cityData, cascaderData, treeData, radioData, checkboxData } from './data' +import { + Button, Card, Cascader, Checkbox, Col, DatePicker, Form, Input, InputNumber, Radio, Row, Select, Slider, Switch, TimePicker, + TreeSelect, +} from 'antd'; +import { FC, useState } from 'react'; + +import { PageWrapper } from '@/components/Page'; + +import { FORM_COMPO } from '@/settings/websiteSetting'; + +import { + cascaderData, checkboxData, cityData, provinceData, radioData, treeData, +} from './data'; + +import type { CascaderProps, TreeSelectProps } from 'antd'; +import type { Rule } from 'antd/es/form'; const BasicForm: FC = () => { - const [form] = Form.useForm() + const [form] = Form.useForm(); - const province = provinceData[0] + const province = provinceData[0]; const [formState, setFormState] = useState({ inputLimit: '', inputNum: '', @@ -27,99 +35,105 @@ const BasicForm: FC = () => { treeLazy: '1', radioVal: 'offline', checkboxVal: ['read'], - textareaVal: '' - }) + textareaVal: '', + }); const formRules: Record = { inputLimit: [ - { required: true, message: '内容不能为空' } + { required: true, message: '内容不能为空' }, ], inputNum: [ { required: true, message: '内容不能为空' }, - { type: 'number', message: '内容必须为数字值' } + { type: 'number', message: '内容必须为数字值' }, ], password: [ { required: true, message: '内容不能为空' }, { min: 6, max: 16, message: '密码长度在 6 到 16 个字符' }, - { pattern: /^[a-zA-Z0-9_-]{6,16}$/, message: '密码只支持字母、数字和下划线' } - ] - } - - const switchVal = Form.useWatch('switchVal', form) + { pattern: /^[a-zA-Z0-9_-]{6,16}$/, message: '密码只支持字母、数字和下划线' }, + ], + }; + + const switchVal = Form.useWatch('switchVal', form); const [cascaderLazyData, setCascaderLazyData] = useState([ - { value: 1, label: '选项1', isLeaf: false } - ]) + { value: 1, label: '选项1', isLeaf: false }, + ]); const [treeLazyData, setTreeLazyData] = useState([ - { id: 1, pId: 0, value: '1', title: 'Expand to load' }, - { id: 2, pId: 0, value: '2', title: 'Expand to load' }, - { id: 3, pId: 0, value: '3', title: 'Tree Node', isLeaf: true }, - ]) + { + id: 1, pId: 0, value: '1', title: 'Expand to load', + }, + { + id: 2, pId: 0, value: '2', title: 'Expand to load', + }, + { + id: 3, pId: 0, value: '3', title: 'Tree Node', isLeaf: true, + }, + ]); const handleProvinceChange = (value: any) => { - form.setFieldsValue({ selectCity: cityData[value][0] }) - } + form.setFieldsValue({ selectCity: cityData[value][0] }); + }; const loadCascaderLazy = (selectedOptions: any) => { - const targetOption = selectedOptions[selectedOptions.length - 1] - targetOption.loading = true + const targetOption = selectedOptions[selectedOptions.length - 1]; + targetOption.loading = true; setTimeout(() => { - targetOption.loading = false - let id = selectedOptions.length - const level = selectedOptions.length + targetOption.loading = false; + let id = selectedOptions.length; + const level = selectedOptions.length; targetOption.children = Array.from({ length: level + 1 }) .map(() => ({ value: ++id, label: `选项${id}`, - isLeaf: level >= 2 - })) - setCascaderLazyData([...cascaderLazyData!]) - }, 1000) - } + isLeaf: level >= 2, + })); + setCascaderLazyData([...cascaderLazyData!]); + }, 1000); + }; const loadTreeLazy: TreeSelectProps['loadData'] = ({ id }) => { const genTreeNode = (parentId: number, isLeaf = false) => { - const random = Math.random().toString(36).substring(2, 6) + const random = Math.random().toString(36).substring(2, 6); return { id: random, pId: parentId, value: random, title: isLeaf ? 'Tree Node' : 'Expand to load', - isLeaf - } - } + isLeaf, + }; + }; - return new Promise(resolve => { + return new Promise((resolve) => { setTimeout(() => { setTreeLazyData(treeLazyData?.concat([ genTreeNode(id, false), genTreeNode(id, true), - genTreeNode(id, true) - ])) - resolve(undefined) - }, 500) - }) - } + genTreeNode(id, true), + ])); + resolve(undefined); + }, 500); + }); + }; const onFinish = (values: any) => { - console.log('Success:', values) - } + console.log('Success:', values); + }; const resetForm = () => { - form.resetFields() - } + form.resetFields(); + }; return ( @@ -131,7 +145,7 @@ const BasicForm: FC = () => { @@ -166,14 +180,14 @@ const BasicForm: FC = () => {
@@ -251,14 +265,14 @@ const BasicForm: FC = () => { ) } - + - + - ) -} + ); +}; -export default BasicForm +export default BasicForm; diff --git a/apps/admin/src/views/form/form-designer.tsx b/apps/admin/src/views/form/form-designer.tsx index c59d9e45..31694c20 100644 --- a/apps/admin/src/views/form/form-designer.tsx +++ b/apps/admin/src/views/form/form-designer.tsx @@ -1,15 +1,14 @@ -import { FC } from 'react' -import { Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { FORM_CREATE_DESIGNER } from '@/settings/websiteSetting' +import { Card } from 'antd'; +import { FC } from 'react'; -const FormCreate: FC = () => { +import { PageWrapper } from '@/components/Page'; - return ( +import { FORM_CREATE_DESIGNER } from '@/settings/websiteSetting'; + +const FormCreate: FC = () => ( - ) -} +); -export default FormCreate \ No newline at end of file +export default FormCreate; diff --git a/apps/admin/src/views/form/gbeata-form/index.tsx b/apps/admin/src/views/form/gbeata-form/index.tsx index 050a3597..b1800ba7 100644 --- a/apps/admin/src/views/form/gbeata-form/index.tsx +++ b/apps/admin/src/views/form/gbeata-form/index.tsx @@ -1,27 +1,27 @@ -import { GButton } from 'gbeata' +import { GButton } from 'gbeata'; const GbeataForm = () => { const fields: Array = [ { title: '中文名', - key: 'cn' + key: 'cn', }, { title: '年龄', type: 'slider', - key: 'sex' - } - ] + key: 'sex', + }, + ]; const handleConfirm = (form: any) => { - console.log(form) - alert(JSON.stringify(form)) - } + console.log(form); + alert(JSON.stringify(form)); + }; return ( 提交 - ) -} + ); +}; -export default GbeataForm +export default GbeataForm; diff --git a/apps/admin/src/views/home/components/ChartsCard.tsx b/apps/admin/src/views/home/components/ChartsCard.tsx index 6be515cf..c5f68e35 100644 --- a/apps/admin/src/views/home/components/ChartsCard.tsx +++ b/apps/admin/src/views/home/components/ChartsCard.tsx @@ -1,7 +1,9 @@ -import type { EChartsOption } from 'echarts' -import { FC } from 'react' -import { Card } from 'antd' -import { useECharts } from '@/hooks/web/useECharts' +import { Card } from 'antd'; +import { FC } from 'react'; + +import { useECharts } from '@/hooks/web/useECharts'; + +import type { EChartsOption } from 'echarts'; interface propState { loading: boolean @@ -10,8 +12,7 @@ interface propState { } const ChartsCard: FC = ({ loading, options, height }) => { - - const { chartRef } = useECharts(options, loading) + const { chartRef } = useECharts(options, loading); return ( = ({ loading, options, height }) => { ref={chartRef} style={{ width: '100%', - height: height + 'px' + height: `${height}px`, }} /> - ) -} + ); +}; -export default ChartsCard \ No newline at end of file +export default ChartsCard; diff --git a/apps/admin/src/views/home/components/CountUpCard.tsx b/apps/admin/src/views/home/components/CountUpCard.tsx index a20f98d6..633d162f 100644 --- a/apps/admin/src/views/home/components/CountUpCard.tsx +++ b/apps/admin/src/views/home/components/CountUpCard.tsx @@ -1,7 +1,8 @@ -import { FC } from 'react' -import { Card } from 'antd' -import CountUp from 'react-countup' -import SvgIcon from '@/components/SvgIcon' +import { Card } from 'antd'; +import { FC } from 'react'; +import CountUp from 'react-countup'; + +import SvgIcon from '@/components/SvgIcon'; interface propState { loading: boolean @@ -11,13 +12,11 @@ interface propState { countNum: number } -const CountUpCard: FC = (props) => { - - return ( +const CountUpCard: FC = (props) => (
= (props) => { width: '120px', height: '120px', borderRadius: '8px 0 0 8px', - background: props.color + background: props.color, }} >
-
+
-

{props.title}

+

{props.title}

- ) -} +); -export default CountUpCard \ No newline at end of file +export default CountUpCard; diff --git a/apps/admin/src/views/home/data.ts b/apps/admin/src/views/home/data.ts index 51cd354b..757327cc 100644 --- a/apps/admin/src/views/home/data.ts +++ b/apps/admin/src/views/home/data.ts @@ -1,45 +1,45 @@ -import type { EChartsOption } from 'echarts' +import type { EChartsOption } from 'echarts'; export const countUpData = [ { title: '今日点击', icon: 'location', count: 682, - color: '#1890ff' + color: '#1890ff', }, { title: '新增用户', icon: 'person', count: 259, - color: '#fa541c' + color: '#fa541c', }, { title: '信息发送', icon: 'message', count: 1262, - color: '#faad14' + color: '#faad14', }, { title: '点赞统计', icon: 'like', count: 508, - color: '#13c2c2' + color: '#13c2c2', }, { title: '累计收藏', icon: 'heart', count: 379, - color: '#722ed1' - } -] + color: '#722ed1', + }, +]; export const pieOptions: EChartsOption = { tooltip: { - trigger: 'item' + trigger: 'item', }, legend: { bottom: 0, - left: 'center' + left: 'center', }, series: [ { @@ -53,25 +53,25 @@ export const pieOptions: EChartsOption = { { value: 1169, name: '邮件营销' }, { value: 986, name: '联盟广告' }, { value: 624, name: '视频广告' }, - { value: 857, name: '搜索引擎' } + { value: 857, name: '搜索引擎' }, ], roseType: 'radius', animationType: 'scale', animationEasing: 'exponentialInOut', - animationDelay: function () { - return Math.random() * 400 - } - } - ] -} + animationDelay() { + return Math.random() * 400; + }, + }, + ], +}; export const ringOptions: EChartsOption = { tooltip: { - trigger: 'item' + trigger: 'item', }, legend: { bottom: 0, - left: 'center' + left: 'center', }, series: [ { @@ -84,42 +84,42 @@ export const ringOptions: EChartsOption = { itemStyle: { borderRadius: 10, borderColor: '#fff', - borderWidth: 2 + borderWidth: 2, }, label: { show: false, - position: 'center' + position: 'center', }, emphasis: { label: { show: true, fontSize: '12', - fontWeight: 'bold' - } + fontWeight: 'bold', + }, }, labelLine: { - show: false + show: false, }, data: [ { value: 1620, name: '直接访问' }, { value: 1169, name: '邮件营销' }, { value: 986, name: '联盟广告' }, { value: 624, name: '视频广告' }, - { value: 2758, name: '搜索引擎' } + { value: 2758, name: '搜索引擎' }, ], animationType: 'scale', animationEasing: 'exponentialInOut', - animationDelay: function () { - return Math.random() * 100 - } - } - ] -} + animationDelay() { + return Math.random() * 100; + }, + }, + ], +}; export const radarOptions: EChartsOption = { legend: { bottom: 0, - data: ['推广渠道', '广告投放', '访问来源'] + data: ['推广渠道', '广告投放', '访问来源'], }, radar: { radius: '70%', @@ -127,21 +127,21 @@ export const radarOptions: EChartsOption = { splitNumber: 8, indicator: [ { - name: '直接访问' + name: '直接访问', }, { - name: '邮件营销' + name: '邮件营销', }, { - name: '联盟广告' + name: '联盟广告', }, { - name: '视频广告' + name: '视频广告', }, { - name: '搜索引擎' - } - ] + name: '搜索引擎', + }, + ], }, series: [ { @@ -152,34 +152,34 @@ export const radarOptions: EChartsOption = { shadowColor: 'rgba(0,0,0,.2)', shadowOffsetX: 0, shadowOffsetY: 10, - opacity: 1 + opacity: 1, }, data: [ { value: [1920, 1920, 1920, 0, 0], name: '推广渠道', itemStyle: { - color: '#1890ff' - } + color: '#1890ff', + }, }, { value: [1920, 0, 0, 1920, 1920], name: '访问来源', itemStyle: { - color: '#722ed1' - } + color: '#722ed1', + }, }, { value: [920, 920, 920, 920, 920], name: '广告投放', itemStyle: { - color: '#faad14' - } - } - ] - } - ] -} + color: '#faad14', + }, + }, + ], + }, + ], +}; export const barOptions: EChartsOption = { tooltip: { @@ -187,36 +187,34 @@ export const barOptions: EChartsOption = { axisPointer: { lineStyle: { width: 1, - color: '#fa541c' - } - } + color: '#fa541c', + }, + }, }, grid: { left: 0, right: '1%', top: '2%', bottom: 0, - containLabel: true + containLabel: true, }, xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], axisTick: { - alignWithLabel: true - } + alignWithLabel: true, + }, }, yAxis: { type: 'value', - max: value => { - return Math.ceil(value.max / 100) * 100 + 300 - } + max: (value) => Math.ceil(value.max / 100) * 100 + 300, }, label: { show: true, fontSize: 14, color: '#1890ff', position: 'top', - formatter: '{c}' + formatter: '{c}', }, series: [ { @@ -224,10 +222,10 @@ export const barOptions: EChartsOption = { name: '访问量', barWidth: '40%', color: ['#1890ff'], - data: [782, 925, 1196, 812, 328, 223, 1080] - } - ] -} + data: [782, 925, 1196, 812, 328, 223, 1080], + }, + ], +}; export const lineOptions: EChartsOption = { tooltip: { @@ -235,36 +233,34 @@ export const lineOptions: EChartsOption = { axisPointer: { lineStyle: { width: 1, - color: '#fa541c' - } - } + color: '#fa541c', + }, + }, }, grid: { left: 0, right: '1%', top: '2%', bottom: 0, - containLabel: true + containLabel: true, }, xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], axisTick: { - alignWithLabel: true - } + alignWithLabel: true, + }, }, yAxis: { type: 'value', - max: value => { - return Math.ceil(value.max / 100) * 100 + 300 - } + max: (value) => Math.ceil(value.max / 100) * 100 + 300, }, label: { show: true, fontSize: 14, color: '#722ed1', position: 'top', - formatter: '{c}' + formatter: '{c}', }, series: [ { @@ -272,7 +268,7 @@ export const lineOptions: EChartsOption = { name: '访问量', color: ['#722ed1'], smooth: true, - data: [782, 925, 1196, 812, 328, 223, 1080] - } - ] -} + data: [782, 925, 1196, 812, 328, 223, 1080], + }, + ], +}; diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index 45d148c6..24ee0803 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -1,22 +1,24 @@ -import { FC, useState } from 'react' -import { Row, Col, Space } from 'antd' -import CountUpCard from './components/CountUpCard' -import ChartsCard from './components/ChartsCard' -import { countUpData, pieOptions, ringOptions, radarOptions, barOptions, lineOptions } from './data' +import { Col, Row, Space } from 'antd'; +import { FC, useState } from 'react'; + +import ChartsCard from './components/ChartsCard'; +import CountUpCard from './components/CountUpCard'; +import { + barOptions, countUpData, lineOptions, pieOptions, radarOptions, ringOptions, +} from './data'; const HomePage: FC = () => { - const [isLoading, setIsLoading] = useState(true) + const [isLoading, setIsLoading] = useState(true); - setTimeout(() => { - setIsLoading(false) - }, 1500) + setTimeout(() => { + setIsLoading(false); + }, 1500); - return ( + return ( { - countUpData.map(item => { - return ( + countUpData.map((item) => (
{ countNum={item.count} /> - ) - }) + )) } @@ -50,7 +51,7 @@ const HomePage: FC = () => { - ) -} + ); +}; -export default HomePage \ No newline at end of file +export default HomePage; diff --git a/apps/admin/src/views/image/image-cropper.tsx b/apps/admin/src/views/image/image-cropper.tsx index efb98f45..796e6618 100644 --- a/apps/admin/src/views/image/image-cropper.tsx +++ b/apps/admin/src/views/image/image-cropper.tsx @@ -1,33 +1,39 @@ -import React, { useRef, useState } from 'react' -import { Row, Col, Card, Button, Space } from 'antd' -import { PageWrapper } from '@/components/Page' -import { REACT_CROPPER_PLUGIN, CROPPER_IMG_SRC } from '@/settings/websiteSetting' -import Cropper, { ReactCropperElement } from 'react-cropper' -import 'cropperjs/dist/cropper.css' -import { downloadImgByUrl } from '@/utils/download' -import { UploadImage } from '@/components/Upload' +import { + Button, Card, Col, Row, Space, +} from 'antd'; +import React, { useRef, useState } from 'react'; +import Cropper, { ReactCropperElement } from 'react-cropper'; + +import { PageWrapper } from '@/components/Page'; +import { UploadImage } from '@/components/Upload'; + +import { downloadImgByUrl } from '@/utils/download'; + +import { CROPPER_IMG_SRC, REACT_CROPPER_PLUGIN } from '@/settings/websiteSetting'; + +import 'cropperjs/dist/cropper.css'; const ImageCropper: React.FC = () => { - const cropperRef = useRef(null) - const [imgSrc, setImgSrc] = useState(CROPPER_IMG_SRC) + const cropperRef = useRef(null); + const [imgSrc, setImgSrc] = useState(CROPPER_IMG_SRC); const handleSuccess = (data: any) => { - setImgSrc(data) - } + setImgSrc(data); + }; const downloadImage = () => { if (typeof cropperRef.current?.cropper !== 'undefined') { - const imgUrl = cropperRef.current?.cropper.getCroppedCanvas().toDataURL() - - downloadImgByUrl(imgUrl, 'demo.png') + const imgUrl = cropperRef.current?.cropper.getCroppedCanvas().toDataURL(); + + downloadImgByUrl(imgUrl, 'demo.png'); } - } + }; return ( - + { preview='.img-preview' style={{ height: '100%', - width: '100%' + width: '100%', }} /> -
+
@@ -55,20 +61,20 @@ const ImageCropper: React.FC = () => {
- +
- ) -} + ); +}; -export default ImageCropper \ No newline at end of file +export default ImageCropper; diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx index 977a42bd..6beca9ff 100644 --- a/apps/admin/src/views/login/index.tsx +++ b/apps/admin/src/views/login/index.tsx @@ -1,95 +1,98 @@ -import type { FormInstance } from 'antd/es/form' -import type { LoginParams, UserInfo } from '@/types' -import { FC, useRef, useState } from 'react' -import { useNavigate, useSearchParams } from 'react-router-dom' -import { Form, Input, Checkbox, Button, message } from 'antd' -import { UserOutlined, LockOutlined } from '@ant-design/icons' -import { useAppSelector, useAppDispatch } from '@/stores' -import { setToken, setUserInfo, setSessionTimeout } from '@/stores/modules/user' -import { getAuthCache } from '@/utils/auth' -import { TOKEN_KEY } from '@/enums/cacheEnum' -import { loginApi, getUserInfo } from '@/api' -import logoIcon from '@/assets/images/logo_name.png' -import classNames from 'classnames' -import './index.less' +import { LockOutlined, UserOutlined } from '@ant-design/icons'; +import { + Button, Checkbox, Form, Input, message, +} from 'antd'; +import classNames from 'classnames'; +import { FC, useRef, useState } from 'react'; +import { useNavigate, useSearchParams } from 'react-router-dom'; +import './index.less'; + +import { getAuthCache } from '@/utils/auth'; + +import { getUserInfo, loginApi } from '@/api'; +import logoIcon from '@/assets/images/logo_name.png'; +import { TOKEN_KEY } from '@/enums/cacheEnum'; +import { useAppDispatch, useAppSelector } from '@/stores'; +import { setSessionTimeout, setToken, setUserInfo } from '@/stores/modules/user'; + +import type { LoginParams, UserInfo } from '@/types'; +import type { FormInstance } from 'antd/es/form'; const LoginPage: FC = () => { - const [form] = Form.useForm() - const loginFormRef = useRef(null) - const [loading, setLoading] = useState(false) + const [form] = Form.useForm(); + const loginFormRef = useRef(null); + const [loading, setLoading] = useState(false); - const dispatch = useAppDispatch() + const dispatch = useAppDispatch(); - const { token, sessionTimeout } = useAppSelector(state => state.user) - const getToken = (): string => { - return token || getAuthCache(TOKEN_KEY) - } + const { token, sessionTimeout } = useAppSelector((state) => state.user); + const getToken = (): string => token || getAuthCache(TOKEN_KEY); - const navigate = useNavigate() - const [searchParams] = useSearchParams() + const navigate = useNavigate(); + const [searchParams] = useSearchParams(); const handleLogin = async (values: any) => { try { - setLoading(true) + setLoading(true); const userInfo = await loginAction({ username: values.username, - password: values.password - }) + password: values.password, + }); if (userInfo) { - message.success('登陆成功!') + message.success('登陆成功!'); } } catch (error) { - message.error((error as unknown as Error).message) + message.error((error as unknown as Error).message); } finally { - setLoading(false) + setLoading(false); } - } + }; const loginAction = async ( params: LoginParams & { goHome?: boolean - } + }, ): Promise => { try { - const { goHome = true, ...loginParams } = params - const data = await loginApi(loginParams) + const { goHome = true, ...loginParams } = params; + const data = await loginApi(loginParams); // 保存 Token - dispatch(setToken(data?.token)) - return afterLoginAction(goHome) + dispatch(setToken(data?.token)); + return await afterLoginAction(goHome); } catch (error) { - return Promise.reject(error) + return Promise.reject(error); } - } + }; const afterLoginAction = async (goHome?: boolean): Promise => { - if (!getToken()) return null + if (!getToken()) return null; - const userInfo = await getUserInfoAction() + const userInfo = await getUserInfoAction(); if (sessionTimeout) { - dispatch(setSessionTimeout(false)) + dispatch(setSessionTimeout(false)); } else { - const redirect = searchParams.get('redirect') + const redirect = searchParams.get('redirect'); if (redirect) { - navigate(redirect) + navigate(redirect); } else { - goHome && navigate(userInfo?.homePath || '/home') + goHome && navigate(userInfo?.homePath || '/home'); } } - return userInfo - } + return userInfo; + }; const getUserInfoAction = async (): Promise => { - if (!getToken()) return null + if (!getToken()) return null; - const userInfo = await getUserInfo() + const userInfo = await getUserInfo(); - dispatch(setUserInfo(userInfo)) + dispatch(setUserInfo(userInfo)); - return userInfo - } + return userInfo; + }; return (
@@ -104,7 +107,7 @@ const LoginPage: FC = () => { initialValues={{ username: 'admin', password: '123456', - remember: true + remember: true, }} className='login-box-form' onFinish={handleLogin} @@ -138,7 +141,7 @@ const LoginPage: FC = () => {
- ) -} + ); +}; -export default LoginPage +export default LoginPage; diff --git a/apps/admin/src/views/table/table-basic/index.tsx b/apps/admin/src/views/table/table-basic/index.tsx index 708a0a8f..fa182f01 100644 --- a/apps/admin/src/views/table/table-basic/index.tsx +++ b/apps/admin/src/views/table/table-basic/index.tsx @@ -1,32 +1,37 @@ -import type { ColumnsType } from 'antd/es/table' -import { FC, useState, useEffect } from 'react' -import { Card, Button, Table, Tag, Select, Switch, Popover, Space, Modal, TableProps } from 'antd' -import { ExclamationCircleOutlined } from '@ant-design/icons' -import { TABLE_COMPO } from '@/settings/websiteSetting' -import { getTableList } from '@/api' -import { PageWrapper } from '@/components/Page' -import { APIResult, PageState, TableDataType } from './types' +import { ExclamationCircleOutlined } from '@ant-design/icons'; +import { + Button, Card, Modal, Popover, Select, Space, Switch, Table, TableProps, Tag, +} from 'antd'; +import { FC, useEffect, useState } from 'react'; + +import { PageWrapper } from '@/components/Page'; + +import { getTableList } from '@/api'; +import { TABLE_COMPO } from '@/settings/websiteSetting'; + +import { APIResult, PageState, TableDataType } from './types'; + +import type { ColumnsType } from 'antd/es/table'; const marriedOptions = [ { label: '单身', value: 0 }, { label: '未婚', value: 1 }, { label: '已婚', value: 2 }, - { label: '离异', value: 3 } -] + { label: '离异', value: 3 }, +]; const TableBasic: FC = () => { - - const [tableLoading, setTableLoading] = useState(false) - const [tableData, setTableData] = useState([]) - const [tableTotal, setTableTotal] = useState(0) - const [tableQuery, setTableQuery] = useState({ current: 1, pageSize: 10 }) + const [tableLoading, setTableLoading] = useState(false); + const [tableData, setTableData] = useState([]); + const [tableTotal, setTableTotal] = useState(0); + const [tableQuery, setTableQuery] = useState({ current: 1, pageSize: 10 }); const columns: ColumnsType = [ { title: '编号', dataIndex: 'id', align: 'center', - sorter: true + sorter: true, }, { title: '姓名', @@ -39,28 +44,28 @@ const TableBasic: FC = () => {

手机: {record.phone}

爱好: {record.hobby.join('、')}

- ) + ); return ( {record.name} - ) - } + ); + }, }, { title: '性别', dataIndex: 'sex', - align: 'center' + align: 'center', }, { title: '手机', dataIndex: 'phone', - align: 'center' + align: 'center', }, { title: '学历', dataIndex: 'education', - align: 'center' + align: 'center', }, { title: '婚姻状况', @@ -72,7 +77,7 @@ const TableBasic: FC = () => { defaultValue={record.married} onChange={(value) => record.married = value} /> - ) + ), }, { title: '禁止编辑', @@ -83,7 +88,7 @@ const TableBasic: FC = () => { defaultChecked={record.forbid} onChange={(checked) => record.forbid = checked} /> - ) + ), }, { title: '爱好', @@ -91,7 +96,7 @@ const TableBasic: FC = () => { align: 'center', render: (_, record: any) => ( {record.hobby.join('、')} - ) + ), }, { title: '操作', @@ -102,31 +107,31 @@ const TableBasic: FC = () => { - ) - } - ] + ), + }, + ]; const tableSelection: TableProps['rowSelection'] = { onChange: (selectedRowKeys: any[]) => { - console.log(selectedRowKeys) - } - } + console.log(selectedRowKeys); + }, + }; useEffect(() => { - fetchData() - }, [tableQuery]) + fetchData(); + }, [tableQuery]); async function fetchData() { - setTableLoading(true) - const data = await getTableList(tableQuery) - const { list, total } = data as unknown as APIResult - setTableData(list) - setTableTotal(total) - setTableLoading(false) + setTableLoading(true); + const data = await getTableList(tableQuery); + const { list, total } = data as unknown as APIResult; + setTableData(list); + setTableTotal(total); + setTableLoading(false); } function handlePageChange(page: number, pageSize: number) { - setTableQuery({ ...tableQuery, current: page, pageSize }) + setTableQuery({ ...tableQuery, current: page, pageSize }); } function handleDelete() { @@ -137,12 +142,12 @@ const TableBasic: FC = () => { okText: '确定', cancelText: '取消', onOk() { - console.log('OK') + console.log('OK'); }, onCancel() { - console.log('Cancel') - } - }) + console.log('Cancel'); + }, + }); } return ( @@ -161,12 +166,12 @@ const TableBasic: FC = () => { showTotal: () => `Total ${tableTotal} items`, showSizeChanger: true, showQuickJumper: true, - onChange: handlePageChange + onChange: handlePageChange, }} />
- ) -} + ); +}; -export default TableBasic \ No newline at end of file +export default TableBasic; diff --git a/apps/admin/src/views/table/table-basic/types.ts b/apps/admin/src/views/table/table-basic/types.ts index 6b82581a..ce094fcb 100644 --- a/apps/admin/src/views/table/table-basic/types.ts +++ b/apps/admin/src/views/table/table-basic/types.ts @@ -17,4 +17,4 @@ export interface TableDataType { married: number forbid: boolean hobby: string[] -} \ No newline at end of file +} diff --git a/apps/admin/src/views/table/table-edit-row/data.ts b/apps/admin/src/views/table/table-edit-row/data.ts index d76a136c..f467e19b 100644 --- a/apps/admin/src/views/table/table-edit-row/data.ts +++ b/apps/admin/src/views/table/table-edit-row/data.ts @@ -16,7 +16,7 @@ export const tableData: DataItem[] = [ birth: '2002-05-06', education: '高中', hobby: '羽毛球、篮球、听歌、阅读', - forbid: false + forbid: false, }, { key: '1002', @@ -25,7 +25,7 @@ export const tableData: DataItem[] = [ birth: '1998-09-21', education: '初中', hobby: '乒乓球、排球、游泳', - forbid: true + forbid: true, }, { key: '1003', @@ -34,7 +34,7 @@ export const tableData: DataItem[] = [ birth: '1993-06-06', education: '本科', hobby: '旱冰、滑雪、跳高、打游戏', - forbid: false + forbid: false, }, { key: '1004', @@ -43,7 +43,7 @@ export const tableData: DataItem[] = [ birth: '1995-08-03', education: '大专', hobby: '网球、篮球、跳伞', - forbid: true + forbid: true, }, { key: '1005', @@ -52,7 +52,7 @@ export const tableData: DataItem[] = [ birth: '1999-11-05', education: '本科', hobby: '滑翔、游泳、篮球、看电影', - forbid: true + forbid: true, }, { key: '1006', @@ -61,7 +61,7 @@ export const tableData: DataItem[] = [ birth: '2000-07-18', education: '大专', hobby: '游泳、篮球、潜水', - forbid: false + forbid: false, }, { key: '1007', @@ -70,6 +70,6 @@ export const tableData: DataItem[] = [ birth: '1998-12-25', education: '高中', hobby: '冲浪、上网、看书、打游戏', - forbid: false - } -] + forbid: false, + }, +]; diff --git a/apps/admin/src/views/table/table-edit-row/index.tsx b/apps/admin/src/views/table/table-edit-row/index.tsx index f66764dd..c22471ad 100644 --- a/apps/admin/src/views/table/table-edit-row/index.tsx +++ b/apps/admin/src/views/table/table-edit-row/index.tsx @@ -1,12 +1,17 @@ -import React, { useState } from 'react' -import { Form, Button, Table, Select, Switch, InputNumber, Input, DatePicker, Radio, Checkbox, Card, Popconfirm, Space } from 'antd' -import { ColumnType } from 'antd/es/table' -import { PageWrapper } from '@/components/Page' -import dayjs from 'dayjs' -import { TABLE_EDIT_COMPO } from '@/settings/websiteSetting' -import { tableData, DataItem } from './data' +import { + Button, Card, Checkbox, DatePicker, Form, Input, InputNumber, Popconfirm, Radio, Select, Space, Switch, Table, +} from 'antd'; +import { ColumnType } from 'antd/es/table'; +import dayjs from 'dayjs'; +import React, { useState } from 'react'; -type CellType = 'number' | 'text' | 'radio' | 'date' | 'select' | 'checkbox' | 'switch' +import { PageWrapper } from '@/components/Page'; + +import { TABLE_EDIT_COMPO } from '@/settings/websiteSetting'; + +import { DataItem, tableData } from './data'; + +type CellType = 'number' | 'text' | 'radio' | 'date' | 'select' | 'checkbox' | 'switch'; interface EditableCellProps extends React.HTMLAttributes { editing: boolean @@ -18,7 +23,7 @@ interface EditableCellProps extends React.HTMLAttributes { children: React.ReactNode } -type theadKey = Record +type theadKey = Record; const theadMap: theadKey = { key: { title: '数字输入框', type: 'number' }, name: { title: '输入框', type: 'text' }, @@ -27,27 +32,27 @@ const theadMap: theadKey = { education: { title: '选择器', type: 'select' }, hobby: { title: '多选框', type: 'checkbox' }, forbid: { title: '开关', type: 'switch' }, - action: { title: '按钮', type: 'button' } -} + action: { title: '按钮', type: 'button' }, +}; const nodeType = (type: CellType, record: DataItem) => { switch (type) { case 'number': - return + return ; case 'text': - return + return ; case 'radio': - return ({value: item, label: item}))} /> + return ({ value: item, label: item }))} />; case 'date': - return
+ return
; case 'select': - return ({ value: item }))} style={{ width: '80px' }} />; case 'checkbox': - return + return ; case 'switch': - return + return ; } -} +}; const EditableCell: React.FC = ({ editing, @@ -59,7 +64,7 @@ const EditableCell: React.FC = ({ children, ...restProps }) => { - const cellNode = nodeType(cellType, record) + const cellNode = nodeType(cellType, record); return (
- ) -} + ); +}; const TableEditRow: React.FC = () => { + const [form] = Form.useForm(); + const [data, setData] = useState(tableData); + const [editingKey, setEditingKey] = useState(''); - const [form] = Form.useForm() - const [data, setData] = useState(tableData) - const [editingKey, setEditingKey] = useState('') - - const isEditing = (record: DataItem) => record.key === editingKey + const isEditing = (record: DataItem) => record.key === editingKey; const edit = (record: Partial) => { - form.setFieldsValue({ ...record }) - setEditingKey(record.key!) - } + form.setFieldsValue({ ...record }); + setEditingKey(record.key!); + }; const cancel = () => { - setEditingKey('') - } + setEditingKey(''); + }; const save = async (key: React.Key) => { try { - const row = (await form.validateFields()) as DataItem + const row = (await form.validateFields()) as DataItem; - const newData = [...data] - const index = newData.findIndex((item) => key === item.key) + const newData = [...data]; + const index = newData.findIndex((item) => key === item.key); if (index > -1) { - const item = newData[index] + const item = newData[index]; newData.splice(index, 1, { ...item, - ...row - }) - setData(newData) - setEditingKey('') + ...row, + }); + setData(newData); + setEditingKey(''); } else { - newData.push(row) - setData(newData) - setEditingKey('') + newData.push(row); + setData(newData); + setEditingKey(''); } } catch (errInfo) { console.log('Validate Failed:', errInfo); } - } + }; // @ts-ignore const columns: ColumnType[] = [ { - title: () => { - return ( + title: () => ( <> 编号

(数字输入框)

- ) - }, + ), dataIndex: 'key', width: 70, editable: true, - align: 'center' + align: 'center', }, { - title: () => { - return ( + title: () => ( <> 姓名

(输入框)

- ) - }, + ), dataIndex: 'name', width: 110, editable: true, - align: 'center' + align: 'center', }, { - title: () => { - return ( + title: () => ( <> 性别

(单选框)

- ) - }, + ), dataIndex: 'sex', width: 120, editable: true, - align: 'center' + align: 'center', }, { - title: () => { - return ( + title: () => ( <> 生日

(日期选择器)

- ) - }, + ), dataIndex: 'birth', width: 140, editable: true, - align: 'center' + align: 'center', }, { - title: () => { - return ( + title: () => ( <> 学历

(选择器)

- ) - }, + ), dataIndex: 'education', width: 80, editable: true, - align: 'center' + align: 'center', }, { - title: () => { - return ( + title: () => ( <> 爱好

(多选框)

- ) - }, + ), dataIndex: 'hobby', width: 250, editable: true, - align: 'center' + align: 'center', }, { - title: () => { - return ( + title: () => ( <> 禁止编辑

(开关)

- ) - }, + ), dataIndex: 'forbid', width: 70, editable: true, align: 'center', - render: (text: string, record: DataItem) => { - return ( + render: (text: string, record: DataItem) => ( {record.forbid ? '是' : '否'} - ) - } + ), }, { - title: () => { - return ( + title: () => ( <> 操作

(按钮)

- ) - }, + ), dataIndex: 'action', width: 70, align: 'center', - render: (_: any, record: DataItem) => { - const editable = isEditing(record) + render: (_: any, record: DataItem) => { + const editable = isEditing(record); return editable ? ( - ) - } - } - ] + ); + }, + }, + ]; const mergedColumns = columns.map((col) => { if (!col.editable) { - return col + return col; } return { ...col, @@ -277,10 +263,10 @@ const TableEditRow: React.FC = () => { cellType: theadMap[col.dataIndex].type, dataIndex: col.dataIndex, title: col.title, - editing: isEditing(record) - }) - } - }) + editing: isEditing(record), + }), + }; + }); return ( @@ -289,8 +275,8 @@ const TableEditRow: React.FC = () => {
@@ -74,170 +79,151 @@ const EditableCell: React.FC = ({ children )}
{ - ) -} + ); +}; -export default TableEditRow \ No newline at end of file +export default TableEditRow; diff --git a/apps/admin/src/views/tree/antd-tree/data.ts b/apps/admin/src/views/tree/antd-tree/data.ts index a599f8b0..5ba27ece 100644 --- a/apps/admin/src/views/tree/antd-tree/data.ts +++ b/apps/admin/src/views/tree/antd-tree/data.ts @@ -6,43 +6,42 @@ export const treeData = [{ title: '二级 1-1', children: [{ key: '1-1-1', - title: '三级 1-1-1' + title: '三级 1-1-1', }, { key: '1-1-2', - title: '三级 1-1-2' - }] - }] + title: '三级 1-1-2', + }], + }], }, { key: '2-0', title: '一级 2', children: [{ key: '2-1', - title: '二级 2-1' + title: '二级 2-1', }, { - key:'2-2', + key: '2-2', title: '二级 2-2', - disabled: true - }] + disabled: true, + }], }, { key: '3-0', title: '一级 3', children: [{ key: '3-1', - title: '二级 3-1' + title: '二级 3-1', }, { key: '3-2', title: '二级 3-2', children: [{ key: '3-2-1', title: '三级 3-2-1', - disableCheckbox: true + disableCheckbox: true, }, { key: '3-2-2', - title: '三级 3-2-2' + title: '三级 3-2-2', }, { key: '3-2-3', - title: '三级 3-2-3' - }] - }] -}] - + title: '三级 3-2-3', + }], + }], +}]; diff --git a/apps/admin/src/views/tree/antd-tree/index.tsx b/apps/admin/src/views/tree/antd-tree/index.tsx index 928fcf55..e909a2ea 100644 --- a/apps/admin/src/views/tree/antd-tree/index.tsx +++ b/apps/admin/src/views/tree/antd-tree/index.tsx @@ -1,8 +1,13 @@ -import { useState } from 'react' -import { Row, Col, Card, Tree } from 'antd' -import { TREE_COMPO } from '@/settings/websiteSetting' -import { PageWrapper } from '@/components/Page' -import { treeData } from './data' +import { + Card, Col, Row, Tree, +} from 'antd'; +import { useState } from 'react'; + +import { PageWrapper } from '@/components/Page'; + +import { TREE_COMPO } from '@/settings/websiteSetting'; + +import { treeData } from './data'; interface DataNode { title: string; @@ -14,27 +19,27 @@ interface DataNode { const initTreeData: DataNode[] = [ { title: 'Expand to load', key: '0' }, { title: 'Expand to load', key: '1' }, - { title: 'Tree Node', key: '2', isLeaf: true } -] + { title: 'Tree Node', key: '2', isLeaf: true }, +]; const AntdTree = () => { - const [lazyTreeData, setLazyTreeData] = useState(initTreeData) + const [lazyTreeData, setLazyTreeData] = useState(initTreeData); function handleLoadData(treeNode: any) { - return new Promise(resolve => { + return new Promise((resolve) => { if (treeNode.dataRef.children) { - resolve() - return + resolve(); + return; } setTimeout(() => { treeNode.dataRef.children = [ { title: 'Child Node', key: `${treeNode.eventKey}-0` }, - { title: 'Child Node', key: `${treeNode.eventKey}-1` } - ] - setLazyTreeData([...lazyTreeData]) - resolve() - }, 1000) - }) + { title: 'Child Node', key: `${treeNode.eventKey}-1` }, + ]; + setLazyTreeData([...lazyTreeData]); + resolve(); + }, 1000); + }); } function handleDrop() {} @@ -43,7 +48,7 @@ const AntdTree = () => { - + { - + { - + { - ) -} + ); +}; -export default AntdTree \ No newline at end of file +export default AntdTree; diff --git a/apps/admin/src/views/tree/org-tree/data.ts b/apps/admin/src/views/tree/org-tree/data.ts index 0f1dda3a..73c02041 100644 --- a/apps/admin/src/views/tree/org-tree/data.ts +++ b/apps/admin/src/views/tree/org-tree/data.ts @@ -10,25 +10,25 @@ export const data = { { id: 5, pid: 2, - label: '产品经理' + label: '产品经理', }, { id: 6, pid: 2, - label: 'UI设计' + label: 'UI设计', }, { id: 9, pid: 2, - label: '研发-前端' + label: '研发-前端', }, { id: 10, pid: 2, - label: '研发-后端' + label: '研发-后端', }, { id: 12, pid: 2, - label: '测试' - } - ] + label: '测试', + }, + ], }, { id: 3, @@ -43,36 +43,36 @@ export const data = { { id: 14, pid: 7, - label: '售前' + label: '售前', }, { id: 15, pid: 7, - label: '售后' + label: '售后', }, { id: 16, pid: 7, - label: '客服' - } - ] + label: '客服', + }, + ], }, { id: 8, pid: 3, - label: '销售二部' + label: '销售二部', }, { id: 13, pid: 3, - label: '销售三部' - } - ] + label: '销售三部', + }, + ], }, { id: 4, pid: 1, - label: '财务部' + label: '财务部', }, { id: 11, pid: 1, - label: 'HR人事' - } - ] -} + label: 'HR人事', + }, + ], +}; diff --git a/apps/admin/src/views/tree/org-tree/index.tsx b/apps/admin/src/views/tree/org-tree/index.tsx index 4a11358a..9b38c997 100644 --- a/apps/admin/src/views/tree/org-tree/index.tsx +++ b/apps/admin/src/views/tree/org-tree/index.tsx @@ -1,29 +1,34 @@ -import { FC, useState } from 'react' -import { Card, Form, Radio, Switch } from 'antd' -import { PageWrapper } from '@/components/Page' -import { React_TREE_ORG_PLUGIN } from '@/settings/websiteSetting' -import OrgTree from 'react-org-tree' -import { data } from './data' +import { + Card, Form, Radio, Switch, +} from 'antd'; +import { FC, useState } from 'react'; +import OrgTree from 'react-org-tree'; + +import { PageWrapper } from '@/components/Page'; + +import { React_TREE_ORG_PLUGIN } from '@/settings/websiteSetting'; + +import { data } from './data'; const OrgTreePage: FC = () => { - const [form] = Form.useForm() + const [form] = Form.useForm(); const [config, setConfig] = useState({ horizontal: false, - expandAll: true - }) + expandAll: true, + }); const onValuesChange = (values: any) => { - console.log('values', values) - setConfig({...config, ...values}) - } + console.log('values', values); + setConfig({ ...config, ...values }); + }; return ( - +
{ -
+
{
- ) -} + ); +}; -export default OrgTreePage \ No newline at end of file +export default OrgTreePage; diff --git a/apps/admin/src/views/video/video-player.tsx b/apps/admin/src/views/video/video-player.tsx index a3423632..4e3945f3 100644 --- a/apps/admin/src/views/video/video-player.tsx +++ b/apps/admin/src/views/video/video-player.tsx @@ -1,23 +1,25 @@ - // @ts-nocheck -import { Row, Col, Card } from 'antd' -import { PageWrapper } from '@/components/Page' -import { VIDEO_RES_SRC, VIDEO_PLUGIN } from '@/settings/websiteSetting' -import { Player, ControlBar, BigPlayButton, CurrentTimeDisplay, TimeDivider, - PlaybackRateMenuButton, VolumeMenuButton } from 'video-react' -import 'video-react/dist/video-react.css' +import { Card, Col, Row } from 'antd'; +import { + BigPlayButton, ControlBar, CurrentTimeDisplay, PlaybackRateMenuButton, Player, TimeDivider, + VolumeMenuButton, +} from 'video-react'; + +import { PageWrapper } from '@/components/Page'; + +import { VIDEO_PLUGIN, VIDEO_RES_SRC } from '@/settings/websiteSetting'; -const VideoPlayers = () => { +import 'video-react/dist/video-react.css'; - return ( +const VideoPlayers = () => (
- @@ -41,7 +43,6 @@ const VideoPlayers = () => { - ) -} +); -export default VideoPlayers \ No newline at end of file +export default VideoPlayers; diff --git a/package.json b/package.json index 43259e1c..d1409e33 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,6 @@ "@changesets/cli": "^2.27.1", "@commitlint/cli": "^18.4.3", "@commitlint/config-conventional": "^18.4.3", - "@gbeata/config-eslint": "workspace:^", "@semantic-release/changelog": "^6.0.3", "@semantic-release/git": "^10.0.1", "@semantic-release/github": "^9.2.5", @@ -42,11 +41,11 @@ "commitizen": "^4.3.0", "cz-conventional-changelog": "^3.3.0", "cz-git": "^1.8.0", - "eslint": "^8.55.0", "husky": "^8.0.3", "prettier": "^3.1.0", "semantic-release": "^22.0.12", - "turbo": "^1.11.0" + "turbo": "^1.11.0", + "eslint": "^8.54.0" }, "dependencies": { "@ant-design/icons": "^5.2.6", diff --git a/packages/config-eslint/index.js b/packages/config-eslint/index.js new file mode 100644 index 00000000..957ffbf5 --- /dev/null +++ b/packages/config-eslint/index.js @@ -0,0 +1,44 @@ +/** @type {import('eslint').Linter.Config} */ +module.exports = { + plugins: ["simple-import-sort"], + extends: ["airbnb-base", "airbnb-typescript/base"], + rules: { + "import/extensions": "off", + "import/order": "off", + "import/prefer-default-export": "off", + "simple-import-sort/exports": "warn", + "simple-import-sort/imports": [ + "warn", + { + groups: [ + // Packages and side effect imports. + ["^@?\\w", "^\\u0000"], + // Components and providers. + ["^@/components", "^@/providers"], + // Hooks + ["^@/hooks"], + // Utils, helpers, and lib + ["^@/utils", "^@/helpers", "^@/lib"], + // Other absolute imports. + ["^@/"], + // Relative imports. + ["^\\."], + // Import type and types. + ["^.*\\u0000$", "^@/types"], + // Styles. + ["^.+\\.s?css$"], + // Anything not matched in another group. + ["^"], + ], + }, + ], + }, + ignorePatterns: [ + ".next", + ".turbo", + "node_modules", + "**/*.js", + "**/*.mjs", + "**/*.jsx", + ], +}; diff --git a/packages/config-eslint/index.ts b/packages/config-eslint/index.ts deleted file mode 100644 index 1665a1ad..00000000 --- a/packages/config-eslint/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - env: { - node: true, - }, - parser: "@typescript-eslint/parser", - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "prettier", - ], - plugins: ["@typescript-eslint"], - parserOptions: { - ecmaVersion: 2020, - sourceType: "module", - }, - rules: { - "@typescript-eslint/no-var-requires": "off", - "@typescript-eslint/no-non-null-assertion": "off", - }, -}; diff --git a/packages/config-eslint/package.json b/packages/config-eslint/package.json index dfd7f0b0..60f4894e 100644 --- a/packages/config-eslint/package.json +++ b/packages/config-eslint/package.json @@ -1,5 +1,5 @@ { - "name": "@gbeata/config-eslint", + "name": "eslint-config-gbeata-eslint", "version": "0.0.0", "description": "", "main": "index.js", @@ -8,9 +8,12 @@ "license": "MIT", "private": true, "dependencies": { - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.2", - "eslint-config-prettier": "^9.1.0" + "@typescript-eslint/eslint-plugin": "^5.47.1", + "@typescript-eslint/parser": "^5.47.1", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-plugin-simple-import-sort": "^8.0.0", + "prettier": "^3.1.1" }, "publishConfig": { "access": "public" diff --git a/packages/gbeata/package.json b/packages/gbeata/package.json index 86700c15..0e06e070 100644 --- a/packages/gbeata/package.json +++ b/packages/gbeata/package.json @@ -28,9 +28,6 @@ "dev": "dumi dev", "docs:build": "dumi build", "doctor": "father doctor", - "lint": "npm run lint:es && npm run lint:css", - "lint:css": "stylelint \"{src,test}/**/*.{css,less}\"", - "lint:es": "eslint \"{src,test}/**/*.{js,jsx,ts,tsx}\"", "prepublishOnly": "father doctor && npm run build", "release": "npm run build && npm publish --access public --force", "start": "npm run dev" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2078184e..2fdb1a6c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,9 +27,6 @@ importers: '@commitlint/config-conventional': specifier: ^18.4.3 version: registry.npmmirror.com/@commitlint/config-conventional@18.4.3 - '@gbeata/config-eslint': - specifier: workspace:^ - version: link:packages/config-eslint '@semantic-release/changelog': specifier: ^6.0.3 version: registry.npmmirror.com/@semantic-release/changelog@6.0.3(semantic-release@22.0.12) @@ -55,7 +52,7 @@ importers: specifier: ^1.8.0 version: registry.npmmirror.com/cz-git@1.8.0 eslint: - specifier: ^8.55.0 + specifier: ^8.54.0 version: registry.npmmirror.com/eslint@8.55.0 husky: specifier: ^8.0.3 @@ -70,17 +67,225 @@ importers: specifier: ^1.11.0 version: registry.npmmirror.com/turbo@1.11.2 + apps/admin: + dependencies: + '@ant-design/icons': + specifier: ^5.2.6 + version: registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@codemirror/view': + specifier: ^6.22.0 + version: registry.npmmirror.com/@codemirror/view@6.22.3 + '@reduxjs/toolkit': + specifier: ^2.0.1 + version: registry.npmmirror.com/@reduxjs/toolkit@2.0.1(react-redux@8.1.3)(react@18.2.0) + '@uiw/react-codemirror': + specifier: ^4.21.20 + version: registry.npmmirror.com/@uiw/react-codemirror@4.21.21(@babel/runtime@7.23.6)(@codemirror/autocomplete@6.11.1)(@codemirror/language@6.9.3)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.3.3)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.22.3)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) + '@uiw/react-md-editor': + specifier: ^3.25.6 + version: registry.npmmirror.com/@uiw/react-md-editor@3.25.6(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + '@wangeditor/editor': + specifier: ^5.1.23 + version: registry.npmmirror.com/@wangeditor/editor@5.1.23 + ahooks: + specifier: ^3.7.8 + version: registry.npmmirror.com/ahooks@3.7.8(react@18.2.0) + antd: + specifier: ^5.11.2 + version: registry.npmmirror.com/antd@5.12.2(react-dom@18.2.0)(react@18.2.0) + axios: + specifier: ^1.6.2 + version: registry.npmmirror.com/axios@1.6.2 + classnames: + specifier: ^2.3.2 + version: registry.npmmirror.com/classnames@2.3.2 + cropperjs: + specifier: ^1.6.1 + version: registry.npmmirror.com/cropperjs@1.6.1 + crypto-js: + specifier: ^4.2.0 + version: registry.npmmirror.com/crypto-js@4.2.0 + dayjs: + specifier: ^1.11.10 + version: registry.npmmirror.com/dayjs@1.11.10 + echarts: + specifier: ^5.4.3 + version: registry.npmmirror.com/echarts@5.4.3 + file-saver: + specifier: ^2.0.5 + version: registry.npmmirror.com/file-saver@2.0.5 + gbeata: + specifier: ^1.2.5 + version: link:../../packages/gbeata + immer: + specifier: ^10.0.3 + version: registry.npmmirror.com/immer@10.0.3 + lodash-es: + specifier: ^4.17.21 + version: registry.npmmirror.com/lodash-es@4.17.21 + mockjs: + specifier: ^1.1.0 + version: registry.npmmirror.com/mockjs@1.1.0 + react: + specifier: ^18.2.0 + version: registry.npmmirror.com/react@18.2.0 + react-countup: + specifier: ^6.5.0 + version: registry.npmmirror.com/react-countup@6.5.0(react@18.2.0) + react-cropper: + specifier: ^2.3.3 + version: registry.npmmirror.com/react-cropper@2.3.3(react@18.2.0) + react-dom: + specifier: ^18.2.0 + version: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + react-org-tree: + specifier: ^1.0.1 + version: registry.npmmirror.com/react-org-tree@1.0.1 + react-redux: + specifier: ^8.1.3 + version: registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + react-rnd: + specifier: ^10.4.1 + version: registry.npmmirror.com/react-rnd@10.4.1(react-dom@18.2.0)(react@18.2.0) + react-router-dom: + specifier: ^6.19.0 + version: registry.npmmirror.com/react-router-dom@6.21.0(react-dom@18.2.0)(react@18.2.0) + react-sortablejs: + specifier: ^6.1.4 + version: registry.npmmirror.com/react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.1) + redux: + specifier: ^4.2.1 + version: registry.npmmirror.com/redux@4.2.1 + redux-persist: + specifier: ^6.0.0 + version: registry.npmmirror.com/redux-persist@6.0.0(react@18.2.0)(redux@4.2.1) + sortablejs: + specifier: ^1.15.0 + version: registry.npmmirror.com/sortablejs@1.15.1 + use-immer: + specifier: ^0.9.0 + version: registry.npmmirror.com/use-immer@0.9.0(immer@10.0.3)(react@18.2.0) + video-react: + specifier: ^0.16.0 + version: registry.npmmirror.com/video-react@0.16.0(react-dom@18.2.0)(react@18.2.0) + xlsx: + specifier: ^0.18.5 + version: registry.npmmirror.com/xlsx@0.18.5 + devDependencies: + '@babel/core': + specifier: ^7.23.3 + version: registry.npmmirror.com/@babel/core@7.23.6 + '@commitlint/cli': + specifier: ^18.4.3 + version: registry.npmmirror.com/@commitlint/cli@18.4.3(typescript@5.3.3) + '@commitlint/config-conventional': + specifier: ^18.4.3 + version: registry.npmmirror.com/@commitlint/config-conventional@18.4.3 + '@types/crypto-js': + specifier: ^4.2.1 + version: registry.npmmirror.com/@types/crypto-js@4.2.1 + '@types/file-saver': + specifier: ^2.0.7 + version: registry.npmmirror.com/@types/file-saver@2.0.7 + '@types/lodash-es': + specifier: ^4.17.11 + version: registry.npmmirror.com/@types/lodash-es@4.17.12 + '@types/node': + specifier: ^20.9.2 + version: registry.npmmirror.com/@types/node@20.10.4 + '@types/react': + specifier: ^18.2.37 + version: registry.npmmirror.com/@types/react@18.2.45 + '@types/react-dom': + specifier: ^18.2.15 + version: registry.npmmirror.com/@types/react-dom@18.2.17 + '@types/sortablejs': + specifier: ^1.15.5 + version: registry.npmmirror.com/@types/sortablejs@1.15.7 + '@types/video-react': + specifier: ^0.15.4 + version: registry.npmmirror.com/@types/video-react@0.15.5 + '@vitejs/plugin-react': + specifier: ^4.2.0 + version: registry.npmmirror.com/@vitejs/plugin-react@4.2.1(vite@4.5.0) + autoprefixer: + specifier: ^10.4.16 + version: registry.npmmirror.com/autoprefixer@10.4.16(postcss@8.4.32) + commitizen: + specifier: ^4.3.0 + version: registry.npmmirror.com/commitizen@4.3.0(typescript@5.3.3) + cssnano: + specifier: ^6.0.1 + version: registry.npmmirror.com/cssnano@6.0.2(postcss@8.4.32) + cz-git: + specifier: ^1.7.1 + version: registry.npmmirror.com/cz-git@1.8.0 + esbuild: + specifier: ^0.19.6 + version: registry.npmmirror.com/esbuild@0.19.9 + eslint-config-gbeata-eslint: + specifier: workspace:^ + version: link:../../packages/config-eslint + fast-glob: + specifier: ^3.3.2 + version: registry.npmmirror.com/fast-glob@3.3.2 + less: + specifier: ^4.2.0 + version: registry.npmmirror.com/less@4.2.0 + lint-staged: + specifier: ^15.1.0 + version: registry.npmmirror.com/lint-staged@15.2.0 + postcss: + specifier: ^8.4.31 + version: registry.npmmirror.com/postcss@8.4.32 + prettier: + specifier: ^3.1.0 + version: registry.npmmirror.com/prettier@3.1.1 + rimraf: + specifier: ^5.0.5 + version: registry.npmmirror.com/rimraf@5.0.5 + rollup: + specifier: ^4.5.1 + version: registry.npmmirror.com/rollup@4.9.0 + terser: + specifier: ^5.24.0 + version: registry.npmmirror.com/terser@5.26.0 + typescript: + specifier: ^5.2.2 + version: registry.npmmirror.com/typescript@5.3.3 + vite: + specifier: 4.5.0 + version: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) + vite-plugin-eslint: + specifier: ^1.8.1 + version: registry.npmmirror.com/vite-plugin-eslint@1.8.1(eslint@8.55.0)(vite@4.5.0) + vite-plugin-mock: + specifier: 2.9.8 + version: registry.npmmirror.com/vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.0) + vite-plugin-svg-icons: + specifier: ^2.0.1 + version: registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@4.5.0) + packages/config-eslint: dependencies: '@typescript-eslint/eslint-plugin': - specifier: ^6.13.2 - version: registry.npmmirror.com/@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3) + specifier: ^5.47.1 + version: registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.13.2 - version: registry.npmmirror.com/@typescript-eslint/parser@6.14.0(eslint@8.55.0)(typescript@5.3.3) - eslint-config-prettier: - specifier: ^9.1.0 - version: registry.npmmirror.com/eslint-config-prettier@9.1.0(eslint@8.55.0) + specifier: ^5.47.1 + version: registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) + eslint-config-airbnb-base: + specifier: ^15.0.0 + version: registry.npmmirror.com/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.55.0) + eslint-config-airbnb-typescript: + specifier: ^17.0.0 + version: registry.npmmirror.com/eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.29.1)(eslint@8.55.0) + eslint-plugin-simple-import-sort: + specifier: ^8.0.0 + version: registry.npmmirror.com/eslint-plugin-simple-import-sort@8.0.0(eslint@8.55.0) + prettier: + specifier: ^3.1.1 + version: registry.npmmirror.com/prettier@3.1.1 packages/config-ts: {} @@ -2026,6 +2231,94 @@ packages: prettier: registry.npmmirror.com/prettier@2.8.8 dev: true + registry.npmmirror.com/@codemirror/autocomplete@6.11.1(@codemirror/language@6.9.3)(@codemirror/state@6.3.3)(@codemirror/view@6.22.3)(@lezer/common@1.1.2): + resolution: {integrity: sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/autocomplete/-/autocomplete-6.11.1.tgz} + id: registry.npmmirror.com/@codemirror/autocomplete/6.11.1 + name: '@codemirror/autocomplete' + version: 6.11.1 + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.3 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.3 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.2 + dev: false + + registry.npmmirror.com/@codemirror/commands@6.3.2: + resolution: {integrity: sha512-tjoi4MCWDNxgIpoLZ7+tezdS9OEB6pkiDKhfKx9ReJ/XBcs2G2RXIu+/FxXBlWsPTsz6C9q/r4gjzrsxpcnqCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/commands/-/commands-6.3.2.tgz} + name: '@codemirror/commands' + version: 6.3.2 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.3 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.3 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.2 + dev: false + + registry.npmmirror.com/@codemirror/language@6.9.3: + resolution: {integrity: sha512-qq48pYzoi6ldYWV/52+Z9Ou6QouVI+8YwvxFbUypI33NbjG2UeRHKENRyhwljTTiOqjQ33FjyZj6EREQ9apAOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/language/-/language-6.9.3.tgz} + name: '@codemirror/language' + version: 6.9.3 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.3 + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.2 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.2.0 + '@lezer/lr': registry.npmmirror.com/@lezer/lr@1.3.14 + style-mod: registry.npmmirror.com/style-mod@4.1.0 + dev: false + + registry.npmmirror.com/@codemirror/lint@6.4.2: + resolution: {integrity: sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/lint/-/lint-6.4.2.tgz} + name: '@codemirror/lint' + version: 6.4.2 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.3 + crelt: registry.npmmirror.com/crelt@1.0.6 + dev: false + + registry.npmmirror.com/@codemirror/search@6.5.5: + resolution: {integrity: sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/search/-/search-6.5.5.tgz} + name: '@codemirror/search' + version: 6.5.5 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.3 + crelt: registry.npmmirror.com/crelt@1.0.6 + dev: false + + registry.npmmirror.com/@codemirror/state@6.3.3: + resolution: {integrity: sha512-0wufKcTw2dEwEaADajjHf6hBy1sh3M6V0e+q4JKIhLuiMSe5td5HOWpUdvKth1fT1M9VYOboajoBHpkCd7PG7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/state/-/state-6.3.3.tgz} + name: '@codemirror/state' + version: 6.3.3 + dev: false + + registry.npmmirror.com/@codemirror/theme-one-dark@6.1.2: + resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/theme-one-dark/-/theme-one-dark-6.1.2.tgz} + name: '@codemirror/theme-one-dark' + version: 6.1.2 + dependencies: + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.3 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.3 + '@lezer/highlight': registry.npmmirror.com/@lezer/highlight@1.2.0 + dev: false + + registry.npmmirror.com/@codemirror/view@6.22.3: + resolution: {integrity: sha512-rqnq+Zospwoi3x1vZ8BGV1MlRsaGljX+6qiGYmIpJ++M+LCC+wjfDaPklhwpWSgv7pr/qx29KiAKQBH5+DOn4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@codemirror/view/-/view-6.22.3.tgz} + name: '@codemirror/view' + version: 6.22.3 + dependencies: + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + style-mod: registry.npmmirror.com/style-mod@4.1.0 + w3c-keyname: registry.npmmirror.com/w3c-keyname@2.2.8 + dev: false + registry.npmmirror.com/@colors/colors@1.5.0: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@colors/colors/-/colors-1.5.0.tgz} name: '@colors/colors' @@ -2765,6 +3058,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/android-arm64@0.19.9: + resolution: {integrity: sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz} + name: '@esbuild/android-arm64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/android-arm@0.17.19: resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz} name: '@esbuild/android-arm' @@ -2785,6 +3089,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/android-arm@0.19.9: + resolution: {integrity: sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.9.tgz} + name: '@esbuild/android-arm' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz} name: '@esbuild/android-x64' @@ -2805,6 +3120,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/android-x64@0.19.9: + resolution: {integrity: sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.19.9.tgz} + name: '@esbuild/android-x64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz} name: '@esbuild/darwin-arm64' @@ -2825,6 +3151,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/darwin-arm64@0.19.9: + resolution: {integrity: sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz} + name: '@esbuild/darwin-arm64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/darwin-x64@0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz} name: '@esbuild/darwin-x64' @@ -2845,6 +3182,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/darwin-x64@0.19.9: + resolution: {integrity: sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz} + name: '@esbuild/darwin-x64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz} name: '@esbuild/freebsd-arm64' @@ -2865,6 +3213,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.9: + resolution: {integrity: sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz} + name: '@esbuild/freebsd-arm64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz} name: '@esbuild/freebsd-x64' @@ -2885,6 +3244,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/freebsd-x64@0.19.9: + resolution: {integrity: sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz} + name: '@esbuild/freebsd-x64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/linux-arm64@0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz} name: '@esbuild/linux-arm64' @@ -2905,6 +3275,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-arm64@0.19.9: + resolution: {integrity: sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz} + name: '@esbuild/linux-arm64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/linux-arm@0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz} name: '@esbuild/linux-arm' @@ -2925,6 +3306,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-arm@0.19.9: + resolution: {integrity: sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz} + name: '@esbuild/linux-arm' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz} name: '@esbuild/linux-ia32' @@ -2945,6 +3337,28 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-ia32@0.19.9: + resolution: {integrity: sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz} + name: '@esbuild/linux-ia32' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64@0.14.54: + resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz} + name: '@esbuild/linux-loong64' + version: 0.14.54 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/linux-loong64@0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz} name: '@esbuild/linux-loong64' @@ -2965,6 +3379,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-loong64@0.19.9: + resolution: {integrity: sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz} + name: '@esbuild/linux-loong64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz} name: '@esbuild/linux-mips64el' @@ -2985,6 +3410,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-mips64el@0.19.9: + resolution: {integrity: sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz} + name: '@esbuild/linux-mips64el' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz} name: '@esbuild/linux-ppc64' @@ -3005,6 +3441,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-ppc64@0.19.9: + resolution: {integrity: sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz} + name: '@esbuild/linux-ppc64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz} name: '@esbuild/linux-riscv64' @@ -3025,6 +3472,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-riscv64@0.19.9: + resolution: {integrity: sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz} + name: '@esbuild/linux-riscv64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz} name: '@esbuild/linux-s390x' @@ -3045,6 +3503,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-s390x@0.19.9: + resolution: {integrity: sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz} + name: '@esbuild/linux-s390x' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz} name: '@esbuild/linux-x64' @@ -3065,6 +3534,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/linux-x64@0.19.9: + resolution: {integrity: sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz} + name: '@esbuild/linux-x64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz} name: '@esbuild/netbsd-x64' @@ -3085,6 +3565,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/netbsd-x64@0.19.9: + resolution: {integrity: sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz} + name: '@esbuild/netbsd-x64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz} name: '@esbuild/openbsd-x64' @@ -3105,6 +3596,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/openbsd-x64@0.19.9: + resolution: {integrity: sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz} + name: '@esbuild/openbsd-x64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz} name: '@esbuild/sunos-x64' @@ -3125,6 +3627,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/sunos-x64@0.19.9: + resolution: {integrity: sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz} + name: '@esbuild/sunos-x64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz} name: '@esbuild/win32-arm64' @@ -3145,6 +3658,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/win32-arm64@0.19.9: + resolution: {integrity: sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz} + name: '@esbuild/win32-arm64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz} name: '@esbuild/win32-ia32' @@ -3165,6 +3689,17 @@ packages: requiresBuild: true optional: true + registry.npmmirror.com/@esbuild/win32-ia32@0.19.9: + resolution: {integrity: sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz} + name: '@esbuild/win32-ia32' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz} name: '@esbuild/win32-x64' @@ -3185,13 +3720,24 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} - id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 - name: '@eslint-community/eslint-utils' - version: 4.4.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: + registry.npmmirror.com/@esbuild/win32-x64@0.19.9: + resolution: {integrity: sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz} + name: '@esbuild/win32-x64' + version: 0.19.9 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} + id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 + name: '@eslint-community/eslint-utils' + version: 4.4.0 + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: eslint: registry.npmmirror.com/eslint@8.55.0 @@ -3443,6 +3989,20 @@ packages: transitivePeerDependencies: - supports-color + registry.npmmirror.com/@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz} + name: '@isaacs/cliui' + version: 8.0.2 + engines: {node: '>=12'} + dependencies: + string-width: registry.npmmirror.com/string-width@5.1.2 + string-width-cjs: registry.npmmirror.com/string-width@4.2.3 + strip-ansi: registry.npmmirror.com/strip-ansi@7.1.0 + strip-ansi-cjs: registry.npmmirror.com/strip-ansi@6.0.1 + wrap-ansi: registry.npmmirror.com/wrap-ansi@8.1.0 + wrap-ansi-cjs: registry.npmmirror.com/wrap-ansi@7.0.0 + dev: true + registry.npmmirror.com/@istanbuljs/load-nyc-config@1.1.0: resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz} name: '@istanbuljs/load-nyc-config' @@ -3570,6 +4130,28 @@ packages: '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec@1.4.15 dev: true + registry.npmmirror.com/@lezer/common@1.1.2: + resolution: {integrity: sha512-V+GqBsga5+cQJMfM0GdnHmg4DgWvLzgMWjbldBg0+jC3k9Gu6nJNZDLJxXEBT1Xj8KhRN4jmbC5CY7SIL++sVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/common/-/common-1.1.2.tgz} + name: '@lezer/common' + version: 1.1.2 + dev: false + + registry.npmmirror.com/@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/highlight/-/highlight-1.2.0.tgz} + name: '@lezer/highlight' + version: 1.2.0 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.2 + dev: false + + registry.npmmirror.com/@lezer/lr@1.3.14: + resolution: {integrity: sha512-z5mY4LStlA3yL7aHT/rqgG614cfcvklS+8oFRFBYrs4YaWLJyKKM4+nN6KopToX0o9Hj6zmH6M5kinOYuy06ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@lezer/lr/-/lr-1.3.14.tgz} + name: '@lezer/lr' + version: 1.3.14 + dependencies: + '@lezer/common': registry.npmmirror.com/@lezer/common@1.1.2 + dev: false + registry.npmmirror.com/@loadable/component@5.15.2(react@18.1.0): resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.15.2.tgz} id: registry.npmmirror.com/@loadable/component/5.15.2 @@ -3856,6 +4438,15 @@ packages: '@octokit/openapi-types': registry.npmmirror.com/@octokit/openapi-types@19.1.0 dev: true + registry.npmmirror.com/@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz} + name: '@pkgjs/parseargs' + version: 0.11.0 + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@pkgr/utils@2.4.2: resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@pkgr/utils/-/utils-2.4.2.tgz} name: '@pkgr/utils' @@ -4008,6 +4599,180 @@ packages: react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + registry.npmmirror.com/@reduxjs/toolkit@2.0.1(react-redux@8.1.3)(react@18.2.0): + resolution: {integrity: sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@reduxjs/toolkit/-/toolkit-2.0.1.tgz} + id: registry.npmmirror.com/@reduxjs/toolkit/2.0.1 + name: '@reduxjs/toolkit' + version: 2.0.1 + peerDependencies: + react: ^16.9.0 || ^17.0.0 || ^18 + react-redux: ^7.2.1 || ^8.1.3 || ^9.0.0 + peerDependenciesMeta: + react: + optional: true + react-redux: + optional: true + dependencies: + immer: registry.npmmirror.com/immer@10.0.3 + react: registry.npmmirror.com/react@18.2.0 + react-redux: registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + redux: registry.npmmirror.com/redux@5.0.0 + redux-thunk: registry.npmmirror.com/redux-thunk@3.1.0(redux@5.0.0) + reselect: registry.npmmirror.com/reselect@5.0.1 + dev: false + + registry.npmmirror.com/@remix-run/router@1.14.0: + resolution: {integrity: sha512-WOHih+ClN7N8oHk9N4JUiMxQJmRVaOxcg8w7F/oHUXzJt920ekASLI/7cYX8XkntDWRhLZtsk6LbGrkgOAvi5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@remix-run/router/-/router-1.14.0.tgz} + name: '@remix-run/router' + version: 1.14.0 + engines: {node: '>=14.0.0'} + dev: false + + registry.npmmirror.com/@rollup/pluginutils@4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz} + name: '@rollup/pluginutils' + version: 4.2.1 + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: registry.npmmirror.com/estree-walker@2.0.2 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + dev: true + + registry.npmmirror.com/@rollup/rollup-android-arm-eabi@4.9.0: + resolution: {integrity: sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.0.tgz} + name: '@rollup/rollup-android-arm-eabi' + version: 4.9.0 + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-android-arm64@4.9.0: + resolution: {integrity: sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.0.tgz} + name: '@rollup/rollup-android-arm64' + version: 4.9.0 + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-darwin-arm64@4.9.0: + resolution: {integrity: sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.0.tgz} + name: '@rollup/rollup-darwin-arm64' + version: 4.9.0 + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-darwin-x64@4.9.0: + resolution: {integrity: sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.0.tgz} + name: '@rollup/rollup-darwin-x64' + version: 4.9.0 + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf@4.9.0: + resolution: {integrity: sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.0.tgz} + name: '@rollup/rollup-linux-arm-gnueabihf' + version: 4.9.0 + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu@4.9.0: + resolution: {integrity: sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.0.tgz} + name: '@rollup/rollup-linux-arm64-gnu' + version: 4.9.0 + cpu: [arm64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-arm64-musl@4.9.0: + resolution: {integrity: sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.0.tgz} + name: '@rollup/rollup-linux-arm64-musl' + version: 4.9.0 + cpu: [arm64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu@4.9.0: + resolution: {integrity: sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.0.tgz} + name: '@rollup/rollup-linux-riscv64-gnu' + version: 4.9.0 + cpu: [riscv64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-x64-gnu@4.9.0: + resolution: {integrity: sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.0.tgz} + name: '@rollup/rollup-linux-x64-gnu' + version: 4.9.0 + cpu: [x64] + os: [linux] + libc: [glibc] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-linux-x64-musl@4.9.0: + resolution: {integrity: sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.0.tgz} + name: '@rollup/rollup-linux-x64-musl' + version: 4.9.0 + cpu: [x64] + os: [linux] + libc: [musl] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc@4.9.0: + resolution: {integrity: sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.0.tgz} + name: '@rollup/rollup-win32-arm64-msvc' + version: 4.9.0 + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.9.0: + resolution: {integrity: sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.0.tgz} + name: '@rollup/rollup-win32-ia32-msvc' + version: 4.9.0 + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.9.0: + resolution: {integrity: sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.0.tgz} + name: '@rollup/rollup-win32-x64-msvc' + version: 4.9.0 + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + registry.npmmirror.com/@rushstack/node-core-library@3.59.6(@types/node@20.5.1): resolution: {integrity: sha512-bMYJwNFfWXRNUuHnsE9wMlW/mOB4jIwSUkRKtu02CwZhQdmzMsUbxE0s1xOLwTpNIwlzfW/YT7OnOHgDffLgYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rushstack/node-core-library/-/node-core-library-3.59.6.tgz} id: registry.npmmirror.com/@rushstack/node-core-library/3.59.6 @@ -4248,7 +5013,7 @@ packages: postcss: '>=7.0.0' postcss-syntax: '>=0.36.2' dependencies: - '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 + '@babel/core': registry.npmmirror.com/@babel/core@7.23.6 postcss: registry.npmmirror.com/postcss@8.4.32 postcss-syntax: registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.32) transitivePeerDependencies: @@ -4542,6 +5307,12 @@ packages: '@swc/core-win32-ia32-msvc': registry.npmmirror.com/@swc/core-win32-ia32-msvc@1.3.72 '@swc/core-win32-x64-msvc': registry.npmmirror.com/@swc/core-win32-x64-msvc@1.3.72 + registry.npmmirror.com/@transloadit/prettier-bytes@0.0.7: + resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz} + name: '@transloadit/prettier-bytes' + version: 0.0.7 + dev: false + registry.npmmirror.com/@trysound/sax@0.2.0: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz} name: '@trysound/sax' @@ -4620,6 +5391,12 @@ packages: classnames: registry.npmmirror.com/classnames@2.3.2 dev: true + registry.npmmirror.com/@types/crypto-js@4.2.1: + resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/crypto-js/-/crypto-js-4.2.1.tgz} + name: '@types/crypto-js' + version: 4.2.1 + dev: true + registry.npmmirror.com/@types/debug@4.1.12: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz} name: '@types/debug' @@ -4655,6 +5432,18 @@ packages: name: '@types/estree' version: 1.0.5 + registry.npmmirror.com/@types/event-emitter@0.3.5: + resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz} + name: '@types/event-emitter' + version: 0.3.5 + dev: false + + registry.npmmirror.com/@types/file-saver@2.0.7: + resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/file-saver/-/file-saver-2.0.7.tgz} + name: '@types/file-saver' + version: 2.0.7 + dev: true + registry.npmmirror.com/@types/fs-extra@11.0.1: resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.1.tgz} name: '@types/fs-extra' @@ -4725,6 +5514,12 @@ packages: name: '@types/json-schema' version: 7.0.15 + registry.npmmirror.com/@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json5/-/json5-0.0.29.tgz} + name: '@types/json5' + version: 0.0.29 + dev: false + registry.npmmirror.com/@types/jsonfile@6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/jsonfile/-/jsonfile-6.1.4.tgz} name: '@types/jsonfile' @@ -4739,6 +5534,20 @@ packages: dependencies: '@types/node': registry.npmmirror.com/@types/node@20.10.4 + registry.npmmirror.com/@types/lodash-es@4.17.12: + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz} + name: '@types/lodash-es' + version: 4.17.12 + dependencies: + '@types/lodash': registry.npmmirror.com/@types/lodash@4.14.202 + dev: true + + registry.npmmirror.com/@types/lodash@4.14.202: + resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.202.tgz} + name: '@types/lodash' + version: 4.14.202 + dev: true + registry.npmmirror.com/@types/mdast@3.0.15: resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mdast/-/mdast-3.0.15.tgz} name: '@types/mdast' @@ -4751,6 +5560,12 @@ packages: name: '@types/minimist' version: 1.2.5 + registry.npmmirror.com/@types/mockjs@1.0.10: + resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz} + name: '@types/mockjs' + version: 1.0.10 + dev: true + registry.npmmirror.com/@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz} name: '@types/ms' @@ -4803,6 +5618,12 @@ packages: name: '@types/parse5' version: 6.0.3 + registry.npmmirror.com/@types/prismjs@1.26.3: + resolution: {integrity: sha512-A0D0aTXvjlqJ5ZILMz3rNfDBOx9hHxLZYv2by47Sm/pqW35zzjusrZTryatjN/Rf8Us2gZrJD+KeHbUSTux1Cw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/prismjs/-/prismjs-1.26.3.tgz} + name: '@types/prismjs' + version: 1.26.3 + dev: false + registry.npmmirror.com/@types/prop-types@15.7.11: resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.11.tgz} name: '@types/prop-types' @@ -4826,7 +5647,6 @@ packages: version: 18.2.17 dependencies: '@types/react': registry.npmmirror.com/@types/react@18.2.45 - dev: true registry.npmmirror.com/@types/react@18.2.45: resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react/-/react-18.2.45.tgz} @@ -4849,7 +5669,7 @@ packages: name: '@types/sax' version: 1.2.7 dependencies: - '@types/node': registry.npmmirror.com/@types/node@17.0.45 + '@types/node': registry.npmmirror.com/@types/node@20.10.4 registry.npmmirror.com/@types/scheduler@0.16.8: resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.8.tgz} @@ -4861,11 +5681,38 @@ packages: name: '@types/semver' version: 7.5.6 + registry.npmmirror.com/@types/sortablejs@1.15.7: + resolution: {integrity: sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.7.tgz} + name: '@types/sortablejs' + version: 1.15.7 + + registry.npmmirror.com/@types/svgo@2.6.4: + resolution: {integrity: sha512-l4cmyPEckf8moNYHdJ+4wkHvFxjyW6ulm9l4YGaOxeyBWPhBOT0gvni1InpFPdzx1dKf/2s62qGITwxNWnPQng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/svgo/-/svgo-2.6.4.tgz} + name: '@types/svgo' + version: 2.6.4 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.4 + dev: true + registry.npmmirror.com/@types/unist@2.0.10: resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/unist/-/unist-2.0.10.tgz} name: '@types/unist' version: 2.0.10 + registry.npmmirror.com/@types/use-sync-external-store@0.0.3: + resolution: {integrity: sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz} + name: '@types/use-sync-external-store' + version: 0.0.3 + dev: false + + registry.npmmirror.com/@types/video-react@0.15.5: + resolution: {integrity: sha512-j2T9XGVit44ZNSGYdpScsS2xAs9OAdAupcoGpwHw/Wj4pm7wK+iB2q4CY6V+P6LEcXXJN+ir1dJs4o37AWOiQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/video-react/-/video-react-0.15.5.tgz} + name: '@types/video-react' + version: 0.15.5 + dependencies: + '@types/react': registry.npmmirror.com/@types/react@18.2.45 + dev: true + registry.npmmirror.com/@types/yargs-parser@21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz} name: '@types/yargs-parser' @@ -4915,38 +5762,6 @@ packages: transitivePeerDependencies: - supports-color - registry.npmmirror.com/@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/6.14.0 - name: '@typescript-eslint/eslint-plugin' - version: 6.14.0 - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp@4.10.0 - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@6.14.0(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@6.14.0 - '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils@6.14.0(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@6.14.0(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.14.0 - debug: registry.npmmirror.com/debug@4.3.4 - eslint: registry.npmmirror.com/eslint@8.55.0 - graphemer: registry.npmmirror.com/graphemer@1.4.0 - ignore: registry.npmmirror.com/ignore@5.3.0 - natural-compare: registry.npmmirror.com/natural-compare@1.4.0 - semver: registry.npmmirror.com/semver@7.5.4 - ts-api-utils: registry.npmmirror.com/ts-api-utils@1.0.3(typescript@5.3.3) - typescript: registry.npmmirror.com/typescript@5.3.3 - transitivePeerDependencies: - - supports-color - dev: false - registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.62.0.tgz} id: registry.npmmirror.com/@typescript-eslint/parser/5.62.0 @@ -4969,30 +5784,6 @@ packages: transitivePeerDependencies: - supports-color - registry.npmmirror.com/@typescript-eslint/parser@6.14.0(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.14.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/parser/6.14.0 - name: '@typescript-eslint/parser' - version: 6.14.0 - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@6.14.0 - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.14.0 - '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@6.14.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.14.0 - debug: registry.npmmirror.com/debug@4.3.4 - eslint: registry.npmmirror.com/eslint@8.55.0 - typescript: registry.npmmirror.com/typescript@5.3.3 - transitivePeerDependencies: - - supports-color - dev: false - registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz} name: '@typescript-eslint/scope-manager' @@ -5002,16 +5793,6 @@ packages: '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0 - registry.npmmirror.com/@typescript-eslint/scope-manager@6.14.0: - resolution: {integrity: sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz} - name: '@typescript-eslint/scope-manager' - version: 6.14.0 - engines: {node: ^16.0.0 || >=18.0.0} - dependencies: - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.14.0 - '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.14.0 - dev: false - registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz} id: registry.npmmirror.com/@typescript-eslint/type-utils/5.62.0 @@ -5034,42 +5815,12 @@ packages: transitivePeerDependencies: - supports-color - registry.npmmirror.com/@typescript-eslint/type-utils@6.14.0(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/type-utils/6.14.0 - name: '@typescript-eslint/type-utils' - version: 6.14.0 - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@6.14.0(typescript@5.3.3) - '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@6.14.0(eslint@8.55.0)(typescript@5.3.3) - debug: registry.npmmirror.com/debug@4.3.4 - eslint: registry.npmmirror.com/eslint@8.55.0 - ts-api-utils: registry.npmmirror.com/ts-api-utils@1.0.3(typescript@5.3.3) - typescript: registry.npmmirror.com/typescript@5.3.3 - transitivePeerDependencies: - - supports-color - dev: false - registry.npmmirror.com/@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-5.62.0.tgz} name: '@typescript-eslint/types' version: 5.62.0 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - registry.npmmirror.com/@typescript-eslint/types@6.14.0: - resolution: {integrity: sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.14.0.tgz} - name: '@typescript-eslint/types' - version: 6.14.0 - engines: {node: ^16.0.0 || >=18.0.0} - dev: false - registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz} id: registry.npmmirror.com/@typescript-eslint/typescript-estree/5.62.0 @@ -5093,30 +5844,6 @@ packages: transitivePeerDependencies: - supports-color - registry.npmmirror.com/@typescript-eslint/typescript-estree@6.14.0(typescript@5.3.3): - resolution: {integrity: sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/typescript-estree/6.14.0 - name: '@typescript-eslint/typescript-estree' - version: 6.14.0 - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.14.0 - '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@6.14.0 - debug: registry.npmmirror.com/debug@4.3.4 - globby: registry.npmmirror.com/globby@11.1.0 - is-glob: registry.npmmirror.com/is-glob@4.0.3 - semver: registry.npmmirror.com/semver@7.5.4 - ts-api-utils: registry.npmmirror.com/ts-api-utils@1.0.3(typescript@5.3.3) - typescript: registry.npmmirror.com/typescript@5.3.3 - transitivePeerDependencies: - - supports-color - dev: false - registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.62.0.tgz} id: registry.npmmirror.com/@typescript-eslint/utils/5.62.0 @@ -5139,28 +5866,6 @@ packages: - supports-color - typescript - registry.npmmirror.com/@typescript-eslint/utils@6.14.0(eslint@8.55.0)(typescript@5.3.3): - resolution: {integrity: sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.14.0.tgz} - id: registry.npmmirror.com/@typescript-eslint/utils/6.14.0 - name: '@typescript-eslint/utils' - version: 6.14.0 - engines: {node: ^16.0.0 || >=18.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.55.0) - '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 - '@types/semver': registry.npmmirror.com/@types/semver@7.5.6 - '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@6.14.0 - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.14.0 - '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@6.14.0(typescript@5.3.3) - eslint: registry.npmmirror.com/eslint@8.55.0 - semver: registry.npmmirror.com/semver@7.5.4 - transitivePeerDependencies: - - supports-color - - typescript - dev: false - registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz} name: '@typescript-eslint/visitor-keys' @@ -5170,14 +5875,111 @@ packages: '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 - registry.npmmirror.com/@typescript-eslint/visitor-keys@6.14.0: - resolution: {integrity: sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz} - name: '@typescript-eslint/visitor-keys' - version: 6.14.0 - engines: {node: ^16.0.0 || >=18.0.0} + registry.npmmirror.com/@uiw/codemirror-extensions-basic-setup@4.21.21(@codemirror/autocomplete@6.11.1)(@codemirror/commands@6.3.2)(@codemirror/language@6.9.3)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.3.3)(@codemirror/view@6.22.3): + resolution: {integrity: sha512-+0i9dPrRSa8Mf0CvyrMvnAhajnqwsP3IMRRlaHDRgsSGL8igc4z7MhvUPn+7cWFAAqWzQRhMdMSWzo6/TEa3EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uiw/codemirror-extensions-basic-setup/-/codemirror-extensions-basic-setup-4.21.21.tgz} + id: registry.npmmirror.com/@uiw/codemirror-extensions-basic-setup/4.21.21 + name: '@uiw/codemirror-extensions-basic-setup' + version: 4.21.21 + peerDependencies: + '@codemirror/autocomplete': '>=6.0.0' + '@codemirror/commands': '>=6.0.0' + '@codemirror/language': '>=6.0.0' + '@codemirror/lint': '>=6.0.0' + '@codemirror/search': '>=6.0.0' + '@codemirror/state': '>=6.0.0' + '@codemirror/view': '>=6.0.0' + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.11.1(@codemirror/language@6.9.3)(@codemirror/state@6.3.3)(@codemirror/view@6.22.3)(@lezer/common@1.1.2) + '@codemirror/commands': registry.npmmirror.com/@codemirror/commands@6.3.2 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.3 + '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.4.2 + '@codemirror/search': registry.npmmirror.com/@codemirror/search@6.5.5 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.3 + dev: false + + registry.npmmirror.com/@uiw/copy-to-clipboard@1.0.16: + resolution: {integrity: sha512-IXR+N363nLTR3ilklmM+B0nk774jVE/muOrBYt4Rdww/Pf3uP9XHyv2x6YZrbDh29F7w9BkzQyB8QF6WDShmJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uiw/copy-to-clipboard/-/copy-to-clipboard-1.0.16.tgz} + name: '@uiw/copy-to-clipboard' + version: 1.0.16 + dev: false + + registry.npmmirror.com/@uiw/react-codemirror@4.21.21(@babel/runtime@7.23.6)(@codemirror/autocomplete@6.11.1)(@codemirror/language@6.9.3)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.3.3)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.22.3)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-PaxBMarufMWoR0qc5zuvBSt76rJ9POm9qoOaJbqRmnNL2viaF+d+Paf2blPSlm1JSnqn7hlRjio+40nZJ9TKzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uiw/react-codemirror/-/react-codemirror-4.21.21.tgz} + id: registry.npmmirror.com/@uiw/react-codemirror/4.21.21 + name: '@uiw/react-codemirror' + version: 4.21.21 + peerDependencies: + '@babel/runtime': '>=7.11.0' + '@codemirror/state': '>=6.0.0' + '@codemirror/theme-one-dark': '>=6.0.0' + '@codemirror/view': '>=6.0.0' + codemirror: '>=6.0.0' + react: '>=16.8.0' + react-dom: '>=16.8.0' dependencies: - '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@6.14.0 - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@codemirror/commands': registry.npmmirror.com/@codemirror/commands@6.3.2 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + '@codemirror/theme-one-dark': registry.npmmirror.com/@codemirror/theme-one-dark@6.1.2 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.3 + '@uiw/codemirror-extensions-basic-setup': registry.npmmirror.com/@uiw/codemirror-extensions-basic-setup@4.21.21(@codemirror/autocomplete@6.11.1)(@codemirror/commands@6.3.2)(@codemirror/language@6.9.3)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.3.3)(@codemirror/view@6.22.3) + codemirror: registry.npmmirror.com/codemirror@6.0.1(@lezer/common@1.1.2) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + transitivePeerDependencies: + - '@codemirror/autocomplete' + - '@codemirror/language' + - '@codemirror/lint' + - '@codemirror/search' + dev: false + + registry.npmmirror.com/@uiw/react-markdown-preview@4.2.2(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Jy3GtAqcF2pKgvFtgLUEwR8u2t0Yk/DAnLTl6cf1RzhNYcAxm1auDs3KndZRBDP01xhmYLX4KiOcOg/qv+Jc0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uiw/react-markdown-preview/-/react-markdown-preview-4.2.2.tgz} + id: registry.npmmirror.com/@uiw/react-markdown-preview/4.2.2 + name: '@uiw/react-markdown-preview' + version: 4.2.2 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@uiw/copy-to-clipboard': registry.npmmirror.com/@uiw/copy-to-clipboard@1.0.16 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + react-markdown: registry.npmmirror.com/react-markdown@8.0.7(@types/react@18.2.45)(react@18.2.0) + rehype-attr: registry.npmmirror.com/rehype-attr@2.1.4 + rehype-autolink-headings: registry.npmmirror.com/rehype-autolink-headings@6.1.1 + rehype-ignore: registry.npmmirror.com/rehype-ignore@1.0.5 + rehype-prism-plus: registry.npmmirror.com/rehype-prism-plus@1.6.3 + rehype-raw: registry.npmmirror.com/rehype-raw@6.1.1 + rehype-rewrite: registry.npmmirror.com/rehype-rewrite@3.0.6 + rehype-slug: registry.npmmirror.com/rehype-slug@5.1.0 + remark-gfm: registry.npmmirror.com/remark-gfm@3.0.1 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + transitivePeerDependencies: + - '@types/react' + - supports-color + dev: false + + registry.npmmirror.com/@uiw/react-md-editor@3.25.6(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-YuDv5KiM931WFYBDCyk9/HvtLdIWk9DXvzC6d1riaLufvchM7IUHkqTkSl3HqmTod1exSN+5ZsUtKZ+S+GAsug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uiw/react-md-editor/-/react-md-editor-3.25.6.tgz} + id: registry.npmmirror.com/@uiw/react-md-editor/3.25.6 + name: '@uiw/react-md-editor' + version: 3.25.6 + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@uiw/react-markdown-preview': registry.npmmirror.com/@uiw/react-markdown-preview@4.2.2(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + rehype: registry.npmmirror.com/rehype@12.0.1 + rehype-prism-plus: registry.npmmirror.com/rehype-prism-plus@1.6.3 + transitivePeerDependencies: + - '@types/react' + - supports-color dev: false registry.npmmirror.com/@umijs/ast@4.0.89: @@ -5712,6 +6514,58 @@ packages: name: '@ungap/structured-clone' version: 1.2.0 + registry.npmmirror.com/@uppy/companion-client@2.2.2: + resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz} + name: '@uppy/companion-client' + version: 2.2.2 + dependencies: + '@uppy/utils': registry.npmmirror.com/@uppy/utils@4.1.3 + namespace-emitter: registry.npmmirror.com/namespace-emitter@2.0.1 + dev: false + + registry.npmmirror.com/@uppy/core@2.3.4: + resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz} + name: '@uppy/core' + version: 2.3.4 + dependencies: + '@transloadit/prettier-bytes': registry.npmmirror.com/@transloadit/prettier-bytes@0.0.7 + '@uppy/store-default': registry.npmmirror.com/@uppy/store-default@2.1.1 + '@uppy/utils': registry.npmmirror.com/@uppy/utils@4.1.3 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + mime-match: registry.npmmirror.com/mime-match@1.0.2 + namespace-emitter: registry.npmmirror.com/namespace-emitter@2.0.1 + nanoid: registry.npmmirror.com/nanoid@3.3.7 + preact: registry.npmmirror.com/preact@10.19.3 + dev: false + + registry.npmmirror.com/@uppy/store-default@2.1.1: + resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz} + name: '@uppy/store-default' + version: 2.1.1 + dev: false + + registry.npmmirror.com/@uppy/utils@4.1.3: + resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz} + name: '@uppy/utils' + version: 4.1.3 + dependencies: + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + dev: false + + registry.npmmirror.com/@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4): + resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz} + id: registry.npmmirror.com/@uppy/xhr-upload/2.1.3 + name: '@uppy/xhr-upload' + version: 2.1.3 + peerDependencies: + '@uppy/core': ^2.3.3 + dependencies: + '@uppy/companion-client': registry.npmmirror.com/@uppy/companion-client@2.2.2 + '@uppy/core': registry.npmmirror.com/@uppy/core@2.3.4 + '@uppy/utils': registry.npmmirror.com/@uppy/utils@4.1.3 + nanoid: registry.npmmirror.com/nanoid@3.3.7 + dev: false + registry.npmmirror.com/@vercel/ncc@0.33.3: resolution: {integrity: sha512-JGZ11QV+/ZcfudW2Cz2JVp54/pJNXbsuWRgSh2ZmmZdQBKXqBtIGrwI1Wyx8nlbzAiEFe7FHi4K1zX4//jxTnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vercel/ncc/-/ncc-0.33.3.tgz} name: '@vercel/ncc' @@ -5736,6 +6590,224 @@ packages: transitivePeerDependencies: - supports-color + registry.npmmirror.com/@vitejs/plugin-react@4.2.1(vite@4.5.0): + resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz} + id: registry.npmmirror.com/@vitejs/plugin-react/4.2.1 + name: '@vitejs/plugin-react' + version: 4.2.1 + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core@7.23.6 + '@babel/plugin-transform-react-jsx-self': registry.npmmirror.com/@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.6) + '@babel/plugin-transform-react-jsx-source': registry.npmmirror.com/@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.6) + '@types/babel__core': registry.npmmirror.com/@types/babel__core@7.20.5 + react-refresh: registry.npmmirror.com/react-refresh@0.14.0 + vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz} + id: registry.npmmirror.com/@wangeditor/basic-modules/1.1.7 + name: '@wangeditor/basic-modules' + version: 1.1.7 + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': registry.npmmirror.com/@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: registry.npmmirror.com/dom7@3.0.0 + is-url: registry.npmmirror.com/is-url@1.2.4 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + nanoid: registry.npmmirror.com/nanoid@3.3.7 + slate: registry.npmmirror.com/slate@0.72.8 + snabbdom: registry.npmmirror.com/snabbdom@3.5.1 + dev: false + + registry.npmmirror.com/@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz} + id: registry.npmmirror.com/@wangeditor/code-highlight/1.0.3 + name: '@wangeditor/code-highlight' + version: 1.0.3 + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': registry.npmmirror.com/@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: registry.npmmirror.com/dom7@3.0.0 + prismjs: registry.npmmirror.com/prismjs@1.29.0 + slate: registry.npmmirror.com/slate@0.72.8 + snabbdom: registry.npmmirror.com/snabbdom@3.5.1 + dev: false + + registry.npmmirror.com/@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz} + id: registry.npmmirror.com/@wangeditor/core/1.1.19 + name: '@wangeditor/core' + version: 1.1.19 + peerDependencies: + '@uppy/core': ^2.1.1 + '@uppy/xhr-upload': ^2.0.3 + dom7: ^3.0.0 + is-hotkey: ^0.2.0 + lodash.camelcase: ^4.3.0 + lodash.clonedeep: ^4.5.0 + lodash.debounce: ^4.0.8 + lodash.foreach: ^4.5.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + lodash.toarray: ^4.4.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@types/event-emitter': registry.npmmirror.com/@types/event-emitter@0.3.5 + '@uppy/core': registry.npmmirror.com/@uppy/core@2.3.4 + '@uppy/xhr-upload': registry.npmmirror.com/@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4) + dom7: registry.npmmirror.com/dom7@3.0.0 + event-emitter: registry.npmmirror.com/event-emitter@0.3.5 + html-void-elements: registry.npmmirror.com/html-void-elements@2.0.1 + i18next: registry.npmmirror.com/i18next@20.6.1 + is-hotkey: registry.npmmirror.com/is-hotkey@0.2.0 + lodash.camelcase: registry.npmmirror.com/lodash.camelcase@4.3.0 + lodash.clonedeep: registry.npmmirror.com/lodash.clonedeep@4.5.0 + lodash.debounce: registry.npmmirror.com/lodash.debounce@4.0.8 + lodash.foreach: registry.npmmirror.com/lodash.foreach@4.5.0 + lodash.isequal: registry.npmmirror.com/lodash.isequal@4.5.0 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + lodash.toarray: registry.npmmirror.com/lodash.toarray@4.4.0 + nanoid: registry.npmmirror.com/nanoid@3.3.7 + scroll-into-view-if-needed: registry.npmmirror.com/scroll-into-view-if-needed@2.2.31 + slate: registry.npmmirror.com/slate@0.72.8 + slate-history: registry.npmmirror.com/slate-history@0.66.0(slate@0.72.8) + snabbdom: registry.npmmirror.com/snabbdom@3.5.1 + dev: false + + registry.npmmirror.com/@wangeditor/editor@5.1.23: + resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz} + name: '@wangeditor/editor' + version: 5.1.23 + dependencies: + '@uppy/core': registry.npmmirror.com/@uppy/core@2.3.4 + '@uppy/xhr-upload': registry.npmmirror.com/@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': registry.npmmirror.com/@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/code-highlight': registry.npmmirror.com/@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/core': registry.npmmirror.com/@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/list-module': registry.npmmirror.com/@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/table-module': registry.npmmirror.com/@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/upload-image-module': registry.npmmirror.com/@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/video-module': registry.npmmirror.com/@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: registry.npmmirror.com/dom7@3.0.0 + is-hotkey: registry.npmmirror.com/is-hotkey@0.2.0 + lodash.camelcase: registry.npmmirror.com/lodash.camelcase@4.3.0 + lodash.clonedeep: registry.npmmirror.com/lodash.clonedeep@4.5.0 + lodash.debounce: registry.npmmirror.com/lodash.debounce@4.0.8 + lodash.foreach: registry.npmmirror.com/lodash.foreach@4.5.0 + lodash.isequal: registry.npmmirror.com/lodash.isequal@4.5.0 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + lodash.toarray: registry.npmmirror.com/lodash.toarray@4.4.0 + nanoid: registry.npmmirror.com/nanoid@3.3.7 + slate: registry.npmmirror.com/slate@0.72.8 + snabbdom: registry.npmmirror.com/snabbdom@3.5.1 + dev: false + + registry.npmmirror.com/@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz} + id: registry.npmmirror.com/@wangeditor/list-module/1.0.5 + name: '@wangeditor/list-module' + version: 1.0.5 + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': registry.npmmirror.com/@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: registry.npmmirror.com/dom7@3.0.0 + slate: registry.npmmirror.com/slate@0.72.8 + snabbdom: registry.npmmirror.com/snabbdom@3.5.1 + dev: false + + registry.npmmirror.com/@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz} + id: registry.npmmirror.com/@wangeditor/table-module/1.1.4 + name: '@wangeditor/table-module' + version: 1.1.4 + peerDependencies: + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.isequal: ^4.5.0 + lodash.throttle: ^4.1.1 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@wangeditor/core': registry.npmmirror.com/@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: registry.npmmirror.com/dom7@3.0.0 + lodash.isequal: registry.npmmirror.com/lodash.isequal@4.5.0 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + nanoid: registry.npmmirror.com/nanoid@3.3.7 + slate: registry.npmmirror.com/slate@0.72.8 + snabbdom: registry.npmmirror.com/snabbdom@3.5.1 + dev: false + + registry.npmmirror.com/@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz} + id: registry.npmmirror.com/@wangeditor/upload-image-module/1.0.2 + name: '@wangeditor/upload-image-module' + version: 1.0.2 + peerDependencies: + '@uppy/core': ^2.0.3 + '@uppy/xhr-upload': ^2.0.3 + '@wangeditor/basic-modules': 1.x + '@wangeditor/core': 1.x + dom7: ^3.0.0 + lodash.foreach: ^4.5.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@uppy/core': registry.npmmirror.com/@uppy/core@2.3.4 + '@uppy/xhr-upload': registry.npmmirror.com/@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4) + '@wangeditor/basic-modules': registry.npmmirror.com/@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + '@wangeditor/core': registry.npmmirror.com/@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: registry.npmmirror.com/dom7@3.0.0 + lodash.foreach: registry.npmmirror.com/lodash.foreach@4.5.0 + slate: registry.npmmirror.com/slate@0.72.8 + snabbdom: registry.npmmirror.com/snabbdom@3.5.1 + dev: false + + registry.npmmirror.com/@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1): + resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz} + id: registry.npmmirror.com/@wangeditor/video-module/1.1.4 + name: '@wangeditor/video-module' + version: 1.1.4 + peerDependencies: + '@uppy/core': ^2.1.4 + '@uppy/xhr-upload': ^2.0.7 + '@wangeditor/core': 1.x + dom7: ^3.0.0 + nanoid: ^3.2.0 + slate: ^0.72.0 + snabbdom: ^3.1.0 + dependencies: + '@uppy/core': registry.npmmirror.com/@uppy/core@2.3.4 + '@uppy/xhr-upload': registry.npmmirror.com/@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4) + '@wangeditor/core': registry.npmmirror.com/@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.7)(slate@0.72.8)(snabbdom@3.5.1) + dom7: registry.npmmirror.com/dom7@3.0.0 + nanoid: registry.npmmirror.com/nanoid@3.3.7 + slate: registry.npmmirror.com/slate@0.72.8 + snabbdom: registry.npmmirror.com/snabbdom@3.5.1 + dev: false + registry.npmmirror.com/@webassemblyjs/ast@1.11.6: resolution: {integrity: sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.6.tgz} name: '@webassemblyjs/ast' @@ -5911,6 +6983,13 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + registry.npmmirror.com/adler-32@1.3.1: + resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz} + name: adler-32 + version: 1.3.1 + engines: {node: '>=0.8'} + dev: false + registry.npmmirror.com/agent-base@4.3.0: resolution: {integrity: sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/agent-base/-/agent-base-4.3.0.tgz} name: agent-base @@ -6085,6 +7164,13 @@ packages: engines: {'0': node >= 0.8.0} hasBin: true + registry.npmmirror.com/ansi-regex@2.1.1: + resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-2.1.1.tgz} + name: ansi-regex + version: 2.1.1 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/ansi-regex@3.0.1: resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-regex/-/ansi-regex-3.0.1.tgz} name: ansi-regex @@ -6110,6 +7196,13 @@ packages: engines: {node: '>=12'} dev: true + registry.npmmirror.com/ansi-styles@2.2.1: + resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-2.2.1.tgz} + name: ansi-styles + version: 2.2.1 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} name: ansi-styles @@ -6280,6 +7373,27 @@ packages: dependencies: tslib: registry.npmmirror.com/tslib@2.6.2 + registry.npmmirror.com/arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arr-diff/-/arr-diff-4.0.0.tgz} + name: arr-diff + version: 4.0.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arr-flatten/-/arr-flatten-1.1.0.tgz} + name: arr-flatten + version: 1.1.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/arr-union/-/arr-union-3.1.0.tgz} + name: arr-union + version: 3.1.0 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz} name: array-buffer-byte-length @@ -6318,6 +7432,26 @@ packages: version: 2.1.0 engines: {node: '>=8'} + registry.npmmirror.com/array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array-unique/-/array-unique-0.3.2.tgz} + name: array-unique + version: 0.3.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/array.prototype.findlastindex@1.2.3: + resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz} + name: array.prototype.findlastindex + version: 1.2.3 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + es-shim-unscopables: registry.npmmirror.com/es-shim-unscopables@1.0.2 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + registry.npmmirror.com/array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz} name: array.prototype.flat @@ -6401,6 +7535,13 @@ packages: object.assign: registry.npmmirror.com/object.assign@4.1.5 util: registry.npmmirror.com/util@0.10.4 + registry.npmmirror.com/assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/assign-symbols/-/assign-symbols-1.0.0.tgz} + name: assign-symbols + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/astral-regex/-/astral-regex-2.0.0.tgz} name: astral-regex @@ -6426,6 +7567,12 @@ packages: dependencies: has-symbols: registry.npmmirror.com/has-symbols@1.0.3 + registry.npmmirror.com/asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz} + name: asynckit + version: 0.4.0 + dev: false + registry.npmmirror.com/at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz} name: at-least-node @@ -6481,6 +7628,18 @@ packages: transitivePeerDependencies: - supports-color + registry.npmmirror.com/axios@1.6.2: + resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/-/axios-1.6.2.tgz} + name: axios + version: 1.6.2 + dependencies: + follow-redirects: registry.npmmirror.com/follow-redirects@1.15.3 + form-data: registry.npmmirror.com/form-data@4.0.0 + proxy-from-env: registry.npmmirror.com/proxy-from-env@1.1.0 + transitivePeerDependencies: + - debug + dev: false + registry.npmmirror.com/babel-jest@29.7.0(@babel/core@7.23.6): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/babel-jest/-/babel-jest-29.7.0.tgz} id: registry.npmmirror.com/babel-jest/29.7.0 @@ -6681,6 +7840,27 @@ packages: name: base64-js version: 1.5.1 + registry.npmmirror.com/base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/base/-/base-0.11.2.tgz} + name: base + version: 0.11.2 + engines: {node: '>=0.10.0'} + dependencies: + cache-base: registry.npmmirror.com/cache-base@1.0.1 + class-utils: registry.npmmirror.com/class-utils@0.3.6 + component-emitter: registry.npmmirror.com/component-emitter@1.3.1 + define-property: registry.npmmirror.com/define-property@1.0.0 + isobject: registry.npmmirror.com/isobject@3.0.1 + mixin-deep: registry.npmmirror.com/mixin-deep@1.3.2 + pascalcase: registry.npmmirror.com/pascalcase@0.1.1 + dev: true + + registry.npmmirror.com/bcp-47-match@2.0.3: + resolution: {integrity: sha512-JtTezzbAibu8G0R9op9zb3vcWZd9JF6M0xOYGPn0fNCd7wOpRB1mU2mH9T8gaBGbAAyIIVgB2G7xG0GP98zMAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bcp-47-match/-/bcp-47-match-2.0.3.tgz} + name: bcp-47-match + version: 2.0.3 + dev: false + registry.npmmirror.com/before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/before-after-hook/-/before-after-hook-2.2.3.tgz} name: before-after-hook @@ -6793,6 +7973,34 @@ packages: balanced-match: registry.npmmirror.com/balanced-match@1.0.2 concat-map: registry.npmmirror.com/concat-map@0.0.1 + registry.npmmirror.com/brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz} + name: brace-expansion + version: 2.0.1 + dependencies: + balanced-match: registry.npmmirror.com/balanced-match@1.0.2 + dev: true + + registry.npmmirror.com/braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-2.3.2.tgz} + name: braces + version: 2.3.2 + engines: {node: '>=0.10.0'} + dependencies: + arr-flatten: registry.npmmirror.com/arr-flatten@1.1.0 + array-unique: registry.npmmirror.com/array-unique@0.3.2 + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + fill-range: registry.npmmirror.com/fill-range@4.0.0 + isobject: registry.npmmirror.com/isobject@3.0.1 + repeat-element: registry.npmmirror.com/repeat-element@1.1.4 + snapdragon: registry.npmmirror.com/snapdragon@0.8.2 + snapdragon-node: registry.npmmirror.com/snapdragon-node@2.1.1 + split-string: registry.npmmirror.com/split-string@3.1.0 + to-regex: registry.npmmirror.com/to-regex@3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz} name: braces @@ -7003,6 +8211,23 @@ packages: unique-filename: registry.npmmirror.com/unique-filename@1.1.1 y18n: registry.npmmirror.com/y18n@3.2.2 + registry.npmmirror.com/cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cache-base/-/cache-base-1.0.1.tgz} + name: cache-base + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + collection-visit: registry.npmmirror.com/collection-visit@1.0.0 + component-emitter: registry.npmmirror.com/component-emitter@1.3.1 + get-value: registry.npmmirror.com/get-value@2.0.6 + has-value: registry.npmmirror.com/has-value@1.0.0 + isobject: registry.npmmirror.com/isobject@3.0.1 + set-value: registry.npmmirror.com/set-value@2.0.1 + to-object-path: registry.npmmirror.com/to-object-path@0.3.0 + union-value: registry.npmmirror.com/union-value@1.0.1 + unset-value: registry.npmmirror.com/unset-value@1.0.0 + dev: true + registry.npmmirror.com/cachedir@2.3.0: resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cachedir/-/cachedir-2.3.0.tgz} name: cachedir @@ -7061,6 +8286,17 @@ packages: version: 6.3.0 engines: {node: '>=10'} + registry.npmmirror.com/caniuse-api@3.0.0: + resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-api/-/caniuse-api-3.0.0.tgz} + name: caniuse-api + version: 3.0.0 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.2 + caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001570 + lodash.memoize: registry.npmmirror.com/lodash.memoize@4.1.2 + lodash.uniq: registry.npmmirror.com/lodash.uniq@4.5.0 + dev: true + registry.npmmirror.com/caniuse-lite@1.0.30001570: resolution: {integrity: sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz} name: caniuse-lite @@ -7087,6 +8323,29 @@ packages: name: ccount version: 2.0.1 + registry.npmmirror.com/cfb@1.2.2: + resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz} + name: cfb + version: 1.2.2 + engines: {node: '>=0.8'} + dependencies: + adler-32: registry.npmmirror.com/adler-32@1.3.1 + crc-32: registry.npmmirror.com/crc-32@1.2.2 + dev: false + + registry.npmmirror.com/chalk@1.1.3: + resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-1.1.3.tgz} + name: chalk + version: 1.1.3 + engines: {node: '>=0.10.0'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@2.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + has-ansi: registry.npmmirror.com/has-ansi@2.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@3.0.1 + supports-color: registry.npmmirror.com/supports-color@2.0.0 + dev: true + registry.npmmirror.com/chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} name: chalk @@ -7215,6 +8474,24 @@ packages: inherits: registry.npmmirror.com/inherits@2.0.4 safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + registry.npmmirror.com/class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/class-utils/-/class-utils-0.3.6.tgz} + name: class-utils + version: 0.3.6 + engines: {node: '>=0.10.0'} + dependencies: + arr-union: registry.npmmirror.com/arr-union@3.1.0 + define-property: registry.npmmirror.com/define-property@0.2.5 + isobject: registry.npmmirror.com/isobject@3.0.1 + static-extend: registry.npmmirror.com/static-extend@0.1.2 + dev: true + + registry.npmmirror.com/classnames@2.3.1: + resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.3.1.tgz} + name: classnames + version: 2.3.1 + dev: false + registry.npmmirror.com/classnames@2.3.2: resolution: {integrity: sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/classnames/-/classnames-2.3.2.tgz} name: classnames @@ -7319,10 +8596,20 @@ packages: string-width: registry.npmmirror.com/string-width@5.1.2 dev: true - registry.npmmirror.com/cli-width@2.2.1: - resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-width/-/cli-width-2.2.1.tgz} - name: cli-width - version: 2.2.1 + registry.npmmirror.com/cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-truncate/-/cli-truncate-4.0.0.tgz} + name: cli-truncate + version: 4.0.0 + engines: {node: '>=18'} + dependencies: + slice-ansi: registry.npmmirror.com/slice-ansi@5.0.0 + string-width: registry.npmmirror.com/string-width@7.0.0 + dev: true + + registry.npmmirror.com/cli-width@2.2.1: + resolution: {integrity: sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-width/-/cli-width-2.2.1.tgz} + name: cli-width + version: 2.2.1 registry.npmmirror.com/cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-width/-/cli-width-3.0.0.tgz} @@ -7374,6 +8661,13 @@ packages: engines: {node: '>=0.8'} dev: true + registry.npmmirror.com/clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clone/-/clone-2.1.2.tgz} + name: clone + version: 2.1.2 + engines: {node: '>=0.8'} + dev: true + registry.npmmirror.com/clsx@1.2.1: resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz} name: clsx @@ -7391,6 +8685,30 @@ packages: chalk: registry.npmmirror.com/chalk@2.4.2 q: registry.npmmirror.com/q@1.5.1 + registry.npmmirror.com/codemirror@6.0.1(@lezer/common@1.1.2): + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codemirror/-/codemirror-6.0.1.tgz} + id: registry.npmmirror.com/codemirror/6.0.1 + name: codemirror + version: 6.0.1 + dependencies: + '@codemirror/autocomplete': registry.npmmirror.com/@codemirror/autocomplete@6.11.1(@codemirror/language@6.9.3)(@codemirror/state@6.3.3)(@codemirror/view@6.22.3)(@lezer/common@1.1.2) + '@codemirror/commands': registry.npmmirror.com/@codemirror/commands@6.3.2 + '@codemirror/language': registry.npmmirror.com/@codemirror/language@6.9.3 + '@codemirror/lint': registry.npmmirror.com/@codemirror/lint@6.4.2 + '@codemirror/search': registry.npmmirror.com/@codemirror/search@6.5.5 + '@codemirror/state': registry.npmmirror.com/@codemirror/state@6.3.3 + '@codemirror/view': registry.npmmirror.com/@codemirror/view@6.22.3 + transitivePeerDependencies: + - '@lezer/common' + dev: false + + registry.npmmirror.com/codepage@1.15.0: + resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz} + name: codepage + version: 1.15.0 + engines: {node: '>=0.8'} + dev: false + registry.npmmirror.com/codesandbox-import-util-types@2.2.3: resolution: {integrity: sha512-Qj00p60oNExthP2oR3vvXmUGjukij+rxJGuiaKM6tyUmSyimdZsqHI/TUvFFClAffk9s7hxGnQgWQ8KCce27qQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/codesandbox-import-util-types/-/codesandbox-import-util-types-2.2.3.tgz} name: codesandbox-import-util-types @@ -7435,6 +8753,16 @@ packages: transitivePeerDependencies: - supports-color + registry.npmmirror.com/collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/collection-visit/-/collection-visit-1.0.0.tgz} + name: collection-visit + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + map-visit: registry.npmmirror.com/map-visit@1.0.0 + object-visit: registry.npmmirror.com/object-visit@1.0.1 + dev: true + registry.npmmirror.com/color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} name: color-convert @@ -7494,6 +8822,15 @@ packages: engines: {node: '>=0.1.90'} dev: true + registry.npmmirror.com/combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz} + name: combined-stream + version: 1.0.8 + engines: {node: '>= 0.8'} + dependencies: + delayed-stream: registry.npmmirror.com/delayed-stream@1.0.0 + dev: false + registry.npmmirror.com/comma-separated-tokens@1.0.8: resolution: {integrity: sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz} name: comma-separated-tokens @@ -7510,6 +8847,12 @@ packages: name: commander version: 11.0.0 engines: {node: '>=16'} + + registry.npmmirror.com/commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-11.1.0.tgz} + name: commander + version: 11.1.0 + engines: {node: '>=16'} dev: true registry.npmmirror.com/commander@2.20.3: @@ -7578,6 +8921,18 @@ packages: dot-prop: registry.npmmirror.com/dot-prop@5.3.0 dev: true + registry.npmmirror.com/component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/component-emitter/-/component-emitter-1.3.1.tgz} + name: component-emitter + version: 1.3.1 + dev: true + + registry.npmmirror.com/compute-scroll-into-view@1.0.20: + resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz} + name: compute-scroll-into-view + version: 1.0.20 + dev: false + registry.npmmirror.com/compute-scroll-into-view@3.1.0: resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.0.tgz} name: compute-scroll-into-view @@ -7622,6 +8977,26 @@ packages: write-file-atomic: registry.npmmirror.com/write-file-atomic@2.4.3 xdg-basedir: registry.npmmirror.com/xdg-basedir@3.0.0 + registry.npmmirror.com/confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz} + name: confusing-browser-globals + version: 1.0.11 + dev: false + + registry.npmmirror.com/connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/connect/-/connect-3.7.0.tgz} + name: connect + version: 3.7.0 + engines: {node: '>= 0.10.0'} + dependencies: + debug: registry.npmmirror.com/debug@2.6.9 + finalhandler: registry.npmmirror.com/finalhandler@1.1.2 + parseurl: registry.npmmirror.com/parseurl@1.3.3 + utils-merge: registry.npmmirror.com/utils-merge@1.0.1 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz} name: console-browserify @@ -7752,6 +9127,13 @@ packages: rimraf: registry.npmmirror.com/rimraf@2.7.1 run-queue: registry.npmmirror.com/run-queue@1.0.3 + registry.npmmirror.com/copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz} + name: copy-descriptor + version: 0.1.1 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz} name: copy-to-clipboard @@ -7860,6 +9242,20 @@ packages: typescript: registry.npmmirror.com/typescript@5.3.3 dev: true + registry.npmmirror.com/countup.js@2.8.0: + resolution: {integrity: sha512-f7xEhX0awl4NOElHulrl4XRfKoNH3rB+qfNSZZyjSZhaAoUk6elvhH+MNxMmlmuUJ2/QNTWPSA7U4mNtIAKljQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/countup.js/-/countup.js-2.8.0.tgz} + name: countup.js + version: 2.8.0 + dev: false + + registry.npmmirror.com/crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz} + name: crc-32 + version: 1.2.2 + engines: {node: '>=0.8'} + hasBin: true + dev: false + registry.npmmirror.com/create-ecdh@4.0.4: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/create-ecdh/-/create-ecdh-4.0.4.tgz} name: create-ecdh @@ -7905,6 +9301,18 @@ packages: version: 1.1.1 dev: true + registry.npmmirror.com/crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crelt/-/crelt-1.0.6.tgz} + name: crelt + version: 1.0.6 + dev: false + + registry.npmmirror.com/cropperjs@1.6.1: + resolution: {integrity: sha512-F4wsi+XkDHCOMrHMYjrTEE4QBOrsHHN5/2VsVAaRq8P7E5z7xQpT75S+f/9WikmBEailas3+yo+6zPIomW+NOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cropperjs/-/cropperjs-1.6.1.tgz} + name: cropperjs + version: 1.6.1 + dev: false + registry.npmmirror.com/cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cross-spawn/-/cross-spawn-5.1.0.tgz} name: cross-spawn @@ -7941,6 +9349,12 @@ packages: randombytes: registry.npmmirror.com/randombytes@2.1.0 randomfill: registry.npmmirror.com/randomfill@1.0.4 + registry.npmmirror.com/crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crypto-js/-/crypto-js-4.2.0.tgz} + name: crypto-js + version: 4.2.0 + dev: false + registry.npmmirror.com/crypto-random-string@1.0.0: resolution: {integrity: sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz} name: crypto-random-string @@ -7969,6 +9383,18 @@ packages: postcss: registry.npmmirror.com/postcss@8.4.32 postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + registry.npmmirror.com/css-declaration-sorter@7.1.1(postcss@8.4.32): + resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-declaration-sorter/-/css-declaration-sorter-7.1.1.tgz} + id: registry.npmmirror.com/css-declaration-sorter/7.1.1 + name: css-declaration-sorter + version: 7.1.1 + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.0.9 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + dev: true + registry.npmmirror.com/css-functions-list@3.2.1: resolution: {integrity: sha512-Nj5YcaGgBtuUmn1D7oHqPW0c9iui7xsTsj5lIX8ZgevdfhmjFfKB3r8moHJtNJnctnYXJyYX5I1pp90HM4TPgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-functions-list/-/css-functions-list-3.2.1.tgz} name: css-functions-list @@ -8045,6 +9471,24 @@ packages: domutils: registry.npmmirror.com/domutils@2.8.0 nth-check: registry.npmmirror.com/nth-check@2.1.1 + registry.npmmirror.com/css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-select/-/css-select-5.1.0.tgz} + name: css-select + version: 5.1.0 + dependencies: + boolbase: registry.npmmirror.com/boolbase@1.0.0 + css-what: registry.npmmirror.com/css-what@6.1.0 + domhandler: registry.npmmirror.com/domhandler@5.0.3 + domutils: registry.npmmirror.com/domutils@3.1.0 + nth-check: registry.npmmirror.com/nth-check@2.1.1 + dev: true + + registry.npmmirror.com/css-selector-parser@1.4.1: + resolution: {integrity: sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-selector-parser/-/css-selector-parser-1.4.1.tgz} + name: css-selector-parser + version: 1.4.1 + dev: false + registry.npmmirror.com/css-tree@1.0.0-alpha.37: resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz} name: css-tree @@ -8063,6 +9507,26 @@ packages: mdn-data: registry.npmmirror.com/mdn-data@2.0.14 source-map: registry.npmmirror.com/source-map@0.6.1 + registry.npmmirror.com/css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-2.2.1.tgz} + name: css-tree + version: 2.2.1 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: registry.npmmirror.com/mdn-data@2.0.28 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: true + + registry.npmmirror.com/css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-tree/-/css-tree-2.3.1.tgz} + name: css-tree + version: 2.3.1 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: registry.npmmirror.com/mdn-data@2.0.30 + source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + dev: true + registry.npmmirror.com/css-what@3.4.2: resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-what/-/css-what-3.4.2.tgz} name: css-what @@ -8096,6 +9560,73 @@ packages: engines: {node: '>=4'} hasBin: true + registry.npmmirror.com/cssnano-preset-default@6.0.2(postcss@8.4.32): + resolution: {integrity: sha512-VnZybFeZ63AiVqIUNlxqMxpj9VU8B5j0oKgP7WyVt/7mkyf97KsYkNzsPTV/RVmy54Pg7cBhOK4WATbdCB44gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssnano-preset-default/-/cssnano-preset-default-6.0.2.tgz} + id: registry.npmmirror.com/cssnano-preset-default/6.0.2 + name: cssnano-preset-default + version: 6.0.2 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + css-declaration-sorter: registry.npmmirror.com/css-declaration-sorter@7.1.1(postcss@8.4.32) + cssnano-utils: registry.npmmirror.com/cssnano-utils@4.0.1(postcss@8.4.32) + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-calc: registry.npmmirror.com/postcss-calc@9.0.1(postcss@8.4.32) + postcss-colormin: registry.npmmirror.com/postcss-colormin@6.0.1(postcss@8.4.32) + postcss-convert-values: registry.npmmirror.com/postcss-convert-values@6.0.1(postcss@8.4.32) + postcss-discard-comments: registry.npmmirror.com/postcss-discard-comments@6.0.1(postcss@8.4.32) + postcss-discard-duplicates: registry.npmmirror.com/postcss-discard-duplicates@6.0.1(postcss@8.4.32) + postcss-discard-empty: registry.npmmirror.com/postcss-discard-empty@6.0.1(postcss@8.4.32) + postcss-discard-overridden: registry.npmmirror.com/postcss-discard-overridden@6.0.1(postcss@8.4.32) + postcss-merge-longhand: registry.npmmirror.com/postcss-merge-longhand@6.0.1(postcss@8.4.32) + postcss-merge-rules: registry.npmmirror.com/postcss-merge-rules@6.0.2(postcss@8.4.32) + postcss-minify-font-values: registry.npmmirror.com/postcss-minify-font-values@6.0.1(postcss@8.4.32) + postcss-minify-gradients: registry.npmmirror.com/postcss-minify-gradients@6.0.1(postcss@8.4.32) + postcss-minify-params: registry.npmmirror.com/postcss-minify-params@6.0.1(postcss@8.4.32) + postcss-minify-selectors: registry.npmmirror.com/postcss-minify-selectors@6.0.1(postcss@8.4.32) + postcss-normalize-charset: registry.npmmirror.com/postcss-normalize-charset@6.0.1(postcss@8.4.32) + postcss-normalize-display-values: registry.npmmirror.com/postcss-normalize-display-values@6.0.1(postcss@8.4.32) + postcss-normalize-positions: registry.npmmirror.com/postcss-normalize-positions@6.0.1(postcss@8.4.32) + postcss-normalize-repeat-style: registry.npmmirror.com/postcss-normalize-repeat-style@6.0.1(postcss@8.4.32) + postcss-normalize-string: registry.npmmirror.com/postcss-normalize-string@6.0.1(postcss@8.4.32) + postcss-normalize-timing-functions: registry.npmmirror.com/postcss-normalize-timing-functions@6.0.1(postcss@8.4.32) + postcss-normalize-unicode: registry.npmmirror.com/postcss-normalize-unicode@6.0.1(postcss@8.4.32) + postcss-normalize-url: registry.npmmirror.com/postcss-normalize-url@6.0.1(postcss@8.4.32) + postcss-normalize-whitespace: registry.npmmirror.com/postcss-normalize-whitespace@6.0.1(postcss@8.4.32) + postcss-ordered-values: registry.npmmirror.com/postcss-ordered-values@6.0.1(postcss@8.4.32) + postcss-reduce-initial: registry.npmmirror.com/postcss-reduce-initial@6.0.1(postcss@8.4.32) + postcss-reduce-transforms: registry.npmmirror.com/postcss-reduce-transforms@6.0.1(postcss@8.4.32) + postcss-svgo: registry.npmmirror.com/postcss-svgo@6.0.1(postcss@8.4.32) + postcss-unique-selectors: registry.npmmirror.com/postcss-unique-selectors@6.0.1(postcss@8.4.32) + dev: true + + registry.npmmirror.com/cssnano-utils@4.0.1(postcss@8.4.32): + resolution: {integrity: sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-4.0.1.tgz} + id: registry.npmmirror.com/cssnano-utils/4.0.1 + name: cssnano-utils + version: 4.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + dev: true + + registry.npmmirror.com/cssnano@6.0.2(postcss@8.4.32): + resolution: {integrity: sha512-Tu9wv8UdN6CoiQnIVkCNvi+0rw/BwFWOJBlg2bVfEyKaadSuE3Gq/DD8tniVvggTJGwK88UjqZp7zL5sv6t1aA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cssnano/-/cssnano-6.0.2.tgz} + id: registry.npmmirror.com/cssnano/6.0.2 + name: cssnano + version: 6.0.2 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-preset-default: registry.npmmirror.com/cssnano-preset-default@6.0.2(postcss@8.4.32) + lilconfig: registry.npmmirror.com/lilconfig@3.0.0 + postcss: registry.npmmirror.com/postcss@8.4.32 + dev: true + registry.npmmirror.com/csso@4.2.0: resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz} name: csso @@ -8104,6 +9635,15 @@ packages: dependencies: css-tree: registry.npmmirror.com/css-tree@1.1.3 + registry.npmmirror.com/csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csso/-/csso-5.0.5.tgz} + name: csso + version: 5.0.5 + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: registry.npmmirror.com/css-tree@2.2.1 + dev: true + registry.npmmirror.com/csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz} name: csstype @@ -8189,6 +9729,15 @@ packages: engines: {node: '>=v12.20.0'} dev: true + registry.npmmirror.com/d@1.0.1: + resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d/-/d-1.0.1.tgz} + name: d + version: 1.0.1 + dependencies: + es5-ext: registry.npmmirror.com/es5-ext@0.10.62 + type: registry.npmmirror.com/type@1.2.0 + dev: false + registry.npmmirror.com/dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dargs/-/dargs-7.0.0.tgz} name: dargs @@ -8217,6 +9766,19 @@ packages: version: 1.11.10 dev: false + registry.npmmirror.com/debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz} + name: debug + version: 2.6.9 + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms@2.0.0 + dev: true + registry.npmmirror.com/debug@3.1.0: resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz} name: debug @@ -8374,6 +9936,41 @@ packages: has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 object-keys: registry.npmmirror.com/object-keys@1.1.1 + registry.npmmirror.com/define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-property/-/define-property-0.2.5.tgz} + name: define-property + version: 0.2.5 + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: registry.npmmirror.com/is-descriptor@0.1.7 + dev: true + + registry.npmmirror.com/define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-property/-/define-property-1.0.0.tgz} + name: define-property + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: registry.npmmirror.com/is-descriptor@1.0.3 + dev: true + + registry.npmmirror.com/define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/define-property/-/define-property-2.0.2.tgz} + name: define-property + version: 2.0.2 + engines: {node: '>=0.10.0'} + dependencies: + is-descriptor: registry.npmmirror.com/is-descriptor@1.0.3 + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: true + + registry.npmmirror.com/delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz} + name: delayed-stream + version: 1.0.0 + engines: {node: '>=0.4.0'} + dev: false + registry.npmmirror.com/deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/deprecation/-/deprecation-2.3.1.tgz} name: deprecation @@ -8462,6 +10059,13 @@ packages: dependencies: path-type: registry.npmmirror.com/path-type@4.0.0 + registry.npmmirror.com/direction@2.0.1: + resolution: {integrity: sha512-9S6m9Sukh1cZNknO1CWAr2QAWsbKLafQiyM5gZ7VgXHeuaoUwffKN4q6NC4A/Mf9iiPlOXQEKW/Mv/mh9/3YFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/direction/-/direction-2.0.1.tgz} + name: direction + version: 2.0.1 + hasBin: true + dev: false + registry.npmmirror.com/doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/doctrine/-/doctrine-2.1.0.tgz} name: doctrine @@ -8511,6 +10115,14 @@ packages: domhandler: registry.npmmirror.com/domhandler@5.0.3 entities: registry.npmmirror.com/entities@4.5.0 + registry.npmmirror.com/dom7@3.0.0: + resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz} + name: dom7 + version: 3.0.0 + dependencies: + ssr-window: registry.npmmirror.com/ssr-window@3.0.0 + dev: false + registry.npmmirror.com/domain-browser@1.2.0: resolution: {integrity: sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domain-browser/-/domain-browser-1.2.0.tgz} name: domain-browser @@ -8527,6 +10139,14 @@ packages: name: domelementtype version: 2.3.0 + registry.npmmirror.com/domhandler@2.4.2: + resolution: {integrity: sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-2.4.2.tgz} + name: domhandler + version: 2.4.2 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@1.3.1 + dev: true + registry.npmmirror.com/domhandler@4.3.1: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz} name: domhandler @@ -8786,6 +10406,15 @@ packages: version: 0.2.0 dev: true + registry.npmmirror.com/echarts@5.4.3: + resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/echarts/-/echarts-5.4.3.tgz} + name: echarts + version: 5.4.3 + dependencies: + tslib: registry.npmmirror.com/tslib@2.3.0 + zrender: registry.npmmirror.com/zrender@5.4.4 + dev: false + registry.npmmirror.com/editions@2.3.1: resolution: {integrity: sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/editions/-/editions-2.3.1.tgz} name: editions @@ -8795,6 +10424,12 @@ packages: errlop: registry.npmmirror.com/errlop@2.2.0 semver: registry.npmmirror.com/semver@6.3.1 + registry.npmmirror.com/ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz} + name: ee-first + version: 1.1.1 + dev: true + registry.npmmirror.com/electron-to-chromium@1.4.612: resolution: {integrity: sha512-dM8BMtXtlH237ecSMnYdYuCkib2QHq0kpWfUnavjdYsyr/6OsAwg5ZGUfnQ9KD1Ga4QgB2sqXlB2NT8zy2GnVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.612.tgz} name: electron-to-chromium @@ -8813,6 +10448,12 @@ packages: minimalistic-assert: registry.npmmirror.com/minimalistic-assert@1.0.1 minimalistic-crypto-utils: registry.npmmirror.com/minimalistic-crypto-utils@1.0.1 + registry.npmmirror.com/emoji-regex@10.3.0: + resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.3.0.tgz} + name: emoji-regex + version: 10.3.0 + dev: true + registry.npmmirror.com/emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz} name: emoji-regex @@ -8836,6 +10477,13 @@ packages: version: 3.0.0 engines: {node: '>= 4'} + registry.npmmirror.com/encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz} + name: encodeurl + version: 1.0.2 + engines: {node: '>= 0.8'} + dev: true + registry.npmmirror.com/encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz} name: encoding @@ -8878,6 +10526,12 @@ packages: strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 dev: true + registry.npmmirror.com/entities@1.1.2: + resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-1.1.2.tgz} + name: entities + version: 1.1.2 + dev: true + registry.npmmirror.com/entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz} name: entities @@ -9052,11 +10706,33 @@ packages: is-date-object: registry.npmmirror.com/is-date-object@1.0.5 is-symbol: registry.npmmirror.com/is-symbol@1.0.4 + registry.npmmirror.com/es5-ext@0.10.62: + resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz} + name: es5-ext + version: 0.10.62 + engines: {node: '>=0.10'} + requiresBuild: true + dependencies: + es6-iterator: registry.npmmirror.com/es6-iterator@2.0.3 + es6-symbol: registry.npmmirror.com/es6-symbol@3.1.3 + next-tick: registry.npmmirror.com/next-tick@1.1.0 + dev: false + registry.npmmirror.com/es5-imcompatible-versions@0.1.88: resolution: {integrity: sha512-GDJTmDGd65qyDk9fGClO+MOUgHuBuGMCL6EawvLH8Ob+HN8ui1OJwa4fEK0qh3fg2ieT2/pdZj41yrxnmOrK8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es5-imcompatible-versions/-/es5-imcompatible-versions-0.1.88.tgz} name: es5-imcompatible-versions version: 0.1.88 + registry.npmmirror.com/es6-iterator@2.0.3: + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz} + name: es6-iterator + version: 2.0.3 + dependencies: + d: registry.npmmirror.com/d@1.0.1 + es5-ext: registry.npmmirror.com/es5-ext@0.10.62 + es6-symbol: registry.npmmirror.com/es6-symbol@3.1.3 + dev: false + registry.npmmirror.com/es6-promise@4.2.8: resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es6-promise/-/es6-promise-4.2.8.tgz} name: es6-promise @@ -9069,58 +10745,318 @@ packages: dependencies: es6-promise: registry.npmmirror.com/es6-promise@4.2.8 - registry.npmmirror.com/esbuild@0.17.19: - resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz} - name: esbuild - version: 0.17.19 + registry.npmmirror.com/es6-symbol@3.1.3: + resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz} + name: es6-symbol + version: 3.1.3 + dependencies: + d: registry.npmmirror.com/d@1.0.1 + ext: registry.npmmirror.com/ext@1.7.0 + dev: false + + registry.npmmirror.com/esbuild-android-64@0.14.54: + resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz} + name: esbuild-android-64 + version: 0.14.54 engines: {node: '>=12'} - hasBin: true + cpu: [x64] + os: [android] requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.17.19 - '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.17.19 - '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.17.19 - '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19 - '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.17.19 - '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19 - '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19 - '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.17.19 - '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.17.19 - '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.17.19 - '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.17.19 - '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19 - '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19 - '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19 - '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.17.19 - '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.17.19 - '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19 - '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19 - '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.17.19 - '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.17.19 - '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.17.19 - '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.17.19 + dev: true + optional: true - registry.npmmirror.com/esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz} - name: esbuild - version: 0.18.20 + registry.npmmirror.com/esbuild-android-arm64@0.14.54: + resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz} + name: esbuild-android-arm64 + version: 0.14.54 engines: {node: '>=12'} - hasBin: true + cpu: [arm64] + os: [android] requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.18.20 - '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.18.20 - '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.18.20 - '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20 - '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.18.20 - '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20 - '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20 - '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.18.20 - '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.18.20 - '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.18.20 - '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.18.20 - '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20 - '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20 + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64@0.14.54: + resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz} + name: esbuild-darwin-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64@0.14.54: + resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz} + name: esbuild-darwin-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64@0.14.54: + resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz} + name: esbuild-freebsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54: + resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz} + name: esbuild-freebsd-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-32@0.14.54: + resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz} + name: esbuild-linux-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-64@0.14.54: + resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz} + name: esbuild-linux-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64@0.14.54: + resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz} + name: esbuild-linux-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm@0.14.54: + resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz} + name: esbuild-linux-arm + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le@0.14.54: + resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz} + name: esbuild-linux-mips64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54: + resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz} + name: esbuild-linux-ppc64le + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-riscv64@0.14.54: + resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz} + name: esbuild-linux-riscv64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-s390x@0.14.54: + resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz} + name: esbuild-linux-s390x + version: 0.14.54 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64@0.14.54: + resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz} + name: esbuild-netbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64@0.14.54: + resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz} + name: esbuild-openbsd-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64@0.14.54: + resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz} + name: esbuild-sunos-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-32@0.14.54: + resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz} + name: esbuild-windows-32 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-64@0.14.54: + resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz} + name: esbuild-windows-64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64@0.14.54: + resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz} + name: esbuild-windows-arm64 + version: 0.14.54 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild@0.14.54: + resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz} + name: esbuild + version: 0.14.54 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.14.54 + esbuild-android-64: registry.npmmirror.com/esbuild-android-64@0.14.54 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64@0.14.54 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64@0.14.54 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64@0.14.54 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64@0.14.54 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32@0.14.54 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64@0.14.54 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm@0.14.54 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64@0.14.54 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le@0.14.54 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64@0.14.54 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x@0.14.54 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64@0.14.54 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64@0.14.54 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64@0.14.54 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32@0.14.54 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64@0.14.54 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64@0.14.54 + dev: true + + registry.npmmirror.com/esbuild@0.17.19: + resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz} + name: esbuild + version: 0.17.19 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.17.19 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.17.19 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.17.19 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.17.19 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.17.19 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.17.19 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.17.19 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.17.19 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.17.19 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.17.19 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.17.19 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.17.19 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.17.19 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.17.19 + + registry.npmmirror.com/esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz} + name: esbuild + version: 0.18.20 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.18.20 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.18.20 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.18.20 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.18.20 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.18.20 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.18.20 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.18.20 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.18.20 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.18.20 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.18.20 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.18.20 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.18.20 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.18.20 '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.18.20 '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.18.20 '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.18.20 @@ -9131,12 +11067,50 @@ packages: '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.18.20 '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.18.20 + registry.npmmirror.com/esbuild@0.19.9: + resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.19.9.tgz} + name: esbuild + version: 0.19.9 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.19.9 + '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.19.9 + '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.19.9 + '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.19.9 + '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.19.9 + '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.9 + '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.19.9 + '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.19.9 + '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.19.9 + '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.19.9 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.19.9 + '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.19.9 + '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.19.9 + '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.19.9 + '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.19.9 + '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.19.9 + '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.19.9 + '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.19.9 + '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.19.9 + '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.19.9 + '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.19.9 + '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.19.9 + dev: true + registry.npmmirror.com/escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} name: escalade version: 3.1.1 engines: {node: '>=6'} + registry.npmmirror.com/escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz} + name: escape-html + version: 1.0.3 + dev: true + registry.npmmirror.com/escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} name: escape-string-regexp @@ -9155,16 +11129,122 @@ packages: version: 5.0.0 engines: {node: '>=12'} - registry.npmmirror.com/eslint-config-prettier@9.1.0(eslint@8.55.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz} - id: registry.npmmirror.com/eslint-config-prettier/9.1.0 - name: eslint-config-prettier - version: 9.1.0 - hasBin: true + registry.npmmirror.com/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.55.0): + resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz} + id: registry.npmmirror.com/eslint-config-airbnb-base/15.0.0 + name: eslint-config-airbnb-base + version: 15.0.0 + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + dependencies: + confusing-browser-globals: registry.npmmirror.com/confusing-browser-globals@1.0.11 + eslint: registry.npmmirror.com/eslint@8.55.0 + eslint-plugin-import: registry.npmmirror.com/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.55.0) + object.assign: registry.npmmirror.com/object.assign@4.1.5 + object.entries: registry.npmmirror.com/object.entries@1.1.7 + semver: registry.npmmirror.com/semver@6.3.1 + dev: false + + registry.npmmirror.com/eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.29.1)(eslint@8.55.0): + resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz} + id: registry.npmmirror.com/eslint-config-airbnb-typescript/17.1.0 + name: eslint-config-airbnb-typescript + version: 17.1.0 + peerDependencies: + '@typescript-eslint/eslint-plugin': ^5.13.0 || ^6.0.0 + '@typescript-eslint/parser': ^5.0.0 || ^6.0.0 + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + dependencies: + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) + eslint: registry.npmmirror.com/eslint@8.55.0 + eslint-config-airbnb-base: registry.npmmirror.com/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.55.0) + eslint-plugin-import: registry.npmmirror.com/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.55.0) + dev: false + + registry.npmmirror.com/eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz} + name: eslint-import-resolver-node + version: 0.3.9 + dependencies: + debug: registry.npmmirror.com/debug@3.2.7 + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + resolve: registry.npmmirror.com/resolve@1.22.8 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz} + id: registry.npmmirror.com/eslint-module-utils/2.8.0 + name: eslint-module-utils + version: 2.8.0 + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) + debug: registry.npmmirror.com/debug@3.2.7 + eslint: registry.npmmirror.com/eslint@8.55.0 + eslint-import-resolver-node: registry.npmmirror.com/eslint-import-resolver-node@0.3.9 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.55.0): + resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz} + id: registry.npmmirror.com/eslint-plugin-import/2.29.1 + name: eslint-plugin-import + version: 2.29.1 + engines: {node: '>=4'} peerDependencies: - eslint: '>=7.0.0' + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) + array-includes: registry.npmmirror.com/array-includes@3.1.7 + array.prototype.findlastindex: registry.npmmirror.com/array.prototype.findlastindex@1.2.3 + array.prototype.flat: registry.npmmirror.com/array.prototype.flat@1.3.2 + array.prototype.flatmap: registry.npmmirror.com/array.prototype.flatmap@1.3.2 + debug: registry.npmmirror.com/debug@3.2.7 + doctrine: registry.npmmirror.com/doctrine@2.1.0 eslint: registry.npmmirror.com/eslint@8.55.0 + eslint-import-resolver-node: registry.npmmirror.com/eslint-import-resolver-node@0.3.9 + eslint-module-utils: registry.npmmirror.com/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + hasown: registry.npmmirror.com/hasown@2.0.0 + is-core-module: registry.npmmirror.com/is-core-module@2.13.1 + is-glob: registry.npmmirror.com/is-glob@4.0.3 + minimatch: registry.npmmirror.com/minimatch@3.1.2 + object.fromentries: registry.npmmirror.com/object.fromentries@2.0.7 + object.groupby: registry.npmmirror.com/object.groupby@1.0.1 + object.values: registry.npmmirror.com/object.values@1.1.7 + semver: registry.npmmirror.com/semver@6.3.1 + tsconfig-paths: registry.npmmirror.com/tsconfig-paths@3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color dev: false registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.55.0)(typescript@5.3.3): @@ -9228,6 +11308,17 @@ packages: semver: registry.npmmirror.com/semver@6.3.1 string.prototype.matchall: registry.npmmirror.com/string.prototype.matchall@4.0.10 + registry.npmmirror.com/eslint-plugin-simple-import-sort@8.0.0(eslint@8.55.0): + resolution: {integrity: sha512-bXgJQ+lqhtQBCuWY/FUWdB27j4+lqcvXv5rUARkzbeWLwea+S5eBZEQrhnO+WgX3ZoJHVj0cn943iyXwByHHQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-8.0.0.tgz} + id: registry.npmmirror.com/eslint-plugin-simple-import-sort/8.0.0 + name: eslint-plugin-simple-import-sort + version: 8.0.0 + peerDependencies: + eslint: '>=5.0.0' + dependencies: + eslint: registry.npmmirror.com/eslint@8.55.0 + dev: false + registry.npmmirror.com/eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz} name: eslint-scope @@ -9380,12 +11471,34 @@ packages: '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + registry.npmmirror.com/estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} + name: estree-walker + version: 2.0.2 + dev: true + registry.npmmirror.com/esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz} name: esutils version: 2.0.3 engines: {node: '>=0.10.0'} + registry.npmmirror.com/etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz} + name: etag + version: 1.8.1 + engines: {node: '>= 0.6'} + dev: true + + registry.npmmirror.com/event-emitter@0.3.5: + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz} + name: event-emitter + version: 0.3.5 + dependencies: + d: registry.npmmirror.com/d@1.0.1 + es5-ext: registry.npmmirror.com/es5-ext@0.10.62 + dev: false + registry.npmmirror.com/eventemitter3@2.0.3: resolution: {integrity: sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eventemitter3/-/eventemitter3-2.0.3.tgz} name: eventemitter3 @@ -9474,6 +11587,23 @@ packages: strip-final-newline: registry.npmmirror.com/strip-final-newline@3.0.0 dev: true + registry.npmmirror.com/expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/expand-brackets/-/expand-brackets-2.1.4.tgz} + name: expand-brackets + version: 2.1.4 + engines: {node: '>=0.10.0'} + dependencies: + debug: registry.npmmirror.com/debug@2.6.9 + define-property: registry.npmmirror.com/define-property@0.2.5 + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + posix-character-classes: registry.npmmirror.com/posix-character-classes@0.1.1 + regex-not: registry.npmmirror.com/regex-not@1.0.2 + snapdragon: registry.npmmirror.com/snapdragon@0.8.2 + to-regex: registry.npmmirror.com/to-regex@3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/expand-tilde@1.2.2: resolution: {integrity: sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/expand-tilde/-/expand-tilde-1.2.2.tgz} name: expand-tilde @@ -9491,6 +11621,14 @@ packages: homedir-polyfill: registry.npmmirror.com/homedir-polyfill@1.0.3 dev: true + registry.npmmirror.com/ext@1.7.0: + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz} + name: ext + version: 1.7.0 + dependencies: + type: registry.npmmirror.com/type@2.7.2 + dev: false + registry.npmmirror.com/extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz} name: extend-shallow @@ -9499,6 +11637,16 @@ packages: dependencies: is-extendable: registry.npmmirror.com/is-extendable@0.1.1 + registry.npmmirror.com/extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend-shallow/-/extend-shallow-3.0.2.tgz} + name: extend-shallow + version: 3.0.2 + engines: {node: '>=0.10.0'} + dependencies: + assign-symbols: registry.npmmirror.com/assign-symbols@1.0.0 + is-extendable: registry.npmmirror.com/is-extendable@1.0.1 + dev: true + registry.npmmirror.com/extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz} name: extend @@ -9520,6 +11668,24 @@ packages: iconv-lite: registry.npmmirror.com/iconv-lite@0.4.24 tmp: registry.npmmirror.com/tmp@0.0.33 + registry.npmmirror.com/extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/extglob/-/extglob-2.0.4.tgz} + name: extglob + version: 2.0.4 + engines: {node: '>=0.10.0'} + dependencies: + array-unique: registry.npmmirror.com/array-unique@0.3.2 + define-property: registry.npmmirror.com/define-property@1.0.0 + expand-brackets: registry.npmmirror.com/expand-brackets@2.1.4 + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + fragment-cache: registry.npmmirror.com/fragment-cache@0.2.1 + regex-not: registry.npmmirror.com/regex-not@1.0.2 + snapdragon: registry.npmmirror.com/snapdragon@0.8.2 + to-regex: registry.npmmirror.com/to-regex@3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} name: fast-deep-equal @@ -9559,6 +11725,12 @@ packages: name: fast-levenshtein version: 2.0.6 + registry.npmmirror.com/fast-memoize@2.5.2: + resolution: {integrity: sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-memoize/-/fast-memoize-2.5.2.tgz} + name: fast-memoize + version: 2.5.2 + dev: false + registry.npmmirror.com/fast-redact@3.3.0: resolution: {integrity: sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fast-redact/-/fast-redact-3.3.0.tgz} name: fast-redact @@ -9688,6 +11860,12 @@ packages: version: 0.1.0 engines: {node: '>=0.10.0'} + registry.npmmirror.com/file-saver@2.0.5: + resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz} + name: file-saver + version: 2.0.5 + dev: false + registry.npmmirror.com/file-system-cache@2.0.0: resolution: {integrity: sha512-QlYut2ZtxRgdW/dboSmiKZWM8FsnpLaLI549hN/RWgwn3FawSil7Jc2n7nFHheclvYxa4LJqwEOvNUYv9VsCXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-system-cache/-/file-system-cache-2.0.0.tgz} name: file-system-cache @@ -9713,6 +11891,18 @@ packages: version: 3.6.1 engines: {node: '>= 0.4.0'} + registry.npmmirror.com/fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-4.0.0.tgz} + name: fill-range + version: 4.0.0 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + is-number: registry.npmmirror.com/is-number@3.0.0 + repeat-string: registry.npmmirror.com/repeat-string@1.6.1 + to-regex-range: registry.npmmirror.com/to-regex-range@2.1.1 + dev: true + registry.npmmirror.com/fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz} name: fill-range @@ -9727,6 +11917,23 @@ packages: version: 1.1.0 engines: {node: '>=0.10.0'} + registry.npmmirror.com/finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/finalhandler/-/finalhandler-1.1.2.tgz} + name: finalhandler + version: 1.1.2 + engines: {node: '>= 0.8'} + dependencies: + debug: registry.npmmirror.com/debug@2.6.9 + encodeurl: registry.npmmirror.com/encodeurl@1.0.2 + escape-html: registry.npmmirror.com/escape-html@1.0.3 + on-finished: registry.npmmirror.com/on-finished@2.3.0 + parseurl: registry.npmmirror.com/parseurl@1.3.3 + statuses: registry.npmmirror.com/statuses@1.5.0 + unpipe: registry.npmmirror.com/unpipe@1.0.0 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/find-babel-config@1.2.0: resolution: {integrity: sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-babel-config/-/find-babel-config-1.2.0.tgz} name: find-babel-config @@ -9864,6 +12071,18 @@ packages: inherits: registry.npmmirror.com/inherits@2.0.4 readable-stream: registry.npmmirror.com/readable-stream@2.3.8 + registry.npmmirror.com/follow-redirects@1.15.3: + resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.3.tgz} + name: follow-redirects + version: 1.15.3 + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + dev: false + registry.npmmirror.com/follow-redirects@1.5.10: resolution: {integrity: sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.5.10.tgz} name: follow-redirects @@ -9881,6 +12100,23 @@ packages: dependencies: is-callable: registry.npmmirror.com/is-callable@1.2.7 + registry.npmmirror.com/for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/for-in/-/for-in-1.0.2.tgz} + name: for-in + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/foreground-child/-/foreground-child-3.1.1.tgz} + name: foreground-child + version: 3.1.1 + engines: {node: '>=14'} + dependencies: + cross-spawn: registry.npmmirror.com/cross-spawn@7.0.3 + signal-exit: registry.npmmirror.com/signal-exit@4.1.0 + dev: true + registry.npmmirror.com/fork-ts-checker-webpack-plugin@8.0.0(typescript@5.0.4)(webpack@5.89.0): resolution: {integrity: sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz} id: registry.npmmirror.com/fork-ts-checker-webpack-plugin/8.0.0 @@ -9932,6 +12168,17 @@ packages: typescript: registry.npmmirror.com/typescript@5.3.3 webpack: registry.npmmirror.com/webpack@5.89.0 + registry.npmmirror.com/form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz} + name: form-data + version: 4.0.0 + engines: {node: '>= 6'} + dependencies: + asynckit: registry.npmmirror.com/asynckit@0.4.0 + combined-stream: registry.npmmirror.com/combined-stream@1.0.8 + mime-types: registry.npmmirror.com/mime-types@2.1.35 + dev: false + registry.npmmirror.com/format@0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/format/-/format-0.2.2.tgz} name: format @@ -9946,11 +12193,27 @@ packages: dependencies: fetch-blob: registry.npmmirror.com/fetch-blob@3.2.0 + registry.npmmirror.com/frac@1.1.2: + resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz} + name: frac + version: 1.1.2 + engines: {node: '>=0.8'} + dev: false + registry.npmmirror.com/fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz} name: fraction.js version: 4.3.7 + registry.npmmirror.com/fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fragment-cache/-/fragment-cache-0.2.1.tgz} + name: fragment-cache + version: 0.2.1 + engines: {node: '>=0.10.0'} + dependencies: + map-cache: registry.npmmirror.com/map-cache@0.2.2 + dev: true + registry.npmmirror.com/from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/from2/-/from2-2.3.0.tgz} name: from2 @@ -10111,6 +12374,13 @@ packages: version: 2.0.5 engines: {node: 6.* || 8.* || >= 10.*} + registry.npmmirror.com/get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz} + name: get-east-asian-width + version: 1.2.0 + engines: {node: '>=18'} + dev: true + registry.npmmirror.com/get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz} name: get-intrinsic @@ -10254,6 +12524,12 @@ packages: name: github-slugger version: 1.5.0 + registry.npmmirror.com/github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/github-slugger/-/github-slugger-2.0.0.tgz} + name: github-slugger + version: 2.0.0 + dev: false + registry.npmmirror.com/glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz} name: glob-parent @@ -10275,6 +12551,20 @@ packages: name: glob-to-regexp version: 0.4.1 + registry.npmmirror.com/glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-10.3.10.tgz} + name: glob + version: 10.3.10 + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: registry.npmmirror.com/foreground-child@3.1.1 + jackspeak: registry.npmmirror.com/jackspeak@2.3.6 + minimatch: registry.npmmirror.com/minimatch@9.0.3 + minipass: registry.npmmirror.com/minipass@7.0.4 + path-scurry: registry.npmmirror.com/path-scurry@1.10.1 + dev: true + registry.npmmirror.com/glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz} name: glob @@ -10503,11 +12793,27 @@ packages: name: harmony-reflect version: 1.6.2 + registry.npmmirror.com/has-ansi@2.0.0: + resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-ansi/-/has-ansi-2.0.0.tgz} + name: has-ansi + version: 2.0.0 + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 + dev: true + registry.npmmirror.com/has-bigints@1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-bigints/-/has-bigints-1.0.2.tgz} name: has-bigints version: 1.0.2 + registry.npmmirror.com/has-flag@1.0.0: + resolution: {integrity: sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-1.0.0.tgz} + name: has-flag + version: 1.0.0 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} name: has-flag @@ -10557,12 +12863,33 @@ packages: has-values: registry.npmmirror.com/has-values@0.1.4 isobject: registry.npmmirror.com/isobject@2.1.0 + registry.npmmirror.com/has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-value/-/has-value-1.0.0.tgz} + name: has-value + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + get-value: registry.npmmirror.com/get-value@2.0.6 + has-values: registry.npmmirror.com/has-values@1.0.0 + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: true + registry.npmmirror.com/has-values@0.1.4: resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-values/-/has-values-0.1.4.tgz} name: has-values version: 0.1.4 engines: {node: '>=0.10.0'} + registry.npmmirror.com/has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-values/-/has-values-1.0.0.tgz} + name: has-values + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + is-number: registry.npmmirror.com/is-number@3.0.0 + kind-of: registry.npmmirror.com/kind-of@4.0.0 + dev: true + registry.npmmirror.com/hash-base@3.1.0: resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hash-base/-/hash-base-3.1.0.tgz} name: hash-base @@ -10677,6 +13004,28 @@ packages: web-namespaces: registry.npmmirror.com/web-namespaces@2.0.1 zwitch: registry.npmmirror.com/zwitch@2.0.4 + registry.npmmirror.com/hast-util-select@5.0.5: + resolution: {integrity: sha512-QQhWMhgTFRhCaQdgTKzZ5g31GLQ9qRb1hZtDPMqQaOhpLBziWcshUS0uCR5IJ0U1jrK/mxg35fmcq+Dp/Cy2Aw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-select/-/hast-util-select-5.0.5.tgz} + name: hast-util-select + version: 5.0.5 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + bcp-47-match: registry.npmmirror.com/bcp-47-match@2.0.3 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + css-selector-parser: registry.npmmirror.com/css-selector-parser@1.4.1 + direction: registry.npmmirror.com/direction@2.0.1 + hast-util-has-property: registry.npmmirror.com/hast-util-has-property@2.0.1 + hast-util-to-string: registry.npmmirror.com/hast-util-to-string@2.0.0 + hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace@2.0.1 + not: registry.npmmirror.com/not@0.1.0 + nth-check: registry.npmmirror.com/nth-check@2.1.1 + property-information: registry.npmmirror.com/property-information@6.4.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + zwitch: registry.npmmirror.com/zwitch@2.0.4 + dev: false + registry.npmmirror.com/hast-util-to-estree@2.3.3: resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz} name: hast-util-to-estree @@ -10958,6 +13307,19 @@ packages: transformation-matrix: registry.npmmirror.com/transformation-matrix@2.15.0 uuid: registry.npmmirror.com/uuid@8.3.2 + registry.npmmirror.com/htmlparser2@3.10.1: + resolution: {integrity: sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-3.10.1.tgz} + name: htmlparser2 + version: 3.10.1 + dependencies: + domelementtype: registry.npmmirror.com/domelementtype@1.3.1 + domhandler: registry.npmmirror.com/domhandler@2.4.2 + domutils: registry.npmmirror.com/domutils@1.7.0 + entities: registry.npmmirror.com/entities@1.1.2 + inherits: registry.npmmirror.com/inherits@2.0.4 + readable-stream: registry.npmmirror.com/readable-stream@3.6.2 + dev: true + registry.npmmirror.com/htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz} name: htmlparser2 @@ -11084,6 +13446,14 @@ packages: hasBin: true dev: true + registry.npmmirror.com/i18next@20.6.1: + resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz} + name: i18next + version: 20.6.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + dev: false + registry.npmmirror.com/iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz} name: iconv-lite @@ -11142,7 +13512,6 @@ packages: engines: {node: '>=0.10.0'} hasBin: true requiresBuild: true - optional: true registry.npmmirror.com/image-size@0.8.3: resolution: {integrity: sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.8.3.tgz} @@ -11153,6 +13522,18 @@ packages: dependencies: queue: registry.npmmirror.com/queue@6.0.1 + registry.npmmirror.com/immer@10.0.3: + resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/immer/-/immer-10.0.3.tgz} + name: immer + version: 10.0.3 + dev: false + + registry.npmmirror.com/immer@9.0.21: + resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz} + name: immer + version: 9.0.21 + dev: false + registry.npmmirror.com/immutable@4.3.4: resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz} name: immutable @@ -11342,6 +13723,15 @@ packages: name: ip version: 1.1.8 + registry.npmmirror.com/is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz} + name: is-accessor-descriptor + version: 1.0.1 + engines: {node: '>= 0.10'} + dependencies: + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: true + registry.npmmirror.com/is-alphabetical@1.0.4: resolution: {integrity: sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz} name: is-alphabetical @@ -11470,6 +13860,15 @@ packages: dependencies: hasown: registry.npmmirror.com/hasown@2.0.0 + registry.npmmirror.com/is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz} + name: is-data-descriptor + version: 1.0.1 + engines: {node: '>= 0.4'} + dependencies: + hasown: registry.npmmirror.com/hasown@2.0.0 + dev: true + registry.npmmirror.com/is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-date-object/-/is-date-object-1.0.5.tgz} name: is-date-object @@ -11489,6 +13888,26 @@ packages: name: is-decimal version: 2.0.1 + registry.npmmirror.com/is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-descriptor/-/is-descriptor-0.1.7.tgz} + name: is-descriptor + version: 0.1.7 + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: registry.npmmirror.com/is-accessor-descriptor@1.0.1 + is-data-descriptor: registry.npmmirror.com/is-data-descriptor@1.0.1 + dev: true + + registry.npmmirror.com/is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-descriptor/-/is-descriptor-1.0.3.tgz} + name: is-descriptor + version: 1.0.3 + engines: {node: '>= 0.4'} + dependencies: + is-accessor-descriptor: registry.npmmirror.com/is-accessor-descriptor@1.0.1 + is-data-descriptor: registry.npmmirror.com/is-data-descriptor@1.0.1 + dev: true + registry.npmmirror.com/is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz} name: is-docker @@ -11538,6 +13957,15 @@ packages: version: 0.1.1 engines: {node: '>=0.10.0'} + registry.npmmirror.com/is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extendable/-/is-extendable-1.0.1.tgz} + name: is-extendable + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + is-plain-object: registry.npmmirror.com/is-plain-object@2.0.4 + dev: true + registry.npmmirror.com/is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz} name: is-extglob @@ -11570,6 +13998,15 @@ packages: engines: {node: '>=12'} dev: true + registry.npmmirror.com/is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz} + name: is-fullwidth-code-point + version: 5.0.0 + engines: {node: '>=18'} + dependencies: + get-east-asian-width: registry.npmmirror.com/get-east-asian-width@1.2.0 + dev: true + registry.npmmirror.com/is-generator-function@1.0.10: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz} name: is-generator-function @@ -11597,6 +14034,12 @@ packages: name: is-hexadecimal version: 2.0.1 + registry.npmmirror.com/is-hotkey@0.2.0: + resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz} + name: is-hotkey + version: 0.2.0 + dev: false + registry.npmmirror.com/is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-inside-container/-/is-inside-container-1.0.0.tgz} name: is-inside-container @@ -11647,6 +14090,15 @@ packages: dependencies: has-tostringtag: registry.npmmirror.com/has-tostringtag@1.0.0 + registry.npmmirror.com/is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-3.0.0.tgz} + name: is-number + version: 3.0.0 + engines: {node: '>=0.10.0'} + dependencies: + kind-of: registry.npmmirror.com/kind-of@3.2.2 + dev: true + registry.npmmirror.com/is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz} name: is-number @@ -11822,6 +14274,12 @@ packages: engines: {node: '>=18'} dev: true + registry.npmmirror.com/is-url@1.2.4: + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz} + name: is-url + version: 1.2.4 + dev: false + registry.npmmirror.com/is-utf8@0.2.1: resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-utf8/-/is-utf8-0.2.1.tgz} name: is-utf8 @@ -11976,6 +14434,17 @@ packages: reflect.getprototypeof: registry.npmmirror.com/reflect.getprototypeof@1.0.4 set-function-name: registry.npmmirror.com/set-function-name@2.0.1 + registry.npmmirror.com/jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jackspeak/-/jackspeak-2.3.6.tgz} + name: jackspeak + version: 2.3.6 + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': registry.npmmirror.com/@isaacs/cliui@8.0.2 + optionalDependencies: + '@pkgjs/parseargs': registry.npmmirror.com/@pkgjs/parseargs@0.11.0 + dev: true + registry.npmmirror.com/java-properties@1.0.2: resolution: {integrity: sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/java-properties/-/java-properties-1.0.2.tgz} name: java-properties @@ -12068,6 +14537,12 @@ packages: version: 1.4.0 dev: true + registry.npmmirror.com/js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-base64/-/js-base64-2.6.4.tgz} + name: js-base64 + version: 2.6.4 + dev: true + registry.npmmirror.com/js-cookie@2.2.1: resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-cookie/-/js-cookie-2.2.1.tgz} name: js-cookie @@ -12161,6 +14636,14 @@ packages: hasBin: true dev: true + registry.npmmirror.com/json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-1.0.2.tgz} + name: json5 + version: 1.0.2 + hasBin: true + dependencies: + minimist: registry.npmmirror.com/minimist@1.2.8 + registry.npmmirror.com/json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-2.2.3.tgz} name: json5 @@ -12225,6 +14708,22 @@ packages: dependencies: is-buffer: registry.npmmirror.com/is-buffer@1.1.6 + registry.npmmirror.com/kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-4.0.0.tgz} + name: kind-of + version: 4.0.0 + engines: {node: '>=0.10.0'} + dependencies: + is-buffer: registry.npmmirror.com/is-buffer@1.1.6 + dev: true + + registry.npmmirror.com/kind-of@5.1.0: + resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-5.1.0.tgz} + name: kind-of + version: 5.1.0 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz} name: kind-of @@ -12292,6 +14791,26 @@ packages: needle: registry.npmmirror.com/needle@3.3.1 source-map: registry.npmmirror.com/source-map@0.6.1 + registry.npmmirror.com/less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/less/-/less-4.2.0.tgz} + name: less + version: 4.2.0 + engines: {node: '>=6'} + hasBin: true + dependencies: + copy-anything: registry.npmmirror.com/copy-anything@2.0.6 + parse-node-version: registry.npmmirror.com/parse-node-version@1.0.1 + tslib: registry.npmmirror.com/tslib@2.6.2 + optionalDependencies: + errno: registry.npmmirror.com/errno@0.1.8 + graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 + image-size: registry.npmmirror.com/image-size@0.5.5 + make-dir: registry.npmmirror.com/make-dir@2.1.0 + mime: registry.npmmirror.com/mime@1.6.0 + needle: registry.npmmirror.com/needle@3.3.1 + source-map: registry.npmmirror.com/source-map@0.6.1 + dev: true + registry.npmmirror.com/levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} name: levn @@ -12420,6 +14939,13 @@ packages: engines: {node: '>=10'} dev: true + registry.npmmirror.com/lilconfig@3.0.0: + resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lilconfig/-/lilconfig-3.0.0.tgz} + name: lilconfig + version: 3.0.0 + engines: {node: '>=14'} + dev: true + registry.npmmirror.com/lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz} name: lines-and-columns @@ -12447,6 +14973,27 @@ packages: - supports-color dev: true + registry.npmmirror.com/lint-staged@15.2.0: + resolution: {integrity: sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lint-staged/-/lint-staged-15.2.0.tgz} + name: lint-staged + version: 15.2.0 + engines: {node: '>=18.12.0'} + hasBin: true + dependencies: + chalk: registry.npmmirror.com/chalk@5.3.0 + commander: registry.npmmirror.com/commander@11.1.0 + debug: registry.npmmirror.com/debug@4.3.4 + execa: registry.npmmirror.com/execa@8.0.1 + lilconfig: registry.npmmirror.com/lilconfig@3.0.0 + listr2: registry.npmmirror.com/listr2@8.0.0 + micromatch: registry.npmmirror.com/micromatch@4.0.5 + pidtree: registry.npmmirror.com/pidtree@0.6.0 + string-argv: registry.npmmirror.com/string-argv@0.3.2 + yaml: registry.npmmirror.com/yaml@2.3.4 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/listr2@6.6.1: resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/listr2/-/listr2-6.6.1.tgz} name: listr2 @@ -12458,12 +15005,26 @@ packages: enquirer: optional: true dependencies: - cli-truncate: registry.npmmirror.com/cli-truncate@3.1.0 + cli-truncate: registry.npmmirror.com/cli-truncate@3.1.0 + colorette: registry.npmmirror.com/colorette@2.0.20 + eventemitter3: registry.npmmirror.com/eventemitter3@5.0.1 + log-update: registry.npmmirror.com/log-update@5.0.1 + rfdc: registry.npmmirror.com/rfdc@1.3.0 + wrap-ansi: registry.npmmirror.com/wrap-ansi@8.1.0 + dev: true + + registry.npmmirror.com/listr2@8.0.0: + resolution: {integrity: sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/listr2/-/listr2-8.0.0.tgz} + name: listr2 + version: 8.0.0 + engines: {node: '>=18.0.0'} + dependencies: + cli-truncate: registry.npmmirror.com/cli-truncate@4.0.0 colorette: registry.npmmirror.com/colorette@2.0.20 eventemitter3: registry.npmmirror.com/eventemitter3@5.0.1 - log-update: registry.npmmirror.com/log-update@5.0.1 + log-update: registry.npmmirror.com/log-update@6.0.0 rfdc: registry.npmmirror.com/rfdc@1.3.0 - wrap-ansi: registry.npmmirror.com/wrap-ansi@8.1.0 + wrap-ansi: registry.npmmirror.com/wrap-ansi@9.0.0 dev: true registry.npmmirror.com/load-json-file@4.0.0: @@ -12503,6 +15064,17 @@ packages: version: 4.3.0 engines: {node: '>=6.11.5'} + registry.npmmirror.com/loader-utils@1.4.2: + resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.2.tgz} + name: loader-utils + version: 1.4.2 + engines: {node: '>=4.0.0'} + dependencies: + big.js: registry.npmmirror.com/big.js@5.2.2 + emojis-list: registry.npmmirror.com/emojis-list@3.0.0 + json5: registry.npmmirror.com/json5@1.0.2 + dev: true + registry.npmmirror.com/loader-utils@2.0.4: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz} name: loader-utils @@ -12559,13 +15131,11 @@ packages: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz} name: lodash-es version: 4.17.21 - dev: true registry.npmmirror.com/lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz} name: lodash.camelcase version: 4.3.0 - dev: true registry.npmmirror.com/lodash.capitalize@4.2.1: resolution: {integrity: sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz} @@ -12573,6 +15143,12 @@ packages: version: 4.2.1 dev: true + registry.npmmirror.com/lodash.clonedeep@4.5.0: + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz} + name: lodash.clonedeep + version: 4.5.0 + dev: false + registry.npmmirror.com/lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz} name: lodash.debounce @@ -12584,6 +15160,12 @@ packages: version: 4.1.2 dev: true + registry.npmmirror.com/lodash.foreach@4.5.0: + resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz} + name: lodash.foreach + version: 4.5.0 + dev: false + registry.npmmirror.com/lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.get/-/lodash.get-4.4.2.tgz} name: lodash.get @@ -12594,7 +15176,6 @@ packages: resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz} name: lodash.isequal version: 4.5.0 - dev: true registry.npmmirror.com/lodash.isfunction@3.0.9: resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz} @@ -12626,6 +15207,12 @@ packages: version: 4.6.0 dev: true + registry.npmmirror.com/lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz} + name: lodash.memoize + version: 4.1.2 + dev: true + registry.npmmirror.com/lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz} name: lodash.merge @@ -12654,6 +15241,12 @@ packages: name: lodash.throttle version: 4.1.1 + registry.npmmirror.com/lodash.toarray@4.4.0: + resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz} + name: lodash.toarray + version: 4.4.0 + dev: false + registry.npmmirror.com/lodash.truncate@4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz} name: lodash.truncate @@ -12713,6 +15306,19 @@ packages: wrap-ansi: registry.npmmirror.com/wrap-ansi@8.1.0 dev: true + registry.npmmirror.com/log-update@6.0.0: + resolution: {integrity: sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-update/-/log-update-6.0.0.tgz} + name: log-update + version: 6.0.0 + engines: {node: '>=18'} + dependencies: + ansi-escapes: registry.npmmirror.com/ansi-escapes@6.2.0 + cli-cursor: registry.npmmirror.com/cli-cursor@4.0.0 + slice-ansi: registry.npmmirror.com/slice-ansi@7.1.0 + strip-ansi: registry.npmmirror.com/strip-ansi@7.1.0 + wrap-ansi: registry.npmmirror.com/wrap-ansi@9.0.0 + dev: true + registry.npmmirror.com/longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz} name: longest-streak @@ -12848,6 +15454,13 @@ packages: dependencies: tmpl: registry.npmmirror.com/tmpl@1.0.5 + registry.npmmirror.com/map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-cache/-/map-cache-0.2.2.tgz} + name: map-cache + version: 0.2.2 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-obj/-/map-obj-1.0.1.tgz} name: map-obj @@ -12860,6 +15473,15 @@ packages: version: 4.3.0 engines: {node: '>=8'} + registry.npmmirror.com/map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/map-visit/-/map-visit-1.0.0.tgz} + name: map-visit + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + object-visit: registry.npmmirror.com/object-visit@1.0.1 + dev: true + registry.npmmirror.com/markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/markdown-table/-/markdown-table-3.0.3.tgz} name: markdown-table @@ -13104,6 +15726,18 @@ packages: name: mdn-data version: 2.0.14 + registry.npmmirror.com/mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.28.tgz} + name: mdn-data + version: 2.0.28 + dev: true + + registry.npmmirror.com/mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.30.tgz} + name: mdn-data + version: 2.0.30 + dev: true + registry.npmmirror.com/mdn-data@2.0.4: resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.4.tgz} name: mdn-data @@ -13181,6 +15815,15 @@ packages: type-fest: registry.npmmirror.com/type-fest@0.18.1 yargs-parser: registry.npmmirror.com/yargs-parser@20.2.9 + registry.npmmirror.com/merge-options@1.0.1: + resolution: {integrity: sha512-iuPV41VWKWBIOpBsjoxjDZw8/GbSfZ2mk7N1453bwMrfzdrIk7EzBd+8UVR6rkw67th7xnk9Dytl3J+lHPdxvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge-options/-/merge-options-1.0.1.tgz} + name: merge-options + version: 1.0.1 + engines: {node: '>=4'} + dependencies: + is-plain-obj: registry.npmmirror.com/is-plain-obj@1.1.0 + dev: true + registry.npmmirror.com/merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz} name: merge-stream @@ -13496,6 +16139,29 @@ packages: transitivePeerDependencies: - supports-color + registry.npmmirror.com/micromatch@3.1.0: + resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-3.1.0.tgz} + name: micromatch + version: 3.1.0 + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: registry.npmmirror.com/arr-diff@4.0.0 + array-unique: registry.npmmirror.com/array-unique@0.3.2 + braces: registry.npmmirror.com/braces@2.3.2 + define-property: registry.npmmirror.com/define-property@1.0.0 + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + extglob: registry.npmmirror.com/extglob@2.0.4 + fragment-cache: registry.npmmirror.com/fragment-cache@0.2.1 + kind-of: registry.npmmirror.com/kind-of@5.1.0 + nanomatch: registry.npmmirror.com/nanomatch@1.2.13 + object.pick: registry.npmmirror.com/object.pick@1.3.0 + regex-not: registry.npmmirror.com/regex-not@1.0.2 + snapdragon: registry.npmmirror.com/snapdragon@0.8.2 + to-regex: registry.npmmirror.com/to-regex@3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz} name: micromatch @@ -13520,6 +16186,14 @@ packages: version: 1.52.0 engines: {node: '>= 0.6'} + registry.npmmirror.com/mime-match@1.0.2: + resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz} + name: mime-match + version: 1.0.2 + dependencies: + wildcard: registry.npmmirror.com/wildcard@1.1.2 + dev: false + registry.npmmirror.com/mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz} name: mime-types @@ -13593,6 +16267,15 @@ packages: dependencies: brace-expansion: registry.npmmirror.com/brace-expansion@1.1.11 + registry.npmmirror.com/minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimatch/-/minimatch-9.0.3.tgz} + name: minimatch + version: 9.0.3 + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: registry.npmmirror.com/brace-expansion@2.0.1 + dev: true + registry.npmmirror.com/minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minimist-options/-/minimist-options-4.1.0.tgz} name: minimist-options @@ -13614,6 +16297,13 @@ packages: name: minimist version: 1.2.8 + registry.npmmirror.com/minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/minipass/-/minipass-7.0.4.tgz} + name: minipass + version: 7.0.4 + engines: {node: '>=16 || 14 >=14.17'} + dev: true + registry.npmmirror.com/mississippi@1.3.1: resolution: {integrity: sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mississippi/-/mississippi-1.3.1.tgz} name: mississippi @@ -13647,6 +16337,16 @@ packages: stream-each: registry.npmmirror.com/stream-each@1.2.3 through2: registry.npmmirror.com/through2@2.0.5 + registry.npmmirror.com/mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mixin-deep/-/mixin-deep-1.3.2.tgz} + name: mixin-deep + version: 1.3.2 + engines: {node: '>=0.10.0'} + dependencies: + for-in: registry.npmmirror.com/for-in@1.0.2 + is-extendable: registry.npmmirror.com/is-extendable@1.0.1 + dev: true + registry.npmmirror.com/mixme@0.5.10: resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mixme/-/mixme-0.5.10.tgz} name: mixme @@ -13662,6 +16362,14 @@ packages: dependencies: minimist: registry.npmmirror.com/minimist@1.2.8 + registry.npmmirror.com/mockjs@1.1.0: + resolution: {integrity: sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mockjs/-/mockjs-1.1.0.tgz} + name: mockjs + version: 1.1.0 + hasBin: true + dependencies: + commander: registry.npmmirror.com/commander@11.0.0 + registry.npmmirror.com/move-concurrently@1.0.1: resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz} name: move-concurrently @@ -13715,6 +16423,12 @@ packages: version: 0.0.8 dev: true + registry.npmmirror.com/namespace-emitter@2.0.1: + resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz} + name: namespace-emitter + version: 2.0.1 + dev: false + registry.npmmirror.com/nanoid@2.1.11: resolution: {integrity: sha512-s/snB+WGm6uwi0WjsZdaVcuf3KJXlfGl2LcxgwkEwJF0D/BWzVWAZW/XY4bFaiR7s0Jk3FPvlnepg1H1b1UwlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-2.1.11.tgz} name: nanoid @@ -13727,6 +16441,27 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + registry.npmmirror.com/nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanomatch/-/nanomatch-1.2.13.tgz} + name: nanomatch + version: 1.2.13 + engines: {node: '>=0.10.0'} + dependencies: + arr-diff: registry.npmmirror.com/arr-diff@4.0.0 + array-unique: registry.npmmirror.com/array-unique@0.3.2 + define-property: registry.npmmirror.com/define-property@2.0.2 + extend-shallow: registry.npmmirror.com/extend-shallow@3.0.2 + fragment-cache: registry.npmmirror.com/fragment-cache@0.2.1 + is-windows: registry.npmmirror.com/is-windows@1.0.2 + kind-of: registry.npmmirror.com/kind-of@6.0.3 + object.pick: registry.npmmirror.com/object.pick@1.3.0 + regex-not: registry.npmmirror.com/regex-not@1.0.2 + snapdragon: registry.npmmirror.com/snapdragon@0.8.2 + to-regex: registry.npmmirror.com/to-regex@3.0.2 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} name: natural-compare-lite @@ -13760,6 +16495,12 @@ packages: version: 1.0.0 dev: true + registry.npmmirror.com/next-tick@1.1.0: + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz} + name: next-tick + version: 1.1.0 + dev: false + registry.npmmirror.com/no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz} name: no-case @@ -13903,6 +16644,12 @@ packages: engines: {node: '>=14.16'} dev: true + registry.npmmirror.com/not@0.1.0: + resolution: {integrity: sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/not/-/not-0.1.0.tgz} + name: not + version: 0.1.0 + dev: false + registry.npmmirror.com/npm-package-arg@5.1.2: resolution: {integrity: sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/npm-package-arg/-/npm-package-arg-5.1.2.tgz} name: npm-package-arg @@ -14050,6 +16797,17 @@ packages: version: 4.1.1 engines: {node: '>=0.10.0'} + registry.npmmirror.com/object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-copy/-/object-copy-0.1.0.tgz} + name: object-copy + version: 0.1.0 + engines: {node: '>=0.10.0'} + dependencies: + copy-descriptor: registry.npmmirror.com/copy-descriptor@0.1.1 + define-property: registry.npmmirror.com/define-property@0.2.5 + kind-of: registry.npmmirror.com/kind-of@3.2.2 + dev: true + registry.npmmirror.com/object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/-/object-inspect-1.13.1.tgz} name: object-inspect @@ -14067,6 +16825,15 @@ packages: version: 1.1.1 engines: {node: '>= 0.4'} + registry.npmmirror.com/object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-visit/-/object-visit-1.0.1.tgz} + name: object-visit + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: true + registry.npmmirror.com/object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.assign/-/object.assign-4.1.5.tgz} name: object.assign @@ -14121,6 +16888,17 @@ packages: es-abstract: registry.npmmirror.com/es-abstract@1.22.3 reflect.getprototypeof: registry.npmmirror.com/reflect.getprototypeof@1.0.4 + registry.npmmirror.com/object.groupby@1.0.1: + resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.groupby/-/object.groupby-1.0.1.tgz} + name: object.groupby + version: 1.0.1 + dependencies: + call-bind: registry.npmmirror.com/call-bind@1.0.5 + define-properties: registry.npmmirror.com/define-properties@1.2.1 + es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 + dev: false + registry.npmmirror.com/object.hasown@1.1.3: resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.hasown/-/object.hasown-1.1.3.tgz} name: object.hasown @@ -14129,6 +16907,15 @@ packages: define-properties: registry.npmmirror.com/define-properties@1.2.1 es-abstract: registry.npmmirror.com/es-abstract@1.22.3 + registry.npmmirror.com/object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.pick/-/object.pick-1.3.0.tgz} + name: object.pick + version: 1.3.0 + engines: {node: '>=0.10.0'} + dependencies: + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: true + registry.npmmirror.com/object.values@1.1.7: resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.values/-/object.values-1.1.7.tgz} name: object.values @@ -14158,6 +16945,15 @@ packages: name: on-exit-leak-free version: 0.2.0 + registry.npmmirror.com/on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/on-finished/-/on-finished-2.3.0.tgz} + name: on-finished + version: 2.3.0 + engines: {node: '>= 0.8'} + dependencies: + ee-first: registry.npmmirror.com/ee-first@1.1.1 + dev: true + registry.npmmirror.com/once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} name: once @@ -14595,6 +17391,12 @@ packages: version: 1.0.1 engines: {node: '>= 0.10'} + registry.npmmirror.com/parse-numeric-range@1.3.0: + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz} + name: parse-numeric-range + version: 1.3.0 + dev: false + registry.npmmirror.com/parse-passwd@1.0.0: resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parse-passwd/-/parse-passwd-1.0.0.tgz} name: parse-passwd @@ -14621,6 +17423,13 @@ packages: leac: registry.npmmirror.com/leac@0.6.0 peberminta: registry.npmmirror.com/peberminta@0.9.0 + registry.npmmirror.com/parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz} + name: parseurl + version: 1.3.3 + engines: {node: '>= 0.8'} + dev: true + registry.npmmirror.com/pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz} name: pascal-case @@ -14629,6 +17438,13 @@ packages: no-case: registry.npmmirror.com/no-case@3.0.4 tslib: registry.npmmirror.com/tslib@2.6.2 + registry.npmmirror.com/pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pascalcase/-/pascalcase-0.1.1.tgz} + name: pascalcase + version: 0.1.1 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/path-browserify@0.0.1: resolution: {integrity: sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-browserify/-/path-browserify-0.0.1.tgz} name: path-browserify @@ -14681,6 +17497,16 @@ packages: name: path-parse version: 1.0.7 + registry.npmmirror.com/path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-scurry/-/path-scurry-1.10.1.tgz} + name: path-scurry + version: 1.10.1 + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: registry.npmmirror.com/lru-cache@10.1.0 + minipass: registry.npmmirror.com/minipass@7.0.4 + dev: true + registry.npmmirror.com/path-to-regexp@1.7.0: resolution: {integrity: sha512-nifX1uj4S9IrK/w3Xe7kKvNEepXivANs9ng60Iq7PU/BlouV3yL/VUhFqTuTq33ykwUqoNcTeGo5vdOBP4jS/Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz} name: path-to-regexp @@ -14688,6 +17514,12 @@ packages: dependencies: isarray: registry.npmmirror.com/isarray@0.0.1 + registry.npmmirror.com/path-to-regexp@6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz} + name: path-to-regexp + version: 6.2.1 + dev: true + registry.npmmirror.com/path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} name: path-type @@ -14701,6 +17533,12 @@ packages: engines: {node: '>=12'} dev: true + registry.npmmirror.com/pathe@0.2.0: + resolution: {integrity: sha512-sTitTPYnn23esFR3RlqYBWn4c45WGeLcsKzQiUpXJAyfcWkolvlYpV8FLo7JishK946oQwMFUCHXQ9AjGPKExw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pathe/-/pathe-0.2.0.tgz} + name: pathe + version: 0.2.0 + dev: true + registry.npmmirror.com/pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pbkdf2/-/pbkdf2-3.1.2.tgz} name: pbkdf2 @@ -14835,6 +17673,13 @@ packages: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 dev: false + registry.npmmirror.com/posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz} + name: posix-character-classes + version: 0.1.1 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/postcss-attribute-case-insensitive@5.0.2(postcss@8.4.32): resolution: {integrity: sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz} id: registry.npmmirror.com/postcss-attribute-case-insensitive/5.0.2 @@ -14847,6 +17692,20 @@ packages: postcss: registry.npmmirror.com/postcss@8.4.32 postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + registry.npmmirror.com/postcss-calc@9.0.1(postcss@8.4.32): + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-calc/-/postcss-calc-9.0.1.tgz} + id: registry.npmmirror.com/postcss-calc/9.0.1 + name: postcss-calc + version: 9.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + registry.npmmirror.com/postcss-clamp@4.1.0(postcss@8.4.32): resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-clamp/-/postcss-clamp-4.1.0.tgz} id: registry.npmmirror.com/postcss-clamp/4.1.0 @@ -14895,6 +17754,36 @@ packages: postcss: registry.npmmirror.com/postcss@8.4.32 postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + registry.npmmirror.com/postcss-colormin@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-Tb9aR2wCJCzKuNjIeMzVNd0nXjQy25HDgFmmaRsHnP0eP/k8uQWE4S8voX5S2coO5CeKrp+USFs1Ayv9Tpxx6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-colormin/-/postcss-colormin-6.0.1.tgz} + id: registry.npmmirror.com/postcss-colormin/6.0.1 + name: postcss-colormin + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.2 + caniuse-api: registry.npmmirror.com/caniuse-api@3.0.0 + colord: registry.npmmirror.com/colord@2.9.3 + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/postcss-convert-values@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-zTd4Vh0HxGkhg5aHtfCogcRHzGkvblfdWlQ53lIh1cJhYcGyIxh2hgtKoVh40AMktRERet+JKdB04nNG19kjmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-convert-values/-/postcss-convert-values-6.0.1.tgz} + id: registry.npmmirror.com/postcss-convert-values/6.0.1 + name: postcss-convert-values + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.2 + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + registry.npmmirror.com/postcss-custom-media@8.0.2(postcss@8.4.32): resolution: {integrity: sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz} id: registry.npmmirror.com/postcss-custom-media/8.0.2 @@ -14943,6 +17832,54 @@ packages: postcss: registry.npmmirror.com/postcss@8.4.32 postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + registry.npmmirror.com/postcss-discard-comments@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-6.0.1.tgz} + id: registry.npmmirror.com/postcss-discard-comments/6.0.1 + name: postcss-discard-comments + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + dev: true + + registry.npmmirror.com/postcss-discard-duplicates@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.1.tgz} + id: registry.npmmirror.com/postcss-discard-duplicates/6.0.1 + name: postcss-discard-duplicates + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + dev: true + + registry.npmmirror.com/postcss-discard-empty@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-6.0.1.tgz} + id: registry.npmmirror.com/postcss-discard-empty/6.0.1 + name: postcss-discard-empty + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + dev: true + + registry.npmmirror.com/postcss-discard-overridden@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-6.0.1.tgz} + id: registry.npmmirror.com/postcss-discard-overridden/6.0.1 + name: postcss-discard-overridden + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + dev: true + registry.npmmirror.com/postcss-double-position-gradients@3.1.2(postcss@8.4.32): resolution: {integrity: sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz} id: registry.npmmirror.com/postcss-double-position-gradients/3.1.2 @@ -15065,25 +18002,111 @@ packages: version: 5.0.4 engines: {node: ^12 || ^14 || >=16} peerDependencies: - postcss: ^8.4 + postcss: ^8.4 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + + registry.npmmirror.com/postcss-media-minmax@5.0.0(postcss@8.4.32): + resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz} + id: registry.npmmirror.com/postcss-media-minmax/5.0.0 + name: postcss-media-minmax + version: 5.0.0 + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + + registry.npmmirror.com/postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz} + name: postcss-media-query-parser + version: 0.2.3 + + registry.npmmirror.com/postcss-merge-longhand@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-vmr/HZQzaPXc45FRvSctqFTF05UaDnTn5ABX+UtQPJznDWT/QaFbVc/pJ5C2YPxx2J2XcfmWowlKwtCDwiQ5hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.1.tgz} + id: registry.npmmirror.com/postcss-merge-longhand/6.0.1 + name: postcss-merge-longhand + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + stylehacks: registry.npmmirror.com/stylehacks@6.0.1(postcss@8.4.32) + dev: true + + registry.npmmirror.com/postcss-merge-rules@6.0.2(postcss@8.4.32): + resolution: {integrity: sha512-6lm8bl0UfriSfxI+F/cezrebqqP8w702UC6SjZlUlBYwuRVNbmgcJuQU7yePIvD4MNT53r/acQCUAyulrpgmeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-merge-rules/-/postcss-merge-rules-6.0.2.tgz} + id: registry.npmmirror.com/postcss-merge-rules/6.0.2 + name: postcss-merge-rules + version: 6.0.2 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.2 + caniuse-api: registry.npmmirror.com/caniuse-api@3.0.0 + cssnano-utils: registry.npmmirror.com/cssnano-utils@4.0.1(postcss@8.4.32) + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: true + + registry.npmmirror.com/postcss-minify-font-values@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-6.0.1.tgz} + id: registry.npmmirror.com/postcss-minify-font-values/6.0.1 + name: postcss-minify-font-values + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/postcss-minify-gradients@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-6.0.1.tgz} + id: registry.npmmirror.com/postcss-minify-gradients/6.0.1 + name: postcss-minify-gradients + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 dependencies: + colord: registry.npmmirror.com/colord@2.9.3 + cssnano-utils: registry.npmmirror.com/cssnano-utils@4.0.1(postcss@8.4.32) postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true - registry.npmmirror.com/postcss-media-minmax@5.0.0(postcss@8.4.32): - resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz} - id: registry.npmmirror.com/postcss-media-minmax/5.0.0 - name: postcss-media-minmax - version: 5.0.0 - engines: {node: '>=10.0.0'} + registry.npmmirror.com/postcss-minify-params@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-eFvGWArqh4khPIgPDu6SZNcaLctx97nO7c59OXnRtGntAp5/VS4gjMhhW9qUFsK6mQ27pEZGt2kR+mPizI+Z9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-minify-params/-/postcss-minify-params-6.0.1.tgz} + id: registry.npmmirror.com/postcss-minify-params/6.0.1 + name: postcss-minify-params + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.1.0 + postcss: ^8.4.31 dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.2 + cssnano-utils: registry.npmmirror.com/cssnano-utils@4.0.1(postcss@8.4.32) postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true - registry.npmmirror.com/postcss-media-query-parser@0.2.3: - resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz} - name: postcss-media-query-parser - version: 0.2.3 + registry.npmmirror.com/postcss-minify-selectors@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-mfReq5wrS6vkunxvJp6GDuOk+Ak6JV7134gp8L+ANRnV9VwqzTvBtX6lpohooVU750AR0D3pVx2Zn6uCCwOAfQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-6.0.1.tgz} + id: registry.npmmirror.com/postcss-minify-selectors/6.0.1 + name: postcss-minify-selectors + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: true registry.npmmirror.com/postcss-modules-extract-imports@3.0.0(postcss@8.4.32): resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz} @@ -15147,6 +18170,123 @@ packages: postcss: registry.npmmirror.com/postcss@8.4.32 postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + registry.npmmirror.com/postcss-normalize-charset@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-6.0.1.tgz} + id: registry.npmmirror.com/postcss-normalize-charset/6.0.1 + name: postcss-normalize-charset + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + dev: true + + registry.npmmirror.com/postcss-normalize-display-values@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.1.tgz} + id: registry.npmmirror.com/postcss-normalize-display-values/6.0.1 + name: postcss-normalize-display-values + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/postcss-normalize-positions@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-6.0.1.tgz} + id: registry.npmmirror.com/postcss-normalize-positions/6.0.1 + name: postcss-normalize-positions + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/postcss-normalize-repeat-style@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.1.tgz} + id: registry.npmmirror.com/postcss-normalize-repeat-style/6.0.1 + name: postcss-normalize-repeat-style + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/postcss-normalize-string@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-6.0.1.tgz} + id: registry.npmmirror.com/postcss-normalize-string/6.0.1 + name: postcss-normalize-string + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/postcss-normalize-timing-functions@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.1.tgz} + id: registry.npmmirror.com/postcss-normalize-timing-functions/6.0.1 + name: postcss-normalize-timing-functions + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/postcss-normalize-unicode@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-ok9DsI94nEF79MkvmLfHfn8ddnKXA7w+8YuUoz5m7b6TOdoaRCpvu/QMHXQs9+DwUbvp+ytzz04J55CPy77PuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-unicode/-/postcss-normalize-unicode-6.0.1.tgz} + id: registry.npmmirror.com/postcss-normalize-unicode/6.0.1 + name: postcss-normalize-unicode + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.2 + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/postcss-normalize-url@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-6.0.1.tgz} + id: registry.npmmirror.com/postcss-normalize-url/6.0.1 + name: postcss-normalize-url + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + + registry.npmmirror.com/postcss-normalize-whitespace@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.1.tgz} + id: registry.npmmirror.com/postcss-normalize-whitespace/6.0.1 + name: postcss-normalize-whitespace + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + registry.npmmirror.com/postcss-opacity-percentage@1.1.3(postcss@8.4.32): resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz} id: registry.npmmirror.com/postcss-opacity-percentage/1.1.3 @@ -15158,6 +18298,20 @@ packages: dependencies: postcss: registry.npmmirror.com/postcss@8.4.32 + registry.npmmirror.com/postcss-ordered-values@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-6.0.1.tgz} + id: registry.npmmirror.com/postcss-ordered-values/6.0.1 + name: postcss-ordered-values + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + cssnano-utils: registry.npmmirror.com/cssnano-utils@4.0.1(postcss@8.4.32) + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + registry.npmmirror.com/postcss-overflow-shorthand@3.0.4(postcss@8.4.32): resolution: {integrity: sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz} id: registry.npmmirror.com/postcss-overflow-shorthand/3.0.4 @@ -15192,6 +18346,17 @@ packages: postcss: registry.npmmirror.com/postcss@8.4.32 postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + registry.npmmirror.com/postcss-prefix-selector@1.16.0(postcss@5.2.18): + resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz} + id: registry.npmmirror.com/postcss-prefix-selector/1.16.0 + name: postcss-prefix-selector + version: 1.16.0 + peerDependencies: + postcss: '>4 <9' + dependencies: + postcss: registry.npmmirror.com/postcss@5.2.18 + dev: true + registry.npmmirror.com/postcss-prefix-selector@1.16.0(postcss@8.4.32): resolution: {integrity: sha512-rdVMIi7Q4B0XbXqNUEI+Z4E+pueiu/CS5E6vRCQommzdQ/sgsS4dK42U7GX8oJR+TJOtT+Qv3GkNo6iijUMp3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-prefix-selector/-/postcss-prefix-selector-1.16.0.tgz} id: registry.npmmirror.com/postcss-prefix-selector/1.16.0 @@ -15270,6 +18435,33 @@ packages: postcss: registry.npmmirror.com/postcss@8.4.32 postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + registry.npmmirror.com/postcss-reduce-initial@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-cgzsI2ThG1PMSdSyM9A+bVxiiVgPIVz9f5c6H+TqEv0CA89iCOO81mwLWRWLgOKFtQkKob9nNpnkxG/1RlgFcA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-reduce-initial/-/postcss-reduce-initial-6.0.1.tgz} + id: registry.npmmirror.com/postcss-reduce-initial/6.0.1 + name: postcss-reduce-initial + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.2 + caniuse-api: registry.npmmirror.com/caniuse-api@3.0.0 + postcss: registry.npmmirror.com/postcss@8.4.32 + dev: true + + registry.npmmirror.com/postcss-reduce-transforms@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.1.tgz} + id: registry.npmmirror.com/postcss-reduce-transforms/6.0.1 + name: postcss-reduce-transforms + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + dev: true + registry.npmmirror.com/postcss-replace-overflow-wrap@4.0.0(postcss@8.4.32): resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz} id: registry.npmmirror.com/postcss-replace-overflow-wrap/4.0.0 @@ -15316,6 +18508,20 @@ packages: cssesc: registry.npmmirror.com/cssesc@3.0.0 util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2 + registry.npmmirror.com/postcss-svgo@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-eWV4Rrqa06LzTgqirOv5Ln6WTGyU7Pbeqj9WEyKo9tpnWixNATVJMeaEcOHOW1ZYyjcG8wSJwX/28DvU3oy3HA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-6.0.1.tgz} + id: registry.npmmirror.com/postcss-svgo/6.0.1 + name: postcss-svgo + version: 6.0.1 + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 + svgo: registry.npmmirror.com/svgo@3.1.0 + dev: true + registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.32): resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-syntax/-/postcss-syntax-0.36.2.tgz} id: registry.npmmirror.com/postcss-syntax/0.36.2 @@ -15342,11 +18548,36 @@ packages: dependencies: postcss: registry.npmmirror.com/postcss@8.4.32 + registry.npmmirror.com/postcss-unique-selectors@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-/KCCEpNNR7oXVJ38/Id7GC9Nt0zxO1T3zVbhVaq6F6LSG+3gU3B7+QuTHfD0v8NPEHlzewAout29S0InmB78EQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-6.0.1.tgz} + id: registry.npmmirror.com/postcss-unique-selectors/6.0.1 + name: postcss-unique-selectors + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: true + registry.npmmirror.com/postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz} name: postcss-value-parser version: 4.2.0 + registry.npmmirror.com/postcss@5.2.18: + resolution: {integrity: sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-5.2.18.tgz} + name: postcss + version: 5.2.18 + engines: {node: '>=0.12'} + dependencies: + chalk: registry.npmmirror.com/chalk@1.1.3 + js-base64: registry.npmmirror.com/js-base64@2.6.4 + source-map: registry.npmmirror.com/source-map@0.5.7 + supports-color: registry.npmmirror.com/supports-color@3.2.3 + dev: true + registry.npmmirror.com/postcss@8.4.32: resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.32.tgz} name: postcss @@ -15357,6 +18588,57 @@ packages: picocolors: registry.npmmirror.com/picocolors@1.0.0 source-map-js: registry.npmmirror.com/source-map-js@1.0.2 + registry.npmmirror.com/posthtml-parser@0.2.1: + resolution: {integrity: sha512-nPC53YMqJnc/+1x4fRYFfm81KV2V+G9NZY+hTohpYg64Ay7NemWWcV4UWuy/SgMupqQ3kJ88M/iRfZmSnxT+pw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/posthtml-parser/-/posthtml-parser-0.2.1.tgz} + name: posthtml-parser + version: 0.2.1 + dependencies: + htmlparser2: registry.npmmirror.com/htmlparser2@3.10.1 + isobject: registry.npmmirror.com/isobject@2.1.0 + dev: true + + registry.npmmirror.com/posthtml-rename-id@1.0.12: + resolution: {integrity: sha512-UKXf9OF/no8WZo9edRzvuMenb6AD5hDLzIepJW+a4oJT+T/Lx7vfMYWT4aWlGNQh0WMhnUx1ipN9OkZ9q+ddEw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/posthtml-rename-id/-/posthtml-rename-id-1.0.12.tgz} + name: posthtml-rename-id + version: 1.0.12 + dependencies: + escape-string-regexp: registry.npmmirror.com/escape-string-regexp@1.0.5 + dev: true + + registry.npmmirror.com/posthtml-render@1.4.0: + resolution: {integrity: sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/posthtml-render/-/posthtml-render-1.4.0.tgz} + name: posthtml-render + version: 1.4.0 + engines: {node: '>=10'} + dev: true + + registry.npmmirror.com/posthtml-svg-mode@1.0.3: + resolution: {integrity: sha512-hEqw9NHZ9YgJ2/0G7CECOeuLQKZi8HjWLkBaSVtOWjygQ9ZD8P7tqeowYs7WrFdKsWEKG7o+IlsPY8jrr0CJpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/posthtml-svg-mode/-/posthtml-svg-mode-1.0.3.tgz} + name: posthtml-svg-mode + version: 1.0.3 + dependencies: + merge-options: registry.npmmirror.com/merge-options@1.0.1 + posthtml: registry.npmmirror.com/posthtml@0.9.2 + posthtml-parser: registry.npmmirror.com/posthtml-parser@0.2.1 + posthtml-render: registry.npmmirror.com/posthtml-render@1.4.0 + dev: true + + registry.npmmirror.com/posthtml@0.9.2: + resolution: {integrity: sha512-spBB5sgC4cv2YcW03f/IAUN1pgDJWNWD8FzkyY4mArLUMJW+KlQhlmUdKAHQuPfb00Jl5xIfImeOsf6YL8QK7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/posthtml/-/posthtml-0.9.2.tgz} + name: posthtml + version: 0.9.2 + engines: {node: '>=0.10.0'} + dependencies: + posthtml-parser: registry.npmmirror.com/posthtml-parser@0.2.1 + posthtml-render: registry.npmmirror.com/posthtml-render@1.4.0 + dev: true + + registry.npmmirror.com/preact@10.19.3: + resolution: {integrity: sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/preact/-/preact-10.19.3.tgz} + name: preact + version: 10.19.3 + dev: false + registry.npmmirror.com/preferred-pm@3.1.2: resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/preferred-pm/-/preferred-pm-3.1.2.tgz} name: preferred-pm @@ -15444,7 +18726,6 @@ packages: version: 3.1.1 engines: {node: '>=14'} hasBin: true - dev: true registry.npmmirror.com/pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz} @@ -15555,6 +18836,12 @@ packages: dependencies: genfun: registry.npmmirror.com/genfun@4.0.1 + registry.npmmirror.com/proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz} + name: proxy-from-env + version: 1.1.0 + dev: false + registry.npmmirror.com/prr@1.0.1: resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz} name: prr @@ -15640,6 +18927,16 @@ packages: dependencies: side-channel: registry.npmmirror.com/side-channel@1.0.4 + registry.npmmirror.com/query-string@4.3.4: + resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/query-string/-/query-string-4.3.4.tgz} + name: query-string + version: 4.3.4 + engines: {node: '>=0.10.0'} + dependencies: + object-assign: registry.npmmirror.com/object-assign@4.1.1 + strict-uri-encode: registry.npmmirror.com/strict-uri-encode@1.1.0 + dev: true + registry.npmmirror.com/query-string@6.14.1: resolution: {integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/query-string/-/query-string-6.14.1.tgz} name: query-string @@ -16369,6 +19666,20 @@ packages: minimist: registry.npmmirror.com/minimist@1.2.8 strip-json-comments: registry.npmmirror.com/strip-json-comments@2.0.1 + registry.npmmirror.com/re-resizable@6.9.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-0xYKS5+Z0zk+vICQlcZW+g54CcJTTmHluA7JUUgvERDxnKAnytylcyPsA+BSFi759s5hPlHmBRegFrwXs2FuBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/re-resizable/-/re-resizable-6.9.6.tgz} + id: registry.npmmirror.com/re-resizable/6.9.6 + name: re-resizable + version: 6.9.6 + peerDependencies: + react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.13.1 || ^17.0.0 || ^18.0.0 + dependencies: + fast-memoize: registry.npmmirror.com/fast-memoize@2.5.2 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + dev: false + registry.npmmirror.com/react-copy-to-clipboard@5.1.0(react@18.2.0): resolution: {integrity: sha512-k61RsNgAayIJNoy9yDsYzDe/yAZAzEbEgcz3DZMhF686LEyukcE1hzurxe85JandPUG+yTfGVFzuEw3xt8WP/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-copy-to-clipboard/-/react-copy-to-clipboard-5.1.0.tgz} id: registry.npmmirror.com/react-copy-to-clipboard/5.1.0 @@ -16381,6 +19692,30 @@ packages: prop-types: registry.npmmirror.com/prop-types@15.8.1 react: registry.npmmirror.com/react@18.2.0 + registry.npmmirror.com/react-countup@6.5.0(react@18.2.0): + resolution: {integrity: sha512-26JFHbUHsHxu8SetkJwWVIUEkaNnrj4P9msxNGC8tS4hGr1bngRzbwtJYOgXD2G/ItjaKJ3JfYKd85sw7qRVeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-countup/-/react-countup-6.5.0.tgz} + id: registry.npmmirror.com/react-countup/6.5.0 + name: react-countup + version: 6.5.0 + peerDependencies: + react: '>= 16.3.0' + dependencies: + countup.js: registry.npmmirror.com/countup.js@2.8.0 + react: registry.npmmirror.com/react@18.2.0 + dev: false + + registry.npmmirror.com/react-cropper@2.3.3(react@18.2.0): + resolution: {integrity: sha512-zghiEYkUb41kqtu+2jpX2Ntigf+Jj1dF9ew4lAobPzI2adaPE31z0p+5TcWngK6TvmWQUwK3lj4G+NDh1PDQ1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-cropper/-/react-cropper-2.3.3.tgz} + id: registry.npmmirror.com/react-cropper/2.3.3 + name: react-cropper + version: 2.3.3 + peerDependencies: + react: '>=17.0.2' + dependencies: + cropperjs: registry.npmmirror.com/cropperjs@1.6.1 + react: registry.npmmirror.com/react@18.2.0 + dev: false + registry.npmmirror.com/react-detectable-overflow@0.7.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-6ZotWaoCChrd9/ZISopZwpDN4kJkFNSX7zvDWF56HIzHdx8DfMQ78P4JAy0ZoAUi+9gDrhRynXaONCYVEvxDog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-detectable-overflow/-/react-detectable-overflow-0.7.1.tgz} id: registry.npmmirror.com/react-detectable-overflow/0.7.1 @@ -16420,6 +19755,21 @@ packages: react: registry.npmmirror.com/react@18.2.0 scheduler: registry.npmmirror.com/scheduler@0.23.0 + registry.npmmirror.com/react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-OMHzJdyJbYTZo4uQE393fHcqqPYsEtkjfMgvCHr6rejT+Ezn4OZbNyGH50vv+SunC1RMvwOTSWkEODQLzw1M9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.5.tgz} + id: registry.npmmirror.com/react-draggable/4.4.5 + name: react-draggable + version: 4.4.5 + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + dependencies: + clsx: registry.npmmirror.com/clsx@1.2.1 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + dev: false + registry.npmmirror.com/react-draggable@4.4.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-draggable/-/react-draggable-4.4.6.tgz} id: registry.npmmirror.com/react-draggable/4.4.6 @@ -16538,11 +19888,86 @@ packages: react: registry.npmmirror.com/react@18.2.0 dev: false - registry.npmmirror.com/react-merge-refs@1.1.0: - resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz} - name: react-merge-refs - version: 1.1.0 - + registry.npmmirror.com/react-markdown@8.0.7(@types/react@18.2.45)(react@18.2.0): + resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-markdown/-/react-markdown-8.0.7.tgz} + id: registry.npmmirror.com/react-markdown/8.0.7 + name: react-markdown + version: 8.0.7 + peerDependencies: + '@types/react': '>=16' + react: '>=16' + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/prop-types': registry.npmmirror.com/@types/prop-types@15.7.11 + '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + comma-separated-tokens: registry.npmmirror.com/comma-separated-tokens@2.0.3 + hast-util-whitespace: registry.npmmirror.com/hast-util-whitespace@2.0.1 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + property-information: registry.npmmirror.com/property-information@6.4.0 + react: registry.npmmirror.com/react@18.2.0 + react-is: registry.npmmirror.com/react-is@18.2.0 + remark-parse: registry.npmmirror.com/remark-parse@10.0.2 + remark-rehype: registry.npmmirror.com/remark-rehype@10.1.0 + space-separated-tokens: registry.npmmirror.com/space-separated-tokens@2.0.2 + style-to-object: registry.npmmirror.com/style-to-object@0.4.4 + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + vfile: registry.npmmirror.com/vfile@5.3.7 + transitivePeerDependencies: + - supports-color + dev: false + + registry.npmmirror.com/react-merge-refs@1.1.0: + resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz} + name: react-merge-refs + version: 1.1.0 + + registry.npmmirror.com/react-org-tree@1.0.1: + resolution: {integrity: sha512-NK1d8VIAzxJyMC/Rx9MupAusoFnokYr81Hw3oEpqxqBLQmpBVAexjvPSAJmhCmsom9Zymu+BMNrjRw5D54n7aw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-org-tree/-/react-org-tree-1.0.1.tgz} + name: react-org-tree + version: 1.0.1 + dependencies: + classnames: registry.npmmirror.com/classnames@2.3.2 + dev: false + + registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1): + resolution: {integrity: sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-redux/-/react-redux-8.1.3.tgz} + id: registry.npmmirror.com/react-redux/8.1.3 + name: react-redux + version: 8.1.3 + peerDependencies: + '@types/react': ^16.8 || ^17.0 || ^18.0 + '@types/react-dom': ^16.8 || ^17.0 || ^18.0 + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + react-native: '>=0.59' + redux: ^4 || ^5.0.0-beta.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + react-dom: + optional: true + react-native: + optional: true + redux: + optional: true + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@types/hoist-non-react-statics': registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5 + '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react-dom': registry.npmmirror.com/@types/react-dom@18.2.17 + '@types/use-sync-external-store': registry.npmmirror.com/@types/use-sync-external-store@0.0.3 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + react-is: registry.npmmirror.com/react-is@18.2.0 + redux: registry.npmmirror.com/redux@4.2.1 + use-sync-external-store: registry.npmmirror.com/use-sync-external-store@1.2.0(react@18.2.0) + dev: false + registry.npmmirror.com/react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-refresh/-/react-refresh-0.14.0.tgz} name: react-refresh @@ -16578,6 +20003,38 @@ packages: react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) dev: false + registry.npmmirror.com/react-rnd@10.4.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-0m887AjQZr6p2ADLNnipquqsDq4XJu/uqVqI3zuoGD19tRm6uB83HmZWydtkilNp5EWsOHbLGF4IjWMdd5du8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-rnd/-/react-rnd-10.4.1.tgz} + id: registry.npmmirror.com/react-rnd/10.4.1 + name: react-rnd + version: 10.4.1 + peerDependencies: + react: '>=16.3.0' + react-dom: '>=16.3.0' + dependencies: + re-resizable: registry.npmmirror.com/re-resizable@6.9.6(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + react-draggable: registry.npmmirror.com/react-draggable@4.4.5(react-dom@18.2.0)(react@18.2.0) + tslib: registry.npmmirror.com/tslib@2.3.1 + dev: false + + registry.npmmirror.com/react-router-dom@6.21.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-1dUdVj3cwc1npzJaf23gulB562ESNvxf7E4x8upNJycqyUm5BRRZ6dd3LrlzhtLaMrwOCO8R0zoiYxdaJx4LlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.21.0.tgz} + id: registry.npmmirror.com/react-router-dom/6.21.0 + name: react-router-dom + version: 6.21.0 + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': registry.npmmirror.com/@remix-run/router@1.14.0 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + react-router: registry.npmmirror.com/react-router@6.21.0(react@18.2.0) + dev: false + registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz} id: registry.npmmirror.com/react-router-dom/6.3.0 @@ -16606,6 +20063,19 @@ packages: react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) react-router: registry.npmmirror.com/react-router@6.3.0(react@18.2.0) + registry.npmmirror.com/react-router@6.21.0(react@18.2.0): + resolution: {integrity: sha512-hGZ0HXbwz3zw52pLZV3j3+ec+m/PQ9cTpBvqjFQmy2XVUWGn5MD+31oXHb6dVTxYzmAeaiUBYjkoNz66n3RGCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.21.0.tgz} + id: registry.npmmirror.com/react-router/6.21.0 + name: react-router + version: 6.21.0 + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': registry.npmmirror.com/@remix-run/router@1.14.0 + react: registry.npmmirror.com/react@18.2.0 + dev: false + registry.npmmirror.com/react-router@6.3.0(react@18.1.0): resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz} id: registry.npmmirror.com/react-router/6.3.0 @@ -16628,6 +20098,25 @@ packages: history: registry.npmmirror.com/history@5.3.0 react: registry.npmmirror.com/react@18.2.0 + registry.npmmirror.com/react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.1): + resolution: {integrity: sha512-fc7cBosfhnbh53Mbm6a45W+F735jwZ1UFIYSrIqcO/gRIFoDyZeMtgKlpV4DdyQfbCzdh5LoALLTDRxhMpTyXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-sortablejs/-/react-sortablejs-6.1.4.tgz} + id: registry.npmmirror.com/react-sortablejs/6.1.4 + name: react-sortablejs + version: 6.1.4 + peerDependencies: + '@types/sortablejs': '1' + react: '>=16.9.0' + react-dom: '>=16.9.0' + sortablejs: '1' + dependencies: + '@types/sortablejs': registry.npmmirror.com/@types/sortablejs@1.15.7 + classnames: registry.npmmirror.com/classnames@2.3.1 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + sortablejs: registry.npmmirror.com/sortablejs@1.15.1 + tiny-invariant: registry.npmmirror.com/tiny-invariant@1.2.0 + dev: false + registry.npmmirror.com/react-syntax-highlighter@15.5.0(react@18.2.0): resolution: {integrity: sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz} id: registry.npmmirror.com/react-syntax-highlighter/15.5.0 @@ -16783,6 +20272,47 @@ packages: esprima: registry.npmmirror.com/esprima@4.0.1 dev: true + registry.npmmirror.com/redux-persist@6.0.0(react@18.2.0)(redux@4.2.1): + resolution: {integrity: sha512-71LLMbUq2r02ng2We9S215LtPu3fY0KgaGE0k8WRgl6RkqxtGfl7HUozz1Dftwsb0D/5mZ8dwAaPbtnzfvbEwQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/redux-persist/-/redux-persist-6.0.0.tgz} + id: registry.npmmirror.com/redux-persist/6.0.0 + name: redux-persist + version: 6.0.0 + peerDependencies: + react: '>=16' + redux: '>4.0.0' + peerDependenciesMeta: + react: + optional: true + dependencies: + react: registry.npmmirror.com/react@18.2.0 + redux: registry.npmmirror.com/redux@4.2.1 + dev: false + + registry.npmmirror.com/redux-thunk@3.1.0(redux@5.0.0): + resolution: {integrity: sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/redux-thunk/-/redux-thunk-3.1.0.tgz} + id: registry.npmmirror.com/redux-thunk/3.1.0 + name: redux-thunk + version: 3.1.0 + peerDependencies: + redux: ^5.0.0 + dependencies: + redux: registry.npmmirror.com/redux@5.0.0 + dev: false + + registry.npmmirror.com/redux@4.2.1: + resolution: {integrity: sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/redux/-/redux-4.2.1.tgz} + name: redux + version: 4.2.1 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + dev: false + + registry.npmmirror.com/redux@5.0.0: + resolution: {integrity: sha512-blLIYmYetpZMET6Q6uCY7Jtl/Im5OBldy+vNPauA8vvsdqyt66oep4EUpAMWNHauTC6xa9JuRPhRB72rY82QGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/redux/-/redux-5.0.0.tgz} + name: redux + version: 5.0.0 + dev: false + registry.npmmirror.com/reflect.getprototypeof@1.0.4: resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz} name: reflect.getprototypeof @@ -16806,6 +20336,17 @@ packages: prismjs: registry.npmmirror.com/prismjs@1.27.0 dev: false + registry.npmmirror.com/refractor@4.8.1: + resolution: {integrity: sha512-/fk5sI0iTgFYlmVGYVew90AoYnNMP6pooClx/XKqyeeCQXrL0Kvgn8V0VEht5ccdljbzzF1i3Q213gcntkRExg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/refractor/-/refractor-4.8.1.tgz} + name: refractor + version: 4.8.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + '@types/prismjs': registry.npmmirror.com/@types/prismjs@1.26.3 + hastscript: registry.npmmirror.com/hastscript@7.2.0 + parse-entities: registry.npmmirror.com/parse-entities@4.0.1 + dev: false + registry.npmmirror.com/regenerate-unicode-properties@10.1.1: resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz} name: regenerate-unicode-properties @@ -16837,6 +20378,16 @@ packages: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 dev: true + registry.npmmirror.com/regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regex-not/-/regex-not-1.0.2.tgz} + name: regex-not + version: 1.0.2 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@3.0.2 + safe-regex: registry.npmmirror.com/safe-regex@1.1.0 + dev: true + registry.npmmirror.com/regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz} name: regexp.prototype.flags @@ -16895,6 +20446,16 @@ packages: jsesc: registry.npmmirror.com/jsesc@0.5.0 dev: true + registry.npmmirror.com/rehype-attr@2.1.4: + resolution: {integrity: sha512-iAeaL5JyF4XxkcvWzpi/0SAF7iV7qOTaHS56tJuEsXziQc3+PEmMn65kV8OFgbO9mRVY7J1fRC/aLvot1PsNkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-attr/-/rehype-attr-2.1.4.tgz} + name: rehype-attr + version: 2.1.4 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + registry.npmmirror.com/rehype-autolink-headings@6.1.1: resolution: {integrity: sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-autolink-headings/-/rehype-autolink-headings-6.1.1.tgz} name: rehype-autolink-headings @@ -16908,6 +20469,51 @@ packages: unified: registry.npmmirror.com/unified@10.1.2 unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + registry.npmmirror.com/rehype-ignore@1.0.5: + resolution: {integrity: sha512-JQXS5eDwXaYKwB8JEYFJJA/YvGi0sSNUOYuiURMtuPTg8tuWHFB91JMYLbImH1FyvyGQM4fIBqNMAPB50WR2Bw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-ignore/-/rehype-ignore-1.0.5.tgz} + name: rehype-ignore + version: 1.0.5 + engines: {node: ^14.13.1 || >=16.0.0} + dependencies: + hast-util-select: registry.npmmirror.com/hast-util-select@5.0.5 + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + + registry.npmmirror.com/rehype-parse@8.0.5: + resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-parse/-/rehype-parse-8.0.5.tgz} + name: rehype-parse + version: 8.0.5 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + hast-util-from-parse5: registry.npmmirror.com/hast-util-from-parse5@7.1.2 + parse5: registry.npmmirror.com/parse5@6.0.1 + unified: registry.npmmirror.com/unified@10.1.2 + dev: false + + registry.npmmirror.com/rehype-prism-plus@1.6.3: + resolution: {integrity: sha512-F6tn376zimnvy+xW0bSnryul+rvVL7NhDIkavc9kAuzDx5zIZW04A6jdXPkcFBhojcqZB8b6pHt6CLqiUx+Tbw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-prism-plus/-/rehype-prism-plus-1.6.3.tgz} + name: rehype-prism-plus + version: 1.6.3 + dependencies: + hast-util-to-string: registry.npmmirror.com/hast-util-to-string@2.0.0 + parse-numeric-range: registry.npmmirror.com/parse-numeric-range@1.3.0 + refractor: registry.npmmirror.com/refractor@4.8.1 + rehype-parse: registry.npmmirror.com/rehype-parse@8.0.5 + unist-util-filter: registry.npmmirror.com/unist-util-filter@4.0.1 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + + registry.npmmirror.com/rehype-raw@6.1.1: + resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-raw/-/rehype-raw-6.1.1.tgz} + name: rehype-raw + version: 6.1.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + hast-util-raw: registry.npmmirror.com/hast-util-raw@7.2.3 + unified: registry.npmmirror.com/unified@10.1.2 + dev: false + registry.npmmirror.com/rehype-remove-comments@5.0.0: resolution: {integrity: sha512-sfiVT+u1in19sxo9vv/SDQVbHE2mADScNrpeVsUxBFl14zOMZnfPb6l4hR+lXqe10G13UFVqv5pt8zDbCR4JYQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-remove-comments/-/rehype-remove-comments-5.0.0.tgz} name: rehype-remove-comments @@ -16918,6 +20524,31 @@ packages: unified: registry.npmmirror.com/unified@10.1.2 unist-util-filter: registry.npmmirror.com/unist-util-filter@4.0.1 + registry.npmmirror.com/rehype-rewrite@3.0.6: + resolution: {integrity: sha512-REDTNCvsKcAazy8IQWzKp66AhSUDSOIKssSCqNqCcT9sN7JCwAAm3mWGTUdUzq80ABuy8d0D6RBwbnewu1aY1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-rewrite/-/rehype-rewrite-3.0.6.tgz} + name: rehype-rewrite + version: 3.0.6 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + hast-util-select: registry.npmmirror.com/hast-util-select@5.0.5 + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + + registry.npmmirror.com/rehype-slug@5.1.0: + resolution: {integrity: sha512-Gf91dJoXneiorNEnn+Phx97CO7oRMrpi+6r155tTxzGuLtm+QrI4cTwCa9e1rtePdL4i9tSO58PeSS6HWfgsiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-slug/-/rehype-slug-5.1.0.tgz} + name: rehype-slug + version: 5.1.0 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + github-slugger: registry.npmmirror.com/github-slugger@2.0.0 + hast-util-has-property: registry.npmmirror.com/hast-util-has-property@2.0.1 + hast-util-heading-rank: registry.npmmirror.com/hast-util-heading-rank@2.1.1 + hast-util-to-string: registry.npmmirror.com/hast-util-to-string@2.0.0 + unified: registry.npmmirror.com/unified@10.1.2 + unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 + dev: false + registry.npmmirror.com/rehype-stringify@9.0.4: resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype-stringify/-/rehype-stringify-9.0.4.tgz} name: rehype-stringify @@ -16927,6 +20558,17 @@ packages: hast-util-to-html: registry.npmmirror.com/hast-util-to-html@8.0.4 unified: registry.npmmirror.com/unified@10.1.2 + registry.npmmirror.com/rehype@12.0.1: + resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rehype/-/rehype-12.0.1.tgz} + name: rehype + version: 12.0.1 + dependencies: + '@types/hast': registry.npmmirror.com/@types/hast@2.3.8 + rehype-parse: registry.npmmirror.com/rehype-parse@8.0.5 + rehype-stringify: registry.npmmirror.com/rehype-stringify@9.0.4 + unified: registry.npmmirror.com/unified@10.1.2 + dev: false + registry.npmmirror.com/relateurl@0.2.7: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz} name: relateurl @@ -17021,6 +20663,20 @@ packages: lodash: registry.npmmirror.com/lodash@4.17.21 strip-ansi: registry.npmmirror.com/strip-ansi@6.0.1 + registry.npmmirror.com/repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/repeat-element/-/repeat-element-1.1.4.tgz} + name: repeat-element + version: 1.1.4 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/repeat-string/-/repeat-string-1.6.1.tgz} + name: repeat-string + version: 1.6.1 + engines: {node: '>=0.10'} + dev: true + registry.npmmirror.com/require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/require-directory/-/require-directory-2.1.1.tgz} name: require-directory @@ -17045,6 +20701,12 @@ packages: version: 4.1.8 dev: true + registry.npmmirror.com/reselect@5.0.1: + resolution: {integrity: sha512-D72j2ubjgHpvuCiORWkOUxndHJrxDaSolheiz5CO+roz8ka97/4msh2E8F5qay4GawR5vzBt5MkbDHT+Rdy/Wg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/reselect/-/reselect-5.0.1.tgz} + name: reselect + version: 5.0.1 + dev: false + registry.npmmirror.com/resize-observer-polyfill@1.5.1: resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz} name: resize-observer-polyfill @@ -17095,6 +20757,13 @@ packages: name: resolve-pkg-maps version: 1.0.0 + registry.npmmirror.com/resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-url/-/resolve-url-0.2.1.tgz} + name: resolve-url + version: 0.2.1 + deprecated: https://github.com/lydell/resolve-url#deprecated + dev: true + registry.npmmirror.com/resolve@1.19.0: resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.19.0.tgz} name: resolve @@ -17153,6 +20822,13 @@ packages: signal-exit: registry.npmmirror.com/signal-exit@3.0.7 dev: true + registry.npmmirror.com/ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ret/-/ret-0.1.15.tgz} + name: ret + version: 0.1.15 + engines: {node: '>=0.12'} + dev: true + registry.npmmirror.com/retry@0.10.1: resolution: {integrity: sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/retry/-/retry-0.10.1.tgz} name: retry @@ -17186,6 +20862,16 @@ packages: dependencies: glob: registry.npmmirror.com/glob@7.2.3 + registry.npmmirror.com/rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/-/rimraf-5.0.5.tgz} + name: rimraf + version: 5.0.5 + engines: {node: '>=14'} + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob@10.3.10 + dev: true + registry.npmmirror.com/ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ripemd160/-/ripemd160-2.0.2.tgz} name: ripemd160 @@ -17211,6 +20897,16 @@ packages: source-map: registry.npmmirror.com/source-map@0.7.4 yargs: registry.npmmirror.com/yargs@17.7.2 + registry.npmmirror.com/rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.79.1.tgz} + name: rollup + version: 2.79.1 + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + registry.npmmirror.com/rollup@3.29.4: resolution: {integrity: sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz} name: rollup @@ -17220,6 +20916,29 @@ packages: optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 + registry.npmmirror.com/rollup@4.9.0: + resolution: {integrity: sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-4.9.0.tgz} + name: rollup + version: 4.9.0 + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + '@rollup/rollup-android-arm-eabi': registry.npmmirror.com/@rollup/rollup-android-arm-eabi@4.9.0 + '@rollup/rollup-android-arm64': registry.npmmirror.com/@rollup/rollup-android-arm64@4.9.0 + '@rollup/rollup-darwin-arm64': registry.npmmirror.com/@rollup/rollup-darwin-arm64@4.9.0 + '@rollup/rollup-darwin-x64': registry.npmmirror.com/@rollup/rollup-darwin-x64@4.9.0 + '@rollup/rollup-linux-arm-gnueabihf': registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf@4.9.0 + '@rollup/rollup-linux-arm64-gnu': registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu@4.9.0 + '@rollup/rollup-linux-arm64-musl': registry.npmmirror.com/@rollup/rollup-linux-arm64-musl@4.9.0 + '@rollup/rollup-linux-riscv64-gnu': registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu@4.9.0 + '@rollup/rollup-linux-x64-gnu': registry.npmmirror.com/@rollup/rollup-linux-x64-gnu@4.9.0 + '@rollup/rollup-linux-x64-musl': registry.npmmirror.com/@rollup/rollup-linux-x64-musl@4.9.0 + '@rollup/rollup-win32-arm64-msvc': registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc@4.9.0 + '@rollup/rollup-win32-ia32-msvc': registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.9.0 + '@rollup/rollup-win32-x64-msvc': registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.9.0 + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + registry.npmmirror.com/run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz} name: run-applescript @@ -17302,6 +21021,14 @@ packages: get-intrinsic: registry.npmmirror.com/get-intrinsic@1.2.2 is-regex: registry.npmmirror.com/is-regex@1.1.4 + registry.npmmirror.com/safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-regex/-/safe-regex-1.1.0.tgz} + name: safe-regex + version: 1.1.0 + dependencies: + ret: registry.npmmirror.com/ret@0.1.15 + dev: true + registry.npmmirror.com/safe-stable-stringify@2.4.3: resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz} name: safe-stable-stringify @@ -17365,6 +21092,14 @@ packages: engines: {node: '>=0.10.0'} dev: false + registry.npmmirror.com/scroll-into-view-if-needed@2.2.31: + resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz} + name: scroll-into-view-if-needed + version: 2.2.31 + dependencies: + compute-scroll-into-view: registry.npmmirror.com/compute-scroll-into-view@1.0.20 + dev: false + registry.npmmirror.com/scroll-into-view-if-needed@3.1.0: resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz} name: scroll-into-view-if-needed @@ -17506,6 +21241,18 @@ packages: functions-have-names: registry.npmmirror.com/functions-have-names@1.2.3 has-property-descriptors: registry.npmmirror.com/has-property-descriptors@1.0.1 + registry.npmmirror.com/set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/set-value/-/set-value-2.0.1.tgz} + name: set-value + version: 2.0.1 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + is-extendable: registry.npmmirror.com/is-extendable@0.1.1 + is-plain-object: registry.npmmirror.com/is-plain-object@2.0.4 + split-string: registry.npmmirror.com/split-string@3.1.0 + dev: true + registry.npmmirror.com/setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz} name: setimmediate @@ -17646,6 +21393,28 @@ packages: engines: {node: '>=14.16'} dev: true + registry.npmmirror.com/slate-history@0.66.0(slate@0.72.8): + resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz} + id: registry.npmmirror.com/slate-history/0.66.0 + name: slate-history + version: 0.66.0 + peerDependencies: + slate: '>=0.65.3' + dependencies: + is-plain-object: registry.npmmirror.com/is-plain-object@5.0.0 + slate: registry.npmmirror.com/slate@0.72.8 + dev: false + + registry.npmmirror.com/slate@0.72.8: + resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz} + name: slate + version: 0.72.8 + dependencies: + immer: registry.npmmirror.com/immer@9.0.21 + is-plain-object: registry.npmmirror.com/is-plain-object@5.0.0 + tiny-warning: registry.npmmirror.com/tiny-warning@1.0.3 + dev: false + registry.npmmirror.com/slice-ansi@4.0.0: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-4.0.0.tgz} name: slice-ansi @@ -17666,6 +21435,16 @@ packages: is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@4.0.0 dev: true + registry.npmmirror.com/slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slice-ansi/-/slice-ansi-7.1.0.tgz} + name: slice-ansi + version: 7.1.0 + engines: {node: '>=18'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@6.2.1 + is-fullwidth-code-point: registry.npmmirror.com/is-fullwidth-code-point@5.0.0 + dev: true + registry.npmmirror.com/smart-buffer@1.1.15: resolution: {integrity: sha512-1+8bxygjTsNfvQe0/0pNBesTOlSHtOeG6b6LYbvsZCCHDKYZ40zcQo6YTnZBWrBSLWOCbrHljLdEmGMYebu7aQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/smart-buffer/-/smart-buffer-1.1.15.tgz} name: smart-buffer @@ -17687,6 +21466,51 @@ packages: yargs: registry.npmmirror.com/yargs@15.4.1 dev: true + registry.npmmirror.com/snabbdom@3.5.1: + resolution: {integrity: sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/snabbdom/-/snabbdom-3.5.1.tgz} + name: snabbdom + version: 3.5.1 + engines: {node: '>=8.3.0'} + dev: false + + registry.npmmirror.com/snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz} + name: snapdragon-node + version: 2.1.1 + engines: {node: '>=0.10.0'} + dependencies: + define-property: registry.npmmirror.com/define-property@1.0.0 + isobject: registry.npmmirror.com/isobject@3.0.1 + snapdragon-util: registry.npmmirror.com/snapdragon-util@3.0.1 + dev: true + + registry.npmmirror.com/snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz} + name: snapdragon-util + version: 3.0.1 + engines: {node: '>=0.10.0'} + dependencies: + kind-of: registry.npmmirror.com/kind-of@3.2.2 + dev: true + + registry.npmmirror.com/snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/snapdragon/-/snapdragon-0.8.2.tgz} + name: snapdragon + version: 0.8.2 + engines: {node: '>=0.10.0'} + dependencies: + base: registry.npmmirror.com/base@0.11.2 + debug: registry.npmmirror.com/debug@2.6.9 + define-property: registry.npmmirror.com/define-property@0.2.5 + extend-shallow: registry.npmmirror.com/extend-shallow@2.0.1 + map-cache: registry.npmmirror.com/map-cache@0.2.2 + source-map: registry.npmmirror.com/source-map@0.5.7 + source-map-resolve: registry.npmmirror.com/source-map-resolve@0.5.3 + use: registry.npmmirror.com/use@3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/socks-proxy-agent@3.0.1: resolution: {integrity: sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz} name: socks-proxy-agent @@ -17745,12 +21569,31 @@ packages: sort-object-keys: registry.npmmirror.com/sort-object-keys@1.1.3 dev: true + registry.npmmirror.com/sortablejs@1.15.1: + resolution: {integrity: sha512-P5Cjvb0UG1ZVNiDPj/n4V+DinttXG6K8n7vM/HQf0C25K3YKQTQY6fsr/sEGsJGpQ9exmPxluHxKBc0mLKU1lQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz} + name: sortablejs + version: 1.15.1 + dev: false + registry.npmmirror.com/source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} name: source-map-js version: 1.0.2 engines: {node: '>=0.10.0'} + registry.npmmirror.com/source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz} + name: source-map-resolve + version: 0.5.3 + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + dependencies: + atob: registry.npmmirror.com/atob@2.1.2 + decode-uri-component: registry.npmmirror.com/decode-uri-component@0.2.2 + resolve-url: registry.npmmirror.com/resolve-url@0.2.1 + source-map-url: registry.npmmirror.com/source-map-url@0.4.1 + urix: registry.npmmirror.com/urix@0.1.0 + dev: true + registry.npmmirror.com/source-map-resolve@0.6.0: resolution: {integrity: sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz} name: source-map-resolve @@ -17768,12 +21611,18 @@ packages: buffer-from: registry.npmmirror.com/buffer-from@1.1.2 source-map: registry.npmmirror.com/source-map@0.6.1 + registry.npmmirror.com/source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-url/-/source-map-url-0.4.1.tgz} + name: source-map-url + version: 0.4.1 + deprecated: See https://github.com/lydell/source-map-url#deprecated + dev: true + registry.npmmirror.com/source-map@0.5.7: resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.5.7.tgz} name: source-map version: 0.5.7 engines: {node: '>=0.10.0'} - dev: false registry.npmmirror.com/source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} @@ -17873,6 +21722,15 @@ packages: version: 1.1.0 engines: {node: '>=6'} + registry.npmmirror.com/split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/split-string/-/split-string-3.1.0.tgz} + name: split-string + version: 3.1.0 + engines: {node: '>=0.10.0'} + dependencies: + extend-shallow: registry.npmmirror.com/extend-shallow@3.0.2 + dev: true + registry.npmmirror.com/split2@1.0.0: resolution: {integrity: sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/split2/-/split2-1.0.0.tgz} name: split2 @@ -17900,6 +21758,21 @@ packages: name: sprintf-js version: 1.0.3 + registry.npmmirror.com/ssf@0.11.2: + resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz} + name: ssf + version: 0.11.2 + engines: {node: '>=0.8'} + dependencies: + frac: registry.npmmirror.com/frac@1.1.2 + dev: false + + registry.npmmirror.com/ssr-window@3.0.0: + resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz} + name: ssr-window + version: 3.0.0 + dev: false + registry.npmmirror.com/ssri@4.1.6: resolution: {integrity: sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssri/-/ssri-4.1.6.tgz} name: ssri @@ -17925,6 +21798,23 @@ packages: name: stackframe version: 1.3.4 + registry.npmmirror.com/static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/static-extend/-/static-extend-0.1.2.tgz} + name: static-extend + version: 0.1.2 + engines: {node: '>=0.10.0'} + dependencies: + define-property: registry.npmmirror.com/define-property@0.2.5 + object-copy: registry.npmmirror.com/object-copy@0.1.0 + dev: true + + registry.npmmirror.com/statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz} + name: statuses + version: 1.5.0 + engines: {node: '>= 0.6'} + dev: true + registry.npmmirror.com/stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz} name: stop-iteration-iterator @@ -17982,6 +21872,13 @@ packages: mixme: registry.npmmirror.com/mixme@0.5.10 dev: true + registry.npmmirror.com/strict-uri-encode@1.1.0: + resolution: {integrity: sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz} + name: strict-uri-encode + version: 1.1.0 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/strict-uri-encode@2.0.0: resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz} name: strict-uri-encode @@ -18031,6 +21928,17 @@ packages: strip-ansi: registry.npmmirror.com/strip-ansi@7.1.0 dev: true + registry.npmmirror.com/string-width@7.0.0: + resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/-/string-width-7.0.0.tgz} + name: string-width + version: 7.0.0 + engines: {node: '>=18'} + dependencies: + emoji-regex: registry.npmmirror.com/emoji-regex@10.3.0 + get-east-asian-width: registry.npmmirror.com/get-east-asian-width@1.2.0 + strip-ansi: registry.npmmirror.com/strip-ansi@7.1.0 + dev: true + registry.npmmirror.com/string.prototype.matchall@4.0.10: resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz} name: string.prototype.matchall @@ -18102,6 +22010,15 @@ packages: character-entities-html4: registry.npmmirror.com/character-entities-html4@2.1.0 character-entities-legacy: registry.npmmirror.com/character-entities-legacy@3.0.0 + registry.npmmirror.com/strip-ansi@3.0.1: + resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-3.0.1.tgz} + name: strip-ansi + version: 3.0.1 + engines: {node: '>=0.10.0'} + dependencies: + ansi-regex: registry.npmmirror.com/ansi-regex@2.1.1 + dev: true + registry.npmmirror.com/strip-ansi@4.0.0: resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz} name: strip-ansi @@ -18140,7 +22057,6 @@ packages: name: strip-bom version: 3.0.0 engines: {node: '>=4'} - dev: true registry.npmmirror.com/strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-bom/-/strip-bom-4.0.0.tgz} @@ -18187,6 +22103,12 @@ packages: version: 3.1.1 engines: {node: '>=8'} + registry.npmmirror.com/style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-mod/-/style-mod-4.1.0.tgz} + name: style-mod + version: 4.1.0 + dev: false + registry.npmmirror.com/style-search@0.1.0: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/style-search/-/style-search-0.1.0.tgz} name: style-search @@ -18199,6 +22121,20 @@ packages: dependencies: inline-style-parser: registry.npmmirror.com/inline-style-parser@0.1.1 + registry.npmmirror.com/stylehacks@6.0.1(postcss@8.4.32): + resolution: {integrity: sha512-jTqG2aIoX2fYg0YsGvqE4ooE/e75WmaEjnNiP6Ag7irLtHxML8NJRxRxS0HyDpde8DRGuEXTFVHVfR5Tmbxqzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylehacks/-/stylehacks-6.0.1.tgz} + id: registry.npmmirror.com/stylehacks/6.0.1 + name: stylehacks + version: 6.0.1 + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.4.31 + dependencies: + browserslist: registry.npmmirror.com/browserslist@4.22.2 + postcss: registry.npmmirror.com/postcss@8.4.32 + postcss-selector-parser: registry.npmmirror.com/postcss-selector-parser@6.0.13 + dev: true + registry.npmmirror.com/stylelint-config-recommended@7.0.0(stylelint@14.16.1): resolution: {integrity: sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz} id: registry.npmmirror.com/stylelint-config-recommended/7.0.0 @@ -18280,6 +22216,22 @@ packages: version: 4.3.0 dev: false + registry.npmmirror.com/supports-color@2.0.0: + resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-2.0.0.tgz} + name: supports-color + version: 2.0.0 + engines: {node: '>=0.8.0'} + dev: true + + registry.npmmirror.com/supports-color@3.2.3: + resolution: {integrity: sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-3.2.3.tgz} + name: supports-color + version: 3.2.3 + engines: {node: '>=0.8.0'} + dependencies: + has-flag: registry.npmmirror.com/has-flag@1.0.0 + dev: true + registry.npmmirror.com/supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} name: supports-color @@ -18329,6 +22281,28 @@ packages: version: 1.0.0 engines: {node: '>= 0.4'} + registry.npmmirror.com/svg-baker@1.7.0: + resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-baker/-/svg-baker-1.7.0.tgz} + name: svg-baker + version: 1.7.0 + dependencies: + bluebird: registry.npmmirror.com/bluebird@3.7.2 + clone: registry.npmmirror.com/clone@2.1.2 + he: registry.npmmirror.com/he@1.2.0 + image-size: registry.npmmirror.com/image-size@0.5.5 + loader-utils: registry.npmmirror.com/loader-utils@1.4.2 + merge-options: registry.npmmirror.com/merge-options@1.0.1 + micromatch: registry.npmmirror.com/micromatch@3.1.0 + postcss: registry.npmmirror.com/postcss@5.2.18 + postcss-prefix-selector: registry.npmmirror.com/postcss-prefix-selector@1.16.0(postcss@5.2.18) + posthtml-rename-id: registry.npmmirror.com/posthtml-rename-id@1.0.12 + posthtml-svg-mode: registry.npmmirror.com/posthtml-svg-mode@1.0.3 + query-string: registry.npmmirror.com/query-string@4.3.4 + traverse: registry.npmmirror.com/traverse@0.6.6 + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/svg-parser@2.0.4: resolution: {integrity: sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz} name: svg-parser @@ -18380,6 +22354,22 @@ packages: picocolors: registry.npmmirror.com/picocolors@1.0.0 stable: registry.npmmirror.com/stable@0.1.8 + registry.npmmirror.com/svgo@3.1.0: + resolution: {integrity: sha512-R5SnNA89w1dYgNv570591F66v34b3eQShpIBcQtZtM5trJwm1VvxbIoMpRYY3ybTAutcKTLEmTsdnaknOHbiQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgo/-/svgo-3.1.0.tgz} + name: svgo + version: 3.1.0 + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': registry.npmmirror.com/@trysound/sax@0.2.0 + commander: registry.npmmirror.com/commander@7.2.0 + css-select: registry.npmmirror.com/css-select@5.1.0 + css-tree: registry.npmmirror.com/css-tree@2.3.1 + css-what: registry.npmmirror.com/css-what@6.1.0 + csso: registry.npmmirror.com/csso@5.0.5 + picocolors: registry.npmmirror.com/picocolors@1.0.0 + dev: true + registry.npmmirror.com/svgson@4.1.0: resolution: {integrity: sha512-DodISxHtdLKUghDYA+PGK4Qq350+CbBAkdvGLkBFSmWd9WKSg4dijgjB1IiRPTmsUCd+a7KYe+ILHtklYgQyzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/svgson/-/svgson-4.1.0.tgz} name: svgson @@ -18626,6 +22616,18 @@ packages: dependencies: setimmediate: registry.npmmirror.com/setimmediate@1.0.5 + registry.npmmirror.com/tiny-invariant@1.2.0: + resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz} + name: tiny-invariant + version: 1.2.0 + dev: false + + registry.npmmirror.com/tiny-warning@1.0.3: + resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz} + name: tiny-warning + version: 1.0.3 + dev: false + registry.npmmirror.com/titleize@3.0.0: resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/titleize/-/titleize-3.0.0.tgz} name: titleize @@ -18661,6 +22663,25 @@ packages: version: 2.0.0 engines: {node: '>=4'} + registry.npmmirror.com/to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz} + name: to-object-path + version: 0.3.0 + engines: {node: '>=0.10.0'} + dependencies: + kind-of: registry.npmmirror.com/kind-of@3.2.2 + dev: true + + registry.npmmirror.com/to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-2.1.1.tgz} + name: to-regex-range + version: 2.1.1 + engines: {node: '>=0.10.0'} + dependencies: + is-number: registry.npmmirror.com/is-number@3.0.0 + repeat-string: registry.npmmirror.com/repeat-string@1.6.1 + dev: true + registry.npmmirror.com/to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz} name: to-regex-range @@ -18669,6 +22690,18 @@ packages: dependencies: is-number: registry.npmmirror.com/is-number@7.0.0 + registry.npmmirror.com/to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-regex/-/to-regex-3.0.2.tgz} + name: to-regex + version: 3.0.2 + engines: {node: '>=0.10.0'} + dependencies: + define-property: registry.npmmirror.com/define-property@2.0.2 + extend-shallow: registry.npmmirror.com/extend-shallow@3.0.2 + regex-not: registry.npmmirror.com/regex-not@1.0.2 + safe-regex: registry.npmmirror.com/safe-regex@1.1.0 + dev: true + registry.npmmirror.com/toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/toggle-selection/-/toggle-selection-1.0.6.tgz} name: toggle-selection @@ -18701,18 +22734,6 @@ packages: name: trough version: 2.1.0 - registry.npmmirror.com/ts-api-utils@1.0.3(typescript@5.3.3): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz} - id: registry.npmmirror.com/ts-api-utils/1.0.3 - name: ts-api-utils - version: 1.0.3 - engines: {node: '>=16.13.0'} - peerDependencies: - typescript: '>=4.2.0' - dependencies: - typescript: registry.npmmirror.com/typescript@5.3.3 - dev: false - registry.npmmirror.com/ts-node@10.9.2(@types/node@20.5.1)(typescript@5.3.3): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-node/-/ts-node-10.9.2.tgz} id: registry.npmmirror.com/ts-node/10.9.2 @@ -18752,6 +22773,17 @@ packages: name: ts-toolbelt version: 9.6.0 + registry.npmmirror.com/tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz} + name: tsconfig-paths + version: 3.15.0 + dependencies: + '@types/json5': registry.npmmirror.com/@types/json5@0.0.29 + json5: registry.npmmirror.com/json5@1.0.2 + minimist: registry.npmmirror.com/minimist@1.2.8 + strip-bom: registry.npmmirror.com/strip-bom@3.0.0 + dev: false + registry.npmmirror.com/tsconfig-paths@4.0.0: resolution: {integrity: sha512-SLBg2GBKlR6bVtMgJJlud/o3waplKtL7skmLkExomIiaAtLGtVsoXIqP3SYdjbcH9lq/KVv7pMZeCBpLYOit6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tsconfig-paths/-/tsconfig-paths-4.0.0.tgz} name: tsconfig-paths @@ -18767,6 +22799,18 @@ packages: name: tslib version: 1.14.1 + registry.npmmirror.com/tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz} + name: tslib + version: 2.3.0 + dev: false + + registry.npmmirror.com/tslib@2.3.1: + resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.3.1.tgz} + name: tslib + version: 2.3.1 + dev: false + registry.npmmirror.com/tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tslib/-/tslib-2.6.2.tgz} name: tslib @@ -18965,6 +23009,18 @@ packages: engines: {node: '>=16'} dev: true + registry.npmmirror.com/type@1.2.0: + resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type/-/type-1.2.0.tgz} + name: type + version: 1.2.0 + dev: false + + registry.npmmirror.com/type@2.7.2: + resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/type/-/type-2.7.2.tgz} + name: type + version: 2.7.2 + dev: false + registry.npmmirror.com/typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz} name: typed-array-buffer @@ -19186,6 +23242,18 @@ packages: trough: registry.npmmirror.com/trough@2.1.0 vfile: registry.npmmirror.com/vfile@5.3.7 + registry.npmmirror.com/union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/union-value/-/union-value-1.0.1.tgz} + name: union-value + version: 1.0.1 + engines: {node: '>=0.10.0'} + dependencies: + arr-union: registry.npmmirror.com/arr-union@3.1.0 + get-value: registry.npmmirror.com/get-value@2.0.6 + is-extendable: registry.npmmirror.com/is-extendable@0.1.1 + set-value: registry.npmmirror.com/set-value@2.0.1 + dev: true + registry.npmmirror.com/unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unique-filename/-/unique-filename-1.1.1.tgz} name: unique-filename @@ -19287,6 +23355,13 @@ packages: version: 2.0.1 engines: {node: '>= 10.0.0'} + registry.npmmirror.com/unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz} + name: unpipe + version: 1.0.0 + engines: {node: '>= 0.8'} + dev: true + registry.npmmirror.com/unquote@1.1.1: resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz} name: unquote @@ -19301,6 +23376,16 @@ packages: has-value: registry.npmmirror.com/has-value@0.3.1 isobject: registry.npmmirror.com/isobject@3.0.1 + registry.npmmirror.com/unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unset-value/-/unset-value-1.0.0.tgz} + name: unset-value + version: 1.0.0 + engines: {node: '>=0.10.0'} + dependencies: + has-value: registry.npmmirror.com/has-value@0.3.1 + isobject: registry.npmmirror.com/isobject@3.0.1 + dev: true + registry.npmmirror.com/untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/untildify/-/untildify-4.0.0.tgz} name: untildify @@ -19350,6 +23435,13 @@ packages: dependencies: punycode: registry.npmmirror.com/punycode@2.3.1 + registry.npmmirror.com/urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz} + name: urix + version: 0.1.0 + deprecated: Please see https://github.com/lydell/urix#deprecated + dev: true + registry.npmmirror.com/url-join@5.0.0: resolution: {integrity: sha512-n2huDr9h9yzd6exQVnH/jU5mr+Pfx08LRXXZhkLLetAMESRj+anQsTAh940iMrIetKAmry9coFuZQ2jY8/p3WA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/url-join/-/url-join-5.0.0.tgz} name: url-join @@ -19373,6 +23465,19 @@ packages: punycode: registry.npmmirror.com/punycode@1.4.1 qs: registry.npmmirror.com/qs@6.11.2 + registry.npmmirror.com/use-immer@0.9.0(immer@10.0.3)(react@18.2.0): + resolution: {integrity: sha512-/L+enLi0nvuZ6j4WlyK0US9/ECUtV5v9RUbtxnn5+WbtaXYUaOBoKHDNL9I5AETdurQ4rIFIj/s+Z5X80ATyKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-immer/-/use-immer-0.9.0.tgz} + id: registry.npmmirror.com/use-immer/0.9.0 + name: use-immer + version: 0.9.0 + peerDependencies: + immer: '>=2.0.0' + react: ^16.8.0 || ^17.0.1 || ^18.0.0 + dependencies: + immer: registry.npmmirror.com/immer@10.0.3 + react: registry.npmmirror.com/react@18.2.0 + dev: false + registry.npmmirror.com/use-isomorphic-layout-effect@1.1.2(@types/react@18.2.45)(react@18.1.0): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz} id: registry.npmmirror.com/use-isomorphic-layout-effect/1.1.2 @@ -19410,6 +23515,13 @@ packages: react: registry.npmmirror.com/react@18.2.0 dev: false + registry.npmmirror.com/use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/use/-/use-3.1.1.tgz} + name: use + version: 3.1.1 + engines: {node: '>=0.10.0'} + dev: true + registry.npmmirror.com/util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz} name: util-deprecate @@ -19444,6 +23556,13 @@ packages: name: utila version: 0.4.0 + registry.npmmirror.com/utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz} + name: utils-merge + version: 1.0.1 + engines: {node: '>= 0.4.0'} + dev: true + registry.npmmirror.com/uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz} name: uuid @@ -19532,6 +23651,85 @@ packages: unist-util-stringify-position: registry.npmmirror.com/unist-util-stringify-position@3.0.3 vfile-message: registry.npmmirror.com/vfile-message@3.1.4 + registry.npmmirror.com/video-react@0.16.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-138NHPS8bmgqCYVCdbv2GVFhXntemNHWGw9AN8iJSzr3jizXMmWJd2LTBppr4hZJUbyW1A1tPZ3CQXZUaexMVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/video-react/-/video-react-0.16.0.tgz} + id: registry.npmmirror.com/video-react/0.16.0 + name: video-react + version: 0.16.0 + peerDependencies: + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + classnames: registry.npmmirror.com/classnames@2.3.2 + lodash.throttle: registry.npmmirror.com/lodash.throttle@4.1.1 + prop-types: registry.npmmirror.com/prop-types@15.8.1 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + redux: registry.npmmirror.com/redux@4.2.1 + dev: false + + registry.npmmirror.com/vite-plugin-eslint@1.8.1(eslint@8.55.0)(vite@4.5.0): + resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz} + id: registry.npmmirror.com/vite-plugin-eslint/1.8.1 + name: vite-plugin-eslint + version: 1.8.1 + peerDependencies: + eslint: '>=7' + vite: '>=2' + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@4.2.1 + '@types/eslint': registry.npmmirror.com/@types/eslint@8.44.9 + eslint: registry.npmmirror.com/eslint@8.55.0 + rollup: registry.npmmirror.com/rollup@2.79.1 + vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) + dev: true + + registry.npmmirror.com/vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.0): + resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.8.tgz} + id: registry.npmmirror.com/vite-plugin-mock/2.9.8 + name: vite-plugin-mock + version: 2.9.8 + engines: {node: '>=12.0.0'} + peerDependencies: + mockjs: '>=1.1.0' + vite: '>=2.0.0' + dependencies: + '@types/mockjs': registry.npmmirror.com/@types/mockjs@1.0.10 + chalk: registry.npmmirror.com/chalk@4.1.2 + chokidar: registry.npmmirror.com/chokidar@3.5.3 + connect: registry.npmmirror.com/connect@3.7.0 + debug: registry.npmmirror.com/debug@4.3.4 + esbuild: registry.npmmirror.com/esbuild@0.14.54 + fast-glob: registry.npmmirror.com/fast-glob@3.3.2 + mockjs: registry.npmmirror.com/mockjs@1.1.0 + path-to-regexp: registry.npmmirror.com/path-to-regexp@6.2.1 + vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@4.5.0): + resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz} + id: registry.npmmirror.com/vite-plugin-svg-icons/2.0.1 + name: vite-plugin-svg-icons + version: 2.0.1 + peerDependencies: + vite: '>=2.0.0' + dependencies: + '@types/svgo': registry.npmmirror.com/@types/svgo@2.6.4 + cors: registry.npmmirror.com/cors@2.8.5 + debug: registry.npmmirror.com/debug@4.3.4 + etag: registry.npmmirror.com/etag@1.8.1 + fs-extra: registry.npmmirror.com/fs-extra@10.1.0 + pathe: registry.npmmirror.com/pathe@0.2.0 + svg-baker: registry.npmmirror.com/svg-baker@1.7.0 + svgo: registry.npmmirror.com/svgo@2.8.0 + vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) + transitivePeerDependencies: + - supports-color + dev: true + registry.npmmirror.com/vite@4.3.1(@types/node@20.5.1)(less@4.1.3)(sass@1.69.5): resolution: {integrity: sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.3.1.tgz} id: registry.npmmirror.com/vite/4.3.1 @@ -19569,11 +23767,58 @@ packages: optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 + registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0): + resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz} + id: registry.npmmirror.com/vite/4.5.0 + name: vite + version: 4.5.0 + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.4 + esbuild: registry.npmmirror.com/esbuild@0.18.20 + less: registry.npmmirror.com/less@4.2.0 + postcss: registry.npmmirror.com/postcss@8.4.32 + rollup: registry.npmmirror.com/rollup@3.29.4 + terser: registry.npmmirror.com/terser@5.26.0 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents@2.3.3 + dev: true + registry.npmmirror.com/vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz} name: vm-browserify version: 1.1.2 + registry.npmmirror.com/w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/w3c-keyname/-/w3c-keyname-2.2.8.tgz} + name: w3c-keyname + version: 2.2.8 + dev: false + registry.npmmirror.com/walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/walker/-/walker-1.0.8.tgz} name: walker @@ -19756,6 +24001,19 @@ packages: dependencies: string-width: registry.npmmirror.com/string-width@2.1.1 + registry.npmmirror.com/wildcard@1.1.2: + resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz} + name: wildcard + version: 1.1.2 + dev: false + + registry.npmmirror.com/wmf@1.0.2: + resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz} + name: wmf + version: 1.0.2 + engines: {node: '>=0.8'} + dev: false + registry.npmmirror.com/word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.5.tgz} name: word-wrap @@ -19763,6 +24021,13 @@ packages: engines: {node: '>=0.10.0'} dev: true + registry.npmmirror.com/word@0.3.0: + resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/word/-/word-0.3.0.tgz} + name: word + version: 0.3.0 + engines: {node: '>=0.8'} + dev: false + registry.npmmirror.com/wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wordwrap/-/wordwrap-1.0.0.tgz} name: wordwrap @@ -19801,6 +24066,17 @@ packages: strip-ansi: registry.npmmirror.com/strip-ansi@7.1.0 dev: true + registry.npmmirror.com/wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz} + name: wrap-ansi + version: 9.0.0 + engines: {node: '>=18'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles@6.2.1 + string-width: registry.npmmirror.com/string-width@7.0.0 + strip-ansi: registry.npmmirror.com/strip-ansi@7.1.0 + dev: true + registry.npmmirror.com/wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz} name: wrappy @@ -19830,6 +24106,22 @@ packages: version: 3.0.0 engines: {node: '>=4'} + registry.npmmirror.com/xlsx@0.18.5: + resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz} + name: xlsx + version: 0.18.5 + engines: {node: '>=0.8'} + hasBin: true + dependencies: + adler-32: registry.npmmirror.com/adler-32@1.3.1 + cfb: registry.npmmirror.com/cfb@1.2.2 + codepage: registry.npmmirror.com/codepage@1.15.0 + crc-32: registry.npmmirror.com/crc-32@1.2.2 + ssf: registry.npmmirror.com/ssf@0.11.2 + wmf: registry.npmmirror.com/wmf@1.0.2 + word: registry.npmmirror.com/word@0.3.0 + dev: false + registry.npmmirror.com/xml-lexer@0.2.2: resolution: {integrity: sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xml-lexer/-/xml-lexer-0.2.2.tgz} name: xml-lexer @@ -19904,6 +24196,13 @@ packages: engines: {node: '>= 14'} dev: true + registry.npmmirror.com/yaml@2.3.4: + resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yaml/-/yaml-2.3.4.tgz} + name: yaml + version: 2.3.4 + engines: {node: '>= 14'} + dev: true + registry.npmmirror.com/yargs-parser@18.1.3: resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs-parser/-/yargs-parser-18.1.3.tgz} name: yargs-parser @@ -19986,6 +24285,14 @@ packages: commander: registry.npmmirror.com/commander@9.5.0 dev: true + registry.npmmirror.com/zrender@5.4.4: + resolution: {integrity: sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zrender/-/zrender-5.4.4.tgz} + name: zrender + version: 5.4.4 + dependencies: + tslib: registry.npmmirror.com/tslib@2.3.0 + dev: false + registry.npmmirror.com/zustand-utils@1.3.1(react@18.2.0)(zustand@4.4.7): resolution: {integrity: sha512-YBfWpWEwZN0ZxtMg5zJeywTuNAaN+xVCTAjYC0SFsWx7hwfdHQGFbkA3ruTRBLez5S9y9ZwqnmFeDCHzRmLLMg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/zustand-utils/-/zustand-utils-1.3.1.tgz} id: registry.npmmirror.com/zustand-utils/1.3.1 From 98c8dee926aea7c63ddf0e7fa8589705f575b181 Mon Sep 17 00:00:00 2001 From: G Date: Sat, 16 Dec 2023 10:58:08 +0800 Subject: [PATCH 004/134] =?UTF-8?q?refactor:=20:recycle:=20=E5=AE=8C?= =?UTF-8?q?=E6=88=90eslint=E8=87=AA=E5=8A=A8=E5=8C=96=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 3 + apps/admin/.eslintcache | 2 +- .../src/components/AppLogo/src/AppLogo.tsx | 23 +++--- .../src/components/LazyLoad/src/LazyLoad.tsx | 32 ++++----- apps/admin/src/components/SvgIcon/index.tsx | 3 +- .../src/components/Upload/src/UploadImage.tsx | 2 +- apps/admin/src/layout/menu/index.tsx | 2 +- .../layout/tags/components/TagItem/index.tsx | 3 +- apps/admin/src/layout/tags/index.tsx | 3 +- apps/admin/src/router/guard/guardRoute.tsx | 3 +- apps/admin/src/router/index.tsx | 3 +- apps/admin/src/router/routes/compo.tsx | 3 +- apps/admin/src/router/routes/excel.tsx | 3 +- apps/admin/src/router/routes/exception.tsx | 3 +- apps/admin/src/router/routes/form.tsx | 3 +- apps/admin/src/router/routes/graph-editor.tsx | 3 +- apps/admin/src/router/routes/home.tsx | 3 +- apps/admin/src/router/routes/images.tsx | 3 +- apps/admin/src/router/routes/table.tsx | 3 +- apps/admin/src/router/routes/text-editor.tsx | 3 +- apps/admin/src/router/routes/tree.tsx | 3 +- apps/admin/src/router/routes/video.tsx | 3 +- apps/admin/src/router/types.ts | 4 +- apps/admin/src/stores/index.ts | 4 +- apps/admin/src/stores/modules/app.ts | 2 +- apps/admin/src/stores/modules/menu.ts | 2 +- apps/admin/src/stores/modules/tags.ts | 6 +- apps/admin/src/stores/types.ts | 7 +- apps/admin/src/types/config.ts | 6 +- apps/admin/src/utils/auth.ts | 2 +- apps/admin/src/utils/cache/index.ts | 2 +- apps/admin/src/utils/cache/persistent.ts | 12 ++-- apps/admin/src/views/blank.tsx | 2 +- .../code-mirror/components/CodeInfo.tsx | 4 +- .../editor/code-mirror/components/Toolbar.tsx | 4 +- .../src/views/editor/code-mirror/index.tsx | 5 +- apps/admin/src/views/editor/markdown.tsx | 2 +- .../editor/rich-text/components/Editor.tsx | 2 +- .../src/views/editor/rich-text/index.tsx | 5 +- .../src/views/excel/export-excel/index.tsx | 17 +++-- apps/admin/src/views/excel/useExcel.ts | 3 +- apps/admin/src/views/exception/index.tsx | 3 +- .../admin/src/views/form/basic-form/index.tsx | 2 +- apps/admin/src/views/form/form-designer.tsx | 3 +- .../src/views/home/components/ChartsCard.tsx | 2 +- .../src/views/home/components/CountUpCard.tsx | 71 +++++++++---------- apps/admin/src/views/home/index.tsx | 2 +- apps/admin/src/views/image/image-cropper.tsx | 2 +- apps/admin/src/views/login/index.tsx | 2 +- .../src/views/table/table-basic/index.tsx | 7 +- .../src/views/table/table-edit-row/index.tsx | 5 +- apps/admin/src/views/tree/org-tree/index.tsx | 2 +- packages/config-eslint/index.js | 71 +++++++++++++++++++ 53 files changed, 229 insertions(+), 146 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index cd6c9973..5d276462 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,8 @@ { "yaml.schemas": { "https://json.schemastore.org/github-workflow.json": "file:///Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/.github/workflows/deploy-ui.yml" + }, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true } } diff --git a/apps/admin/.eslintcache b/apps/admin/.eslintcache index 306f34d7..069cd716 100644 --- a/apps/admin/.eslintcache +++ b/apps/admin/.eslintcache @@ -1 +1 @@ -[{"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/build/utils.ts":"1","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/_utils.ts":"2","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/table.ts":"3","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/user.ts":"4","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/App.tsx":"5","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/api/index.ts":"6","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/AppLogo/index.ts":"7","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/AppLogo/src/AppLogo.tsx":"8","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/LazyLoad/index.ts":"9","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx":"10","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Page/index.ts":"11","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Page/src/PageWrapper.tsx":"12","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/SvgIcon/index.tsx":"13","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/SvgIcon/types.ts":"14","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Upload/index.ts":"15","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Upload/src/UploadImage.tsx":"16","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/appEnum.ts":"17","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/cacheEnum.ts":"18","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/exceptionEnum.ts":"19","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/menuEnum.ts":"20","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/tagsEnum.ts":"21","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useECharts.ts":"22","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useMessage.tsx":"23","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useTitle.ts":"24","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/DocLink.tsx":"25","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/FullScreen.tsx":"26","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/GithubLink.tsx":"27","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/UserDropdown.tsx":"28","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/index.ts":"29","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/index.tsx":"30","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/Breadcrumb.tsx":"31","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/FoldTrigger/index.tsx":"32","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/index.ts":"33","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/index.tsx":"34","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/index.tsx":"35","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/menu/index.tsx":"36","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/components/TagItem/index.tsx":"37","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/components/index.ts":"38","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/index.tsx":"39","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/main.tsx":"40","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/guard/guardRoute.tsx":"41","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/guard/index.tsx":"42","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/helpers/index.ts":"43","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/index.tsx":"44","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/menus/index.ts":"45","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/compo.tsx":"46","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/excel.tsx":"47","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/exception.tsx":"48","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/form.tsx":"49","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/graph-editor.tsx":"50","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/home.tsx":"51","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/images.tsx":"52","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/table.tsx":"53","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/text-editor.tsx":"54","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/tree.tsx":"55","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/video.tsx":"56","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/types.ts":"57","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/appBaseSetting.ts":"58","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/designSetting.ts":"59","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/encryptionSetting.ts":"60","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/websiteSetting.ts":"61","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/index.ts":"62","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/app.ts":"63","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/menu.ts":"64","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/tags.ts":"65","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/user.ts":"66","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/types.ts":"67","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/types/config.ts":"68","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/types/index.ts":"69","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/auth.ts":"70","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/axios.ts":"71","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/index.ts":"72","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/memory.ts":"73","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/persistent.ts":"74","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/storageCache.ts":"75","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cipher.ts":"76","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/download.ts":"77","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/echarts.ts":"78","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/env.ts":"79","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/helper/menuHelper.ts":"80","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/helper/treeHelper.ts":"81","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/image.ts":"82","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/index.ts":"83","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/is.ts":"84","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/blank.tsx":"85","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/count-up.tsx":"86","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/drag/drag-list.tsx":"87","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/drag/drag-resize.tsx":"88","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/image-upload.tsx":"89","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/transfer/data.ts":"90","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/transfer/index.tsx":"91","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx":"92","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx":"93","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/index.tsx":"94","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/types.ts":"95","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/markdown.tsx":"96","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/components/Editor.tsx":"97","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx":"98","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/index.tsx":"99","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/export-excel/data.ts":"100","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/export-excel/index.tsx":"101","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/import-excel.tsx":"102","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/types.ts":"103","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/useExcel.ts":"104","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/exception/index.tsx":"105","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/basic-form/data.ts":"106","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/basic-form/index.tsx":"107","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/form-designer.tsx":"108","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/gbeata-form/index.tsx":"109","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/components/ChartsCard.tsx":"110","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/components/CountUpCard.tsx":"111","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/data.ts":"112","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/index.tsx":"113","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/image/image-cropper.tsx":"114","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/login/index.tsx":"115","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-basic/index.tsx":"116","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-basic/types.ts":"117","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-edit-row/data.ts":"118","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-edit-row/index.tsx":"119","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/antd-tree/data.ts":"120","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/antd-tree/index.tsx":"121","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/org-tree/data.ts":"122","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/org-tree/index.tsx":"123","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/video/video-player.tsx":"124"},{"size":998,"mtime":1702692806973},{"size":1268,"mtime":1702658308580},{"size":1756,"mtime":1702658308588,"results":"125","hashOfConfig":"126"},{"size":1994,"mtime":1702658308589,"results":"127","hashOfConfig":"126"},{"size":175,"mtime":1702658308649},{"size":652,"mtime":1702658308651},{"size":56,"mtime":1702658308718},{"size":777,"mtime":1702658308720},{"size":58,"mtime":1702658308725},{"size":608,"mtime":1702658308728},{"size":67,"mtime":1702658308731},{"size":1015,"mtime":1702658308732},{"size":445,"mtime":1702658308736},{"size":112,"mtime":1702658308737},{"size":67,"mtime":1702658308740},{"size":1559,"mtime":1702658308742},{"size":613,"mtime":1702658308754},{"size":385,"mtime":1702658308755},{"size":161,"mtime":1702658308756},{"size":378,"mtime":1702658308759},{"size":106,"mtime":1702658308760},{"size":1490,"mtime":1702658308768},{"size":1485,"mtime":1702658308769},{"size":565,"mtime":1702658308771},{"size":329,"mtime":1702658308773},{"size":559,"mtime":1702658308774},{"size":539,"mtime":1702658308775},{"size":2428,"mtime":1702658308776},{"size":207,"mtime":1702658308777},{"size":614,"mtime":1702658308781},{"size":1008,"mtime":1702658308785},{"size":719,"mtime":1702658308788},{"size":113,"mtime":1702658308789},{"size":680,"mtime":1702658308789},{"size":933,"mtime":1702658308791},{"size":3116,"mtime":1702692419876},{"size":688,"mtime":1702658308798},{"size":52,"mtime":1702658308799},{"size":6874,"mtime":1702658308802},{"size":568,"mtime":1702658308803},{"size":755,"mtime":1702658308806},{"size":191,"mtime":1702658308808},{"size":1704,"mtime":1702658308810},{"size":1498,"mtime":1702658308812},{"size":435,"mtime":1702658308814},{"size":1474,"mtime":1702658308817},{"size":764,"mtime":1702658308818},{"size":1216,"mtime":1702658308819},{"size":938,"mtime":1702658308820},{"size":763,"mtime":1702658308821},{"size":551,"mtime":1702658308821},{"size":959,"mtime":1702658308822},{"size":774,"mtime":1702658308823},{"size":983,"mtime":1702658308824},{"size":738,"mtime":1702658308824},{"size":758,"mtime":1702658308825},{"size":704,"mtime":1702658308826},{"size":2207,"mtime":1702658308827},{"size":668,"mtime":1702658308830},{"size":343,"mtime":1702658308832},{"size":5863,"mtime":1702658308832},{"size":1292,"mtime":1702658308834},{"size":1048,"mtime":1702658308835},{"size":504,"mtime":1702658308836},{"size":2602,"mtime":1702658308837},{"size":1093,"mtime":1702658308838},{"size":860,"mtime":1702658308839},{"size":2184,"mtime":1702658308839},{"size":318,"mtime":1702658308840},{"size":793,"mtime":1702658308841},{"size":1210,"mtime":1702658308842},{"size":983,"mtime":1702658308843},{"size":1861,"mtime":1702658308844},{"size":2948,"mtime":1702658308846},{"size":2801,"mtime":1702658308847},{"size":890,"mtime":1702658308848},{"size":2597,"mtime":1702658308850},{"size":927,"mtime":1702658308851},{"size":325,"mtime":1702658308853},{"size":366,"mtime":1702658308855},{"size":5074,"mtime":1702658308856},{"size":1107,"mtime":1702658308857},{"size":1214,"mtime":1702658308858},{"size":1305,"mtime":1702658308859},{"size":223,"mtime":1702658308864},{"size":4104,"mtime":1702658308867},{"size":3546,"mtime":1702658308870},{"size":1817,"mtime":1702658308872},{"size":4706,"mtime":1702658308873},{"size":1235,"mtime":1702658308876},{"size":5166,"mtime":1702658308878},{"size":719,"mtime":1702658308886},{"size":1699,"mtime":1702658308890},{"size":2051,"mtime":1702658308895},{"size":243,"mtime":1702658308897},{"size":633,"mtime":1702658308898},{"size":2893,"mtime":1702658308914},{"size":762,"mtime":1702658308920},{"size":1434,"mtime":1702658308923},{"size":1751,"mtime":1702658308928},{"size":3837,"mtime":1702658308932},{"size":2448,"mtime":1702658308937},{"size":266,"mtime":1702658308939},{"size":4505,"mtime":1702658308942},{"size":1146,"mtime":1702658308945},{"size":5212,"mtime":1702658308947},{"size":9071,"mtime":1702658308948},{"size":348,"mtime":1702658308949},{"size":472,"mtime":1702658308951},{"size":609,"mtime":1702658308953},{"size":1205,"mtime":1702658308954},{"size":5297,"mtime":1702658308955},{"size":1497,"mtime":1702658308956},{"size":2348,"mtime":1702658308957},{"size":4350,"mtime":1702658308960},{"size":4407,"mtime":1702658308963},{"size":298,"mtime":1702658308964},{"size":1415,"mtime":1702658308966},{"size":7282,"mtime":1702658308967},{"size":785,"mtime":1702658308969},{"size":2065,"mtime":1702658308970},{"size":1368,"mtime":1702658308972},{"size":1599,"mtime":1702658308973},{"size":1429,"mtime":1702658308974},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":1,"fatalErrorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"d40uvm",{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":1,"fatalErrorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/table.ts",["134"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/user.ts",["135"],[],{"ruleId":null,"fatal":true,"severity":2,"message":"136","nodeType":null},{"ruleId":null,"fatal":true,"severity":2,"message":"137","nodeType":null},"Parsing error: ESLint was configured to run on `/mock/data/table.ts` using `parserOptions.project`: /users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/tsconfig.json\nHowever, that TSConfig does not include this file. Either:\n- Change ESLint's list of included files to not include this file\n- Change that TSConfig to include this file\n- Create a new TSConfig that includes this file and include it in your parserOptions.project\nSee the typescript-eslint docs for more info: https://typescript-eslint.io/linting/troubleshooting#i-get-errors-telling-me-eslint-was-configured-to-run--however-that-tsconfig-does-not--none-of-those-tsconfigs-include-this-file","Parsing error: ESLint was configured to run on `/mock/data/user.ts` using `parserOptions.project`: /users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/tsconfig.json\nHowever, that TSConfig does not include this file. Either:\n- Change ESLint's list of included files to not include this file\n- Change that TSConfig to include this file\n- Create a new TSConfig that includes this file and include it in your parserOptions.project\nSee the typescript-eslint docs for more info: https://typescript-eslint.io/linting/troubleshooting#i-get-errors-telling-me-eslint-was-configured-to-run--however-that-tsconfig-does-not--none-of-those-tsconfigs-include-this-file"] \ No newline at end of file +[{"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/build/utils.ts":"1","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/_utils.ts":"2","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/table.ts":"3","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/user.ts":"4","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/App.tsx":"5","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/api/index.ts":"6","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/AppLogo/index.ts":"7","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/AppLogo/src/AppLogo.tsx":"8","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/LazyLoad/index.ts":"9","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx":"10","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Page/index.ts":"11","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Page/src/PageWrapper.tsx":"12","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/SvgIcon/index.tsx":"13","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/SvgIcon/types.ts":"14","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Upload/index.ts":"15","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Upload/src/UploadImage.tsx":"16","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/appEnum.ts":"17","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/cacheEnum.ts":"18","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/exceptionEnum.ts":"19","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/menuEnum.ts":"20","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/tagsEnum.ts":"21","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useECharts.ts":"22","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useMessage.tsx":"23","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useTitle.ts":"24","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/DocLink.tsx":"25","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/FullScreen.tsx":"26","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/GithubLink.tsx":"27","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/UserDropdown.tsx":"28","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/index.ts":"29","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/index.tsx":"30","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/Breadcrumb.tsx":"31","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/FoldTrigger/index.tsx":"32","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/index.ts":"33","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/index.tsx":"34","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/index.tsx":"35","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/menu/index.tsx":"36","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/components/TagItem/index.tsx":"37","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/components/index.ts":"38","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/index.tsx":"39","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/main.tsx":"40","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/guard/guardRoute.tsx":"41","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/guard/index.tsx":"42","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/helpers/index.ts":"43","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/index.tsx":"44","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/menus/index.ts":"45","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/compo.tsx":"46","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/excel.tsx":"47","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/exception.tsx":"48","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/form.tsx":"49","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/graph-editor.tsx":"50","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/home.tsx":"51","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/images.tsx":"52","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/table.tsx":"53","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/text-editor.tsx":"54","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/tree.tsx":"55","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/video.tsx":"56","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/types.ts":"57","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/appBaseSetting.ts":"58","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/designSetting.ts":"59","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/encryptionSetting.ts":"60","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/websiteSetting.ts":"61","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/index.ts":"62","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/app.ts":"63","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/menu.ts":"64","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/tags.ts":"65","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/user.ts":"66","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/types.ts":"67","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/types/config.ts":"68","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/types/index.ts":"69","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/auth.ts":"70","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/axios.ts":"71","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/index.ts":"72","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/memory.ts":"73","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/persistent.ts":"74","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/storageCache.ts":"75","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cipher.ts":"76","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/download.ts":"77","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/echarts.ts":"78","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/env.ts":"79","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/helper/menuHelper.ts":"80","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/helper/treeHelper.ts":"81","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/image.ts":"82","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/index.ts":"83","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/is.ts":"84","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/blank.tsx":"85","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/count-up.tsx":"86","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/drag/drag-list.tsx":"87","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/drag/drag-resize.tsx":"88","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/image-upload.tsx":"89","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/transfer/data.ts":"90","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/transfer/index.tsx":"91","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx":"92","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx":"93","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/index.tsx":"94","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/types.ts":"95","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/markdown.tsx":"96","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/components/Editor.tsx":"97","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx":"98","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/index.tsx":"99","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/export-excel/data.ts":"100","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/export-excel/index.tsx":"101","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/import-excel.tsx":"102","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/types.ts":"103","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/useExcel.ts":"104","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/exception/index.tsx":"105","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/basic-form/data.ts":"106","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/basic-form/index.tsx":"107","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/form-designer.tsx":"108","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/gbeata-form/index.tsx":"109","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/components/ChartsCard.tsx":"110","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/components/CountUpCard.tsx":"111","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/data.ts":"112","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/index.tsx":"113","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/image/image-cropper.tsx":"114","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/login/index.tsx":"115","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-basic/index.tsx":"116","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-basic/types.ts":"117","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-edit-row/data.ts":"118","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-edit-row/index.tsx":"119","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/antd-tree/data.ts":"120","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/antd-tree/index.tsx":"121","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/org-tree/data.ts":"122","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/org-tree/index.tsx":"123","/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/video/video-player.tsx":"124"},{"size":1010,"mtime":1702693977177,"results":"125","hashOfConfig":"126"},{"size":1281,"mtime":1702693977177,"results":"127","hashOfConfig":"126"},{"size":1756,"mtime":1702658308588,"results":"128","hashOfConfig":"126"},{"size":1994,"mtime":1702658308589,"results":"129","hashOfConfig":"126"},{"size":179,"mtime":1702693977177,"results":"130","hashOfConfig":"126"},{"size":661,"mtime":1702693977177,"results":"131","hashOfConfig":"126"},{"size":58,"mtime":1702693977177,"results":"132","hashOfConfig":"126"},{"size":757,"mtime":1702694357556,"results":"133","hashOfConfig":"126"},{"size":61,"mtime":1702693977177,"results":"134","hashOfConfig":"126"},{"size":573,"mtime":1702694415157,"results":"135","hashOfConfig":"136"},{"size":70,"mtime":1702693977177,"results":"137","hashOfConfig":"126"},{"size":1026,"mtime":1702693977177,"results":"138","hashOfConfig":"126"},{"size":459,"mtime":1702694357556,"results":"139","hashOfConfig":"126"},{"size":113,"mtime":1702693977177,"results":"140","hashOfConfig":"126"},{"size":70,"mtime":1702693977177,"results":"141","hashOfConfig":"126"},{"size":1593,"mtime":1702694357556,"results":"142","hashOfConfig":"126"},{"size":619,"mtime":1702693977177,"results":"143","hashOfConfig":"126"},{"size":393,"mtime":1702693977177,"results":"144","hashOfConfig":"126"},{"size":162,"mtime":1702693977178,"results":"145","hashOfConfig":"126"},{"size":381,"mtime":1702693977177,"results":"146","hashOfConfig":"126"},{"size":107,"mtime":1702693977177,"results":"147","hashOfConfig":"126"},{"size":1530,"mtime":1702693977177,"results":"148","hashOfConfig":"126"},{"size":1467,"mtime":1702693977177,"results":"149","hashOfConfig":"126"},{"size":578,"mtime":1702693977177,"results":"150","hashOfConfig":"126"},{"size":334,"mtime":1702693977178,"results":"151","hashOfConfig":"126"},{"size":565,"mtime":1702693977178,"results":"152","hashOfConfig":"126"},{"size":546,"mtime":1702693977178,"results":"153","hashOfConfig":"126"},{"size":2456,"mtime":1702693977178,"results":"154","hashOfConfig":"126"},{"size":216,"mtime":1702693977178,"results":"155","hashOfConfig":"126"},{"size":624,"mtime":1702693977178,"results":"156","hashOfConfig":"126"},{"size":1028,"mtime":1702693977180,"results":"157","hashOfConfig":"126"},{"size":730,"mtime":1702693977178,"results":"158","hashOfConfig":"126"},{"size":117,"mtime":1702693977178,"results":"159","hashOfConfig":"126"},{"size":690,"mtime":1702693977178,"results":"160","hashOfConfig":"126"},{"size":953,"mtime":1702693977180,"results":"161","hashOfConfig":"126"},{"size":3158,"mtime":1702694357556,"results":"162","hashOfConfig":"126"},{"size":686,"mtime":1702694357557,"results":"163","hashOfConfig":"126"},{"size":54,"mtime":1702693977178,"results":"164","hashOfConfig":"126"},{"size":6903,"mtime":1702694357556,"results":"165","hashOfConfig":"126"},{"size":578,"mtime":1702693977178,"results":"166","hashOfConfig":"126"},{"size":746,"mtime":1702694357556,"results":"167","hashOfConfig":"126"},{"size":180,"mtime":1702693977178,"results":"168","hashOfConfig":"126"},{"size":1731,"mtime":1702693977178,"results":"169","hashOfConfig":"126"},{"size":1536,"mtime":1702694357556,"results":"170","hashOfConfig":"126"},{"size":425,"mtime":1702693977178,"results":"171","hashOfConfig":"126"},{"size":1504,"mtime":1702694357556,"results":"172","hashOfConfig":"126"},{"size":785,"mtime":1702694357556,"results":"173","hashOfConfig":"126"},{"size":1241,"mtime":1702694357556,"results":"174","hashOfConfig":"126"},{"size":961,"mtime":1702694357556,"results":"175","hashOfConfig":"126"},{"size":784,"mtime":1702694357556,"results":"176","hashOfConfig":"126"},{"size":568,"mtime":1702694357556,"results":"177","hashOfConfig":"126"},{"size":982,"mtime":1702694357556,"results":"178","hashOfConfig":"126"},{"size":795,"mtime":1702694357556,"results":"179","hashOfConfig":"126"},{"size":1006,"mtime":1702694357557,"results":"180","hashOfConfig":"126"},{"size":759,"mtime":1702694357557,"results":"181","hashOfConfig":"126"},{"size":779,"mtime":1702694357557,"results":"182","hashOfConfig":"126"},{"size":716,"mtime":1702694357557,"results":"183","hashOfConfig":"126"},{"size":2217,"mtime":1702693977178,"results":"184","hashOfConfig":"126"},{"size":584,"mtime":1702693977178,"results":"185","hashOfConfig":"126"},{"size":348,"mtime":1702693977178,"results":"186","hashOfConfig":"126"},{"size":5908,"mtime":1702693977178,"results":"187","hashOfConfig":"126"},{"size":1324,"mtime":1702694357557,"results":"188","hashOfConfig":"126"},{"size":1079,"mtime":1702694357557,"results":"189","hashOfConfig":"126"},{"size":521,"mtime":1702694357557,"results":"190","hashOfConfig":"126"},{"size":2646,"mtime":1702694357557,"results":"191","hashOfConfig":"126"},{"size":1120,"mtime":1702693977178,"results":"192","hashOfConfig":"126"},{"size":878,"mtime":1702694357557,"results":"193","hashOfConfig":"126"},{"size":2169,"mtime":1702694357557,"results":"194","hashOfConfig":"126"},{"size":320,"mtime":1702693977178,"results":"195","hashOfConfig":"126"},{"size":811,"mtime":1702694357557,"results":"196","hashOfConfig":"126"},{"size":1213,"mtime":1702693977178,"results":"197","hashOfConfig":"126"},{"size":937,"mtime":1702694357557,"results":"198","hashOfConfig":"126"},{"size":1899,"mtime":1702693977178,"results":"199","hashOfConfig":"126"},{"size":3026,"mtime":1702694357557,"results":"200","hashOfConfig":"126"},{"size":2837,"mtime":1702693977178,"results":"201","hashOfConfig":"126"},{"size":816,"mtime":1702693977178,"results":"202","hashOfConfig":"126"},{"size":2635,"mtime":1702693977178,"results":"203","hashOfConfig":"126"},{"size":935,"mtime":1702693977178,"results":"204","hashOfConfig":"126"},{"size":298,"mtime":1702693977178,"results":"205","hashOfConfig":"126"},{"size":377,"mtime":1702693977178,"results":"206","hashOfConfig":"126"},{"size":5118,"mtime":1702693977178,"results":"207","hashOfConfig":"126"},{"size":1130,"mtime":1702693977179,"results":"208","hashOfConfig":"126"},{"size":1232,"mtime":1702693977179,"results":"209","hashOfConfig":"126"},{"size":1315,"mtime":1702693977179,"results":"210","hashOfConfig":"126"},{"size":216,"mtime":1702694357557,"results":"211","hashOfConfig":"126"},{"size":4159,"mtime":1702693977179,"results":"212","hashOfConfig":"126"},{"size":3563,"mtime":1702693977179,"results":"213","hashOfConfig":"126"},{"size":1849,"mtime":1702693977179,"results":"214","hashOfConfig":"126"},{"size":4736,"mtime":1702693977179,"results":"215","hashOfConfig":"126"},{"size":1255,"mtime":1702693977179,"results":"216","hashOfConfig":"126"},{"size":5184,"mtime":1702693977179,"results":"217","hashOfConfig":"126"},{"size":722,"mtime":1702694357557,"results":"218","hashOfConfig":"126"},{"size":1729,"mtime":1702694357557,"results":"219","hashOfConfig":"126"},{"size":2092,"mtime":1702694357557,"results":"220","hashOfConfig":"126"},{"size":244,"mtime":1702693977179,"results":"221","hashOfConfig":"126"},{"size":651,"mtime":1702694357557,"results":"222","hashOfConfig":"126"},{"size":2952,"mtime":1702694357557,"results":"223","hashOfConfig":"126"},{"size":780,"mtime":1702693977179,"results":"224","hashOfConfig":"126"},{"size":1437,"mtime":1702694357557,"results":"225","hashOfConfig":"126"},{"size":1760,"mtime":1702693977179,"results":"226","hashOfConfig":"126"},{"size":3907,"mtime":1702694357557,"results":"227","hashOfConfig":"126"},{"size":2503,"mtime":1702693977179,"results":"228","hashOfConfig":"126"},{"size":269,"mtime":1702693977179,"results":"229","hashOfConfig":"126"},{"size":4513,"mtime":1702694357557,"results":"230","hashOfConfig":"126"},{"size":1150,"mtime":1702694357557,"results":"231","hashOfConfig":"126"},{"size":5285,"mtime":1702693977179,"results":"232","hashOfConfig":"126"},{"size":9184,"mtime":1702694357558,"results":"233","hashOfConfig":"126"},{"size":347,"mtime":1702694357557,"results":"234","hashOfConfig":"126"},{"size":483,"mtime":1702693977179,"results":"235","hashOfConfig":"126"},{"size":625,"mtime":1702694357557,"results":"236","hashOfConfig":"126"},{"size":1212,"mtime":1702694357557,"results":"237","hashOfConfig":"126"},{"size":5310,"mtime":1702693977179,"results":"238","hashOfConfig":"126"},{"size":1504,"mtime":1702694357557,"results":"239","hashOfConfig":"126"},{"size":2381,"mtime":1702694357557,"results":"240","hashOfConfig":"126"},{"size":4405,"mtime":1702694357557,"results":"241","hashOfConfig":"126"},{"size":4475,"mtime":1702694357557,"results":"242","hashOfConfig":"126"},{"size":299,"mtime":1702693977179,"results":"243","hashOfConfig":"126"},{"size":1424,"mtime":1702693977179,"results":"244","hashOfConfig":"126"},{"size":7128,"mtime":1702694357557,"results":"245","hashOfConfig":"126"},{"size":799,"mtime":1702693977179,"results":"246","hashOfConfig":"126"},{"size":2099,"mtime":1702693977179,"results":"247","hashOfConfig":"126"},{"size":1389,"mtime":1702693977179,"results":"248","hashOfConfig":"126"},{"size":1634,"mtime":1702694357557,"results":"249","hashOfConfig":"126"},{"size":1427,"mtime":1702693977179,"results":"250","hashOfConfig":"126"},{"filePath":"251","messages":"252","suppressedMessages":"253","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"1lgq7z4",{"filePath":"254","messages":"255","suppressedMessages":"256","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"257","messages":"258","suppressedMessages":"259","errorCount":1,"fatalErrorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"260","messages":"261","suppressedMessages":"262","errorCount":1,"fatalErrorCount":1,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"263","messages":"264","suppressedMessages":"265","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"266","messages":"267","suppressedMessages":"268","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"269","messages":"270","suppressedMessages":"271","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"272","messages":"273","suppressedMessages":"274","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"275","messages":"276","suppressedMessages":"277","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"278","messages":"279","suppressedMessages":"280","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"5qk1vv",{"filePath":"281","messages":"282","suppressedMessages":"283","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"284","messages":"285","suppressedMessages":"286","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"287","messages":"288","suppressedMessages":"289","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"290","messages":"291","suppressedMessages":"292","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"293","messages":"294","suppressedMessages":"295","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"296","messages":"297","suppressedMessages":"298","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"299","messages":"300","suppressedMessages":"301","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"302","messages":"303","suppressedMessages":"304","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"305","messages":"306","suppressedMessages":"307","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"308","messages":"309","suppressedMessages":"310","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"311","messages":"312","suppressedMessages":"313","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"314","messages":"315","suppressedMessages":"316","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"317","messages":"318","suppressedMessages":"319","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"320","messages":"321","suppressedMessages":"322","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"323","messages":"324","suppressedMessages":"325","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"326","messages":"327","suppressedMessages":"328","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"329","messages":"330","suppressedMessages":"331","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"332","messages":"333","suppressedMessages":"334","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"335","messages":"336","suppressedMessages":"337","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"338","messages":"339","suppressedMessages":"340","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"341","messages":"342","suppressedMessages":"343","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"344","messages":"345","suppressedMessages":"346","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"347","messages":"348","suppressedMessages":"349","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"350","messages":"351","suppressedMessages":"352","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"353","messages":"354","suppressedMessages":"355","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"356","messages":"357","suppressedMessages":"358","errorCount":3,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"359","messages":"360","suppressedMessages":"361","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"362","messages":"363","suppressedMessages":"364","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"365","messages":"366","suppressedMessages":"367","errorCount":10,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"368","messages":"369","suppressedMessages":"370","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"371","messages":"372","suppressedMessages":"373","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"374","messages":"375","suppressedMessages":"376","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"377","messages":"378","suppressedMessages":"379","errorCount":3,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"380","messages":"381","suppressedMessages":"382","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"383","messages":"384","suppressedMessages":"385","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"386","messages":"387","suppressedMessages":"388","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"389","messages":"390","suppressedMessages":"391","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"392","messages":"393","suppressedMessages":"394","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"395","messages":"396","suppressedMessages":"397","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"398","messages":"399","suppressedMessages":"400","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"401","messages":"402","suppressedMessages":"403","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"404","messages":"405","suppressedMessages":"406","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"407","messages":"408","suppressedMessages":"409","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"410","messages":"411","suppressedMessages":"412","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"413","messages":"414","suppressedMessages":"415","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"416","messages":"417","suppressedMessages":"418","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"419","messages":"420","suppressedMessages":"421","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"422","messages":"423","suppressedMessages":"424","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"425","messages":"426","suppressedMessages":"427","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"428","messages":"429","suppressedMessages":"430","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"431","messages":"432","suppressedMessages":"433","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"434","messages":"435","suppressedMessages":"436","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"437","messages":"438","suppressedMessages":"439","errorCount":6,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"440","messages":"441","suppressedMessages":"442","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"443","messages":"444","suppressedMessages":"445","errorCount":5,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"446","messages":"447","suppressedMessages":"448","errorCount":8,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"449","messages":"450","suppressedMessages":"451","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"452","messages":"453","suppressedMessages":"454","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"455","messages":"456","suppressedMessages":"457","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"458","messages":"459","suppressedMessages":"460","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"461","messages":"462","suppressedMessages":"463","errorCount":4,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"464","messages":"465","suppressedMessages":"466","errorCount":3,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"467","messages":"468","suppressedMessages":"469","errorCount":3,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"470","messages":"471","suppressedMessages":"472","errorCount":8,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"473","messages":"474","suppressedMessages":"475","errorCount":5,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"476","messages":"477","suppressedMessages":"478","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"479","messages":"480","suppressedMessages":"481","errorCount":1,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"482","messages":"483","suppressedMessages":"484","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"485","messages":"486","suppressedMessages":"487","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"488","messages":"489","suppressedMessages":"490","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"491","messages":"492","suppressedMessages":"493","errorCount":27,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"494","messages":"495","suppressedMessages":"496","errorCount":2,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"497","messages":"498","suppressedMessages":"499","errorCount":7,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"500","messages":"501","suppressedMessages":"502","errorCount":7,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"503","messages":"504","suppressedMessages":"505","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"506","messages":"507","suppressedMessages":"508","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"509","messages":"510","suppressedMessages":"511","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"512","messages":"513","suppressedMessages":"514","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"515","messages":"516","suppressedMessages":"517","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"518","messages":"519","suppressedMessages":"520","errorCount":5,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"521","messages":"522","suppressedMessages":"523","errorCount":8,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"524","messages":"525","suppressedMessages":"526","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"527","messages":"528","suppressedMessages":"529","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"530","messages":"531","suppressedMessages":"532","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"533","messages":"534","suppressedMessages":"535","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"536","messages":"537","suppressedMessages":"538","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"539","messages":"540","suppressedMessages":"541","errorCount":8,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"542","messages":"543","suppressedMessages":"544","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"545","messages":"546","suppressedMessages":"547","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"548","messages":"549","suppressedMessages":"550","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"551","messages":"552","suppressedMessages":"553","errorCount":2,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"554","messages":"555","suppressedMessages":"556","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"557","messages":"558","suppressedMessages":"559","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"560","messages":"561","suppressedMessages":"562","errorCount":7,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"563","messages":"564","suppressedMessages":"565","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"566","messages":"567","suppressedMessages":"568","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"569","messages":"570","suppressedMessages":"571","errorCount":5,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"572","messages":"573","suppressedMessages":"574","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"575","messages":"576","suppressedMessages":"577","errorCount":4,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"578","messages":"579","suppressedMessages":"580","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"581","messages":"582","suppressedMessages":"583","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"584","messages":"585","suppressedMessages":"586","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"587","messages":"588","suppressedMessages":"589","errorCount":29,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"590","messages":"591","suppressedMessages":"592","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"593","messages":"594","suppressedMessages":"595","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"596","messages":"597","suppressedMessages":"598","errorCount":4,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"599","messages":"600","suppressedMessages":"601","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"602","messages":"603","suppressedMessages":"604","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"605","messages":"606","suppressedMessages":"607","errorCount":8,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"608","messages":"609","suppressedMessages":"610","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"611","messages":"612","suppressedMessages":"613","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"614","messages":"615","suppressedMessages":"616","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"617","messages":"618","suppressedMessages":"619","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"620","messages":"621","suppressedMessages":"622","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/build/utils.ts",["623","624"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/_utils.ts",["625"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/table.ts",["626"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/mock/data/user.ts",["627"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/App.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/api/index.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/AppLogo/index.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/AppLogo/src/AppLogo.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/LazyLoad/index.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Page/index.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Page/src/PageWrapper.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/SvgIcon/index.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/SvgIcon/types.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Upload/index.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/components/Upload/src/UploadImage.tsx",["628"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/appEnum.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/cacheEnum.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/exceptionEnum.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/menuEnum.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/enums/tagsEnum.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useECharts.ts",["629","630"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useMessage.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/hooks/web/useTitle.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/DocLink.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/FullScreen.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/GithubLink.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/UserDropdown.tsx",["631","632"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/components/index.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/feature/index.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/Breadcrumb.tsx",["633"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/FoldTrigger/index.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/components/index.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/header/index.tsx",["634","635"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/index.tsx",["636","637"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/menu/index.tsx",["638","639","640","641"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/components/TagItem/index.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/components/index.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/layout/tags/index.tsx",["642","643","644","645","646","647","648","649","650","651"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/main.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/guard/guardRoute.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/guard/index.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/helpers/index.ts",["652","653","654"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/index.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/menus/index.ts",["655"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/compo.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/excel.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/exception.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/form.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/graph-editor.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/home.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/images.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/table.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/text-editor.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/tree.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/routes/video.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/router/types.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/appBaseSetting.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/designSetting.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/encryptionSetting.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/settings/websiteSetting.ts",["656"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/index.ts",["657"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/app.ts",["658","659","660","661","662","663"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/menu.ts",["664","665"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/tags.ts",["666","667","668","669","670"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/modules/user.ts",["671","672","673","674","675","676","677","678"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/stores/types.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/types/config.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/types/index.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/auth.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/axios.ts",["679","680","681","682"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/index.ts",["683","684","685"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/memory.ts",["686","687","688"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/persistent.ts",["689","690","691","692","693","694","695","696"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cache/storageCache.ts",["697","698","699","700","701"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/cipher.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/download.ts",["702","703"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/echarts.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/env.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/helper/menuHelper.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/helper/treeHelper.ts",["704","705","706","707","708","709","710","711","712","713","714","715","716","717","718","719","720","721","722","723","724","725","726","727","728","729","730"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/image.ts",["731","732","733"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/index.ts",["734","735","736","737","738","739","740"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/utils/is.ts",["741","742","743","744","745","746","747"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/blank.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/count-up.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/drag/drag-list.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/drag/drag-resize.tsx",["748"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/image-upload.tsx",["749"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/transfer/data.ts",["750","751","752","753","754"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/compo/transfer/index.tsx",["755","756","757","758","759","760","761","762"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/index.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/code-mirror/types.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/markdown.tsx",["763"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/components/Editor.tsx",["764","765","766","767","768","769","770","771","772"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/components/Toolbar.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/editor/rich-text/index.tsx",["773"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/export-excel/data.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/export-excel/index.tsx",["774","775","776"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/import-excel.tsx",["777","778"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/types.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/excel/useExcel.ts",["779","780","781","782","783","784","785"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/exception/index.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/basic-form/data.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/basic-form/index.tsx",["786","787","788","789","790","791"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/form-designer.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/form/gbeata-form/index.tsx",["792","793","794","795","796","797"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/components/ChartsCard.tsx",["798"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/components/CountUpCard.tsx",["799"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/data.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/home/index.tsx",["800","801","802","803","804","805","806","807","808","809","810","811","812","813","814","815","816","817","818","819","820","821","822","823","824","825","826","827","828"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/image/image-cropper.tsx",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/login/index.tsx",["829"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-basic/index.tsx",["830","831","832","833","834","835","836"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-basic/types.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-edit-row/data.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/table/table-edit-row/index.tsx",["837","838","839","840","841","842","843","844","845"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/antd-tree/data.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/antd-tree/index.tsx",["846"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/org-tree/data.ts",[],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/tree/org-tree/index.tsx",["847"],[],"/Users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/src/views/video/video-player.tsx",[],[],{"ruleId":"848","severity":2,"message":"849","line":13,"column":3,"nodeType":"850","messageId":"851","endLine":36,"endColumn":4},{"ruleId":"852","severity":2,"message":"853","line":15,"column":16,"nodeType":"854","messageId":"855","endLine":15,"endColumn":84},{"ruleId":"856","severity":2,"message":"857","line":3,"column":18,"nodeType":"858","messageId":"859","endLine":3,"endColumn":31},{"ruleId":null,"fatal":true,"severity":2,"message":"860","nodeType":null},{"ruleId":null,"fatal":true,"severity":2,"message":"861","nodeType":null},{"ruleId":"856","severity":2,"message":"862","line":6,"column":11,"nodeType":"858","messageId":"859","endLine":6,"endColumn":20},{"ruleId":"863","severity":2,"message":"864","line":35,"column":5,"nodeType":"865","messageId":"866","endLine":37,"endColumn":7},{"ruleId":"867","severity":2,"message":"868","line":49,"column":23,"nodeType":"858","messageId":"869","endLine":49,"endColumn":45},{"ruleId":"870","severity":2,"message":"871","line":40,"column":5,"nodeType":"872","messageId":"873","endLine":47,"endColumn":6},{"ruleId":"874","severity":2,"message":"875","line":82,"column":5,"nodeType":"876","messageId":"877","endLine":82,"endColumn":35},{"ruleId":"878","severity":2,"message":"879","line":17,"column":35,"nodeType":"880","messageId":"881","endLine":17,"endColumn":46},{"ruleId":"882","severity":2,"message":"883","line":7,"column":23,"nodeType":"858","messageId":"884","endLine":7,"endColumn":33},{"ruleId":"885","severity":2,"message":"883","line":7,"column":23,"nodeType":"858","messageId":"884","endLine":7,"endColumn":33},{"ruleId":"882","severity":2,"message":"883","line":15,"column":29,"nodeType":"858","messageId":"884","endLine":15,"endColumn":39},{"ruleId":"885","severity":2,"message":"883","line":15,"column":29,"nodeType":"858","messageId":"884","endLine":15,"endColumn":39},{"ruleId":"867","severity":2,"message":"886","line":36,"column":20,"nodeType":"858","messageId":"869","endLine":36,"endColumn":31},{"ruleId":"863","severity":2,"message":"887","line":56,"column":34,"nodeType":"888","messageId":"889","endLine":56,"endColumn":36},{"ruleId":"863","severity":2,"message":"887","line":80,"column":72,"nodeType":"888","messageId":"889","endLine":80,"endColumn":74},{"ruleId":"890","severity":1,"message":"891","line":92,"column":3,"nodeType":"892","messageId":"893","endLine":92,"endColumn":14,"suggestions":"894"},{"ruleId":"848","severity":2,"message":"849","line":62,"column":5,"nodeType":"850","messageId":"851","endLine":64,"endColumn":6},{"ruleId":"848","severity":2,"message":"849","line":84,"column":5,"nodeType":"850","messageId":"851","endLine":95,"endColumn":6},{"ruleId":"878","severity":2,"message":"895","line":109,"column":21,"nodeType":"880","messageId":"896","endLine":109,"endColumn":37},{"ruleId":"897","severity":2,"message":"898","line":110,"column":1,"nodeType":"899","messageId":"900","endLine":110,"endColumn":119},{"ruleId":"878","severity":2,"message":"895","line":110,"column":52,"nodeType":"880","messageId":"896","endLine":110,"endColumn":68},{"ruleId":"878","severity":2,"message":"895","line":110,"column":71,"nodeType":"880","messageId":"896","endLine":110,"endColumn":88},{"ruleId":"878","severity":2,"message":"895","line":112,"column":44,"nodeType":"880","messageId":"896","endLine":112,"endColumn":61},{"ruleId":"878","severity":2,"message":"895","line":112,"column":64,"nodeType":"880","messageId":"896","endLine":112,"endColumn":80},{"ruleId":"878","severity":2,"message":"895","line":115,"column":22,"nodeType":"880","messageId":"896","endLine":115,"endColumn":38},{"ruleId":"878","severity":2,"message":"895","line":115,"column":72,"nodeType":"880","messageId":"896","endLine":115,"endColumn":89},{"ruleId":"901","severity":2,"message":"902","line":9,"column":45,"nodeType":"903","messageId":"904","endLine":9,"endColumn":52},{"ruleId":"905","severity":2,"message":"906","line":28,"column":7,"nodeType":"858","messageId":"907","endLine":28,"endColumn":11},{"ruleId":"901","severity":2,"message":"902","line":52,"column":46,"nodeType":"903","messageId":"904","endLine":52,"endColumn":53},{"ruleId":"897","severity":2,"message":"908","line":9,"column":1,"nodeType":"899","messageId":"900","endLine":9,"endColumn":103},{"ruleId":"856","severity":2,"message":"909","line":133,"column":14,"nodeType":"858","messageId":"859","endLine":133,"endColumn":35},{"ruleId":"897","severity":2,"message":"908","line":35,"column":1,"nodeType":"899","messageId":"900","endLine":35,"endColumn":103},{"ruleId":"905","severity":2,"message":"910","line":21,"column":7,"nodeType":"858","messageId":"907","endLine":21,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":24,"column":7,"nodeType":"858","messageId":"907","endLine":24,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":27,"column":7,"nodeType":"858","messageId":"907","endLine":27,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":31,"column":7,"nodeType":"858","messageId":"907","endLine":31,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":32,"column":7,"nodeType":"858","messageId":"907","endLine":32,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":33,"column":7,"nodeType":"858","messageId":"907","endLine":33,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":15,"column":7,"nodeType":"858","messageId":"907","endLine":15,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":18,"column":7,"nodeType":"858","messageId":"907","endLine":18,"endColumn":12},{"ruleId":"897","severity":2,"message":"908","line":29,"column":1,"nodeType":"899","messageId":"900","endLine":29,"endColumn":103},{"ruleId":"905","severity":2,"message":"910","line":29,"column":9,"nodeType":"858","messageId":"907","endLine":29,"endColumn":14},{"ruleId":"905","severity":2,"message":"910","line":33,"column":7,"nodeType":"858","messageId":"907","endLine":33,"endColumn":12},{"ruleId":"870","severity":2,"message":"871","line":41,"column":7,"nodeType":"872","messageId":"873","endLine":51,"endColumn":8},{"ruleId":"905","severity":2,"message":"910","line":52,"column":7,"nodeType":"858","messageId":"907","endLine":52,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":21,"column":7,"nodeType":"858","messageId":"907","endLine":21,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":25,"column":7,"nodeType":"858","messageId":"907","endLine":25,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":26,"column":7,"nodeType":"858","messageId":"907","endLine":26,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":30,"column":7,"nodeType":"858","messageId":"907","endLine":30,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":33,"column":7,"nodeType":"858","messageId":"907","endLine":33,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":34,"column":7,"nodeType":"858","messageId":"907","endLine":34,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":35,"column":7,"nodeType":"858","messageId":"907","endLine":35,"endColumn":12},{"ruleId":"905","severity":2,"message":"910","line":36,"column":7,"nodeType":"858","messageId":"907","endLine":36,"endColumn":12},{"ruleId":"911","severity":2,"message":"912","line":18,"column":5,"nodeType":"858","messageId":"913","endLine":18,"endColumn":13},{"ruleId":"905","severity":2,"message":"914","line":28,"column":6,"nodeType":"858","messageId":"907","endLine":28,"endColumn":12},{"ruleId":"905","severity":2,"message":"914","line":30,"column":4,"nodeType":"858","messageId":"907","endLine":30,"endColumn":10},{"ruleId":"915","severity":2,"message":"916","line":43,"column":10,"nodeType":"917","messageId":"918","endLine":43,"endColumn":33},{"ruleId":"897","severity":2,"message":"919","line":17,"column":1,"nodeType":"899","messageId":"900","endLine":17,"endColumn":132},{"ruleId":"897","severity":2,"message":"920","line":19,"column":1,"nodeType":"899","messageId":"900","endLine":19,"endColumn":139},{"ruleId":"897","severity":2,"message":"921","line":21,"column":1,"nodeType":"899","messageId":"900","endLine":21,"endColumn":135},{"ruleId":"905","severity":2,"message":"922","line":29,"column":7,"nodeType":"858","messageId":"923","endLine":29,"endColumn":14},{"ruleId":"863","severity":2,"message":"924","line":58,"column":3,"nodeType":"925","messageId":"889","endLine":58,"endColumn":9},{"ruleId":"874","severity":2,"message":"875","line":85,"column":7,"nodeType":"876","messageId":"877","endLine":85,"endColumn":54},{"ruleId":"874","severity":2,"message":"875","line":42,"column":3,"nodeType":"876","messageId":"877","endLine":42,"endColumn":52},{"ruleId":"874","severity":2,"message":"875","line":43,"column":3,"nodeType":"876","messageId":"877","endLine":43,"endColumn":58},{"ruleId":"874","severity":2,"message":"875","line":53,"column":5,"nodeType":"876","messageId":"877","endLine":53,"endColumn":68},{"ruleId":"874","severity":2,"message":"875","line":58,"column":5,"nodeType":"876","messageId":"877","endLine":58,"endColumn":68},{"ruleId":"874","severity":2,"message":"875","line":63,"column":5,"nodeType":"876","messageId":"877","endLine":63,"endColumn":29},{"ruleId":"874","severity":2,"message":"875","line":72,"column":5,"nodeType":"876","messageId":"877","endLine":72,"endColumn":72},{"ruleId":"874","severity":2,"message":"875","line":77,"column":5,"nodeType":"876","messageId":"877","endLine":77,"endColumn":72},{"ruleId":"874","severity":2,"message":"875","line":82,"column":5,"nodeType":"876","messageId":"877","endLine":82,"endColumn":29},{"ruleId":"867","severity":2,"message":"926","line":51,"column":20,"nodeType":"858","messageId":"869","endLine":51,"endColumn":31},{"ruleId":"867","severity":2,"message":"926","line":62,"column":9,"nodeType":"858","messageId":"869","endLine":62,"endColumn":20},{"ruleId":"863","severity":2,"message":"927","line":80,"column":5,"nodeType":"925","messageId":"889","endLine":80,"endColumn":8},{"ruleId":"867","severity":2,"message":"926","line":80,"column":9,"nodeType":"858","messageId":"869","endLine":80,"endColumn":20},{"ruleId":"867","severity":2,"message":"926","line":102,"column":12,"nodeType":"858","messageId":"869","endLine":102,"endColumn":23},{"ruleId":"890","severity":1,"message":"891","line":86,"column":5,"nodeType":"892","messageId":"893","endLine":86,"endColumn":18,"suggestions":"928"},{"ruleId":"905","severity":2,"message":"929","line":106,"column":5,"nodeType":"858","messageId":"923","endLine":106,"endColumn":8},{"ruleId":"848","severity":2,"message":"849","line":22,"column":3,"nodeType":"850","messageId":"851","endLine":25,"endColumn":4},{"ruleId":"848","severity":2,"message":"849","line":26,"column":3,"nodeType":"850","messageId":"851","endLine":29,"endColumn":4},{"ruleId":"905","severity":2,"message":"930","line":34,"column":3,"nodeType":"858","messageId":"923","endLine":34,"endColumn":9},{"ruleId":"901","severity":2,"message":"902","line":37,"column":38,"nodeType":"903","messageId":"904","endLine":37,"endColumn":41},{"ruleId":"931","severity":2,"message":"932","line":38,"column":32,"nodeType":"933","messageId":"893","endLine":38,"endColumn":41},{"ruleId":"897","severity":2,"message":"934","line":44,"column":1,"nodeType":"899","messageId":"900","endLine":44,"endColumn":107},{"ruleId":"905","severity":2,"message":"930","line":45,"column":3,"nodeType":"858","messageId":"923","endLine":45,"endColumn":9},{"ruleId":"848","severity":2,"message":"849","line":48,"column":3,"nodeType":"850","messageId":"851","endLine":51,"endColumn":4},{"ruleId":"874","severity":2,"message":"875","line":50,"column":5,"nodeType":"876","messageId":"877","endLine":50,"endColumn":54},{"ruleId":"897","severity":2,"message":"935","line":55,"column":1,"nodeType":"899","messageId":"900","endLine":55,"endColumn":105},{"ruleId":"905","severity":2,"message":"930","line":56,"column":3,"nodeType":"858","messageId":"923","endLine":56,"endColumn":9},{"ruleId":"848","severity":2,"message":"849","line":60,"column":3,"nodeType":"850","messageId":"851","endLine":63,"endColumn":4},{"ruleId":"874","severity":2,"message":"875","line":61,"column":5,"nodeType":"876","messageId":"877","endLine":61,"endColumn":37},{"ruleId":"874","severity":2,"message":"875","line":62,"column":5,"nodeType":"876","messageId":"877","endLine":62,"endColumn":54},{"ruleId":"897","severity":2,"message":"936","line":67,"column":1,"nodeType":"899","messageId":"900","endLine":67,"endColumn":113},{"ruleId":"905","severity":2,"message":"930","line":68,"column":3,"nodeType":"858","messageId":"923","endLine":68,"endColumn":9},{"ruleId":"874","severity":2,"message":"875","line":80,"column":7,"nodeType":"876","messageId":"877","endLine":80,"endColumn":59},{"ruleId":"905","severity":2,"message":"930","line":91,"column":3,"nodeType":"858","messageId":"923","endLine":91,"endColumn":9},{"ruleId":"874","severity":2,"message":"875","line":104,"column":7,"nodeType":"876","messageId":"877","endLine":104,"endColumn":59},{"ruleId":"874","severity":2,"message":"875","line":106,"column":7,"nodeType":"876","messageId":"877","endLine":106,"endColumn":44},{"ruleId":"897","severity":2,"message":"937","line":112,"column":1,"nodeType":"899","messageId":"900","endLine":112,"endColumn":115},{"ruleId":"905","severity":2,"message":"930","line":113,"column":3,"nodeType":"858","messageId":"923","endLine":113,"endColumn":9},{"ruleId":"905","severity":2,"message":"938","line":119,"column":9,"nodeType":"858","messageId":"907","endLine":119,"endColumn":13},{"ruleId":"897","severity":2,"message":"936","line":126,"column":1,"nodeType":"899","messageId":"900","endLine":126,"endColumn":113},{"ruleId":"905","severity":2,"message":"930","line":127,"column":3,"nodeType":"858","messageId":"923","endLine":127,"endColumn":9},{"ruleId":"901","severity":2,"message":"902","line":130,"column":36,"nodeType":"903","messageId":"904","endLine":130,"endColumn":39},{"ruleId":"874","severity":2,"message":"875","line":135,"column":5,"nodeType":"876","messageId":"877","endLine":135,"endColumn":82},{"ruleId":"901","severity":2,"message":"939","line":13,"column":10,"nodeType":"903","messageId":"904","endLine":13,"endColumn":13},{"ruleId":"940","severity":1,"message":"941","line":31,"column":18,"nodeType":"925","messageId":"942","endLine":31,"endColumn":27},{"ruleId":"863","severity":2,"message":"943","line":31,"column":18,"nodeType":"925","messageId":"889","endLine":31,"endColumn":26},{"ruleId":"874","severity":2,"message":"875","line":14,"column":3,"nodeType":"876","messageId":"877","endLine":14,"endColumn":44},{"ruleId":"874","severity":2,"message":"875","line":15,"column":3,"nodeType":"876","messageId":"877","endLine":15,"endColumn":48},{"ruleId":"848","severity":2,"message":"849","line":28,"column":3,"nodeType":"850","messageId":"851","endLine":34,"endColumn":4},{"ruleId":"848","severity":2,"message":"944","line":40,"column":3,"nodeType":"945","messageId":"851","endLine":42,"endColumn":4},{"ruleId":"946","severity":2,"message":"947","line":40,"column":3,"nodeType":"945","messageId":"948","endLine":42,"endColumn":4},{"ruleId":"905","severity":2,"message":"949","line":41,"column":5,"nodeType":"858","messageId":"907","endLine":41,"endColumn":8},{"ruleId":"905","severity":2,"message":"949","line":41,"column":73,"nodeType":"858","messageId":"907","endLine":41,"endColumn":76},{"ruleId":"950","severity":2,"message":"951","line":42,"column":46,"nodeType":"952","messageId":"953","endLine":42,"endColumn":47,"suggestions":"954"},{"ruleId":"950","severity":2,"message":"955","line":42,"column":48,"nodeType":"952","messageId":"953","endLine":42,"endColumn":49,"suggestions":"956"},{"ruleId":"950","severity":2,"message":"951","line":42,"column":96,"nodeType":"952","messageId":"953","endLine":42,"endColumn":97,"suggestions":"957"},{"ruleId":"950","severity":2,"message":"955","line":42,"column":98,"nodeType":"952","messageId":"953","endLine":42,"endColumn":99,"suggestions":"958"},{"ruleId":"950","severity":2,"message":"951","line":42,"column":129,"nodeType":"952","messageId":"953","endLine":42,"endColumn":130,"suggestions":"959"},{"ruleId":"950","severity":2,"message":"960","line":42,"column":133,"nodeType":"952","messageId":"953","endLine":42,"endColumn":134,"suggestions":"961"},{"ruleId":"950","severity":2,"message":"951","line":42,"column":152,"nodeType":"952","messageId":"953","endLine":42,"endColumn":153,"suggestions":"962"},{"ruleId":"856","severity":2,"message":"963","line":9,"column":11,"nodeType":"858","messageId":"859","endLine":9,"endColumn":22},{"ruleId":"905","severity":2,"message":"964","line":44,"column":7,"nodeType":"858","messageId":"907","endLine":44,"endColumn":11},{"ruleId":"882","severity":2,"message":"965","line":1,"column":15,"nodeType":"858","messageId":"884","endLine":1,"endColumn":27},{"ruleId":"885","severity":2,"message":"965","line":1,"column":15,"nodeType":"858","messageId":"884","endLine":1,"endColumn":27},{"ruleId":"882","severity":2,"message":"966","line":1,"column":29,"nodeType":"858","messageId":"884","endLine":1,"endColumn":42},{"ruleId":"885","severity":2,"message":"966","line":1,"column":29,"nodeType":"858","messageId":"884","endLine":1,"endColumn":42},{"ruleId":"901","severity":2,"message":"902","line":11,"column":25,"nodeType":"903","messageId":"904","endLine":11,"endColumn":28},{"ruleId":"897","severity":2,"message":"898","line":27,"column":1,"nodeType":"899","messageId":"900","endLine":27,"endColumn":119},{"ruleId":"867","severity":2,"message":"967","line":27,"column":22,"nodeType":"858","messageId":"869","endLine":27,"endColumn":55},{"ruleId":"897","severity":2,"message":"968","line":29,"column":1,"nodeType":"899","messageId":"900","endLine":29,"endColumn":140},{"ruleId":"867","severity":2,"message":"967","line":40,"column":5,"nodeType":"858","messageId":"869","endLine":40,"endColumn":17},{"ruleId":"867","severity":2,"message":"967","line":86,"column":19,"nodeType":"858","messageId":"869","endLine":86,"endColumn":31},{"ruleId":"863","severity":2,"message":"887","line":88,"column":20,"nodeType":"888","messageId":"889","endLine":88,"endColumn":22},{"ruleId":"867","severity":2,"message":"967","line":125,"column":19,"nodeType":"858","messageId":"869","endLine":125,"endColumn":31},{"ruleId":"897","severity":2,"message":"969","line":135,"column":1,"nodeType":"899","messageId":"900","endLine":135,"endColumn":114},{"ruleId":"867","severity":2,"message":"970","line":11,"column":25,"nodeType":"858","messageId":"869","endLine":11,"endColumn":35},{"ruleId":"897","severity":2,"message":"935","line":2,"column":1,"nodeType":"899","messageId":"900","endLine":2,"endColumn":105},{"ruleId":"882","severity":2,"message":"971","line":2,"column":76,"nodeType":"858","messageId":"884","endLine":2,"endColumn":87},{"ruleId":"885","severity":2,"message":"971","line":2,"column":76,"nodeType":"858","messageId":"884","endLine":2,"endColumn":87},{"ruleId":"882","severity":2,"message":"972","line":2,"column":89,"nodeType":"858","messageId":"884","endLine":2,"endColumn":104},{"ruleId":"885","severity":2,"message":"972","line":2,"column":89,"nodeType":"858","messageId":"884","endLine":2,"endColumn":104},{"ruleId":"867","severity":2,"message":"973","line":26,"column":26,"nodeType":"858","messageId":"869","endLine":26,"endColumn":44},{"ruleId":"867","severity":2,"message":"973","line":35,"column":26,"nodeType":"858","messageId":"869","endLine":35,"endColumn":44},{"ruleId":"867","severity":2,"message":"973","line":47,"column":28,"nodeType":"858","messageId":"869","endLine":47,"endColumn":46},{"ruleId":"890","severity":1,"message":"891","line":66,"column":7,"nodeType":"892","messageId":"893","endLine":66,"endColumn":20,"suggestions":"974"},{"ruleId":"867","severity":2,"message":"975","line":42,"column":22,"nodeType":"858","messageId":"869","endLine":42,"endColumn":28},{"ruleId":"882","severity":2,"message":"883","line":24,"column":22,"nodeType":"858","messageId":"884","endLine":24,"endColumn":32},{"ruleId":"885","severity":2,"message":"883","line":24,"column":22,"nodeType":"858","messageId":"884","endLine":24,"endColumn":32},{"ruleId":"890","severity":1,"message":"891","line":65,"column":5,"nodeType":"892","messageId":"893","endLine":65,"endColumn":16,"suggestions":"976"},{"ruleId":"882","severity":2,"message":"883","line":16,"column":22,"nodeType":"858","messageId":"884","endLine":16,"endColumn":32},{"ruleId":"885","severity":2,"message":"883","line":16,"column":22,"nodeType":"858","messageId":"884","endLine":16,"endColumn":32},{"ruleId":"901","severity":2,"message":"902","line":22,"column":42,"nodeType":"903","messageId":"904","endLine":22,"endColumn":45},{"ruleId":"901","severity":2,"message":"902","line":23,"column":47,"nodeType":"903","messageId":"904","endLine":23,"endColumn":50},{"ruleId":"905","severity":2,"message":"977","line":29,"column":5,"nodeType":"858","messageId":"907","endLine":29,"endColumn":7},{"ruleId":"901","severity":2,"message":"902","line":41,"column":37,"nodeType":"903","messageId":"904","endLine":41,"endColumn":40},{"ruleId":"978","severity":2,"message":"979","line":41,"column":52,"nodeType":"980","messageId":"893","endLine":41,"endColumn":74},{"ruleId":"905","severity":2,"message":"981","line":59,"column":5,"nodeType":"858","messageId":"923","endLine":59,"endColumn":13},{"ruleId":"901","severity":2,"message":"902","line":90,"column":45,"nodeType":"903","messageId":"904","endLine":90,"endColumn":48},{"ruleId":"897","severity":2,"message":"982","line":2,"column":1,"nodeType":"899","messageId":"900","endLine":2,"endColumn":127},{"ruleId":"882","severity":2,"message":"983","line":22,"column":21,"nodeType":"858","messageId":"884","endLine":22,"endColumn":33},{"ruleId":"885","severity":2,"message":"983","line":22,"column":21,"nodeType":"858","messageId":"884","endLine":22,"endColumn":33},{"ruleId":"901","severity":2,"message":"902","line":88,"column":18,"nodeType":"903","messageId":"904","endLine":88,"endColumn":22},{"ruleId":"890","severity":1,"message":"891","line":121,"column":5,"nodeType":"892","messageId":"893","endLine":121,"endColumn":16,"suggestions":"984"},{"ruleId":"897","severity":2,"message":"908","line":172,"column":1,"nodeType":"899","messageId":"900","endLine":172,"endColumn":103},{"ruleId":"882","severity":2,"message":"985","line":4,"column":9,"nodeType":"858","messageId":"884","endLine":4,"endColumn":27},{"ruleId":"885","severity":2,"message":"985","line":4,"column":9,"nodeType":"858","messageId":"884","endLine":4,"endColumn":27},{"ruleId":"882","severity":2,"message":"986","line":15,"column":9,"nodeType":"858","messageId":"884","endLine":15,"endColumn":22},{"ruleId":"885","severity":2,"message":"986","line":15,"column":9,"nodeType":"858","messageId":"884","endLine":15,"endColumn":22},{"ruleId":"890","severity":1,"message":"891","line":16,"column":5,"nodeType":"892","messageId":"893","endLine":16,"endColumn":16,"suggestions":"987"},{"ruleId":"988","severity":1,"message":"989","line":17,"column":5,"nodeType":"917","messageId":"893","endLine":17,"endColumn":32},{"ruleId":"856","severity":2,"message":"862","line":8,"column":11,"nodeType":"858","messageId":"859","endLine":8,"endColumn":20},{"ruleId":"856","severity":2,"message":"862","line":8,"column":11,"nodeType":"858","messageId":"859","endLine":8,"endColumn":20},{"ruleId":"990","severity":2,"message":"991","line":18,"column":1,"nodeType":"899","messageId":"992","endLine":18,"endColumn":3},{"ruleId":"990","severity":2,"message":"991","line":19,"column":1,"nodeType":"899","messageId":"992","endLine":19,"endColumn":4},{"ruleId":"990","severity":2,"message":"991","line":20,"column":1,"nodeType":"899","messageId":"992","endLine":20,"endColumn":5},{"ruleId":"990","severity":2,"message":"991","line":21,"column":1,"nodeType":"899","messageId":"992","endLine":21,"endColumn":6},{"ruleId":"990","severity":2,"message":"991","line":22,"column":1,"nodeType":"899","messageId":"992","endLine":22,"endColumn":8},{"ruleId":"990","severity":2,"message":"991","line":23,"column":1,"nodeType":"899","messageId":"992","endLine":23,"endColumn":9},{"ruleId":"990","severity":2,"message":"991","line":24,"column":1,"nodeType":"899","messageId":"992","endLine":24,"endColumn":10},{"ruleId":"990","severity":2,"message":"991","line":25,"column":1,"nodeType":"899","messageId":"992","endLine":25,"endColumn":10},{"ruleId":"990","severity":2,"message":"991","line":26,"column":1,"nodeType":"899","messageId":"992","endLine":26,"endColumn":10},{"ruleId":"990","severity":2,"message":"991","line":27,"column":1,"nodeType":"899","messageId":"992","endLine":27,"endColumn":10},{"ruleId":"990","severity":2,"message":"991","line":28,"column":1,"nodeType":"899","messageId":"992","endLine":28,"endColumn":10},{"ruleId":"990","severity":2,"message":"991","line":29,"column":1,"nodeType":"899","messageId":"992","endLine":29,"endColumn":9},{"ruleId":"990","severity":2,"message":"991","line":30,"column":1,"nodeType":"899","messageId":"992","endLine":30,"endColumn":8},{"ruleId":"990","severity":2,"message":"991","line":31,"column":1,"nodeType":"899","messageId":"992","endLine":31,"endColumn":6},{"ruleId":"990","severity":2,"message":"991","line":32,"column":1,"nodeType":"899","messageId":"992","endLine":32,"endColumn":5},{"ruleId":"990","severity":2,"message":"991","line":33,"column":1,"nodeType":"899","messageId":"992","endLine":33,"endColumn":4},{"ruleId":"990","severity":2,"message":"991","line":34,"column":1,"nodeType":"899","messageId":"992","endLine":34,"endColumn":4},{"ruleId":"990","severity":2,"message":"991","line":35,"column":1,"nodeType":"899","messageId":"992","endLine":35,"endColumn":5},{"ruleId":"990","severity":2,"message":"991","line":36,"column":1,"nodeType":"899","messageId":"992","endLine":36,"endColumn":6},{"ruleId":"990","severity":2,"message":"991","line":37,"column":1,"nodeType":"899","messageId":"992","endLine":37,"endColumn":5},{"ruleId":"990","severity":2,"message":"991","line":38,"column":1,"nodeType":"899","messageId":"992","endLine":38,"endColumn":5},{"ruleId":"990","severity":2,"message":"991","line":39,"column":1,"nodeType":"899","messageId":"992","endLine":39,"endColumn":6},{"ruleId":"990","severity":2,"message":"991","line":40,"column":1,"nodeType":"899","messageId":"992","endLine":40,"endColumn":5},{"ruleId":"990","severity":2,"message":"991","line":41,"column":1,"nodeType":"899","messageId":"992","endLine":41,"endColumn":5},{"ruleId":"990","severity":2,"message":"991","line":42,"column":1,"nodeType":"899","messageId":"992","endLine":42,"endColumn":6},{"ruleId":"990","severity":2,"message":"991","line":43,"column":1,"nodeType":"899","messageId":"992","endLine":43,"endColumn":5},{"ruleId":"990","severity":2,"message":"991","line":44,"column":1,"nodeType":"899","messageId":"992","endLine":44,"endColumn":4},{"ruleId":"990","severity":2,"message":"991","line":45,"column":1,"nodeType":"899","messageId":"992","endLine":45,"endColumn":4},{"ruleId":"990","severity":2,"message":"991","line":53,"column":1,"nodeType":"899","messageId":"992","endLine":53,"endColumn":3},{"ruleId":"874","severity":2,"message":"875","line":80,"column":9,"nodeType":"876","messageId":"877","endLine":80,"endColumn":59},{"ruleId":"993","severity":2,"message":"994","line":77,"column":21,"nodeType":"888","messageId":"995","endLine":77,"endColumn":54},{"ruleId":"905","severity":2,"message":"996","line":77,"column":32,"nodeType":"858","messageId":"907","endLine":77,"endColumn":38},{"ruleId":"993","severity":2,"message":"994","line":88,"column":21,"nodeType":"888","messageId":"995","endLine":88,"endColumn":57},{"ruleId":"905","severity":2,"message":"996","line":88,"column":34,"nodeType":"858","messageId":"907","endLine":88,"endColumn":40},{"ruleId":"890","severity":1,"message":"891","line":115,"column":7,"nodeType":"892","messageId":"893","endLine":115,"endColumn":18,"suggestions":"997"},{"ruleId":"890","severity":1,"message":"891","line":144,"column":9,"nodeType":"892","messageId":"893","endLine":144,"endColumn":20,"suggestions":"998"},{"ruleId":"890","severity":1,"message":"891","line":147,"column":9,"nodeType":"892","messageId":"893","endLine":147,"endColumn":20,"suggestions":"999"},{"ruleId":"897","severity":2,"message":"936","line":2,"column":1,"nodeType":"899","messageId":"900","endLine":2,"endColumn":113},{"ruleId":"856","severity":2,"message":"1000","line":27,"column":6,"nodeType":"858","messageId":"859","endLine":27,"endColumn":14},{"ruleId":"863","severity":2,"message":"887","line":39,"column":53,"nodeType":"888","messageId":"889","endLine":39,"endColumn":55},{"ruleId":"870","severity":2,"message":"871","line":40,"column":3,"nodeType":"872","messageId":"873","endLine":55,"endColumn":4},{"ruleId":"882","severity":2,"message":"1001","line":61,"column":3,"nodeType":"858","messageId":"884","endLine":61,"endColumn":8},{"ruleId":"885","severity":2,"message":"1001","line":61,"column":3,"nodeType":"858","messageId":"884","endLine":61,"endColumn":8},{"ruleId":"882","severity":2,"message":"1002","line":64,"column":3,"nodeType":"858","messageId":"884","endLine":64,"endColumn":8},{"ruleId":"885","severity":2,"message":"1002","line":64,"column":3,"nodeType":"858","messageId":"884","endLine":64,"endColumn":8},{"ruleId":"890","severity":1,"message":"891","line":123,"column":7,"nodeType":"892","messageId":"893","endLine":123,"endColumn":18,"suggestions":"1003"},{"ruleId":"905","severity":2,"message":"1004","line":35,"column":9,"nodeType":"858","messageId":"907","endLine":35,"endColumn":17},{"ruleId":"890","severity":1,"message":"891","line":22,"column":5,"nodeType":"892","messageId":"893","endLine":22,"endColumn":16,"suggestions":"1005"},"no-restricted-syntax","iterators/generators require regenerator-runtime, which is too heavyweight for this guide to allow them. Separately, loops should be avoided in favor of array iterations.","ForOfStatement","restrictedSyntax","no-nested-ternary","Do not nest ternary expressions.","ConditionalExpression","noNestedTernary","@typescript-eslint/naming-convention","Interface name `requestParams` must match one of the following formats: PascalCase","Identifier","doesNotMatchFormat","Parsing error: ESLint was configured to run on `/mock/data/table.ts` using `parserOptions.project`: /users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/tsconfig.json\nHowever, that TSConfig does not include this file. Either:\n- Change ESLint's list of included files to not include this file\n- Change that TSConfig to include this file\n- Create a new TSConfig that includes this file and include it in your parserOptions.project\nSee the typescript-eslint docs for more info: https://typescript-eslint.io/linting/troubleshooting#i-get-errors-telling-me-eslint-was-configured-to-run--however-that-tsconfig-does-not--none-of-those-tsconfigs-include-this-file","Parsing error: ESLint was configured to run on `/mock/data/user.ts` using `parserOptions.project`: /users/niyonggui/multiway/learn/2024/pnpm-monorepo-mui/apps/admin/tsconfig.json\nHowever, that TSConfig does not include this file. Either:\n- Change ESLint's list of included files to not include this file\n- Change that TSConfig to include this file\n- Create a new TSConfig that includes this file and include it in your parserOptions.project\nSee the typescript-eslint docs for more info: https://typescript-eslint.io/linting/troubleshooting#i-get-errors-telling-me-eslint-was-configured-to-run--however-that-tsconfig-does-not--none-of-those-tsconfigs-include-this-file","Interface name `propState` must match one of the following formats: PascalCase","consistent-return","Arrow function expected no return value.","ReturnStatement","unexpectedReturnValue","@typescript-eslint/no-shadow","'options' is already declared in the upper scope on line 9 column 3.","noShadow","default-case","Expected a default case.","SwitchStatement","missingDefaultCase","@typescript-eslint/no-unused-expressions","Expected an assignment or function call and instead saw an expression.","ExpressionStatement","unusedExpression","no-unsafe-optional-chaining","Unsafe usage of optional chaining. If it short-circuits with 'undefined' the evaluation will throw TypeError.","ChainExpression","unsafeOptionalChain","no-unused-vars","'props' is defined but never used. Allowed unused args must match /^_/u.","unusedVar","@typescript-eslint/no-unused-vars","'setMenuList' is already declared in the upper scope on line 11 column 10.","Expected to return a value at the end of arrow function.","ArrowFunctionExpression","missingReturn","no-console","Unexpected console statement.","MemberExpression","unexpected",["1006"],"Unsafe arithmetic operation on optional chaining. It can result in NaN.","unsafeArithmetic","max-len","This line has a length of 118. Maximum allowed is 100.","Program","max","no-plusplus","Unary operator '++' used.","UpdateExpression","unexpectedUnaryOp","no-param-reassign","Assignment to property of function parameter 'item'.","assignmentToFunctionParamProp","This line has a length of 102. Maximum allowed is 100.","Variable name `React_TREE_ORG_PLUGIN` must match one of the following formats: camelCase, PascalCase, UPPER_CASE","Assignment to property of function parameter 'state'.","no-restricted-globals","Unexpected use of 'location'.","defaultMessage","Assignment to property of function parameter 'config'.","prefer-promise-reject-errors","Expected the Promise rejection reason to be an Error.","CallExpression","rejectAnError","This line has a length of 131. Maximum allowed is 100.","This line has a length of 138. Maximum allowed is 100.","This line has a length of 134. Maximum allowed is 100.","Assignment to function parameter 'expires'.","assignmentToFunctionParam","Expected to return a value at the end of method 'remove'.","FunctionExpression","'key' is already declared in the upper scope on line 19 column 3.","Expected to return a value at the end of method 'get'.",["1007"],"Assignment to function parameter 'url'.","Assignment to function parameter 'config'.","no-continue","Unexpected use of continue statement.","ContinueStatement","This line has a length of 106. Maximum allowed is 100.","This line has a length of 104. Maximum allowed is 100.","This line has a length of 112. Maximum allowed is 100.","This line has a length of 114. Maximum allowed is 100.","Assignment to property of function parameter 'node'.","Unary operator '--' used.","func-names","Unexpected unnamed function.","unnamed","Expected to return a value at the end of function.","for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.","ForInStatement","guard-for-in","The body of a for-in should be wrapped in an if statement to filter unwanted properties from the prototype.","wrap","Assignment to property of function parameter 'src'.","no-useless-escape","Unnecessary escape character: \\+.","Literal","unnecessaryEscape",["1008","1009"],"Unnecessary escape character: \\$.",["1010","1011"],["1012","1013"],["1014","1015"],["1016","1017"],"Unnecessary escape character: \\/.",["1018","1019"],["1020","1021"],"Interface name `configState` must match one of the following formats: PascalCase","Assignment to property of function parameter 'file'.","'TransferItem' is defined but never used. Allowed unused vars must match /^_/u.","'TransferProps' is defined but never used. Allowed unused vars must match /^_/u.","'selectedKeys' is already declared in the upper scope on line 16 column 10.","This line has a length of 139. Maximum allowed is 100.","This line has a length of 113. Maximum allowed is 100.","'value' is already declared in the upper scope on line 9 column 10.","'SlateEditor' is defined but never used. Allowed unused vars must match /^_/u.","'SlateTransforms' is defined but never used. Allowed unused vars must match /^_/u.","'editor' is already declared in the upper scope on line 23 column 10.",["1022"],"'editor' is already declared in the upper scope on line 15 column 10.",["1023"],"Assignment to property of function parameter 'ws'.","no-bitwise","Unexpected use of '&'.","BinaryExpression","Assignment to function parameter 'fileName'.","This line has a length of 126. Maximum allowed is 100.","'setFormState' is assigned a value but never used. Allowed unused vars must match /^_/u.",["1024"],"'fields' is assigned a value but never used. Allowed unused vars must match /^_/u.","'handleConfirm' is assigned a value but never used. Allowed unused vars must match /^_/u.",["1025"],"no-alert","Unexpected alert.","no-tabs","Unexpected tab character.","unexpectedTab","no-return-assign","Arrow function should not return assignment.","arrowAssignment","Assignment to property of function parameter 'record'.",["1026"],["1027"],["1028"],"Type Alias name `theadKey` must match one of the following formats: PascalCase","'title' is defined but never used. Allowed unused args must match /^_/u.","'index' is defined but never used. Allowed unused args must match /^_/u.",["1029"],"Assignment to property of function parameter 'treeNode'.",["1030"],{"messageId":"1031","data":"1032","fix":"1033","desc":"1034"},{"messageId":"1031","data":"1035","fix":"1036","desc":"1037"},{"messageId":"1038","fix":"1039","desc":"1040"},{"messageId":"1041","fix":"1042","desc":"1043"},{"messageId":"1038","fix":"1044","desc":"1040"},{"messageId":"1041","fix":"1045","desc":"1043"},{"messageId":"1038","fix":"1046","desc":"1040"},{"messageId":"1041","fix":"1047","desc":"1043"},{"messageId":"1038","fix":"1048","desc":"1040"},{"messageId":"1041","fix":"1049","desc":"1043"},{"messageId":"1038","fix":"1050","desc":"1040"},{"messageId":"1041","fix":"1051","desc":"1043"},{"messageId":"1038","fix":"1052","desc":"1040"},{"messageId":"1041","fix":"1053","desc":"1043"},{"messageId":"1038","fix":"1054","desc":"1040"},{"messageId":"1041","fix":"1055","desc":"1043"},{"messageId":"1031","data":"1056","fix":"1057","desc":"1037"},{"messageId":"1031","data":"1058","fix":"1059","desc":"1034"},{"messageId":"1031","data":"1060","fix":"1061","desc":"1034"},{"messageId":"1031","data":"1062","fix":"1063","desc":"1034"},{"messageId":"1031","data":"1064","fix":"1065","desc":"1034"},{"messageId":"1031","data":"1066","fix":"1067","desc":"1034"},{"messageId":"1031","data":"1068","fix":"1069","desc":"1034"},{"messageId":"1031","data":"1070","fix":"1071","desc":"1034"},{"messageId":"1031","data":"1072","fix":"1073","desc":"1034"},"removeConsole",{"propertyName":"1074"},{"range":"1075","text":"1076"},"Remove the console.log().",{"propertyName":"1077"},{"range":"1078","text":"1076"},"Remove the console.error().","removeEscape",{"range":"1079","text":"1076"},"Remove the `\\`. This maintains the current functionality.","escapeBackslash",{"range":"1080","text":"1081"},"Replace the `\\` with `\\\\` to include the actual backslash character.",{"range":"1082","text":"1076"},{"range":"1083","text":"1081"},{"range":"1084","text":"1076"},{"range":"1085","text":"1081"},{"range":"1086","text":"1076"},{"range":"1087","text":"1081"},{"range":"1088","text":"1076"},{"range":"1089","text":"1081"},{"range":"1090","text":"1076"},{"range":"1091","text":"1081"},{"range":"1092","text":"1076"},{"range":"1093","text":"1081"},{"propertyName":"1077"},{"range":"1094","text":"1076"},{"propertyName":"1074"},{"range":"1095","text":"1076"},{"propertyName":"1074"},{"range":"1096","text":"1076"},{"propertyName":"1074"},{"range":"1097","text":"1076"},{"propertyName":"1074"},{"range":"1098","text":"1076"},{"propertyName":"1074"},{"range":"1099","text":"1076"},{"propertyName":"1074"},{"range":"1100","text":"1076"},{"propertyName":"1074"},{"range":"1101","text":"1076"},{"propertyName":"1074"},{"range":"1102","text":"1076"},"log",[2498,2513],"","error",[2005,2062],[1058,1059],[1058,1058],"\\",[1060,1061],[1060,1060],[1108,1109],[1108,1108],[1110,1111],[1110,1110],[1141,1142],[1141,1141],[1145,1146],[1145,1145],[1164,1165],[1164,1164],[2060,2081],[1731,1761],[3327,3359],[265,283],[2890,2919],[3604,3622],[3659,3681],[3350,3391],[491,521]] \ No newline at end of file diff --git a/apps/admin/src/components/AppLogo/src/AppLogo.tsx b/apps/admin/src/components/AppLogo/src/AppLogo.tsx index d685f34b..652f0940 100644 --- a/apps/admin/src/components/AppLogo/src/AppLogo.tsx +++ b/apps/admin/src/components/AppLogo/src/AppLogo.tsx @@ -1,15 +1,16 @@ -import { Space } from 'antd' -import classNames from 'classnames' -import { FC } from 'react' +import { Space } from 'antd'; +import classNames from 'classnames'; -import logoImg from '@/assets/images/logo.png' -import logoName from '@/assets/images/name_white.png' -import { useAppSelector } from '@/stores' +import logoImg from '@/assets/images/logo.png'; +import logoName from '@/assets/images/name_white.png'; +import { useAppSelector } from '@/stores'; -import styles from './app-logo.module.less' +import styles from './app-logo.module.less'; + +import type { FC } from 'react'; const AppLogo: FC = () => { - const getMenuFold = useAppSelector(state => state.app.appConfig?.menuSetting?.menuFold) + const getMenuFold = useAppSelector((state) => state.app.appConfig?.menuSetting?.menuFold); return (
@@ -18,7 +19,7 @@ const AppLogo: FC = () => { logo
- ) -} + ); +}; -export default AppLogo +export default AppLogo; diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index 48ba542b..e0102fba 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -1,5 +1,5 @@ import { Spin } from 'antd'; -import { LazyExoticComponent, ReactNode, Suspense } from 'react'; +import { type LazyExoticComponent, type ReactNode, Suspense } from 'react'; /** * @description 路由懒加载 @@ -7,21 +7,21 @@ import { LazyExoticComponent, ReactNode, Suspense } from 'react'; * @returns element */ const LazyLoad = (Component: LazyExoticComponent): ReactNode => ( - - } - > - - + + } + > + + ); export default LazyLoad; diff --git a/apps/admin/src/components/SvgIcon/index.tsx b/apps/admin/src/components/SvgIcon/index.tsx index 83a13550..eb225c6b 100644 --- a/apps/admin/src/components/SvgIcon/index.tsx +++ b/apps/admin/src/components/SvgIcon/index.tsx @@ -1,5 +1,6 @@ import styles from './index.module.less'; -import { SvgIconProp } from './types'; + +import type { SvgIconProp } from './types'; export default function SvgIcon({ name, diff --git a/apps/admin/src/components/Upload/src/UploadImage.tsx b/apps/admin/src/components/Upload/src/UploadImage.tsx index b73468aa..cbee7ebe 100644 --- a/apps/admin/src/components/Upload/src/UploadImage.tsx +++ b/apps/admin/src/components/Upload/src/UploadImage.tsx @@ -1,7 +1,7 @@ import { Button, message, Upload } from 'antd'; -import { FC } from 'react'; import type { UploadChangeParam } from 'antd/es/upload'; +import type { FC } from 'react'; interface propState { onSuccess: (data: any) => void diff --git a/apps/admin/src/layout/menu/index.tsx b/apps/admin/src/layout/menu/index.tsx index 0f445b48..66b92197 100644 --- a/apps/admin/src/layout/menu/index.tsx +++ b/apps/admin/src/layout/menu/index.tsx @@ -8,9 +8,9 @@ import SvgIcon from '@/components/SvgIcon'; import { getOpenKeys } from '@/utils/helper/menuHelper'; import { getAsyncMenus } from '@/router/menus'; -import { AppMenu } from '@/router/types'; import { setMenuList } from '@/stores/modules/menu'; +import type { AppMenu } from '@/router/types'; import type { MenuProps } from 'antd'; type MenuItem = Required['items'][number]; diff --git a/apps/admin/src/layout/tags/components/TagItem/index.tsx b/apps/admin/src/layout/tags/components/TagItem/index.tsx index 8ca447a7..64be6d77 100644 --- a/apps/admin/src/layout/tags/components/TagItem/index.tsx +++ b/apps/admin/src/layout/tags/components/TagItem/index.tsx @@ -1,9 +1,10 @@ import { Tag } from 'antd'; import classNames from 'classnames'; -import { FC } from 'react'; import styles from './index.module.less'; +import type { FC } from 'react'; + interface PropState { name: string fixed?: boolean diff --git a/apps/admin/src/layout/tags/index.tsx b/apps/admin/src/layout/tags/index.tsx index 0c04d333..22ee36f7 100644 --- a/apps/admin/src/layout/tags/index.tsx +++ b/apps/admin/src/layout/tags/index.tsx @@ -4,7 +4,8 @@ import { import { Button, Dropdown } from 'antd'; import classNames from 'classnames'; import { - FC, useEffect, useRef, useState, WheelEvent, + type FC, type WheelEvent, + useEffect, useRef, useState, } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; diff --git a/apps/admin/src/router/guard/guardRoute.tsx b/apps/admin/src/router/guard/guardRoute.tsx index 5f1d4341..3b19fdd7 100644 --- a/apps/admin/src/router/guard/guardRoute.tsx +++ b/apps/admin/src/router/guard/guardRoute.tsx @@ -1,4 +1,3 @@ -import { ReactNode } from 'react'; import { Navigate, useLocation } from 'react-router-dom'; import { getAuthCache } from '@/utils/auth'; @@ -6,6 +5,8 @@ import { getAuthCache } from '@/utils/auth'; import { TOKEN_KEY } from '@/enums/cacheEnum'; import { useAppSelector } from '@/stores'; +import type { ReactNode } from 'react'; + export const GuardRoute = ({ children }: { children: ReactNode }) => { const whiteList: string[] = ['/', '/home', '/login']; const { pathname } = useLocation(); diff --git a/apps/admin/src/router/index.tsx b/apps/admin/src/router/index.tsx index 4d3ee9c6..2b58e59d 100644 --- a/apps/admin/src/router/index.tsx +++ b/apps/admin/src/router/index.tsx @@ -8,7 +8,8 @@ import PageException from '@/views/exception'; import LoginPage from '@/views/login'; import { genFullPath } from './helpers'; -import { RouteObject } from './types'; + +import type { RouteObject } from './types'; const metaRoutes = import.meta.glob('./routes/*.tsx', { eager: true }) as Recordable; diff --git a/apps/admin/src/router/routes/compo.tsx b/apps/admin/src/router/routes/compo.tsx index aad2ea41..789918d4 100644 --- a/apps/admin/src/router/routes/compo.tsx +++ b/apps/admin/src/router/routes/compo.tsx @@ -3,7 +3,8 @@ import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // component module page const CompoRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/routes/excel.tsx index e70eeb8e..7b3be70a 100644 --- a/apps/admin/src/router/routes/excel.tsx +++ b/apps/admin/src/router/routes/excel.tsx @@ -3,7 +3,8 @@ import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // excel module page const ExcelRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/exception.tsx b/apps/admin/src/router/routes/exception.tsx index daf9c739..478f97e9 100644 --- a/apps/admin/src/router/routes/exception.tsx +++ b/apps/admin/src/router/routes/exception.tsx @@ -5,7 +5,8 @@ import { LazyLoad } from '@/components/LazyLoad'; import { ExceptionEnum } from '@/enums/exceptionEnum'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // exception module page const ExceptionRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/form.tsx b/apps/admin/src/router/routes/form.tsx index c6ac70de..43b486bb 100644 --- a/apps/admin/src/router/routes/form.tsx +++ b/apps/admin/src/router/routes/form.tsx @@ -3,7 +3,8 @@ import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // form module page const FormRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/graph-editor.tsx b/apps/admin/src/router/routes/graph-editor.tsx index 812789b7..3ade6dde 100644 --- a/apps/admin/src/router/routes/graph-editor.tsx +++ b/apps/admin/src/router/routes/graph-editor.tsx @@ -3,7 +3,8 @@ import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // graph-editor module page const GraphEditorRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index 25592497..48a78eb0 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -1,7 +1,8 @@ import Home from '@/views/home'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // Home route const HomeRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/routes/images.tsx index bb012939..0bf3cb57 100644 --- a/apps/admin/src/router/routes/images.tsx +++ b/apps/admin/src/router/routes/images.tsx @@ -3,7 +3,8 @@ import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // image module page const ImageRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/routes/table.tsx index b1111ea6..f191a7f5 100644 --- a/apps/admin/src/router/routes/table.tsx +++ b/apps/admin/src/router/routes/table.tsx @@ -3,7 +3,8 @@ import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // table module page const TableRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/routes/text-editor.tsx index 5c94480d..70683c1c 100644 --- a/apps/admin/src/router/routes/text-editor.tsx +++ b/apps/admin/src/router/routes/text-editor.tsx @@ -3,7 +3,8 @@ import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // text-editor module page const TextEditorRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/routes/tree.tsx index c75c35cd..e86ee037 100644 --- a/apps/admin/src/router/routes/tree.tsx +++ b/apps/admin/src/router/routes/tree.tsx @@ -3,7 +3,8 @@ import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // tree module page const TreeRoute: RouteObject = { diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/routes/video.tsx index 840deb4e..e51b1ae6 100644 --- a/apps/admin/src/router/routes/video.tsx +++ b/apps/admin/src/router/routes/video.tsx @@ -3,7 +3,8 @@ import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; -import { RouteObject } from '../types'; + +import type { RouteObject } from '../types'; // video module page const VideoRoute: RouteObject = { diff --git a/apps/admin/src/router/types.ts b/apps/admin/src/router/types.ts index 6b233bd4..9c3df2ad 100644 --- a/apps/admin/src/router/types.ts +++ b/apps/admin/src/router/types.ts @@ -1,5 +1,5 @@ -import { ReactNode } from 'react'; -import { LoaderFunction } from 'react-router-dom'; +import type { ReactNode } from 'react'; +import type { LoaderFunction } from 'react-router-dom'; export interface MetaProps { title: string diff --git a/apps/admin/src/stores/index.ts b/apps/admin/src/stores/index.ts index ab203bcb..99064634 100644 --- a/apps/admin/src/stores/index.ts +++ b/apps/admin/src/stores/index.ts @@ -1,5 +1,5 @@ -import { Action, configureStore, ThunkAction } from '@reduxjs/toolkit'; -import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'; +import { type Action, type ThunkAction, configureStore } from '@reduxjs/toolkit'; +import { type TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'; import { persistReducer, persistStore } from 'redux-persist'; import storage from 'redux-persist/lib/storage'; diff --git a/apps/admin/src/stores/modules/app.ts b/apps/admin/src/stores/modules/app.ts index 954db134..8c5c206d 100644 --- a/apps/admin/src/stores/modules/app.ts +++ b/apps/admin/src/stores/modules/app.ts @@ -5,7 +5,7 @@ import { Persistent } from '@/utils/cache/persistent'; import { APP_CONFIG_KEY } from '@/enums/cacheEnum'; -import { AppState } from '../types'; +import type { AppState } from '../types'; const initialState: AppState = { appMode: undefined, diff --git a/apps/admin/src/stores/modules/menu.ts b/apps/admin/src/stores/modules/menu.ts index 7a0674fb..496a5438 100644 --- a/apps/admin/src/stores/modules/menu.ts +++ b/apps/admin/src/stores/modules/menu.ts @@ -1,6 +1,6 @@ import { createSlice } from '@reduxjs/toolkit'; -import { MenuState } from '@/stores/types'; +import type { MenuState } from '@/stores/types'; const initialState: MenuState = { menuList: [], diff --git a/apps/admin/src/stores/modules/tags.ts b/apps/admin/src/stores/modules/tags.ts index 87b27209..6fd2ef0d 100644 --- a/apps/admin/src/stores/modules/tags.ts +++ b/apps/admin/src/stores/modules/tags.ts @@ -1,11 +1,9 @@ // import type { PayloadAction } from '@reduxjs/toolkit' import { createAsyncThunk, createSlice } from '@reduxjs/toolkit'; -import { TagsState } from '@/stores/types'; - -import { AppDispatch, RootState } from '..'; - +import type { AppDispatch, RootState } from '..'; import type { RouteObject } from '@/router/types'; +import type { TagsState } from '@/stores/types'; const initialState: TagsState = { visitedTags: [], diff --git a/apps/admin/src/stores/types.ts b/apps/admin/src/stores/types.ts index 989ca695..bc0f6e40 100644 --- a/apps/admin/src/stores/types.ts +++ b/apps/admin/src/stores/types.ts @@ -1,7 +1,6 @@ -import { AppModeEnum, ThemeEnum } from '@/enums/appEnum'; -import { RouteObject } from '@/router/types'; - -import { AppConfig } from '@/types/config'; +import type { AppModeEnum, ThemeEnum } from '@/enums/appEnum'; +import type { RouteObject } from '@/router/types'; +import type { AppConfig } from '@/types/config'; export interface UserInfo { userId: string | number diff --git a/apps/admin/src/types/config.ts b/apps/admin/src/types/config.ts index f5146ffd..d4e94bbd 100644 --- a/apps/admin/src/types/config.ts +++ b/apps/admin/src/types/config.ts @@ -1,6 +1,6 @@ -import { PageTransitionEnum, PermissionModeEnum, ThemeEnum } from '../enums/appEnum'; -import { CacheTypeEnum } from '../enums/cacheEnum'; -import { MenuFoldBtnEnum, MenuModeEnum, MenuTypeEnum } from '../enums/menuEnum'; +import type { PageTransitionEnum, PermissionModeEnum, ThemeEnum } from '../enums/appEnum'; +import type { CacheTypeEnum } from '../enums/cacheEnum'; +import type { MenuFoldBtnEnum, MenuModeEnum, MenuTypeEnum } from '../enums/menuEnum'; export interface AppConfig { // Theme color diff --git a/apps/admin/src/utils/auth.ts b/apps/admin/src/utils/auth.ts index 9ec27776..fc6b6b92 100644 --- a/apps/admin/src/utils/auth.ts +++ b/apps/admin/src/utils/auth.ts @@ -1,7 +1,7 @@ import { CacheTypeEnum, TOKEN_KEY } from '@/enums/cacheEnum'; import { appSetting } from '@/settings/appBaseSetting'; -import { BasicKeys, Persistent } from './cache/persistent'; +import { type BasicKeys, Persistent } from './cache/persistent'; const { permissionCacheType } = appSetting; const isLocal = permissionCacheType === CacheTypeEnum.LOCAL; diff --git a/apps/admin/src/utils/cache/index.ts b/apps/admin/src/utils/cache/index.ts index 3fa4c6ad..2b98ae44 100644 --- a/apps/admin/src/utils/cache/index.ts +++ b/apps/admin/src/utils/cache/index.ts @@ -1,6 +1,6 @@ import { DEFAULT_CACHE_TIME, enableStorageEncryption } from '@/settings/encryptionSetting'; -import { createStorage as create, CreateStorageParams } from './storageCache'; +import { type CreateStorageParams, createStorage as create } from './storageCache'; type Options = Partial; diff --git a/apps/admin/src/utils/cache/persistent.ts b/apps/admin/src/utils/cache/persistent.ts index b1aea07f..c7b143ff 100644 --- a/apps/admin/src/utils/cache/persistent.ts +++ b/apps/admin/src/utils/cache/persistent.ts @@ -1,20 +1,20 @@ import { createLocalStorage, createSessionStorage } from '@/utils/cache'; import { - APP_CONFIG_KEY, + type APP_CONFIG_KEY, + type APP_TAGS_KEY, + type TOKEN_KEY, + type USER_INFO_KEY, APP_LOCAL_CACHE_KEY, APP_SESSION_CACHE_KEY, - APP_TAGS_KEY, - TOKEN_KEY, - USER_INFO_KEY, } from '@/enums/cacheEnum'; import { DEFAULT_CACHE_TIME } from '@/settings/encryptionSetting'; import { Memory } from './memory'; import type { RouteObject } from '@/router/types'; -import { UserInfo } from '@/types'; -import { AppConfig } from '@/types/config'; +import type { UserInfo } from '@/types'; +import type { AppConfig } from '@/types/config'; interface BasicStore { [TOKEN_KEY]: string | number | null | undefined diff --git a/apps/admin/src/views/blank.tsx b/apps/admin/src/views/blank.tsx index 47464549..fa0e0fb5 100644 --- a/apps/admin/src/views/blank.tsx +++ b/apps/admin/src/views/blank.tsx @@ -1,4 +1,4 @@ -import { FC } from 'react'; +import type { FC } from 'react'; const BlankPage: FC = () => (
diff --git a/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx b/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx index 4d81f090..13d70b3d 100644 --- a/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx +++ b/apps/admin/src/views/editor/code-mirror/components/CodeInfo.tsx @@ -1,7 +1,7 @@ import { Form } from 'antd'; -import { FC } from 'react'; -import { InfoState } from '../types'; +import type { InfoState } from '../types'; +import type { FC } from 'react'; interface PropState { info: InfoState diff --git a/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx b/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx index 504c40f6..b107da24 100644 --- a/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx +++ b/apps/admin/src/views/editor/code-mirror/components/Toolbar.tsx @@ -1,7 +1,7 @@ import { Checkbox, Form, Select } from 'antd'; -import { FC } from 'react'; -import { ConfigState } from '../types'; +import type { ConfigState } from '../types'; +import type { FC } from 'react'; interface PropState { config: ConfigState diff --git a/apps/admin/src/views/editor/code-mirror/index.tsx b/apps/admin/src/views/editor/code-mirror/index.tsx index 6ab94bc4..2fd58d73 100644 --- a/apps/admin/src/views/editor/code-mirror/index.tsx +++ b/apps/admin/src/views/editor/code-mirror/index.tsx @@ -1,6 +1,6 @@ import Codemirror from '@uiw/react-codemirror'; import { Card } from 'antd'; -import { FC, useState } from 'react'; +import { type FC, useState } from 'react'; import { useImmer } from 'use-immer'; import { PageWrapper } from '@/components/Page'; @@ -9,7 +9,8 @@ import { CODEMIRROR_PLUGIN } from '@/settings/websiteSetting'; import CodeInfo from './components/CodeInfo'; import Toolbar from './components/Toolbar'; -import { ConfigState, InfoState } from './types'; + +import type { ConfigState, InfoState } from './types'; const CodeMirror: FC = () => { const [codeVal, setCodeVal] = useState('console.log(\'Hello, world!\')'); diff --git a/apps/admin/src/views/editor/markdown.tsx b/apps/admin/src/views/editor/markdown.tsx index f77fd2a4..9f889434 100644 --- a/apps/admin/src/views/editor/markdown.tsx +++ b/apps/admin/src/views/editor/markdown.tsx @@ -1,5 +1,5 @@ import MDEditor from '@uiw/react-md-editor'; -import { FC, useState } from 'react'; +import { type FC, useState } from 'react'; import { PageWrapper } from '@/components/Page'; diff --git a/apps/admin/src/views/editor/rich-text/components/Editor.tsx b/apps/admin/src/views/editor/rich-text/components/Editor.tsx index bcd1da4a..d2ccf0c1 100644 --- a/apps/admin/src/views/editor/rich-text/components/Editor.tsx +++ b/apps/admin/src/views/editor/rich-text/components/Editor.tsx @@ -1,5 +1,5 @@ import { - createEditor, IDomEditor, IEditorConfig, SlateDescendant, SlateEditor, SlateTransforms, + type IDomEditor, type IEditorConfig, type SlateDescendant, createEditor, SlateEditor, SlateTransforms, } from '@wangeditor/editor'; import React, { useEffect, useRef, useState } from 'react'; diff --git a/apps/admin/src/views/editor/rich-text/index.tsx b/apps/admin/src/views/editor/rich-text/index.tsx index 785a9b13..815e83da 100644 --- a/apps/admin/src/views/editor/rich-text/index.tsx +++ b/apps/admin/src/views/editor/rich-text/index.tsx @@ -1,5 +1,4 @@ -import { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor'; -import { FC, useEffect, useState } from 'react'; +import { type FC, useEffect, useState } from 'react'; import { PageWrapper } from '@/components/Page'; @@ -8,6 +7,8 @@ import { WANG_EDITOR_PLUGIN } from '@/settings/websiteSetting'; import Editor from './components/Editor'; import Toolbar from './components/Toolbar'; +import type { IDomEditor, IEditorConfig, IToolbarConfig } from '@wangeditor/editor'; + import '@wangeditor/editor/dist/css/style.css'; const RichTextEditor: FC = () => { diff --git a/apps/admin/src/views/excel/export-excel/index.tsx b/apps/admin/src/views/excel/export-excel/index.tsx index baaf5c12..29467d76 100644 --- a/apps/admin/src/views/excel/export-excel/index.tsx +++ b/apps/admin/src/views/excel/export-excel/index.tsx @@ -1,17 +1,18 @@ import { Button, Card, Form, Input, message, Radio, Select, Space, Table, } from 'antd'; -import { ColumnType } from 'antd/es/table'; import { useState } from 'react'; import { PageWrapper } from '@/components/Page'; import { XLSX_PLUGIN } from '@/settings/websiteSetting'; -import { DataToSheet } from '../types'; import { useExcel } from '../useExcel'; import { tableData } from './data'; +import type { DataToSheet } from '../types'; +import type { ColumnType } from 'antd/es/table'; + type FileType = 'xlsx' | 'csv' | 'txt'; interface FormState { @@ -48,11 +49,7 @@ const ExportExcel = (props: any) => { setTableSelectedKeys(selectedKeys); } - function handleTableSelect( - _record: object, - _selected: boolean, - selectedRows: object[], - ) { + function handleTableSelect(_record: object, _selected: boolean, selectedRows: object[]) { setTableSelectedRows(selectedRows); } @@ -85,7 +82,7 @@ const ExportExcel = (props: any) => { -
+ @@ -108,7 +105,9 @@ const ExportExcel = (props: any) => { /> - +
( diff --git a/apps/admin/src/views/home/components/ChartsCard.tsx b/apps/admin/src/views/home/components/ChartsCard.tsx index c5f68e35..fe1e0338 100644 --- a/apps/admin/src/views/home/components/ChartsCard.tsx +++ b/apps/admin/src/views/home/components/ChartsCard.tsx @@ -1,9 +1,9 @@ import { Card } from 'antd'; -import { FC } from 'react'; import { useECharts } from '@/hooks/web/useECharts'; import type { EChartsOption } from 'echarts'; +import type { FC } from 'react'; interface propState { loading: boolean diff --git a/apps/admin/src/views/home/components/CountUpCard.tsx b/apps/admin/src/views/home/components/CountUpCard.tsx index 633d162f..4aa44bb1 100644 --- a/apps/admin/src/views/home/components/CountUpCard.tsx +++ b/apps/admin/src/views/home/components/CountUpCard.tsx @@ -1,8 +1,9 @@ -import { Card } from 'antd'; -import { FC } from 'react'; -import CountUp from 'react-countup'; +import { Card } from 'antd' +import CountUp from 'react-countup' -import SvgIcon from '@/components/SvgIcon'; +import SvgIcon from '@/components/SvgIcon' + +import type { FC } from 'react' interface propState { loading: boolean @@ -12,42 +13,34 @@ interface propState { countNum: number } -const CountUpCard: FC = (props) => ( - -
-
= props => ( + +
+
+ +
+
+ - -
-
- -

{props.title}

-
+ /> +

{props.title}

-
-); +
+ +) -export default CountUpCard; +export default CountUpCard diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index 24ee0803..443427af 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -1,5 +1,5 @@ import { Col, Row, Space } from 'antd'; -import { FC, useState } from 'react'; +import { type FC, useState } from 'react'; import ChartsCard from './components/ChartsCard'; import CountUpCard from './components/CountUpCard'; diff --git a/apps/admin/src/views/image/image-cropper.tsx b/apps/admin/src/views/image/image-cropper.tsx index 796e6618..a689cf5c 100644 --- a/apps/admin/src/views/image/image-cropper.tsx +++ b/apps/admin/src/views/image/image-cropper.tsx @@ -2,7 +2,7 @@ import { Button, Card, Col, Row, Space, } from 'antd'; import React, { useRef, useState } from 'react'; -import Cropper, { ReactCropperElement } from 'react-cropper'; +import Cropper, { type ReactCropperElement } from 'react-cropper'; import { PageWrapper } from '@/components/Page'; import { UploadImage } from '@/components/Upload'; diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx index 6beca9ff..5fe70c5f 100644 --- a/apps/admin/src/views/login/index.tsx +++ b/apps/admin/src/views/login/index.tsx @@ -3,7 +3,7 @@ import { Button, Checkbox, Form, Input, message, } from 'antd'; import classNames from 'classnames'; -import { FC, useRef, useState } from 'react'; +import { type FC, useRef, useState } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; import './index.less'; diff --git a/apps/admin/src/views/table/table-basic/index.tsx b/apps/admin/src/views/table/table-basic/index.tsx index fa182f01..04f12258 100644 --- a/apps/admin/src/views/table/table-basic/index.tsx +++ b/apps/admin/src/views/table/table-basic/index.tsx @@ -1,16 +1,15 @@ import { ExclamationCircleOutlined } from '@ant-design/icons'; import { - Button, Card, Modal, Popover, Select, Space, Switch, Table, TableProps, Tag, + type TableProps, Button, Card, Modal, Popover, Select, Space, Switch, Table, Tag, } from 'antd'; -import { FC, useEffect, useState } from 'react'; +import { type FC, useEffect, useState } from 'react'; import { PageWrapper } from '@/components/Page'; import { getTableList } from '@/api'; import { TABLE_COMPO } from '@/settings/websiteSetting'; -import { APIResult, PageState, TableDataType } from './types'; - +import type { APIResult, PageState, TableDataType } from './types'; import type { ColumnsType } from 'antd/es/table'; const marriedOptions = [ diff --git a/apps/admin/src/views/table/table-edit-row/index.tsx b/apps/admin/src/views/table/table-edit-row/index.tsx index c22471ad..7a666d00 100644 --- a/apps/admin/src/views/table/table-edit-row/index.tsx +++ b/apps/admin/src/views/table/table-edit-row/index.tsx @@ -1,7 +1,6 @@ import { Button, Card, Checkbox, DatePicker, Form, Input, InputNumber, Popconfirm, Radio, Select, Space, Switch, Table, } from 'antd'; -import { ColumnType } from 'antd/es/table'; import dayjs from 'dayjs'; import React, { useState } from 'react'; @@ -9,7 +8,9 @@ import { PageWrapper } from '@/components/Page'; import { TABLE_EDIT_COMPO } from '@/settings/websiteSetting'; -import { DataItem, tableData } from './data'; +import { type DataItem, tableData } from './data'; + +import type { ColumnType } from 'antd/es/table'; type CellType = 'number' | 'text' | 'radio' | 'date' | 'select' | 'checkbox' | 'switch'; diff --git a/apps/admin/src/views/tree/org-tree/index.tsx b/apps/admin/src/views/tree/org-tree/index.tsx index 9b38c997..755982c3 100644 --- a/apps/admin/src/views/tree/org-tree/index.tsx +++ b/apps/admin/src/views/tree/org-tree/index.tsx @@ -1,7 +1,7 @@ import { Card, Form, Radio, Switch, } from 'antd'; -import { FC, useState } from 'react'; +import { type FC, useState } from 'react'; import OrgTree from 'react-org-tree'; import { PageWrapper } from '@/components/Page'; diff --git a/packages/config-eslint/index.js b/packages/config-eslint/index.js index 957ffbf5..8e6ed2c8 100644 --- a/packages/config-eslint/index.js +++ b/packages/config-eslint/index.js @@ -32,6 +32,77 @@ module.exports = { ], }, ], + "no-var": "error", + // 禁止在定义变量之前使用变量 + "no-use-before-define": "off", + // 声明后永远不会重新分配的变量需要 const 声明 + "prefer-const": "error", + // 禁止不规则空格 + "no-irregular-whitespace": "off", + // 禁止使用 debugger + "no-debugger": "off", + // 禁止未使用的变量 + "no-unused-vars": [ + "error", + { + argsIgnorePattern: "^_", + varsIgnorePattern: "^_", + }, + ], + /* + * TypeScript规则配置 + * 配置文档: https://typescript-eslint.nodejs.cn/rules/) + */ + // 根据参数、属性和变量的默认值或初始值推断其类型 + "@typescript-eslint/no-inferrable-types": "off", + // 禁止使用自定义 ts 模块和命名空间 + "@typescript-eslint/no-namespace": "off", + // 禁止使用 any 类型 + "@typescript-eslint/no-explicit-any": "off", + // 禁止使用特定类型 + "@typescript-eslint/ban-types": "off", + // 不允许对初始化为数字、字符串或布尔值的变量或参数进行显式返回类型声明 + "@typescript-eslint/explicit-function-return-type": "off", + // 不允许在 import 语句中使用 require 语句 + "@typescript-eslint/no-var-requires": "off", + // 禁止空函数 + "@typescript-eslint/no-empty-function": "off", + // 禁止在变量定义之前使用它们 + "@typescript-eslint/no-use-before-define": "off", + // 禁止 @ts- 注释代码 + "@typescript-eslint/ban-ts-comment": "off", + // 不允许使用后缀运算符的非空断言(!) + "@typescript-eslint/no-non-null-assertion": "off", + // 要求导出函数和类的公共类方法的显式返回和参数类型 + "@typescript-eslint/explicit-module-boundary-types": "off", + // 使用顶层 type 限定符进行导入 + "@typescript-eslint/no-import-type-side-effects": "error", + // 禁止定义未使用的变量 + "@typescript-eslint/no-unused-vars": [ + "error", + { + argsIgnorePattern: "^_", + varsIgnorePattern: "^_", + }, + ], + // 允许在导入上指定 type 关键字 + "@typescript-eslint/consistent-type-imports": [ + "error", + { + disallowTypeAnnotations: false, + fixStyle: "inline-type-imports", + }, + ], + // 允许枚举成员的值是多种不同类型的有效 js 表达式 + "@typescript-eslint/prefer-literal-enum-member": [ + "error", + { + allowBitwiseExpressions: true, + }, + ], + + "react-hooks/rules-of-hooks": "off", + "react-hooks/exhaustive-deps": "off", }, ignorePatterns: [ ".next", From 6e02325f328d79cceb0b0df0418acde5c55df232 Mon Sep 17 00:00:00 2001 From: G Date: Sat, 16 Dec 2023 14:30:45 +0800 Subject: [PATCH 005/134] =?UTF-8?q?fix:=20:bug:=20=E5=90=8C=E6=AD=A5esbuil?= =?UTF-8?q?d=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 1 + apps/admin/package.json | 7 +- apps/admin/postcss.config.js | 6 - apps/admin/postcss.config.mjs | 5 + apps/admin/vite.config.ts | 50 ++-- package.json | 7 +- pnpm-lock.yaml | 544 +++++++++------------------------- 7 files changed, 174 insertions(+), 446 deletions(-) delete mode 100644 apps/admin/postcss.config.js create mode 100644 apps/admin/postcss.config.mjs diff --git a/Readme.md b/Readme.md index d2d15f0d..a8367109 100644 --- a/Readme.md +++ b/Readme.md @@ -46,6 +46,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 "antd": "^5.x","vite": "^5.x","echarts-for-react": "^3.x","antd-style": "^3.x","@react-spring/web": "^9.x","zustand": "^4.x" ``` --> + - [ ] 框架设计 ## 注意点: diff --git a/apps/admin/package.json b/apps/admin/package.json index 0f45e6eb..3a360f5b 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -2,8 +2,8 @@ "name": "react-admin-design", "version": "0.0.0", "scripts": { - "serve": "vite", - "build": "rimraf dist && tsc && vite build", + "dev": "vite", + "build:pro": "rimraf dist && tsc && vite build", "preview": "vite preview", "clean:cache": "rimraf .eslintcache && rimraf node_modules && pnpm install", "lint": "eslint --cache --fix \"{src,mock,build}/**/*.{js,ts,tsx}\"", @@ -25,7 +25,7 @@ "dayjs": "^1.11.10", "echarts": "^5.4.3", "file-saver": "^2.0.5", - "gbeata": "^1.2.5", + "gbeata": "workspace:*", "immer": "^10.0.3", "lodash-es": "^4.17.21", "mockjs": "^1.1.0", @@ -62,7 +62,6 @@ "commitizen": "^4.3.0", "cssnano": "^6.0.1", "cz-git": "^1.7.1", - "esbuild": "^0.19.6", "eslint-config-gbeata-eslint": "workspace:^", "fast-glob": "^3.3.2", "less": "^4.2.0", diff --git a/apps/admin/postcss.config.js b/apps/admin/postcss.config.js deleted file mode 100644 index e87ced38..00000000 --- a/apps/admin/postcss.config.js +++ /dev/null @@ -1,6 +0,0 @@ -export default { - plugins: { - autoprefixer: {}, - ...(process.env.NODE_ENV === 'production' ? { cssnano: {} } : {}) - } -} diff --git a/apps/admin/postcss.config.mjs b/apps/admin/postcss.config.mjs new file mode 100644 index 00000000..c1de7042 --- /dev/null +++ b/apps/admin/postcss.config.mjs @@ -0,0 +1,5 @@ +export default { + plugins: { + autoprefixer: {}, + } +} diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index b5f144b4..52b71e4d 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -1,40 +1,42 @@ -import type { ConfigEnv, UserConfig } from 'vite' -import { loadEnv } from 'vite' -import react from '@vitejs/plugin-react' -import { createSvgIconsPlugin } from 'vite-plugin-svg-icons' -import { viteMockServe } from 'vite-plugin-mock' -import { wrapperEnv } from './build/utils' +import react from '@vitejs/plugin-react'; // 需要安装 @typings/node 插件 -import { resolve } from 'path' +import { resolve } from 'path'; +import { loadEnv } from 'vite'; +import { viteMockServe } from 'vite-plugin-mock'; +import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; + +import { wrapperEnv } from './build/utils'; + +import type { ConfigEnv, UserConfig } from 'vite'; /** @type {import('vite').UserConfig} */ export default ({ command, mode }: ConfigEnv): UserConfig => { - const root = process.cwd() - const isBuild = command === 'build' + const root = process.cwd(); + const isBuild = command === 'build'; - const env = loadEnv(mode, root) + const env = loadEnv(mode, root); // this function can be converted to different typings - const viteEnv: any = wrapperEnv(env) - const { VITE_PORT, VITE_DROP_CONSOLE } = viteEnv + const viteEnv: any = wrapperEnv(env); + const { VITE_PORT, VITE_DROP_CONSOLE } = viteEnv; return { base: isBuild ? '/react-admin-design/' : './', server: { // Listening on all local ips host: true, - port: VITE_PORT + port: VITE_PORT, }, plugins: [ react(), createSvgIconsPlugin({ iconDirs: [resolve(process.cwd(), 'src/assets/icons')], - symbolId: 'icon-[dir]-[name]' + symbolId: 'icon-[dir]-[name]', }), viteMockServe({ mockPath: 'mock', - ignore: /^_/ - }) + ignore: /^_/, + }), ], build: { @@ -45,16 +47,16 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { compress: { keep_infinity: true, // used to delete console and debugger in production environment - drop_console: VITE_DROP_CONSOLE - } + drop_console: VITE_DROP_CONSOLE, + }, }, - chunkSizeWarningLimit: 2000 + chunkSizeWarningLimit: 2000, }, resolve: { alias: { - '@': resolve(__dirname, './src') - } - } - } -} + '@': resolve(__dirname, './src'), + }, + }, + }; +}; diff --git a/package.json b/package.json index d1409e33..7e407d94 100644 --- a/package.json +++ b/package.json @@ -41,15 +41,16 @@ "commitizen": "^4.3.0", "cz-conventional-changelog": "^3.3.0", "cz-git": "^1.8.0", + "eslint": "^8.54.0", "husky": "^8.0.3", "prettier": "^3.1.0", "semantic-release": "^22.0.12", - "turbo": "^1.11.0", - "eslint": "^8.54.0" + "turbo": "^1.11.0" }, "dependencies": { "@ant-design/icons": "^5.2.6", "antd": "^5.12.1", - "antd-style": "^3.6.1" + "antd-style": "^3.6.1", + "esbuild": "0.18.20" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2fdb1a6c..e27b2fa1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: antd-style: specifier: ^3.6.1 version: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.45)(antd@5.12.2)(react-dom@18.2.0)(react@18.2.0) + esbuild: + specifier: 0.18.20 + version: registry.npmmirror.com/esbuild@0.18.20 devDependencies: '@changesets/cli': specifier: ^2.27.1 @@ -53,7 +56,7 @@ importers: version: registry.npmmirror.com/cz-git@1.8.0 eslint: specifier: ^8.54.0 - version: registry.npmmirror.com/eslint@8.55.0 + version: registry.npmmirror.com/eslint@8.56.0 husky: specifier: ^8.0.3 version: registry.npmmirror.com/husky@8.0.3 @@ -115,7 +118,7 @@ importers: specifier: ^2.0.5 version: registry.npmmirror.com/file-saver@2.0.5 gbeata: - specifier: ^1.2.5 + specifier: workspace:* version: link:../../packages/gbeata immer: specifier: ^10.0.3 @@ -143,7 +146,7 @@ importers: version: registry.npmmirror.com/react-org-tree@1.0.1 react-redux: specifier: ^8.1.3 - version: registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + version: registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) react-rnd: specifier: ^10.4.1 version: registry.npmmirror.com/react-rnd@10.4.1(react-dom@18.2.0)(react@18.2.0) @@ -198,7 +201,7 @@ importers: version: registry.npmmirror.com/@types/react@18.2.45 '@types/react-dom': specifier: ^18.2.15 - version: registry.npmmirror.com/@types/react-dom@18.2.17 + version: registry.npmmirror.com/@types/react-dom@18.2.18 '@types/sortablejs': specifier: ^1.15.5 version: registry.npmmirror.com/@types/sortablejs@1.15.7 @@ -220,9 +223,6 @@ importers: cz-git: specifier: ^1.7.1 version: registry.npmmirror.com/cz-git@1.8.0 - esbuild: - specifier: ^0.19.6 - version: registry.npmmirror.com/esbuild@0.19.9 eslint-config-gbeata-eslint: specifier: workspace:^ version: link:../../packages/config-eslint @@ -258,7 +258,7 @@ importers: version: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) vite-plugin-eslint: specifier: ^1.8.1 - version: registry.npmmirror.com/vite-plugin-eslint@1.8.1(eslint@8.55.0)(vite@4.5.0) + version: registry.npmmirror.com/vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@4.5.0) vite-plugin-mock: specifier: 2.9.8 version: registry.npmmirror.com/vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.0) @@ -270,19 +270,19 @@ importers: dependencies: '@typescript-eslint/eslint-plugin': specifier: ^5.47.1 - version: registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@5.3.3) + version: registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': specifier: ^5.47.1 - version: registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) + version: registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3) eslint-config-airbnb-base: specifier: ^15.0.0 - version: registry.npmmirror.com/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.55.0) + version: registry.npmmirror.com/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) eslint-config-airbnb-typescript: specifier: ^17.0.0 - version: registry.npmmirror.com/eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.29.1)(eslint@8.55.0) + version: registry.npmmirror.com/eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) eslint-plugin-simple-import-sort: specifier: ^8.0.0 - version: registry.npmmirror.com/eslint-plugin-simple-import-sort@8.0.0(eslint@8.55.0) + version: registry.npmmirror.com/eslint-plugin-simple-import-sort@8.0.0(eslint@8.56.0) prettier: specifier: ^3.1.1 version: registry.npmmirror.com/prettier@3.1.1 @@ -327,10 +327,10 @@ importers: version: registry.npmmirror.com/@types/react@18.2.45 '@types/react-dom': specifier: ^18.0.0 - version: registry.npmmirror.com/@types/react-dom@18.2.17 + version: registry.npmmirror.com/@types/react-dom@18.2.18 '@umijs/lint': specifier: ^4.0.0 - version: registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.55.0)(stylelint@14.16.1)(typescript@5.3.3) + version: registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.56.0)(stylelint@14.16.1)(typescript@5.3.3) babel-plugin-import: specifier: ^1.13.8 version: registry.npmmirror.com/babel-plugin-import@1.13.8 @@ -342,13 +342,13 @@ importers: version: registry.npmmirror.com/classnames@2.3.2 dumi: specifier: ^2.2.13 - version: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.55.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) + version: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) eslint: specifier: ^8.23.0 - version: registry.npmmirror.com/eslint@8.55.0 + version: registry.npmmirror.com/eslint@8.56.0 father: specifier: ^4.1.0 - version: registry.npmmirror.com/father@4.3.7(@types/node@20.5.1)(webpack@5.89.0) + version: registry.npmmirror.com/father@4.3.8(@types/node@20.5.1)(webpack@5.89.0) husky: specifier: ^8.0.1 version: registry.npmmirror.com/husky@8.0.3 @@ -535,7 +535,7 @@ packages: transitivePeerDependencies: - supports-color - registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.55.0): + registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.56.0): resolution: {integrity: sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz} id: registry.npmmirror.com/@babel/eslint-parser/7.22.15 name: '@babel/eslint-parser' @@ -547,7 +547,7 @@ packages: dependencies: '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 '@nicolo-ribaudo/eslint-scope-5-internals': registry.npmmirror.com/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1 - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@2.1.0 semver: registry.npmmirror.com/semver@6.3.1 @@ -1960,7 +1960,7 @@ packages: version: 7.23.2 engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.0 + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.1 registry.npmmirror.com/@babel/runtime@7.23.6: resolution: {integrity: sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.23.6.tgz} @@ -1968,7 +1968,7 @@ packages: version: 7.23.6 engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.0 + regenerator-runtime: registry.npmmirror.com/regenerator-runtime@0.14.1 registry.npmmirror.com/@babel/template@7.22.15: resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.22.15.tgz} @@ -2405,7 +2405,6 @@ packages: name: '@commitlint/config-validator' version: 18.4.3 engines: {node: '>=v18'} - requiresBuild: true dependencies: '@commitlint/types': registry.npmmirror.com/@commitlint/types@18.4.3 ajv: registry.npmmirror.com/ajv@8.12.0 @@ -2451,7 +2450,6 @@ packages: name: '@commitlint/execute-rule' version: 18.4.3 engines: {node: '>=v18'} - requiresBuild: true dev: true registry.npmmirror.com/@commitlint/format@17.8.1: @@ -2647,7 +2645,6 @@ packages: name: '@commitlint/resolve-extends' version: 18.4.3 engines: {node: '>=v18'} - requiresBuild: true dependencies: '@commitlint/config-validator': registry.npmmirror.com/@commitlint/config-validator@18.4.3 '@commitlint/types': registry.npmmirror.com/@commitlint/types@18.4.3 @@ -3058,17 +3055,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/android-arm64@0.19.9: - resolution: {integrity: sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz} - name: '@esbuild/android-arm64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/android-arm@0.17.19: resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz} name: '@esbuild/android-arm' @@ -3089,17 +3075,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/android-arm@0.19.9: - resolution: {integrity: sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.19.9.tgz} - name: '@esbuild/android-arm' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/android-x64@0.17.19: resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz} name: '@esbuild/android-x64' @@ -3120,17 +3095,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/android-x64@0.19.9: - resolution: {integrity: sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.19.9.tgz} - name: '@esbuild/android-x64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/darwin-arm64@0.17.19: resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz} name: '@esbuild/darwin-arm64' @@ -3151,17 +3115,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/darwin-arm64@0.19.9: - resolution: {integrity: sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz} - name: '@esbuild/darwin-arm64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/darwin-x64@0.17.19: resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz} name: '@esbuild/darwin-x64' @@ -3182,17 +3135,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/darwin-x64@0.19.9: - resolution: {integrity: sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz} - name: '@esbuild/darwin-x64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/freebsd-arm64@0.17.19: resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz} name: '@esbuild/freebsd-arm64' @@ -3213,17 +3155,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.9: - resolution: {integrity: sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz} - name: '@esbuild/freebsd-arm64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/freebsd-x64@0.17.19: resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz} name: '@esbuild/freebsd-x64' @@ -3244,17 +3175,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/freebsd-x64@0.19.9: - resolution: {integrity: sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz} - name: '@esbuild/freebsd-x64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-arm64@0.17.19: resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz} name: '@esbuild/linux-arm64' @@ -3275,17 +3195,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-arm64@0.19.9: - resolution: {integrity: sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz} - name: '@esbuild/linux-arm64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-arm@0.17.19: resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz} name: '@esbuild/linux-arm' @@ -3306,17 +3215,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-arm@0.19.9: - resolution: {integrity: sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz} - name: '@esbuild/linux-arm' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-ia32@0.17.19: resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz} name: '@esbuild/linux-ia32' @@ -3337,17 +3235,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-ia32@0.19.9: - resolution: {integrity: sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz} - name: '@esbuild/linux-ia32' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-loong64@0.14.54: resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz} name: '@esbuild/linux-loong64' @@ -3379,17 +3266,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-loong64@0.19.9: - resolution: {integrity: sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz} - name: '@esbuild/linux-loong64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-mips64el@0.17.19: resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz} name: '@esbuild/linux-mips64el' @@ -3410,17 +3286,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-mips64el@0.19.9: - resolution: {integrity: sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz} - name: '@esbuild/linux-mips64el' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-ppc64@0.17.19: resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz} name: '@esbuild/linux-ppc64' @@ -3441,17 +3306,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-ppc64@0.19.9: - resolution: {integrity: sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz} - name: '@esbuild/linux-ppc64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-riscv64@0.17.19: resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz} name: '@esbuild/linux-riscv64' @@ -3472,17 +3326,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-riscv64@0.19.9: - resolution: {integrity: sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz} - name: '@esbuild/linux-riscv64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-s390x@0.17.19: resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz} name: '@esbuild/linux-s390x' @@ -3503,17 +3346,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-s390x@0.19.9: - resolution: {integrity: sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz} - name: '@esbuild/linux-s390x' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-x64@0.17.19: resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz} name: '@esbuild/linux-x64' @@ -3534,17 +3366,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-x64@0.19.9: - resolution: {integrity: sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz} - name: '@esbuild/linux-x64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/netbsd-x64@0.17.19: resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz} name: '@esbuild/netbsd-x64' @@ -3565,17 +3386,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/netbsd-x64@0.19.9: - resolution: {integrity: sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz} - name: '@esbuild/netbsd-x64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/openbsd-x64@0.17.19: resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz} name: '@esbuild/openbsd-x64' @@ -3596,17 +3406,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/openbsd-x64@0.19.9: - resolution: {integrity: sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz} - name: '@esbuild/openbsd-x64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/sunos-x64@0.17.19: resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz} name: '@esbuild/sunos-x64' @@ -3627,17 +3426,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/sunos-x64@0.19.9: - resolution: {integrity: sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz} - name: '@esbuild/sunos-x64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/win32-arm64@0.17.19: resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz} name: '@esbuild/win32-arm64' @@ -3658,17 +3446,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/win32-arm64@0.19.9: - resolution: {integrity: sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz} - name: '@esbuild/win32-arm64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/win32-ia32@0.17.19: resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz} name: '@esbuild/win32-ia32' @@ -3689,17 +3466,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/win32-ia32@0.19.9: - resolution: {integrity: sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz} - name: '@esbuild/win32-ia32' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/win32-x64@0.17.19: resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz} name: '@esbuild/win32-x64' @@ -3720,18 +3486,7 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/win32-x64@0.19.9: - resolution: {integrity: sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz} - name: '@esbuild/win32-x64' - version: 0.19.9 - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.55.0): + registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz} id: registry.npmmirror.com/@eslint-community/eslint-utils/4.4.0 name: '@eslint-community/eslint-utils' @@ -3740,7 +3495,7 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys@3.4.3 registry.npmmirror.com/@eslint-community/regexpp@4.10.0: @@ -3767,10 +3522,10 @@ packages: transitivePeerDependencies: - supports-color - registry.npmmirror.com/@eslint/js@8.55.0: - resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint/js/-/js-8.55.0.tgz} + registry.npmmirror.com/@eslint/js@8.56.0: + resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@eslint/js/-/js-8.56.0.tgz} name: '@eslint/js' - version: 8.55.0 + version: 8.56.0 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} registry.npmmirror.com/@floating-ui/core@0.6.2: @@ -4161,7 +3916,7 @@ packages: peerDependencies: react: '>=16.3.0' dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 react: registry.npmmirror.com/react@18.1.0 react-is: registry.npmmirror.com/react-is@16.13.1 @@ -4175,7 +3930,7 @@ packages: peerDependencies: react: '>=16.3.0' dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 react: registry.npmmirror.com/react@18.2.0 react-is: registry.npmmirror.com/react-is@16.13.1 @@ -4615,7 +4370,7 @@ packages: dependencies: immer: registry.npmmirror.com/immer@10.0.3 react: registry.npmmirror.com/react@18.2.0 - react-redux: registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) + react-redux: registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1) redux: registry.npmmirror.com/redux@5.0.0 redux-thunk: registry.npmmirror.com/redux-thunk@3.1.0(redux@5.0.0) reselect: registry.npmmirror.com/reselect@5.0.1 @@ -5586,7 +5341,6 @@ packages: resolution: {integrity: sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/-/node-18.19.3.tgz} name: '@types/node' version: 18.19.3 - requiresBuild: true dependencies: undici-types: registry.npmmirror.com/undici-types@5.26.5 dev: true @@ -5641,10 +5395,10 @@ packages: dependencies: types-ramda: registry.npmmirror.com/types-ramda@0.29.6 - registry.npmmirror.com/@types/react-dom@18.2.17: - resolution: {integrity: sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.2.17.tgz} + registry.npmmirror.com/@types/react-dom@18.2.18: + resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.2.18.tgz} name: '@types/react-dom' - version: 18.2.17 + version: 18.2.18 dependencies: '@types/react': registry.npmmirror.com/@types/react@18.2.45 @@ -5732,7 +5486,7 @@ packages: dependencies: '@types/yargs-parser': registry.npmmirror.com/@types/yargs-parser@21.0.3 - registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@5.3.3): + registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz} id: registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.62.0 name: '@typescript-eslint/eslint-plugin' @@ -5747,12 +5501,12 @@ packages: optional: true dependencies: '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp@4.10.0 - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 - '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/type-utils': registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3) debug: registry.npmmirror.com/debug@4.3.4 - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 graphemer: registry.npmmirror.com/graphemer@1.4.0 ignore: registry.npmmirror.com/ignore@5.3.0 natural-compare-lite: registry.npmmirror.com/natural-compare-lite@1.4.0 @@ -5762,7 +5516,7 @@ packages: transitivePeerDependencies: - supports-color - registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3): + registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-5.62.0.tgz} id: registry.npmmirror.com/@typescript-eslint/parser/5.62.0 name: '@typescript-eslint/parser' @@ -5779,7 +5533,7 @@ packages: '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3) debug: registry.npmmirror.com/debug@4.3.4 - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 typescript: registry.npmmirror.com/typescript@5.3.3 transitivePeerDependencies: - supports-color @@ -5793,7 +5547,7 @@ packages: '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 '@typescript-eslint/visitor-keys': registry.npmmirror.com/@typescript-eslint/visitor-keys@5.62.0 - registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.55.0)(typescript@5.3.3): + registry.npmmirror.com/@typescript-eslint/type-utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz} id: registry.npmmirror.com/@typescript-eslint/type-utils/5.62.0 name: '@typescript-eslint/type-utils' @@ -5807,9 +5561,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3) - '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3) debug: registry.npmmirror.com/debug@4.3.4 - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 tsutils: registry.npmmirror.com/tsutils@3.21.0(typescript@5.3.3) typescript: registry.npmmirror.com/typescript@5.3.3 transitivePeerDependencies: @@ -5844,7 +5598,7 @@ packages: transitivePeerDependencies: - supports-color - registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.3.3): + registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-5.62.0.tgz} id: registry.npmmirror.com/@typescript-eslint/utils/5.62.0 name: '@typescript-eslint/utils' @@ -5853,13 +5607,13 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0) '@types/json-schema': registry.npmmirror.com/@types/json-schema@7.0.15 '@types/semver': registry.npmmirror.com/@types/semver@7.5.6 '@typescript-eslint/scope-manager': registry.npmmirror.com/@typescript-eslint/scope-manager@5.62.0 '@typescript-eslint/types': registry.npmmirror.com/@typescript-eslint/types@5.62.0 '@typescript-eslint/typescript-estree': registry.npmmirror.com/@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3) - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 eslint-scope: registry.npmmirror.com/eslint-scope@5.1.1 semver: registry.npmmirror.com/semver@7.5.4 transitivePeerDependencies: @@ -6273,24 +6027,24 @@ packages: name: '@umijs/history' version: 5.3.1 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 query-string: registry.npmmirror.com/query-string@6.14.1 - registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.55.0)(stylelint@14.16.1)(typescript@5.3.3): + registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.56.0)(stylelint@14.16.1)(typescript@5.3.3): resolution: {integrity: sha512-z7pSpZoAecTltLwBEiyyzZYY3wPlg7DA5U4llWJbkfz/U0TdKgeDAzH6cq1SpvuRBsLTO3aiD6+6DP0NDuU82g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/lint/-/lint-4.0.89.tgz} id: registry.npmmirror.com/@umijs/lint/4.0.89 name: '@umijs/lint' version: 4.0.89 dependencies: '@babel/core': registry.npmmirror.com/@babel/core@7.23.2 - '@babel/eslint-parser': registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.55.0) + '@babel/eslint-parser': registry.npmmirror.com/@babel/eslint-parser@7.22.15(@babel/core@7.23.2)(eslint@8.56.0) '@stylelint/postcss-css-in-js': registry.npmmirror.com/@stylelint/postcss-css-in-js@0.38.0(postcss-syntax@0.36.2)(postcss@8.4.32) - '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3) '@umijs/babel-preset-umi': registry.npmmirror.com/@umijs/babel-preset-umi@4.0.89 - eslint-plugin-jest: registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.55.0)(typescript@5.3.3) - eslint-plugin-react: registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.55.0) - eslint-plugin-react-hooks: registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.55.0) + eslint-plugin-jest: registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-react: registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.56.0) + eslint-plugin-react-hooks: registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.56.0) postcss: registry.npmmirror.com/postcss@8.4.32 postcss-syntax: registry.npmmirror.com/postcss-syntax@0.36.2(postcss@8.4.32) stylelint-config-standard: registry.npmmirror.com/stylelint-config-standard@25.0.0(stylelint@14.16.1) @@ -6424,7 +6178,7 @@ packages: react-refresh: registry.npmmirror.com/react-refresh@0.14.0 schema-utils: registry.npmmirror.com/schema-utils@3.3.0 source-map: registry.npmmirror.com/source-map@0.7.4 - webpack: registry.npmmirror.com/webpack@5.89.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.18.20) registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-GDnUHzWzndT52gA8FnsHUOvO6wl6rQfrc9Q5O/cmWXtt1xMMk8H9bwR0rMYWE66ToKPTusP87YwSOtlGRtIPWg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@umijs/renderer-react/-/renderer-react-4.0.89.tgz} @@ -8092,7 +7846,7 @@ packages: hasBin: true dependencies: caniuse-lite: registry.npmmirror.com/caniuse-lite@1.0.30001570 - electron-to-chromium: registry.npmmirror.com/electron-to-chromium@1.4.612 + electron-to-chromium: registry.npmmirror.com/electron-to-chromium@1.4.614 node-releases: registry.npmmirror.com/node-releases@2.0.14 update-browserslist-db: registry.npmmirror.com/update-browserslist-db@1.0.13(browserslist@4.22.2) @@ -8847,13 +8601,13 @@ packages: name: commander version: 11.0.0 engines: {node: '>=16'} + dev: true registry.npmmirror.com/commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-11.1.0.tgz} name: commander version: 11.1.0 engines: {node: '>=16'} - dev: true registry.npmmirror.com/commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz} @@ -9199,7 +8953,6 @@ packages: name: cosmiconfig-typescript-loader version: 5.0.0 engines: {node: '>=v16'} - requiresBuild: true peerDependencies: '@types/node': '*' cosmiconfig: '>=8.2' @@ -9431,7 +9184,7 @@ packages: postcss-modules-values: registry.npmmirror.com/postcss-modules-values@4.0.0(postcss@8.4.32) postcss-value-parser: registry.npmmirror.com/postcss-value-parser@4.2.0 semver: registry.npmmirror.com/semver@7.5.4 - webpack: registry.npmmirror.com/webpack@5.89.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.18.20) registry.npmmirror.com/css-prefers-color-scheme@6.0.3(postcss@8.4.32): resolution: {integrity: sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz} @@ -10243,7 +9996,7 @@ packages: chalk: registry.npmmirror.com/chalk@4.1.2 chroma-js: registry.npmmirror.com/chroma-js@2.4.2 copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 - dumi: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.55.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) + dumi: registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 lodash: registry.npmmirror.com/lodash@4.17.21 polished: registry.npmmirror.com/polished@4.2.2 @@ -10264,7 +10017,7 @@ packages: - moment dev: false - registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.55.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0): + registry.npmmirror.com/dumi@2.2.16(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-r2x/CY0fR8/YZOwEnG4JsLEpn8jOg94Qyd1u+7pRD9SCx7dF9It+GwkGbdNEsyenGsO/ZU9wD+Kz7KO+HU7/EA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dumi/-/dumi-2.2.16.tgz} id: registry.npmmirror.com/dumi/2.2.16 name: dumi @@ -10319,7 +10072,7 @@ packages: react: registry.npmmirror.com/react@18.2.0 react-copy-to-clipboard: registry.npmmirror.com/react-copy-to-clipboard@5.1.0(react@18.2.0) react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - react-error-boundary: registry.npmmirror.com/react-error-boundary@4.0.11(react@18.2.0) + react-error-boundary: registry.npmmirror.com/react-error-boundary@4.0.12(react@18.2.0) react-intl: registry.npmmirror.com/react-intl@6.5.5(react@18.2.0)(typescript@5.3.3) rehype-autolink-headings: registry.npmmirror.com/rehype-autolink-headings@6.1.1 rehype-remove-comments: registry.npmmirror.com/rehype-remove-comments@5.0.0 @@ -10331,7 +10084,7 @@ packages: remark-rehype: registry.npmmirror.com/remark-rehype@10.1.0 sass: registry.npmmirror.com/sass@1.69.5 sitemap: registry.npmmirror.com/sitemap@7.1.1 - umi: registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.55.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) + umi: registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0) unified: registry.npmmirror.com/unified@10.1.2 unist-util-visit: registry.npmmirror.com/unist-util-visit@4.1.2 unist-util-visit-parents: registry.npmmirror.com/unist-util-visit-parents@5.1.3 @@ -10430,10 +10183,10 @@ packages: version: 1.1.1 dev: true - registry.npmmirror.com/electron-to-chromium@1.4.612: - resolution: {integrity: sha512-dM8BMtXtlH237ecSMnYdYuCkib2QHq0kpWfUnavjdYsyr/6OsAwg5ZGUfnQ9KD1Ga4QgB2sqXlB2NT8zy2GnVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.612.tgz} + registry.npmmirror.com/electron-to-chromium@1.4.614: + resolution: {integrity: sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz} name: electron-to-chromium - version: 1.4.612 + version: 1.4.614 registry.npmmirror.com/elliptic@6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/elliptic/-/elliptic-6.5.4.tgz} @@ -11067,38 +10820,6 @@ packages: '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.18.20 '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.18.20 - registry.npmmirror.com/esbuild@0.19.9: - resolution: {integrity: sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.19.9.tgz} - name: esbuild - version: 0.19.9 - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm@0.19.9 - '@esbuild/android-arm64': registry.npmmirror.com/@esbuild/android-arm64@0.19.9 - '@esbuild/android-x64': registry.npmmirror.com/@esbuild/android-x64@0.19.9 - '@esbuild/darwin-arm64': registry.npmmirror.com/@esbuild/darwin-arm64@0.19.9 - '@esbuild/darwin-x64': registry.npmmirror.com/@esbuild/darwin-x64@0.19.9 - '@esbuild/freebsd-arm64': registry.npmmirror.com/@esbuild/freebsd-arm64@0.19.9 - '@esbuild/freebsd-x64': registry.npmmirror.com/@esbuild/freebsd-x64@0.19.9 - '@esbuild/linux-arm': registry.npmmirror.com/@esbuild/linux-arm@0.19.9 - '@esbuild/linux-arm64': registry.npmmirror.com/@esbuild/linux-arm64@0.19.9 - '@esbuild/linux-ia32': registry.npmmirror.com/@esbuild/linux-ia32@0.19.9 - '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.19.9 - '@esbuild/linux-mips64el': registry.npmmirror.com/@esbuild/linux-mips64el@0.19.9 - '@esbuild/linux-ppc64': registry.npmmirror.com/@esbuild/linux-ppc64@0.19.9 - '@esbuild/linux-riscv64': registry.npmmirror.com/@esbuild/linux-riscv64@0.19.9 - '@esbuild/linux-s390x': registry.npmmirror.com/@esbuild/linux-s390x@0.19.9 - '@esbuild/linux-x64': registry.npmmirror.com/@esbuild/linux-x64@0.19.9 - '@esbuild/netbsd-x64': registry.npmmirror.com/@esbuild/netbsd-x64@0.19.9 - '@esbuild/openbsd-x64': registry.npmmirror.com/@esbuild/openbsd-x64@0.19.9 - '@esbuild/sunos-x64': registry.npmmirror.com/@esbuild/sunos-x64@0.19.9 - '@esbuild/win32-arm64': registry.npmmirror.com/@esbuild/win32-arm64@0.19.9 - '@esbuild/win32-ia32': registry.npmmirror.com/@esbuild/win32-ia32@0.19.9 - '@esbuild/win32-x64': registry.npmmirror.com/@esbuild/win32-x64@0.19.9 - dev: true - registry.npmmirror.com/escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} name: escalade @@ -11129,7 +10850,7 @@ packages: version: 5.0.0 engines: {node: '>=12'} - registry.npmmirror.com/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.55.0): + registry.npmmirror.com/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0): resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz} id: registry.npmmirror.com/eslint-config-airbnb-base/15.0.0 name: eslint-config-airbnb-base @@ -11140,14 +10861,14 @@ packages: eslint-plugin-import: ^2.25.2 dependencies: confusing-browser-globals: registry.npmmirror.com/confusing-browser-globals@1.0.11 - eslint: registry.npmmirror.com/eslint@8.55.0 - eslint-plugin-import: registry.npmmirror.com/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.55.0) + eslint: registry.npmmirror.com/eslint@8.56.0 + eslint-plugin-import: registry.npmmirror.com/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.56.0) object.assign: registry.npmmirror.com/object.assign@4.1.5 object.entries: registry.npmmirror.com/object.entries@1.1.7 semver: registry.npmmirror.com/semver@6.3.1 dev: false - registry.npmmirror.com/eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.29.1)(eslint@8.55.0): + registry.npmmirror.com/eslint-config-airbnb-typescript@17.1.0(@typescript-eslint/eslint-plugin@5.62.0)(@typescript-eslint/parser@5.62.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): resolution: {integrity: sha512-GPxI5URre6dDpJ0CtcthSZVBAfI+Uw7un5OYNVxP2EYi3H81Jw701yFP7AU+/vCE7xBtFmjge7kfhhk4+RAiig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-config-airbnb-typescript/-/eslint-config-airbnb-typescript-17.1.0.tgz} id: registry.npmmirror.com/eslint-config-airbnb-typescript/17.1.0 name: eslint-config-airbnb-typescript @@ -11158,11 +10879,11 @@ packages: eslint: ^7.32.0 || ^8.2.0 eslint-plugin-import: ^2.25.3 dependencies: - '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) - eslint: registry.npmmirror.com/eslint@8.55.0 - eslint-config-airbnb-base: registry.npmmirror.com/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.55.0) - eslint-plugin-import: registry.npmmirror.com/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.55.0) + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: registry.npmmirror.com/eslint@8.56.0 + eslint-config-airbnb-base: registry.npmmirror.com/eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-plugin-import: registry.npmmirror.com/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.56.0) dev: false registry.npmmirror.com/eslint-import-resolver-node@0.3.9: @@ -11177,7 +10898,7 @@ packages: - supports-color dev: false - registry.npmmirror.com/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0): + registry.npmmirror.com/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz} id: registry.npmmirror.com/eslint-module-utils/2.8.0 name: eslint-module-utils @@ -11201,15 +10922,15 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3) debug: registry.npmmirror.com/debug@3.2.7 - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 eslint-import-resolver-node: registry.npmmirror.com/eslint-import-resolver-node@0.3.9 transitivePeerDependencies: - supports-color dev: false - registry.npmmirror.com/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.55.0): + registry.npmmirror.com/eslint-plugin-import@2.29.1(@typescript-eslint/parser@5.62.0)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz} id: registry.npmmirror.com/eslint-plugin-import/2.29.1 name: eslint-plugin-import @@ -11222,16 +10943,16 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.55.0)(typescript@5.3.3) + '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.3.3) array-includes: registry.npmmirror.com/array-includes@3.1.7 array.prototype.findlastindex: registry.npmmirror.com/array.prototype.findlastindex@1.2.3 array.prototype.flat: registry.npmmirror.com/array.prototype.flat@1.3.2 array.prototype.flatmap: registry.npmmirror.com/array.prototype.flatmap@1.3.2 debug: registry.npmmirror.com/debug@3.2.7 doctrine: registry.npmmirror.com/doctrine@2.1.0 - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 eslint-import-resolver-node: registry.npmmirror.com/eslint-import-resolver-node@0.3.9 - eslint-module-utils: registry.npmmirror.com/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.55.0) + eslint-module-utils: registry.npmmirror.com/eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) hasown: registry.npmmirror.com/hasown@2.0.0 is-core-module: registry.npmmirror.com/is-core-module@2.13.1 is-glob: registry.npmmirror.com/is-glob@4.0.3 @@ -11247,7 +10968,7 @@ packages: - supports-color dev: false - registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.55.0)(typescript@5.3.3): + registry.npmmirror.com/eslint-plugin-jest@27.2.3(@typescript-eslint/eslint-plugin@5.62.0)(eslint@8.56.0)(typescript@5.3.3): resolution: {integrity: sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz} id: registry.npmmirror.com/eslint-plugin-jest/27.2.3 name: eslint-plugin-jest @@ -11263,14 +10984,14 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.55.0)(typescript@5.3.3) - '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.55.0)(typescript@5.3.3) - eslint: registry.npmmirror.com/eslint@8.55.0 + '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': registry.npmmirror.com/@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3) + eslint: registry.npmmirror.com/eslint@8.56.0 transitivePeerDependencies: - supports-color - typescript - registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.55.0): + registry.npmmirror.com/eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz} id: registry.npmmirror.com/eslint-plugin-react-hooks/4.6.0 name: eslint-plugin-react-hooks @@ -11279,9 +11000,9 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 - registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.55.0): + registry.npmmirror.com/eslint-plugin-react@7.33.2(eslint@8.56.0): resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz} id: registry.npmmirror.com/eslint-plugin-react/7.33.2 name: eslint-plugin-react @@ -11295,7 +11016,7 @@ packages: array.prototype.tosorted: registry.npmmirror.com/array.prototype.tosorted@1.1.2 doctrine: registry.npmmirror.com/doctrine@2.1.0 es-iterator-helpers: registry.npmmirror.com/es-iterator-helpers@1.0.15 - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 estraverse: registry.npmmirror.com/estraverse@5.3.0 jsx-ast-utils: registry.npmmirror.com/jsx-ast-utils@3.3.5 minimatch: registry.npmmirror.com/minimatch@3.1.2 @@ -11308,7 +11029,7 @@ packages: semver: registry.npmmirror.com/semver@6.3.1 string.prototype.matchall: registry.npmmirror.com/string.prototype.matchall@4.0.10 - registry.npmmirror.com/eslint-plugin-simple-import-sort@8.0.0(eslint@8.55.0): + registry.npmmirror.com/eslint-plugin-simple-import-sort@8.0.0(eslint@8.56.0): resolution: {integrity: sha512-bXgJQ+lqhtQBCuWY/FUWdB27j4+lqcvXv5rUARkzbeWLwea+S5eBZEQrhnO+WgX3ZoJHVj0cn943iyXwByHHQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-8.0.0.tgz} id: registry.npmmirror.com/eslint-plugin-simple-import-sort/8.0.0 name: eslint-plugin-simple-import-sort @@ -11316,7 +11037,7 @@ packages: peerDependencies: eslint: '>=5.0.0' dependencies: - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 dev: false registry.npmmirror.com/eslint-scope@5.1.1: @@ -11349,17 +11070,17 @@ packages: version: 3.4.3 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - registry.npmmirror.com/eslint@8.55.0: - resolution: {integrity: sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.55.0.tgz} + registry.npmmirror.com/eslint@8.56.0: + resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint/-/eslint-8.56.0.tgz} name: eslint - version: 8.55.0 + version: 8.56.0 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.55.0) + '@eslint-community/eslint-utils': registry.npmmirror.com/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0) '@eslint-community/regexpp': registry.npmmirror.com/@eslint-community/regexpp@4.10.0 '@eslint/eslintrc': registry.npmmirror.com/@eslint/eslintrc@2.1.4 - '@eslint/js': registry.npmmirror.com/@eslint/js@8.55.0 + '@eslint/js': registry.npmmirror.com/@eslint/js@8.56.0 '@humanwhocodes/config-array': registry.npmmirror.com/@humanwhocodes/config-array@0.11.13 '@humanwhocodes/module-importer': registry.npmmirror.com/@humanwhocodes/module-importer@1.0.1 '@nodelib/fs.walk': registry.npmmirror.com/@nodelib/fs.walk@1.2.8 @@ -11750,11 +11471,11 @@ packages: dependencies: reusify: registry.npmmirror.com/reusify@1.0.4 - registry.npmmirror.com/father@4.3.7(@types/node@20.5.1)(webpack@5.89.0): - resolution: {integrity: sha512-Jr+mUYqvjrTfss9ZFxDB280FdUoj6IUVH12U5ocQKEISzPWewzpGrrassf7gi4ugmJNDP8I/Rzje8uZ90C4OpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/father/-/father-4.3.7.tgz} - id: registry.npmmirror.com/father/4.3.7 + registry.npmmirror.com/father@4.3.8(@types/node@20.5.1)(webpack@5.89.0): + resolution: {integrity: sha512-uaKzB/UVG3YLBoptvv118U0pCw4iXo4OHHVMCkBlx2vrchO9oVH+tU8DOt3IsnMCOmtQwKo5imKC112R9pRcmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/father/-/father-4.3.8.tgz} + id: registry.npmmirror.com/father/4.3.8 name: father - version: 4.3.7 + version: 4.3.8 hasBin: true dependencies: '@microsoft/api-extractor': registry.npmmirror.com/@microsoft/api-extractor@7.36.3(@types/node@20.5.1) @@ -12140,7 +11861,7 @@ packages: semver: registry.npmmirror.com/semver@7.5.4 tapable: registry.npmmirror.com/tapable@2.2.1 typescript: registry.npmmirror.com/typescript@5.0.4 - webpack: registry.npmmirror.com/webpack@5.89.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.18.20) dev: true registry.npmmirror.com/fork-ts-checker-webpack-plugin@8.0.0(typescript@5.3.3)(webpack@5.89.0): @@ -12166,7 +11887,7 @@ packages: semver: registry.npmmirror.com/semver@7.5.4 tapable: registry.npmmirror.com/tapable@2.2.1 typescript: registry.npmmirror.com/typescript@5.3.3 - webpack: registry.npmmirror.com/webpack@5.89.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.18.20) registry.npmmirror.com/form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz} @@ -12483,7 +12204,7 @@ packages: split2: registry.npmmirror.com/split2@1.0.0 stream-combiner2: registry.npmmirror.com/stream-combiner2@1.1.1 through2: registry.npmmirror.com/through2@2.0.5 - traverse: registry.npmmirror.com/traverse@0.6.6 + traverse: registry.npmmirror.com/traverse@0.6.7 dev: true registry.npmmirror.com/git-raw-commits@2.0.11: @@ -13142,7 +12863,7 @@ packages: name: history version: 5.3.0 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 registry.npmmirror.com/hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz} @@ -13290,7 +13011,7 @@ packages: lodash: registry.npmmirror.com/lodash@4.17.21 pretty-error: registry.npmmirror.com/pretty-error@4.0.0 tapable: registry.npmmirror.com/tapable@2.2.1 - webpack: registry.npmmirror.com/webpack@5.89.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.18.20) registry.npmmirror.com/html2sketch@1.0.2: resolution: {integrity: sha512-/P9NcVH9yBhrOkcnaFkAbWJifDO8Ii+CTIxy9gE6trSQvo2OH++TKQIP5MICEoWvgXpVhZ6botj7P63Krl1/gg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/html2sketch/-/html2sketch-1.0.2.tgz} @@ -13511,7 +13232,6 @@ packages: version: 0.5.5 engines: {node: '>=0.10.0'} hasBin: true - requiresBuild: true registry.npmmirror.com/image-size@0.8.3: resolution: {integrity: sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.8.3.tgz} @@ -14528,7 +14248,6 @@ packages: name: jiti version: 1.21.0 hasBin: true - requiresBuild: true dev: true registry.npmmirror.com/jju@1.4.0: @@ -16368,7 +16087,7 @@ packages: version: 1.1.0 hasBin: true dependencies: - commander: registry.npmmirror.com/commander@11.0.0 + commander: registry.npmmirror.com/commander@11.1.0 registry.npmmirror.com/move-concurrently@1.0.1: resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz} @@ -17586,7 +17305,6 @@ packages: name: pify version: 4.0.1 engines: {node: '>=6'} - requiresBuild: true registry.npmmirror.com/pino-abstract-transport@0.5.0: resolution: {integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz} @@ -19014,7 +18732,7 @@ packages: dependencies: loader-utils: registry.npmmirror.com/loader-utils@2.0.4 schema-utils: registry.npmmirror.com/schema-utils@3.3.0 - webpack: registry.npmmirror.com/webpack@5.89.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.18.20) registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-lkT9EEwOcYdjZ/jvhLoXGzprK1sijT3/Tp4BLxQQcHDZkkOzzwYQC9HgmKoJz0K7CukMfgvO9KqHeBdgE+pELw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-cascader/-/rc-cascader-3.20.0.tgz} @@ -19785,11 +19503,11 @@ packages: react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) dev: false - registry.npmmirror.com/react-error-boundary@4.0.11(react@18.2.0): - resolution: {integrity: sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-error-boundary/-/react-error-boundary-4.0.11.tgz} - id: registry.npmmirror.com/react-error-boundary/4.0.11 + registry.npmmirror.com/react-error-boundary@4.0.12(react@18.2.0): + resolution: {integrity: sha512-kJdxdEYlb7CPC1A0SeUY38cHpjuu6UkvzKiAmqmOFL21VRfMhOcWxTCBgLVCO0VEMh9JhFNcVaXlV4/BTpiwOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-error-boundary/-/react-error-boundary-4.0.12.tgz} + id: registry.npmmirror.com/react-error-boundary/4.0.12 name: react-error-boundary - version: 4.0.11 + version: 4.0.12 peerDependencies: react: '>=16.13.1' dependencies: @@ -19815,7 +19533,7 @@ packages: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 invariant: registry.npmmirror.com/invariant@2.2.4 prop-types: registry.npmmirror.com/prop-types@15.8.1 react: registry.npmmirror.com/react@18.1.0 @@ -19832,7 +19550,7 @@ packages: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 invariant: registry.npmmirror.com/invariant@2.2.4 prop-types: registry.npmmirror.com/prop-types@15.8.1 react: registry.npmmirror.com/react@18.2.0 @@ -19931,7 +19649,7 @@ packages: classnames: registry.npmmirror.com/classnames@2.3.2 dev: false - registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.17)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1): + registry.npmmirror.com/react-redux@8.1.3(@types/react-dom@18.2.18)(@types/react@18.2.45)(react-dom@18.2.0)(react@18.2.0)(redux@4.2.1): resolution: {integrity: sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-redux/-/react-redux-8.1.3.tgz} id: registry.npmmirror.com/react-redux/8.1.3 name: react-redux @@ -19958,7 +19676,7 @@ packages: '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 '@types/hoist-non-react-statics': registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5 '@types/react': registry.npmmirror.com/@types/react@18.2.45 - '@types/react-dom': registry.npmmirror.com/@types/react-dom@18.2.17 + '@types/react-dom': registry.npmmirror.com/@types/react-dom@18.2.18 '@types/use-sync-external-store': registry.npmmirror.com/@types/use-sync-external-store@0.0.3 hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 react: registry.npmmirror.com/react@18.2.0 @@ -20365,10 +20083,10 @@ packages: name: regenerator-runtime version: 0.13.11 - registry.npmmirror.com/regenerator-runtime@0.14.0: - resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz} + registry.npmmirror.com/regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz} name: regenerator-runtime - version: 0.14.0 + version: 0.14.1 registry.npmmirror.com/regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz} @@ -22298,7 +22016,7 @@ packages: posthtml-rename-id: registry.npmmirror.com/posthtml-rename-id@1.0.12 posthtml-svg-mode: registry.npmmirror.com/posthtml-svg-mode@1.0.3 query-string: registry.npmmirror.com/query-string@4.3.4 - traverse: registry.npmmirror.com/traverse@0.6.6 + traverse: registry.npmmirror.com/traverse@0.6.7 transitivePeerDependencies: - supports-color dev: true @@ -22485,7 +22203,7 @@ packages: engines: {node: '>=8'} dev: true - registry.npmmirror.com/terser-webpack-plugin@5.3.9(webpack@5.89.0): + registry.npmmirror.com/terser-webpack-plugin@5.3.9(esbuild@0.18.20)(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz} id: registry.npmmirror.com/terser-webpack-plugin/5.3.9 name: terser-webpack-plugin @@ -22505,11 +22223,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping@0.3.20 + esbuild: registry.npmmirror.com/esbuild@0.18.20 jest-worker: registry.npmmirror.com/jest-worker@27.5.1 schema-utils: registry.npmmirror.com/schema-utils@3.3.0 serialize-javascript: registry.npmmirror.com/serialize-javascript@6.0.1 terser: registry.npmmirror.com/terser@5.26.0 - webpack: registry.npmmirror.com/webpack@5.89.0 + webpack: registry.npmmirror.com/webpack@5.89.0(esbuild@0.18.20) registry.npmmirror.com/terser@5.26.0: resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser/-/terser-5.26.0.tgz} @@ -22718,6 +22437,12 @@ packages: version: 0.6.6 dev: true + registry.npmmirror.com/traverse@0.6.7: + resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/traverse/-/traverse-0.6.7.tgz} + name: traverse + version: 0.6.7 + dev: true + registry.npmmirror.com/trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trim-lines/-/trim-lines-3.0.1.tgz} name: trim-lines @@ -23112,7 +22837,7 @@ packages: dev: true optional: true - registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.55.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0): + registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-bC62ctJ3wnymADnhE5nU7IZz4+XQ3MPWwoVW150OJazyAqEioZdjIZEBgB9pVfQEM819xMc6+eslnyuCNOQV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/umi/-/umi-4.0.89.tgz} id: registry.npmmirror.com/umi/4.0.89 name: umi @@ -23124,7 +22849,7 @@ packages: '@umijs/bundler-utils': registry.npmmirror.com/@umijs/bundler-utils@4.0.89 '@umijs/bundler-webpack': registry.npmmirror.com/@umijs/bundler-webpack@4.0.89(typescript@5.3.3)(webpack@5.89.0) '@umijs/core': registry.npmmirror.com/@umijs/core@4.0.89 - '@umijs/lint': registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.55.0)(stylelint@14.16.1)(typescript@5.3.3) + '@umijs/lint': registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.56.0)(stylelint@14.16.1)(typescript@5.3.3) '@umijs/preset-umi': registry.npmmirror.com/@umijs/preset-umi@4.0.89(@types/node@20.5.1)(@types/react@18.2.45)(sass@1.69.5)(typescript@5.3.3)(webpack@5.89.0) '@umijs/renderer-react': registry.npmmirror.com/@umijs/renderer-react@4.0.89(react-dom@18.2.0)(react@18.2.0) '@umijs/server': registry.npmmirror.com/@umijs/server@4.0.89 @@ -23669,7 +23394,7 @@ packages: redux: registry.npmmirror.com/redux@4.2.1 dev: false - registry.npmmirror.com/vite-plugin-eslint@1.8.1(eslint@8.55.0)(vite@4.5.0): + registry.npmmirror.com/vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@4.5.0): resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-eslint/-/vite-plugin-eslint-1.8.1.tgz} id: registry.npmmirror.com/vite-plugin-eslint/1.8.1 name: vite-plugin-eslint @@ -23680,7 +23405,7 @@ packages: dependencies: '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@4.2.1 '@types/eslint': registry.npmmirror.com/@types/eslint@8.44.9 - eslint: registry.npmmirror.com/eslint@8.55.0 + eslint: registry.npmmirror.com/eslint@8.56.0 rollup: registry.npmmirror.com/rollup@2.79.1 vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) dev: true @@ -23867,8 +23592,9 @@ packages: version: 3.2.3 engines: {node: '>=10.13.0'} - registry.npmmirror.com/webpack@5.89.0: + registry.npmmirror.com/webpack@5.89.0(esbuild@0.18.20): resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/webpack/-/webpack-5.89.0.tgz} + id: registry.npmmirror.com/webpack/5.89.0 name: webpack version: 5.89.0 engines: {node: '>=10.13.0'} @@ -23900,7 +23626,7 @@ packages: neo-async: registry.npmmirror.com/neo-async@2.6.2 schema-utils: registry.npmmirror.com/schema-utils@3.3.0 tapable: registry.npmmirror.com/tapable@2.2.1 - terser-webpack-plugin: registry.npmmirror.com/terser-webpack-plugin@5.3.9(webpack@5.89.0) + terser-webpack-plugin: registry.npmmirror.com/terser-webpack-plugin@5.3.9(esbuild@0.18.20)(webpack@5.89.0) watchpack: registry.npmmirror.com/watchpack@2.4.0 webpack-sources: registry.npmmirror.com/webpack-sources@3.2.3 transitivePeerDependencies: From 83e53825434d1abd673e58570c098769858fff0c Mon Sep 17 00:00:00 2001 From: G Date: Sat, 16 Dec 2023 14:40:23 +0800 Subject: [PATCH 006/134] =?UTF-8?q?feat:=20:sparkles:=20less=20=E8=BD=AC?= =?UTF-8?q?=20antd-style=E5=86=99=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 6 ++ apps/admin/package.json | 1 + .../src/components/AppLogo/src/AppLogo.tsx | 11 ++- .../AppLogo/src/app-logo.module.style.ts | 28 +++++++ .../src/components/Page/src/PageWrapper.tsx | 20 ++--- .../components/Page/src/compo.module.style.ts | 26 ++++++ .../components/SvgIcon/index.module.style.ts | 13 +++ apps/admin/src/components/SvgIcon/index.tsx | 10 +-- apps/admin/src/design/antd.style.ts | 25 ++++++ apps/admin/src/design/index.style.ts | 80 +++++++++++++++++++ apps/admin/src/design/public.style.ts | 20 +++++ apps/admin/src/design/scroll-bar.style.ts | 32 ++++++++ apps/admin/src/design/variable/color.style.ts | 6 ++ apps/admin/src/design/variable/index.style.ts | 6 ++ .../src/layout/feature/index.module.style.ts | 16 ++++ apps/admin/src/layout/feature/index.tsx | 6 +- .../FoldTrigger/index.module.style.ts | 15 ++++ .../header/components/FoldTrigger/index.tsx | 2 +- apps/admin/src/layout/index.style.ts | 20 +++++ apps/admin/src/layout/index.tsx | 2 +- .../components/TagItem/index.module.style.ts | 41 ++++++++++ .../layout/tags/components/TagItem/index.tsx | 21 ++--- .../src/layout/tags/index.module.style.ts | 30 +++++++ apps/admin/src/layout/tags/index.tsx | 41 ++++++---- apps/admin/src/views/login/index.style.ts | 41 ++++++++++ apps/admin/src/views/login/index.tsx | 36 +++++---- pnpm-lock.yaml | 15 ++-- 27 files changed, 495 insertions(+), 75 deletions(-) create mode 100644 apps/admin/src/components/AppLogo/src/app-logo.module.style.ts create mode 100644 apps/admin/src/components/Page/src/compo.module.style.ts create mode 100644 apps/admin/src/components/SvgIcon/index.module.style.ts create mode 100644 apps/admin/src/design/antd.style.ts create mode 100644 apps/admin/src/design/index.style.ts create mode 100644 apps/admin/src/design/public.style.ts create mode 100644 apps/admin/src/design/scroll-bar.style.ts create mode 100644 apps/admin/src/design/variable/color.style.ts create mode 100644 apps/admin/src/design/variable/index.style.ts create mode 100644 apps/admin/src/layout/feature/index.module.style.ts create mode 100644 apps/admin/src/layout/header/components/FoldTrigger/index.module.style.ts create mode 100644 apps/admin/src/layout/index.style.ts create mode 100644 apps/admin/src/layout/tags/components/TagItem/index.module.style.ts create mode 100644 apps/admin/src/layout/tags/index.module.style.ts create mode 100644 apps/admin/src/views/login/index.style.ts diff --git a/Readme.md b/Readme.md index a8367109..f78932af 100644 --- a/Readme.md +++ b/Readme.md @@ -47,6 +47,12 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 ``` --> +## 分支管理 + +发布组件库分支: ```main``` + +后台管理模板分支: ```admin``` + - [ ] 框架设计 ## 注意点: diff --git a/apps/admin/package.json b/apps/admin/package.json index 3a360f5b..46cc5657 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -18,6 +18,7 @@ "@wangeditor/editor": "^5.1.23", "ahooks": "^3.7.8", "antd": "^5.11.2", + "antd-style": "^3.6.1", "axios": "^1.6.2", "classnames": "^2.3.2", "cropperjs": "^1.6.1", diff --git a/apps/admin/src/components/AppLogo/src/AppLogo.tsx b/apps/admin/src/components/AppLogo/src/AppLogo.tsx index 652f0940..02861498 100644 --- a/apps/admin/src/components/AppLogo/src/AppLogo.tsx +++ b/apps/admin/src/components/AppLogo/src/AppLogo.tsx @@ -5,18 +5,23 @@ import logoImg from '@/assets/images/logo.png'; import logoName from '@/assets/images/name_white.png'; import { useAppSelector } from '@/stores'; -import styles from './app-logo.module.less'; +import useStyles from './app-logo.module.style'; import type { FC } from 'react'; const AppLogo: FC = () => { + const { styles } = useStyles(); const getMenuFold = useAppSelector((state) => state.app.appConfig?.menuSetting?.menuFold); return (
- logo - logo + logo + logo
); diff --git a/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts b/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts new file mode 100644 index 00000000..6bbf04e9 --- /dev/null +++ b/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts @@ -0,0 +1,28 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + 'app-logo': { + display: 'flex', + alignItems: 'center', + height: '48px', + paddingLeft: '24px', + cursor: 'pointer', + transition: 'all 0.3s ease', + }, + 'logo-img': { + display: 'block', + width: '32px', + height: '32px', + }, + 'logo-name': { + display: 'block', + width: '120px', + height: '15px', + }, + hidden: { + display: 'none', + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/components/Page/src/PageWrapper.tsx b/apps/admin/src/components/Page/src/PageWrapper.tsx index da000980..dabfb6cb 100644 --- a/apps/admin/src/components/Page/src/PageWrapper.tsx +++ b/apps/admin/src/components/Page/src/PageWrapper.tsx @@ -7,14 +7,14 @@ import { openWindow } from '@/utils'; import compoStyle from './compo.module.less'; interface PluginProp { - name?: string - desc?: string - url?: string + name?: string; + desc?: string; + url?: string; } interface PageProp { - plugin: PluginProp - children: JSX.Element + plugin: PluginProp; + children: JSX.Element; } const PageWrapper = (props: PageProp) => { @@ -26,18 +26,18 @@ const PageWrapper = (props: PageProp) => {
- + {props.plugin?.name}

{props.plugin?.desc}

github源码: - +

-
- {props.children} -
+
{props.children}
); }; diff --git a/apps/admin/src/components/Page/src/compo.module.style.ts b/apps/admin/src/components/Page/src/compo.module.style.ts new file mode 100644 index 00000000..dfcfe7ae --- /dev/null +++ b/apps/admin/src/components/Page/src/compo.module.style.ts @@ -0,0 +1,26 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + 'page-header': { + width: '100%', + minHeight: '48px', + padding: '16px 24px', + marginBottom: '12px', + background: '#fff', + boxSizing: 'border-box', + '&-name': { + marginBottom: '4px', + fontSize: '16px', + fontWeight: '600', + svg: { + marginRight: '6px', + }, + }, + }, + 'page-content': { + minHeight: '420px', + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/components/SvgIcon/index.module.style.ts b/apps/admin/src/components/SvgIcon/index.module.style.ts new file mode 100644 index 00000000..4094e65b --- /dev/null +++ b/apps/admin/src/components/SvgIcon/index.module.style.ts @@ -0,0 +1,13 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + 'svg-icon': { + display: 'inline-block', + verticalAlign: '-0.15em', + fill: 'currentColor', + overflow: 'hidden', + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/components/SvgIcon/index.tsx b/apps/admin/src/components/SvgIcon/index.tsx index eb225c6b..5ca744ca 100644 --- a/apps/admin/src/components/SvgIcon/index.tsx +++ b/apps/admin/src/components/SvgIcon/index.tsx @@ -1,13 +1,9 @@ -import styles from './index.module.less'; +import useStyles from './index.module.style'; import type { SvgIconProp } from './types'; -export default function SvgIcon({ - name, - prefix = 'icon', - size = 16, - style, -} : SvgIconProp) { +export default function SvgIcon({ name, prefix = 'icon', size = 16, style }: SvgIconProp) { + const { styles } = useStyles(); const symbolId = `#${prefix}-${name}`; const iconStyle = { width: `${size}px`, diff --git a/apps/admin/src/design/antd.style.ts b/apps/admin/src/design/antd.style.ts new file mode 100644 index 00000000..a0a62610 --- /dev/null +++ b/apps/admin/src/design/antd.style.ts @@ -0,0 +1,25 @@ +import { createStyles } from "antd-style"; + +const useStyles = createStyles(({ token }) => { + return { + "ant-menu-dark": { + background: token["primary-dark-bg"], + ".ant-menu-sub": { background: token["submenu-dark-bg"] }, + }, + ".ant-menu-inline": { + "svg +span": { marginInlineStart: "4px" }, + }, + ".ant-layout-header": { + padding: "0", + }, + "sub-title": { + fontSize: "12px", + color: "rgba(0, 0, 0, .4)", + }, + ".ant-layout-sider": { + "&-dark": { background: token["primary-dark-bg"] }, + }, + }; +}); + +export default useStyles; diff --git a/apps/admin/src/design/index.style.ts b/apps/admin/src/design/index.style.ts new file mode 100644 index 00000000..2073da0b --- /dev/null +++ b/apps/admin/src/design/index.style.ts @@ -0,0 +1,80 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + '*': { + padding: '0', + margin: '0', + }, + 'ul,li': { + listStyle: 'none', + }, + p: { + margin: '0', + }, + 'a,a:focus,a:hover': { + cursor: 'pointer', + color: 'inherit', + outline: 'none', + textDecoration: 'none', + }, + html: { + height: '100%', + lineHeight: '1.15', + WebkitTextSizeAdjust: '100%', + boxSizing: 'border-box', + }, + 'color-weak': { + filter: 'invert(80%)', + }, + 'gray-mode': { + filter: 'progid:dximagetransform.microsoft.basicimage(grayscale=1)', + }, + body: { + height: '100%', + MozOsxFontSmoothing: 'grayscale', + WebkitFontSmoothing: 'antialiased', + textRendering: 'optimizeLegibility', + fontFamily: + 'Microsoft YaHei,Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Arial, sans-serif', + fontSize: '14px', + color: '#222', + }, + img: { + width: '100%', + height: '100%', + maxWidth: 'none', + borderStyle: 'none', + }, + pre: { + fontFamily: 'Consolas,Menlo,Courier,monospace', + }, + fr: { + float: 'right', + }, + fl: { + float: 'left', + }, + 'clear-fix': { + '&:before, &:after': { content: "''", display: 'table', clear: 'both' }, + }, + 'flex-center-v': { + display: 'flex', + alignItems: 'center', + }, + 'flex-center-h': { + display: 'flex', + justifyContent: 'center', + }, + 'flex-center': { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + }, + 'flex-between-h': { + display: 'flex', + justifyContent: 'space-between', + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/design/public.style.ts b/apps/admin/src/design/public.style.ts new file mode 100644 index 00000000..63d25884 --- /dev/null +++ b/apps/admin/src/design/public.style.ts @@ -0,0 +1,20 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + 'span.icon-btn': { + display: 'flex', + alignItems: 'center', + cursor: 'pointer', + marginLeft: '10px', + }, + '.ant-upload-drag': { + height: 'auto', + }, + 'list-upload': { + '.ant-upload': { width: '100%' }, + '.ant-btn': { display: 'block', margin: '0 auto 8px' }, + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/design/scroll-bar.style.ts b/apps/admin/src/design/scroll-bar.style.ts new file mode 100644 index 00000000..42ac8668 --- /dev/null +++ b/apps/admin/src/design/scroll-bar.style.ts @@ -0,0 +1,32 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + '&::-webkit-scrollbar-track-piece': { + backgroundColor: 'rgba(0, 0, 0, 0)', + borderLeft: '1px solid rgba(0, 0, 0, 0)', + }, + '&::-webkit-scrollbar': { + width: '6px', + height: '6px', + WebkitBorderRadius: '3px', + MozBorderRadius: '3px', + borderRadius: '3px', + }, + '&::-webkit-scrollbar-thumb': { + backgroundColor: 'rgba(0, 0, 0, 0.2)', + backgroundClip: 'padding-box', + WebkitBorderRadius: '3px', + MozBorderRadius: '3px', + borderRadius: '3px', + minHeight: '28px', + }, + '&::-webkit-scrollbar-thumb:hover': { + backgroundColor: 'rgba(0, 0, 0, 0.3)', + WebkitBorderRadius: '3px', + MozBorderRadius: '3px', + borderRadius: '3px', + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/design/variable/color.style.ts b/apps/admin/src/design/variable/color.style.ts new file mode 100644 index 00000000..0ad5e64a --- /dev/null +++ b/apps/admin/src/design/variable/color.style.ts @@ -0,0 +1,6 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return {}; +}); +export default useStyles; diff --git a/apps/admin/src/design/variable/index.style.ts b/apps/admin/src/design/variable/index.style.ts new file mode 100644 index 00000000..0ad5e64a --- /dev/null +++ b/apps/admin/src/design/variable/index.style.ts @@ -0,0 +1,6 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return {}; +}); +export default useStyles; diff --git a/apps/admin/src/layout/feature/index.module.style.ts b/apps/admin/src/layout/feature/index.module.style.ts new file mode 100644 index 00000000..7c141fc3 --- /dev/null +++ b/apps/admin/src/layout/feature/index.module.style.ts @@ -0,0 +1,16 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + layout_feature: { + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + minWidth: '210px', + height: '48px', + '&-main': { display: 'flex', justifyContent: 'right', minWidth: '156px' }, + '&-divider': { height: '50%', margin: '0', borderColor: 'rgba(0, 0, 0, .3)' }, + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/layout/feature/index.tsx b/apps/admin/src/layout/feature/index.tsx index b4cd8c2c..0e8c3c03 100644 --- a/apps/admin/src/layout/feature/index.tsx +++ b/apps/admin/src/layout/feature/index.tsx @@ -1,8 +1,6 @@ import { Divider } from 'antd'; -import { - DocLink, FullScreen, GithubLink, UserDropdown, -} from './components'; +import { DocLink, FullScreen, GithubLink, UserDropdown } from './components'; import moduleStyle from './index.module.less'; export default function LayoutFeature() { @@ -17,7 +15,7 @@ export default function LayoutFeature() {
- + ); diff --git a/apps/admin/src/layout/header/components/FoldTrigger/index.module.style.ts b/apps/admin/src/layout/header/components/FoldTrigger/index.module.style.ts new file mode 100644 index 00000000..3b0f3a53 --- /dev/null +++ b/apps/admin/src/layout/header/components/FoldTrigger/index.module.style.ts @@ -0,0 +1,15 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + 'compo_fold-trigger': { + display: 'flex', + alignItems: 'center', + cursor: 'pointer', + }, + unfold: { + svg: { transform: 'scaleX(-1)', transition: 'transform 0.2s' }, + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/layout/header/components/FoldTrigger/index.tsx b/apps/admin/src/layout/header/components/FoldTrigger/index.tsx index 808d3554..b01b0e8f 100644 --- a/apps/admin/src/layout/header/components/FoldTrigger/index.tsx +++ b/apps/admin/src/layout/header/components/FoldTrigger/index.tsx @@ -20,7 +20,7 @@ export default function FoldTrigger() { className={classNames(style['compo_fold-trigger'], { [style.unfold]: !getMenuFold })} onClick={toggledMenuFold} > - + ); } diff --git a/apps/admin/src/layout/index.style.ts b/apps/admin/src/layout/index.style.ts new file mode 100644 index 00000000..57d0de9e --- /dev/null +++ b/apps/admin/src/layout/index.style.ts @@ -0,0 +1,20 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + layout_wrapper: { + display: 'flex', + width: '100%', + height: '100vh', + overflowX: 'hidden', + '.ant-layout-content': { + height: 'calc(100vh - 48px)', + boxSizing: 'border-box', + flex: '1', + padding: '12px', + overflowX: 'hidden', + }, + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index 2d67ebd1..5f40af4d 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -19,7 +19,7 @@ export const BasicLayout = (props: any) => { const getMenuFold = useAppSelector((state) => state.app.appConfig?.menuSetting?.menuFold); return ( - + diff --git a/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts b/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts new file mode 100644 index 00000000..698cb997 --- /dev/null +++ b/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts @@ -0,0 +1,41 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + 'compo_tag-item': { + display: 'inline-block', + verticalAlign: 'top', + height: '24px', + margin: '0 2px', + padding: '0 8px', + borderRadius: '3px', + lineHeight: '24px', + color: '#fff', + background: '#fff', + overflow: 'hidden', + cursor: 'pointer', + '&__dot': { + display: 'inline-block', + verticalAlign: 'baseline', + width: '8px', + height: '8px', + marginRight: '6px', + borderRadius: '50%', + background: '#dcdee0', + }, + '&__name': { fontSize: '12px' }, + }, + verticalAlign: 'baseline', + svg: { + width: '8px', + height: '8px', + }, + active: { + border: 'none', + color: '#fff', + background: '#1890ff', + '& .compo_tag-item__dot': { background: '#fff' }, + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/layout/tags/components/TagItem/index.tsx b/apps/admin/src/layout/tags/components/TagItem/index.tsx index 64be6d77..d231b900 100644 --- a/apps/admin/src/layout/tags/components/TagItem/index.tsx +++ b/apps/admin/src/layout/tags/components/TagItem/index.tsx @@ -1,21 +1,21 @@ import { Tag } from 'antd'; import classNames from 'classnames'; -import styles from './index.module.less'; +import useStyles from './index.module.style'; import type { FC } from 'react'; interface PropState { - name: string - fixed?: boolean - active?: boolean - closeTag: () => void - onClick: () => void + name: string; + fixed?: boolean; + active?: boolean; + closeTag: () => void; + onClick: () => void; } -const TagItem: FC = ({ - name, fixed, active, closeTag, onClick, -}) => ( +const TagItem: FC = ({ name, fixed, active, closeTag, onClick }) => { + const { styles } = useStyles(); + return ( = ({ {name} -); + ); +}; export default TagItem; diff --git a/apps/admin/src/layout/tags/index.module.style.ts b/apps/admin/src/layout/tags/index.module.style.ts new file mode 100644 index 00000000..3c934d63 --- /dev/null +++ b/apps/admin/src/layout/tags/index.module.style.ts @@ -0,0 +1,30 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => { + return { + layout_tags: { + zIndex: '299', + display: 'flex', + justifyContent: 'space-between', + height: '32px', + padding: '4px 12px', + lineHeight: '32px', + '&__main': { + position: 'relative', + width: 'calc(100% - 116px)', + height: '24px', + overflow: 'hidden', + '&-body': { + position: 'absolute', + height: '100%', + padding: '0 2px', + overflow: 'visible', + whiteSpace: 'nowrap', + transition: 'left .5s ease', + }, + }, + '&__btn-space': { marginLeft: '4px' }, + }, + }; +}); +export default useStyles; diff --git a/apps/admin/src/layout/tags/index.tsx b/apps/admin/src/layout/tags/index.tsx index 22ee36f7..a47a34f1 100644 --- a/apps/admin/src/layout/tags/index.tsx +++ b/apps/admin/src/layout/tags/index.tsx @@ -1,12 +1,7 @@ -import { - CloseOutlined, LeftOutlined, RedoOutlined, RightOutlined, -} from '@ant-design/icons'; +import { CloseOutlined, LeftOutlined, RedoOutlined, RightOutlined } from '@ant-design/icons'; import { Button, Dropdown } from 'antd'; import classNames from 'classnames'; -import { - type FC, type WheelEvent, - useEffect, useRef, useState, -} from 'react'; +import { type FC, type WheelEvent, useEffect, useRef, useState } from 'react'; import { useLocation, useNavigate } from 'react-router-dom'; import { searchRoute } from '@/utils'; @@ -14,16 +9,20 @@ import { searchRoute } from '@/utils'; import { basicRoutes } from '@/router'; import { useAppDispatch, useAppSelector } from '@/stores'; import { - addVisitedTags, closeAllTags, closeTagByKey, closeTagsByType, + addVisitedTags, + closeAllTags, + closeTagByKey, + closeTagsByType, } from '@/stores/modules/tags'; import { TagItem } from './components'; -import styles from './index.module.less'; +import useStyles from './index.module.style'; import type { RouteObject } from '@/router/types'; import type { MenuProps } from 'antd'; const LayoutTags: FC = () => { + const { styles } = useStyles(); const items: MenuProps['items'] = [ { key: 'left', label: '关闭左侧' }, { key: 'right', label: '关闭右侧' }, @@ -107,7 +106,10 @@ const LayoutTags: FC = () => { } else if (tag?.offsetLeft! < -tagsBodyLeft) { // 标签在可视区域左侧 (The active tag on the left side of the layout_tags-main) leftOffset = -tag?.offsetLeft! + mainBodyPadding; - } else if (tag?.offsetLeft! > -tagsBodyLeft && tag?.offsetLeft! + tag?.offsetWidth! < -tagsBodyLeft + mainWidth) { + } else if ( + tag?.offsetLeft! > -tagsBodyLeft && + tag?.offsetLeft! + tag?.offsetWidth! < -tagsBodyLeft + mainWidth + ) { // 标签在可视区域 (The active tag on the layout_tags-main) leftOffset = Math.min(0, mainWidth - tag?.offsetWidth! - tag?.offsetLeft! - mainBodyPadding); } else { @@ -174,11 +176,16 @@ const LayoutTags: FC = () => { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e27b2fa1..3870e48b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -96,6 +96,9 @@ importers: antd: specifier: ^5.11.2 version: registry.npmmirror.com/antd@5.12.2(react-dom@18.2.0)(react@18.2.0) + antd-style: + specifier: ^3.6.1 + version: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.45)(antd@5.12.2)(react-dom@18.2.0)(react@18.2.0) axios: specifier: ^1.6.2 version: registry.npmmirror.com/axios@1.6.2 @@ -3916,7 +3919,7 @@ packages: peerDependencies: react: '>=16.3.0' dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 react: registry.npmmirror.com/react@18.1.0 react-is: registry.npmmirror.com/react-is@16.13.1 @@ -3930,7 +3933,7 @@ packages: peerDependencies: react: '>=16.3.0' dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 react: registry.npmmirror.com/react@18.2.0 react-is: registry.npmmirror.com/react-is@16.13.1 @@ -6027,7 +6030,7 @@ packages: name: '@umijs/history' version: 5.3.1 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 query-string: registry.npmmirror.com/query-string@6.14.1 registry.npmmirror.com/@umijs/lint@4.0.89(eslint@8.56.0)(stylelint@14.16.1)(typescript@5.3.3): @@ -12863,7 +12866,7 @@ packages: name: history version: 5.3.0 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 registry.npmmirror.com/hmac-drbg@1.0.1: resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz} @@ -19533,7 +19536,7 @@ packages: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 invariant: registry.npmmirror.com/invariant@2.2.4 prop-types: registry.npmmirror.com/prop-types@15.8.1 react: registry.npmmirror.com/react@18.1.0 @@ -19550,7 +19553,7 @@ packages: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.2 + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 invariant: registry.npmmirror.com/invariant@2.2.4 prop-types: registry.npmmirror.com/prop-types@15.8.1 react: registry.npmmirror.com/react@18.2.0 From 9f626a5fe4d999ee469eec691195f10700bf331f Mon Sep 17 00:00:00 2001 From: G Date: Sat, 16 Dec 2023 15:25:00 +0800 Subject: [PATCH 007/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?Tags=E7=BB=84=E4=BB=B6=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 7 ++- apps/admin/src/layout/index.less | 14 ------ .../tags/components/TagItem/index.module.less | 47 ------------------- .../components/TagItem/index.module.style.ts | 11 +++-- .../layout/tags/components/TagItem/index.tsx | 8 ++-- apps/admin/src/layout/tags/index.module.less | 30 ------------ apps/admin/src/layout/tags/index.tsx | 12 ++--- 7 files changed, 23 insertions(+), 106 deletions(-) delete mode 100644 apps/admin/src/layout/index.less delete mode 100644 apps/admin/src/layout/tags/components/TagItem/index.module.less delete mode 100644 apps/admin/src/layout/tags/index.module.less diff --git a/Readme.md b/Readme.md index f78932af..f43be8f9 100644 --- a/Readme.md +++ b/Readme.md @@ -46,6 +46,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 "antd": "^5.x","vite": "^5.x","echarts-for-react": "^3.x","antd-style": "^3.x","@react-spring/web": "^9.x","zustand": "^4.x" ``` --> +- [ ] 框架设计 ## 分支管理 @@ -53,8 +54,12 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 后台管理模板分支: ```admin``` -- [ ] 框架设计 ## 注意点: 1. 使用semantic-release做自动化发布时,不需要打包的子包,设置`"private": true` + +2. 项目中less改造antd-style写法: + ```bash + npx @chenshuai2144/less2cssinjs less2js -i src + ``` \ No newline at end of file diff --git a/apps/admin/src/layout/index.less b/apps/admin/src/layout/index.less deleted file mode 100644 index 344a5fbc..00000000 --- a/apps/admin/src/layout/index.less +++ /dev/null @@ -1,14 +0,0 @@ -.layout_wrapper { - display: flex; - width: 100%; - height: 100vh; - overflow-x: hidden; - - .ant-layout-content { - height: calc(100vh - 48px); - box-sizing: border-box; - flex: 1; - padding: 12px; - overflow-x: hidden; - } -} \ No newline at end of file diff --git a/apps/admin/src/layout/tags/components/TagItem/index.module.less b/apps/admin/src/layout/tags/components/TagItem/index.module.less deleted file mode 100644 index d31f9e2a..00000000 --- a/apps/admin/src/layout/tags/components/TagItem/index.module.less +++ /dev/null @@ -1,47 +0,0 @@ -.compo_tag-item { - display: inline-block; - vertical-align: top; - height: 24px; - margin: 0 2px; - padding: 0 8px; - border-radius: 3px; - line-height: 24px; - color: #555; - background: #fff; - overflow: hidden; - cursor: pointer; - - &__dot { - display: inline-block; - vertical-align: baseline; - width: 8px; - height: 8px; - margin-right: 6px; - border-radius: 50%; - background: #dcdee0; - } - - &__name { - font-size: 12px; - } - - :global .anticon-close { - vertical-align: baseline; - svg { - width: 8px; - height: 8px; - } - } - - &.active { - border: none; - color: #fff; - background: #1890ff; - & .compo_tag-item__dot{ - background: #fff; - } - :global .anticon-close { - color: #fff; - } - } -} diff --git a/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts b/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts index 698cb997..6bbaa64a 100644 --- a/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts +++ b/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts @@ -1,6 +1,7 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles(() => { +const useStyles = createStyles((_, props: {active:boolean}) => { + const {active}= props return { 'compo_tag-item': { display: 'inline-block', @@ -10,7 +11,7 @@ const useStyles = createStyles(() => { padding: '0 8px', borderRadius: '3px', lineHeight: '24px', - color: '#fff', + color: '#555', background: '#fff', overflow: 'hidden', cursor: 'pointer', @@ -21,7 +22,7 @@ const useStyles = createStyles(() => { height: '8px', marginRight: '6px', borderRadius: '50%', - background: '#dcdee0', + background: active?'#fff':'#dcdee0', }, '&__name': { fontSize: '12px' }, }, @@ -34,7 +35,9 @@ const useStyles = createStyles(() => { border: 'none', color: '#fff', background: '#1890ff', - '& .compo_tag-item__dot': { background: '#fff' }, + '.anticon-close' :{ + color: '#fff' + } }, }; }); diff --git a/apps/admin/src/layout/tags/components/TagItem/index.tsx b/apps/admin/src/layout/tags/components/TagItem/index.tsx index d231b900..7be4e4a5 100644 --- a/apps/admin/src/layout/tags/components/TagItem/index.tsx +++ b/apps/admin/src/layout/tags/components/TagItem/index.tsx @@ -13,8 +13,8 @@ interface PropState { onClick: () => void; } -const TagItem: FC = ({ name, fixed, active, closeTag, onClick }) => { - const { styles } = useStyles(); +const TagItem: FC = ({ name, fixed, active=false, closeTag, onClick }) => { + const { styles } = useStyles({active:active}); return ( = ({ name, fixed, active, closeTag, onClick }) => { onClose={closeTag} onClick={onClick} > - - {name} + + {name} ); }; diff --git a/apps/admin/src/layout/tags/index.module.less b/apps/admin/src/layout/tags/index.module.less deleted file mode 100644 index bb034ad6..00000000 --- a/apps/admin/src/layout/tags/index.module.less +++ /dev/null @@ -1,30 +0,0 @@ -.layout_tags { - z-index: 299; - display: flex; - justify-content: space-between; - height: 32px; - padding: 4px 12px; - line-height: 32px; - // border-top: dashed 1px #d9d9d9; - box-sizing: border-box; - - &__main { - position: relative; - width: calc(100% - 116px); - height: 24px; - overflow: hidden; - - &-body { - position: absolute; - height: 100%; - padding: 0 2px; - overflow: visible; - white-space: nowrap; - transition: left .5s ease; - } - } - - &__btn-space { - margin-left: 4px; - } -} diff --git a/apps/admin/src/layout/tags/index.tsx b/apps/admin/src/layout/tags/index.tsx index a47a34f1..c28f0c68 100644 --- a/apps/admin/src/layout/tags/index.tsx +++ b/apps/admin/src/layout/tags/index.tsx @@ -174,16 +174,16 @@ const LayoutTags: FC = () => { return (
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

$y^Hyp_w*95Z zpqgWDR|Sj+)G#zKlnpW18i0_P;jo|e5;iEs0|_9;P?GFA?0W<5H&OW+FKCy0T@zn9-i&rjPzIgFs zwOzcueYsC*&t^Tt(|JL&xt7(ipRGT&wY0D>TpW_&W5$hf@p+xdKRR!qd_ z#`O}H4zhGx^6DP`$`uV?jmJVqm!HB2=i5>SdLwScN9 zf2gWKRTV1rOT8?MZxB_W$;DCWsAvgF78ZtxJ2a_tnR9HNAtFT}($qTZtg|VRVK!(? z6%kob77T*-z9@@)YhDcmpwjdJr+2s6`i{`VzB|wVW9MCDjUKg(v_5Tw33L z{P~x?Tds`DOBL13SRcN7Nzk=4X0Lu5agFsw<7tTm0K$<=x(-#4VPlPPPT^6(^$a^z zf{2LtgxDD*jXmiSdk`tzM7A9Sa>l5T1c-zn1XFLfO_Z!I=Drq$`X)8*+!PC2Vyejo zBGj0qi*Hq&KX+kkYbR@#A~C5Fl!^CLqhU9o(T#WCzz{d}CaU6nu-34(^F06j&wYM0 z8gV=^5J7^df?!j-HJQ0|ac55bp&jS2DU4!h;d777Xb>_6WK*K_PBnt*%l#l-Tj7{aNEk=cL=YQPM#AeW4ml94I`Ak07a!Ml$yEk6I| zo8NirsrAjRLx-RZz zvU+HA%gIBBSF=-R4vj|X((>(tp*5BbqQ9nw6c9DOstWH*!!#TXZNi%y>k74r_7i7a zV#q1Hs4gs=^p(%^Y302{A(h&WlZXgKZ#^E^5o#_#j(5CfkT-G2iHO;-MK2BBM#X_R zQ7PJO#5bpD%GQp@V?_W9R5Xb9qTU0{CL?kZ0JWYnhG9pUlVd9@l`l%~t02|Hk0<{1 zS1!H&`b)38xVE+BXWKN)4sWfMj{1pRaGd0MY1957Tj(XD)x~3>R1w+U*uHdSeX@y0fg7}ubQ zOBGF6@@f;`_1TphWReOsiy)||4#;^uf718;^a&I;dy(}a32~h$i zPsY|hdlUYZMuAh%InVtFS`$*L)52)@XBco~Va0o?NI*iuY+~7%c5{c1FhR`|s{& zb}-EPnO!}!m?SjlCrOfcnOjQ)D{4ohAxNyTB30$RsyD`hBri(u5!4a0wE4B!Ij0j9*t+Cdn39|u-hKeLe6~tG* zEQwO$z#yY!lpMh#7=_WU>1%bYe$)l+*KZ6MVrSU~Qb8b!p$kgWbb`$?M*oZjK=Sh+jo135g+-J|+ zej8guOv(%urJ5MTIUArt^wzuM-~Qqse(|ecn}^B8_4V8S>;LNbf}It4Ki1mTax>JC zPTbS>nD{0@kMErnwRUxO+3srAr!Igt%H%1*5RMNA>t&TJEq(rTpZm`sQXnTsr)*V;|hS^d^L4FeJu-ISh%Cg-By9Wfpe)Zmd9H8V z%4qrM(%~N5%3$T>;!$L76S)jvER6Bn<4a{VndLjPP#jz7&!w!&d@`R3X8F7tkJ%dk z*kjLRS+X$9vYv&MNy>wsOEOtKk{KJ4)H>_#zUR&~O|xF&tTQ%E5|d?Fl33>)J0zI} z=KGEG!>VYpu%$ zmZw|W%ZrCj-*)ow@dYH_q;mMk=;ZOkcb`6e{~dRnOi?JTz(7p|-q*?*97!OUNT5s< zM3_i5baR+-?F3Lz@`PtzeDUQs-X0u2wNrWGh<<3-SS$S72JZI?=5$koU0R36a)~zJ z`ug*AACe?dQ8sLxBf~_dCczdBMF~>zm7nL97Y*2w8dXOowQPyZUftR5g9eBadAoir zkeRDiFi~PGNHsL>I!Uc2a@}@Q8}|bn?*#%z&t0$00Ip5xc>Cw~{nKfhmSvS?*+UOK zt4MQ#0#oOz!>*|9-0MqNJEW3>{9K2WG%9 z?djp8OAn3ix$~Y^-dTJ3^>@ymJv+mn2Ej z%uP|*fg#w?*fm*Vd9tLCxx|rzx>nmY6g-+&hK7*M(4WI6vPoEWuUE#dx~T zQUxyoSneGof}hKHRtC)xe9$7u6y_Y;GD#9=?eBl_jb6Vu8V!2A9uxKY{n4o3>-C+p z)|p&Sa8bzO+Gb)?`GE;FuD_Df56dfm%ZgsDjYqBjH2+JgCA;Zw={}$ z^QlFpArf#BNa;q__)TrxYv5j_aMQhxK+{wu%d#xXRJEgR+ZyqPw&J}=P$s?Jcsf0G z`qVx5-AC*IQVDDwl#8MQDC=c{;@HZu=ia*fn_u{y?YUn%vwHgWTi<@`<<~A;IXl6f z!~Ue2CGbWmXsNI+)O;j?~WSvO5Fz@YpneQRHZ; zkL6s)X9$^U9^^=W;mBz5j-$sva4+6IcmDYoUwZf5cQ>|nsxVGcx#z(<%UgA4YkKM8 z#qng4&*!Qt;ww>h)_W${q9O@;X}Z03Wo%8lR?J-5TUZ<>iCsCg5G#O`{qfbKN&<+m zgr%dERAn{ufy8H3(4w4{k}E3V%7-#wy0Vg#ey1pkst80hFEHPPs)9r%2XbJ8xQ-YD z0xD~PH(+r%YR92Js11EAs;CF8URt6AD38aJW-z%<(h{J|&J;y4ofi^#adZ^50CbO0 zGCAfWL}q2-Zh}!U!4uS4oAt7xwdv0G%#exd5dB3MWBOT=rfzkCHH5M%NF?6jvdr_+ zU*1^T+MaG~Y?i)qE{y{vhQzrNGA)a|n2(l^t}HJdT0L^&8WlA~zy#wtoy8euG|HI0>+Y9=*OWu$gA4`m>HrsYzih1w-AUl>L)0Mon22jTgFqVb+#i!yZrpGZ|v$#299d!~w=RQPmJC?|oT{ zNC*{4F!016FD!ncH=qzgQCeqHc2?DBFwpQLjH=&wYvb>+-WEh&#IPYStOS)%1W;sz zB^(r%37zr0sf{}TRlNp){d@QZ)tUtiO=;5i*Cyj}kZ}Kl51c%CQYjWhDHHkNBfVS@ zKPxB0EdA!AkA3k=UtYcS1C$QWUfDi$>aN$$U%9wFJ~AAo&X(oeMNpyyg{rc2Qoj4m zdUMO;1vG19*X4N+MT@LRT*FLoOqn&g>Z~lQ;7wJ1@XU#ipE+@PK7Zq#v)_5@$v5A5 zJIVUnUYFgWLr0HP;`2P8&*tOFxSY<%Yg>6VM~^zkHXZd{-}V;>u97@RQHHr_rR+g|GTlgZ$s&l6?ro*cv2HvW zH^UYc?uD6|F)w$q((?^8EMsDJJp)0v1`w2)Rsp~mCQ?s*OZ`!;=cCd>x|$CH zM8?>}*&bl5$qc8KGOK*}M5gLR#QT5{h{#yB%oi`7ud1S~a`9nfeJzepAbW0Ohiqok zB+asHVPQU>Y)^J3^YLh9p}#mfeCAMZY3cB>TcjeDI+%i`nwKo0oq5-~W4*l^C-%%d3FF zO7i5(uRQqtnFmgOl8^*rf)4~G)~L4&kfR>E~WOdp^H(dAzo^ zwlm&w)-DVe7Z(o^%=Y1(&5ez%t(`KTU)oqVG_^eKvFST9K>zb4lV7W9{*iw-`3YskJaxvxJhwTGva1F`OD>h-fkyi`3j;A`<@rFdWuIasbAY z?Kq7PY6UK8od$v$>W*F$C5wVM$n&`}lg61vYU&uEiW)Y|EQG~{<(MQgO+?24%+@(a zWYhy{S&|SacvUHQJ}LZUKA)Fmxic9Dk>Gt5v@CsI`Kt6GKw*eTh%3g*ZFf(#DvJ5E zEZ=$eP1ox!EiN57c6?=JX*3$F9A54%4zgiyCm)N+LsH;W>vRDF>G88Nv5TH$NU+S}@0K%$(LG-u5Y{h%x#92$CZ@zow`IlY|6r&w5us}_{ z8DlS3Pqw%>bpJ*>-J98NB5e%ULurzTDs@Z*QISwqr39&b<*O?A-IOdf=ohX}BFK#E zIT&^c!w^`MTHNGMLTj=VWB_Zx%#g7A(od*yk4;&UH+@Z_Q!P)1Z(vdwWg zi0lG16}z|uX&v=u2Qc3+a^^-F)hoKrYAg-=q8fY|fD||}T7)rWsDcD$+&Nl0{Lm)~ z;FVX$FTe8g`HL4fH#Uo+n&m}Nm8WhywQ~H(EYCMKubj{`n_C+j8<%EzzIN$y&m_I9 zALCIX3Sw(0lf){KvSDIy5xk$xgM^D4SJKR+nR5yGvPd&C9QM+rN0Ozcmt|R!B$-{T z-ML4{8SXCtgWR+DT?7d0Wsf0RHw_7&6TLZbYOG4MEH%dgyFdH_k z1TT?um`Sm-vxAy$x>Th+&nJ^vF)IiC#j=npugYp>d*!s)-kFT&vwU%7#rtYrR7K?% zR#r>ZQYC;*;tW|KE=kw6uas7dG2F9@%eO2qE*(F5bY*FAb!8z`WmV0}d@CDOJaFsbzF`!=#E3E(tI7mJ%r#>u5D^L_(8!&yh)l?P=T~$+q!}ht6Nh1YRt)>; ztM8n9{yjif)~IMz6-7~$W!bgq?ILLi zETI}Abi%Q*3P*?(Cj6sTT6!-VF|0LSAQ}Mru6U4}+PJrL<%o1ZZIr3wz#l(;H0!0# znW`#>!(LGoU@FUsDdHIf3hAgO>=jYHfljDOb4=XW+`jv+yY9XBes~cLvRh?pt4eY| zgX?dW^e=zwD{q{?oD5cy%vGVd@cIh??z{8$Z-48_r$77fvCn>BHm8Ae4Bty_l@~1x zUzJpALOX3x*l6P8wPrP z5gP{787Dvh6c_;s@R7Sx`1Ni80Du5VL_t(WAGzz}0XTnY`^uFo=g(cZu)g#38|T!x z-hfW@SHX1p%n8-|LRDQlcfl8Bp66xhH@3FQvJ75~<05fJI7-6y6DLJgQK-staWtGE zjLR`fumR0jXA|~hJwfWi#JK53Q`H~1mNGP+Y2uERrfD1x0Lx1&q8d#+)%gY%5oSg# zE&~Xr9j-kI{9@KVo=&IDz{(^{1B;4An4U<8!3VAF8fyr;aVfID3*dbaqtqXo{=$R| z+06AVNVi2x6U1^*GEB_O%wm<3jehuUelukK60Y)OJ*hBYJ80W3mZ4Q#(GG`sLt<`?F}9dZVXRGzv#zdOX*N-b zgnZry34lcEn9z~2jNW>L)5Px#s{MX;cxgogoQq^(00=<=mG^=R;rnRcO8}v97Qg}B zq;hkKB+({ZD>!pg8+Y7*=YH(ivC(k2v9WRD#EG>_mwUZluh&;qsXSV)xF2Az?w$s! zvRqzXPLc#o1YZe}>Og`pn|@-y@bxF(zO`E&-gPkiUO`)fspTz?WvF_}QiIp|V07Ok@ z1PL*$7mYaHJ+CT67R}~IbqSb31dl3%3E)6H2B)WDJXtY5>?EfVoOoh($z&R*xM?({wl(C4IMac<3pJst>c- zY__ztc;v{@rN!R8cm4E9J`=ULPO{l-8CAf$uLcp zfCa&^BPTw5?+FRGbZO_Ux8Hv2%{SL~#swq~RaNG`3RyzOjx3$N<;c7U(_D(8nonnC zUKsIZUd*>A<$OLH&mgKH0IQQUG{+Jx9<2^Zq9-n;21SToc@x5_Lo`6mD;|Y8 zz)FhQeAaTSHQOZ%MQI8g)#b%rmh}hyEbA?e7E}ci6hSZ_rpa(P>ZjRgG&;0;=;Xg zc4^+Pgt94TwcU27`pj**U zzpxu_GuGaA`|aO;{P8@`2ZO<2(4Wuq&5eyChY!CeePG(L(vOGcXvqBukU3$PYH@ zF&wY;9BtL3W2d5psS)wI2QKm+4Eur6n?2zyWu*vDFtrs>GzC@xs-PjG7c0Yo<Eya;h!qU=GTaR|~)>A?-1_tDk#27?Am%*^- zeVOOes`8U!Epu0i2Deo03tnDmQcj zDzzw{u?)cb03{OCiDwZXB=}HEIkG@m5hBa4DhW$Ge<%>3La3l1dgYBPXD_bVbdbYD z=GGuAaB-kSJ=)UKR#%=Wh83Dh0(O?!z*=LCG1jVR2%#(s@2h$Rppz(%fun;=+dfsY zI(EbWV4Y)XnW^d#`H73VN53zGIzJ>qTI$p5w42(vqb)&_Jw9o7?>c zPBcef-KC9`8t1MIf(jdhM!j=4?{^hd!@hQH^WQ;SUbl7ldJwfOOigL5ZLE_418Y0S zkb#8`Aqqc8a>nUHt9t9I0Be`0v)OcOYioO&KmGC><2)aaCzIJU4-%IqD^A^UQoQ$- z4-!t^ancuMQ50oW-eK+vAyif6y=-r96EPDJxwT8%-osbk2S1t3B7_PsE#ioPe4e*m zB~wKrFj8<+S}71BtGjF;yES9dZVbS%w~LoQe#@=aTH~Ct#wD4t##v{q&9cl{oAr9e z+0D&$<80PToO6Y*LZ~!|NM#^wh*=Ejm9;mro*fJZ{cLdb=$VtpPMkb>qHpc7(c&m^ z{T{j%Yy^zBCcv_QK`^QiwOW%HYkiL$xuDj2iJ{_uJYrM0txY7=yv9>JBXP$oM_1E4ESYS#C zPQ_@9PKyQk%6pQar0~pmXJQ>*CxGsJZ=-9yNC<90(CX zA-i?yfPuGScmHl$V5GYq9Y!mIur!dPM?CN+KJ~$^3D!0@wpP zbL32F9J9T=wib23iA*wd!83UnueTgNr9vV>gihUYXBALYJ_Ij9?I~n3sSA<1G`|Et zFE+0V%RuUEeC+?8b-ui^(s_TRutkWdR%U0NwPre>8*7uqIkwaBSf!jzr$Lnf@%eN| zR6~+jW4V_&=PWezdf9L|>}U4Y+deuRrAtf83xk1mCP|Xim<$*S5(V?F{%AMe!KwtY z>WzA;nNuwQl}10d;oFEzimEC>)Q8GfL9d=`%{MD3s-`MLbUK?NF+F3~H@2UB@ui?f z*m)QQ6Q>m@asWVmROeu7Lhpu{h?$*pEw(TIVo?~f=iPwQ8yK^!z5h;=qe z>FCj;1XKdcNT@p->)U!$k;z>1>QtqP$;5Ue%l)P{?hy^)H87b*RAGNx-?(((UwV1fFn76lp z=!WvX?@6ic_uabMwF+s4pY|6ID-8Qo z8*x^h2}c)`LDCxz2U(Uy0-V8M*y|d-239 z0z;$-Fyx%GNfLmseEnt+uV21=`2YjSObXRdryReh-)73vbbEVyxVZ4Z0}uS= z|NJi>I(lq28xI#3>WmFTVLa%C*WUf3N1o{|9w{Uhuqd?@^c0PUNH0sOP?q!J%U}Ka z|L%YLYquUfG#ZS8da7Z>bpmeB?<*oRZA;rEB1Gi9XXaSDTc_+KkWyRC`$K@zT-B7B zI!m)rD2>#55yr_eo7g!J8)-w;F{%ai!3!382Ee>RUV=0999A4Eq+1?h43;v(Agn6j z6%tT}PgjDn3YCQQ_02rbBg5i+R#qWYRaFI@PUmQ*{)LMd+di~hF@WqYZ>nQpHT*R0 zOuPOd05Ig9+fTHA4*P@Ji-#;98d$^5S!3cta)NVQeI7k9E5I__jKs*L8xJ|;)Zrqt$RjK;&yKvZ8j4RQ= z)&&(2d(tqfiYhaa5*hW8ZC8|`ZgFX~H17Gg&wura=PqrRqhqIc@}T6rAV3k}@Cbl1 zbA#gr8#c^IVq3X1k4l)hOtXIe$?7n~kDG0>v zR0Mx*;hVy^A9(tTM-V0w0TaPQ{dvJ&Oo(%Cduw}fY4LCTjlc1K zdFp9jRmV@9c>ek4hrPbF))*5)XwP?S*c!WQ_&T2ZY&Pxp2W6->H#Qd+7km9)@L_Xj z+azv#GQQ*PyZ-jy{#*AwcpngY{Y*g~6hM{ABrgM!|Ml1Z;H~xGjZFq=9qVlPIpZA( z02w>k*;pD3FI}1Z{r~Bo{dfQE|HBdzwnodyW1ObxY&IjsV9=jTrW6mGqC^yHrhEty zB*MH4*yu_`wV0V3FaG)-TZhlD1|N1aSwJ-8F}~d)-p4NQe9b`|i$!B^oq+~Xf-^7{ z3XTqE3iK>+m2VO(yhR0so>7=vmyRejKvaznvHBDMu3VW(^V#*yt#+<8huY4(>m*cb zdmU+M70@4avG9Do9dPHZ`nZ!_FCI zHqH@|AgHPjmG_koLBw~RZ-&=hb!2%#w#8{?XM+}u?f!9Ebq9zea+ zjFbSAFaY6pvhF#_XsxUk7*$h9ReuE}MjwJDt>fSr9qJ=)t%TcF`yH<5gN3dr60S9; z``YoWOUyvpa?aHJDN(5iL8xoh^gT*RaI5K6bVv=5PVaDw8sV6$2oHYhL#U} zmrW8Tn&L*bc&hk@1339{3JgF(PQz9ucEvxW{z2qFq$W*EKN zvhN#&A9w$++nAIo1gO9g3!)6^oCW$r9 zCQQC4g%C42M3f}E;hhMui;s^UJvthVwkP9PUwQS8JMK7f^5ndjU%YtfPyg~S|FysV z*FXCw9yZKHQCMqz@IjcYn^%6JpFa1>`G5S+{+BD8^Ti`4J#!@Cs5?iywHCxwlzEo* zs&d}X(wAR<Ku}log8^YUFd|CCkcl?-z|m=L&0fRZjA!@NP8ss|&_v055m5-pv}sj@ zfDojrV$8j>F|?#YZTE-`Sil4WvYu=@z`3`!pLqH?ay>D%z+N--stl-FXGrTZ>bT-0 z1TRunx%VLiAF)Wy@HO)!j;k`-6UMbKZ7;KYy$g4|cp|V%Eg0L=>7!3Szj^W8+RjgX z_S5$+BqW+t>N93zsFnTc9x3;@9XE%SZ%a~xMvchm0Um7AyA%87HSYC(MF>z*5om}q z*?ZMeB*0l0BxE*AUGjJS&fggh2mk2*^N+^kZR?z~7C_8i5pW9+2gEXU^PuWc5f< zlp)AyxL}!_bIv(yEfZO5lQc=w#2DM_^@^$}%QDN-yY9OCFa76#>2Lnczj^z^w>}(1yg@zfeibq zGL}b+gG-mrFE0-t{_q1Mw%fCDmL$EbmrrNT+A7bZYNSG9gqV~mTAvs+=ossL@%KG8 z4ulTEZ?E}#Z>BI^qt!pb*Lsy`_rFO07cE0P*&70b7*P;;?;GPY@r~RZ%UMCHv51yB zRobjDP^;otog!hA5GRa;C^aTws{bQS*d%Nc=7cFBSinMU#E;YNe-^<)Es-S{W<$h4 zDo=bNQa>}pXVXeECY3k zXNX72W&=>{N`omthKLMV!z5Of6Ec0ZgQs79_h0|cAH2Q3E&auUof-#bV^Yf|O|sM_ zmJCH0wnVa2U-?Qx5Rvw(n~6zaV#7?k>US^GT5o|-O3d6QJjO`;6 zhyhqsRpq@W=GE2JLc_ZkFFyL6Z%^|aCh0AV28qo>?K{@4e(V2J4+x6p^f|saZ3Sc^(j>qF9NgjCM z{!^!J5!J1&tvB9yJ)h@L9W5**E~(0*`79e_2qZzg_aZW%=RSlaO@H~9|J2|8zyIA| z{&RnJWqC!tk4l?yGpP3$V;tKj-@5b<{^37<{-xK`!BQT0vbnQ(^jKaN3ZaHHYB$*G zm{JG8hbrQC$|_H+e)8iVTaukh%_~OXaG_XNP~{i z*9IEfjiug*@AIDB*=|Dhn*VA0YR$&m6&^u{>!iEny4~-9{tsG{F@ae_45$H?#F$C5 zB}5kBXy>&4_kjOG?dH{stBLUtx@2}uq+tJIYeu7cB)PiX$Oha^V($r3t0)vf1a&c- z1QB0WyL`w&Lhv6gqj|~y_6uM7+7r*%rPZ90$|P`^ zG0w2D#+u0Q2dZnA;zj~#Q$)<%C|fCa_NM53>D>(I2=aRNALAh5B*fX z-@oEHUT-@0)Af)9RkW3woV#f4!#a4M`|HpUW@oy=y-hn7G0xzBy};fEi3=%FM@ z#+&P-<&|PKV`Hq{6TcSl+gsDG{LwewI(uRD*e#Q3uvxF#**4aqu4`>>k2b{Ej1c8h z7_g?ua~OW&$?tsg8;{)itG|*YNmW*f;|>n&D(WR6kjUQ3j)-_L#>CAavNd$0?b@h6 zw;v(%qYKe|9~C0|qv7#JH`e{?FTBb~?m|%Zeu=5c)~E4 zYlXnsRIM{M6=r~0h+|ko0Tp6pFBQ~FI52X~k<_^}?A-wRKA1pcN~Nv{W#?a_cGKN+ z(G9Lxl?*ChI_7MU*mO4AxNz>>FF*Pnm$|?2r+zjwmchyhL4v|a<2~$UA#R8Ey(9S8 zGxB?H{{C4JpaiPCuY4uS-I&aGP5j=}#=SENQdJ@`%jN(j+sL)#MY)uX0OWbTxjkJR zj)-YKo9}Gpx7~KznOjaj{P4q1JpRO+Z@u~4bI)yWZBKT#+OO@U*S!?=aYy}FU0xsFSabf-UzWnvoW2Y;1mp9*H zn_+cnYkRvL_dQ031R@;g8(Bkko>#+RZ!($w(YGG?{KG#z>SrpUr$jLX2qCV;Gn(Tk z5W!ExG3*;xY_#d#dm=K%>_b2@ce8Up=63x^;hwzfRsC&08XDidJrV6&ao5j=9gKCO z&d*+ZsI;3w+3jr&GuijGKVFp|s;kvwT)nMotZ_eVjD(;fUE@MT!3UU{9ze+iVkP!! zEG64HzVXzv+g|Uu|D!Kl-lVLjY>23)$B*Yjkx1&&Sl)fSUUht*_HHG*C&qZd6pH5P@BN#vz25%b;?ihgVPRom z!HX;{FL)IRLBtbLJx`nUe>e>)FcmSq)WePg_}wG)(B zS)>8F>^jQ=pg-yh!H|kConh6$3WGe~dHcWr@BW{^_NV?dL(ShC*TiKUur#_wTf2RrYXS1mgwfjWUDd9~WOA+hvd4#QrkS*XK-C(- zE>cxh2w^^-1Bit65jYT?fSCCtB0wVD4O_dgur$w0wKmE6;|m)_j^fBpCW zFwYK2|H!)MSx`@bqu(opQbklnEAJ!wWw*c9{$wF{@gG9-0g>l#}_dK98h%7kX=6^ z1B|?v&U<^auD;8=G#EgRQ2H>P7ex?-^<*?L&0u*iGoU?-pnXHEcMrLOw)a zq|yLI3d_zI_Eo4upOMxc5M|nH`U$e(T{)3ut7|Du?AIB)ez2y?73-JVh}C(hw>D z0v51v^6e*|`cuE~i+(mc-0xY~NRUpfEW23}YPj^8pz<}B{Vraj3DNwxZ)m5{H7xrL zeC|e?&=1+YQa-3FH^srI?%-a_?j!urM}h%_5ZWk>YLiVg01!kBv0<))S0*9~3=l6J zK6G&#-+B2B9<9tvH=UO`^@5UWP>%JaQiUK@&6y8)v__{sUUd=uK;!mwApo^EcF+}x z9FRx3L27FQLfB>179^ccmCWjJ{)d4x-!Jjg6V*rw!xhJc#t%5 zU0~>S+D&NOuevshiPR+WPx~MNC4dy1SQo1{+WkrZrl=_)Q9w3`C;|}~!^}*^G=vNU zhD3^O%MwHc6qK2j8s#R%cs4t{eA0m4-kEu8k>RPA-uVCh#%~`wdRrC5m*j(H*&yvz z^Sp#Ah&xAj0oD1Rsw`1&KoY1Hdt<6p`0>Y|USHq2?Z^sz5Mnf-=>tcjOB1%6Vj^nI z`o1UI=nWd3ohV81qlZPJ9hGZ0{$4*&w`-a7w#c(hyIuXxJ#16mUK}_!-}~l42R_{U z)DLKo>{e8Q(6nRO+06&6n~X(edua-wqnu04y#oJI%Ky+t0r8#$;>r zp^ts=Qy+QYzS~9%7DgNVOwAfEbtvh*UM%|-EDlw5P#hWV2obC+0ZKr9Ru z_Q6LoV}gI1nI$qSQc(jT~@tY-6Fm0_ShNYwR# zO@SnJGJXUCuU+1J^pPj-`jwv(F)9JX027&74r3R59Yd28)2Q81YSECjR$OD*(VY8! zXlw-Uw;xZ_Zq~kiMm1V?5xJISzg8I5hrq@dV~Vme&PH1N!2HGrzV)3KUw-raVD&^E z$X8yt>?fI2K~(~RYDE0DA@A?a%iQgcT$2Qn^n0ipRn-vvs`eQ|3{^HYv9QX*CP^2D zgW({d*Ds!Z=ePdg<+sj$_M;#8&pv-YQ>-sh18+nOQ55z9NcBgN#A?Sx2tjL@SBMo0 zZ6NXnx^R;l_nQAmC;%g zC@Hf#ng_Mc*}8g2k<AHxUs8vUCB=iYV|y9p=~kOzvg z3ZlLS6{{-9vVue;3R1?BCm{x@#JZp8s@BeXjrT{Jr6=totAzm~VOH3nOk@iZ7iJ)A>C`M;&W@1E~IMg05(nhyr!J z8w1Q>hBY=xtaHk-@JBgPCkHKkm==|Ck`5P3N-l3~Jpb%dTRS^*btg_7P1B^vO9`Q$ z_L`x4@4*NMg<_zpG2=L^iqe-sM2Ly4G(_gwN$g##2RE;AS5N@T%9kPvl8AdEZW8Y# z3TP}UkM^C2pu};qYMeDS9$9slDzp1oq_*`8BmxJr3R4um*YAO_Hm)vimw)*6@BHik z@Ov-5b#5jmS36e++Yd@;3YcRV1iK!B8uc+vtEv=1jS7%NL7S#Tr%97S9cyCj#kbyK z!lys+>7_x!0+9fg$b=2Dl@Cg!ASF~)*;Fd-M><6>;Je!Qws@p1UVY!V|Kzngs4Z9f z>}`Qtd<>vXsN$e|9bKI?O;j}N_rN@v=YxeMW8D)ky!pR=;p^wOE7u#%D=|q=i2#XiKi=wKsB*_9c~$v1K*UCgK_sytxk>O|s|PoESO!WAjfSy%;$Suml1dZ;qvA!4 zP`}@2NB}F&yi<*865l3*O@0OZhV|z4GtB^37*odvjdK zXyq7{G?^BG!(g;fO!Cn7hoGuKz{$W#De9HrOK7Nn?%LPKMI~vk-(NZWhhP5c|Lt%8 zZ5$nxB?M|>DPLC!toBNz3I82%Huv6JYhzdj9g@Ge{;jojmKE=@?CSgNN8f6AifXj% zt)Jd~eEo0eCg&ZjG7P7zGM&$kr}o{o@t6MSvCCVNW2f)BeEIT`<0rPZ$5Pw%YZroj zzsceKr6J#At1p(Ai3|wVSYx6}EsQb75OeSzaZ6xVRCz@05ZV5*le6)-Eayp*xNIpq zmTnb0|KbZ@+L=uM;;;VVy(b3=Py#j*T0kIyAPtA4RpR&1C5lJ>sQDXIgZH8uc^Ood zRKeiL>KuQcsXajHE+I1GW;X89qFIRuakFYF096Da=7u+w6z~D#Y3|r2Nn#l(d-0V` zGPTAr#&ftHrqgOLbZ9USWmzpG4!};Ky_7a5C`!G&vAsE-J@w3U-+toBvzwDG^h@foY-ozC1r(Oow53z`;g88EG!?{+Pv&~gYo9< zw|@WkPW_+%Nz2U~zj)JvLo~mkxcdheKx~_~~3;Vy@uDMHGck0#98q_S33I%+$>}=RX z%_n1-C?K-P8LWVW9Oe)pS?zw*{wf9B^O{_~&z zSRd#SKnPWtpaKO*0XUcekbHmGv%N*{^=K&S@|>U{Kr0DM9FOF6o=_W_2xX9{LM;bX zuTlx%Od*;kWbI9A+^<;@Qmf>ssYB{atgVq_7Os@4dF6~!#5)KwCM9ox+If}hWcM3t}Ol9XO5WoxWD_nqgTpBB|E$Ck#ESz=5( z1lE$OX%I5fRxMo%=oX*2r(&vu`#RY;`rbE_E(;I`h~y#zyFIz7ZOtyhX&3< zj8uRihI#OwLD3pA83fe;t%C3MdO<0GSWE@hNIBaoZ7GXL>Ae_IYsvB?s7TV#t`J zXPBpDB`Ty>k!-}A2y0Nzi%NtvNnP4|{5wxQ_T*D1fA$kFmdq~ytsx3hs;V)lynyQE z&CCa4C))LVefusVV6gD}_WkB>EiFv<$%YFWk@T^BvW2=|KQiNNYOF~TYmG^g{!X!7 zG3>x>ZQ+S$UVQB7=a)|3BlA5UX+6lgEIgu(_jv2y+gxhNl=k5ruk8w{Iq4^02Me?w-h0*}yA2VEPyp>rrV3UzphVcA<{@QbhLRG5Ox8oCC>35o z3B7$jf9k2HUVH70o7%YJ`;82!5GQG}WETz}e){>Bic9O`N#S06buyXkZ0;ado&o@N zc6I<>7%eTW95OCVvLS3A#Fa-?QchCXAgoX;(g|~Sqv5s12Y>)&av;yCA!|9$gVdNN z(Oq@vF8-;MsD0LVi&R4(ojZc2$!$+5s;KOdMF2OLXF~R$*^Qi52wkx@fxudC2 zRn@js^?m#P6W0!88faU~588FxZzSg4P*yl&cvcllM-PuHqzNWf_}ZgS1UIB~D0%hW zdMED*kn~zH_x-4WSO~I9EXi!inmQ80#xx5=M1l{Y)x8l_{;oWBQQ})IVAMG4GLwvq zTR^t(>}wbQ*}wV1+AlnO_o<`l$${rALt<1|-(%xmCy@yNg246q04unHVc4KX>f$Vl zSi!(31GZ<_*ebSW`B%R2$g6L@^ZM(rZ*6bigvOoQ|7(e^p)q{js7S`(4DHrw)uyrz zBRV0>%PJWyeCB6A|Kiz8YnQH^xc!c^7cMOvIkC2#qlta@`~5@{fbDQ$c=)6bTn6M7 z<^h$kCk|wSK&8>8tW^zxUBp)u7&Cx~Didk2!YL?NA~gxX@KAxVL~78u)vC&5U1BO` zwMo#*xE=-zzxg}A|InvC`K!P5879-zi;@e5UKaydQtRIos99sMfN#g-flWk2C`~_^#D#HpUoYGHg_}3gXq1qrmq3hW^J# zpLp%;+TxK@8&a}K!H2#Pcb^64eo}Fk_yvYV3jDbCP|l$9{&0>uYc>Q=RWb^ z-GAvDr@!;|6Hh<)ou{7Pn&lhQLf9D|B*Vc?Xx#TSV~k-_R)YN`b4_sOpie0Q zX;uJ>M~>Zk&pq#MY;Vlx^PmV+a)Ma#qgu@+AOWybN_k_e1m8U%&`6l?(xwSW&np{)f+=Y(EQkxn&}_ue^&rq(IC@U49Z5G4EvWmn&CKTxZ6 zk{b)&y6WiA55y47b@t<0%z%i0otdMbnL)0M&WSb?E z%8w3@ZoB86$6tKq%EowF1-0rqjri_zGJ|1jQvmb1H@&o~Fq`CI;se#}Ys#z?6PQ{r zgKpb@B4adh!vGjX)*rHBu8IOEb08w?V^D|;2u#LUGGv5|QV}Xnv!|YW;aiVC{fiHO zh$!ZDh&0lM82}dW&A%jiU|RKRo*4kqPwz%`y7nDFE6dkrS$}N&Gw(M52c4oCA*I@a zw?tt3JooN-ZeQI)3~^gFS&~LMPOxEX`h#SroUd=p{^+sCUw-QyyL3w_t_VgQx8a~} zfA&1y@AR~R%00a8H+a<)xgl#F)0WYNiHMlkCf3?$+?7~@RKAK;C2?HP%>U@Kn+U5p zaHqLC6iGfp^OO*}`2b)#FPBFPtEWfRp`*{gz4rJ2=YR3jAOGP0@z4L_2M+fZj4*Rt zN(QF2?+2EQUF&4LkGO_GfCOlg^-|YYpzzopE(X&t2Tu+9?m6 zIPEnJNGdqnU!Kg0a%%@gaq}AY?_LXWy(Z28xks?KoH%*vmNRd?`?$d7Atu;a?o!|e1pMUs6vC=67Nu3F$hpMx#Qi+z`sH#fK zG;r`3b^sN)Zhp0X|9eE+^nUwcw60}u?R&dh$34Dv+YdA%@gT@10w9f#dQHq~>^S$s z<<&2I{cF#@`j#Cm6dszmP+Z#>b-oqA0n6cF2F+`>eF66x8^$JPO&e^FakXu?MC82) z0w6&{QI#>w67?*&AuVg6FgHNPB0#OC5HDo+BLqr^>*E>9e9$x5@W@-2&KBQ(;rSO{ z`oI3wzi{8JM{hm7YLlc4LhzQrA_jI3(y>Wu9h7gbVUPkSSb+c*Adn46O6r3!pX18L z^xNNg=A~C&d*S6*wsy9+XA|NSwnxcmT#+a$^_3EZ9ZJ%{(Id{KH=%JC)Qnks3oMCS zUjMyZ3_$CiG%q-a_%aJ+-(+Ww9lhh0(~sL{CZ(n>BVi*Uc&}BSB-VsEt8mIylBki% zd}mq}Nq;18LRP`b#8mTtHMfV`-;IY>u2tIsh=8F0vuK!<0?DYC^t0hyRAyTU3K+l( zAqsD>5g1|tv&%+{>$B;?p(B^pw`T=RRb+{U2$L;ENCO#T8I=etVg)a*@~pdjVdx-d zy!UCEws!nL`yM1j_vmKjpZQOybA%46%}vNEHbf8QH22I$J2 zOKW4Vy3XAva6Kr~<1Pjl`-9 zIDu7?UE){*8UggZrj}KOq!wL_YNbsF6=Xn``@>Qt1fQ**-UKG|^1u4W|MnL?`-xxu zr9XN1sdQkths0yTTBWcSMkAkcG}%$Oi#lUccSiw~T3E{FD7VHFlk|IOAM6Tixrc8) zQ#|s>Bd@;p##?W{tAJ3d?ntt5Scrw4!YY{nvT&pnSVZ#KJja}GLgNkq1Zt3|-`~e! zeAzQV0SnxA=GH;hGYJ<(!I4%}6e>o&4S`h@rt}r4RBx0(=rwcEvKj%gws_cme#*Ya zK!}ThRE1a@hr|sRD)Ks;zpQE9 z3nH*&qd?^icv1(n_^DWi?wq?m{{3d+Cx5>Id*kfg2hnqH12SkB+pqIg)^gTQiA*7~ zw7N2x6z(!#q)I5I7v*ki3n^WDxfGO1R<_8 zaW?(+uRihm#VddHFaGKKZd)@ zrXT5hs80?-k|dc{1-taN+fFYmEbLs~6g{|5ST(?x&^Q~EAy5HT0uWiVdt{8#cLs!R z1@@llNwp%3D67^EO8`5UWrKwrtg{{XNOu;wumej0fV7(U5bxY%mOuUU)1Um{?Zz-$ zRHe_HgOK-SkUCcuMfK_q>;=7DYk9ZP`Rn-a#u!nF%mi2K-Mrs^l&uA}GjSEFXwW0s zKuhWyMHXX)YOH&}-tg|8m^(oTX__jV>15U)F3h%fl+YWwOXt_V{p3?yleyYKAXZof zN8S!mBFMgqiY9^=8Yn?*jSa2QWwQI{ja+Z6Oay}!CSjXUny_{3oT|@5kjiUlt41U; zN&%w8G+K<$k&t-xq9H`1@jbx=8ZoFiay5;+K$L1^e=KlmFP68bWg`0gD{ub~|KOi| z`XjeL{HYIp<0HYp}+J%_3<`LcHkzsKtp)xEvlgOsaj4-id+ zOM1)OjiHuT1k_{L}*(0Co&z@&>~2b!`oaM2Z?^z{L&C6Rvo?acTPa z6Hh<+>CmpGxa3_lJay1DAQmseE)`}@X#stUe>cuRnIsDRj0 z%>@mS!h7o+8v=~sjL3jdlW?$!MDaFBjkVS!Y@M;zSj)z+HBu+~iLHZkuolE1N+NlY zv1yumK*d8;i6LI0B0(j<5UU1XPItBv@{5E1y?5U+n-#`@RH0%FLzUUIW3VSOdjt0O zKtj9rL9_yOuD@o*)>s~Vt*?FG+`m`tYAj0hj)R2gq<47*+TctZmf44G-}f&OS!ZqH zmR6Q_=Ck4A;-tt65oNpFOTP5jbAR~tCti8`;%Mc_EO4QT=fsm$Fx54B*Ck~?fF80n zj{BZz$RnFZyX8n^46~suwY@AE^pYe2BOuIuIVtAbezxQDol)OunECm*nr|hve%`z+JxRC2AZxSyi_J4Yg}1+ zW;a?rGAXOI&FRIBN$!*5$BvMp3beL9Hpa4LCPQFCvRxKCv!X&$c(b;VZ%^>@+nfL9 z4<7kISojHAaI^R=nC$(@D6y7oi1VIG_=94+lTUa*EMu2VY z=hn$vZliLo$}1W=w;ErikSHV%s4)mM81~s0EJ39NFa>13gAjR*_-X~O=bnG@cZU7X z|Lo7KjIuH>eW+MqtYMBMGrNnH8ZB%9UG}KDR|hH%U)z6=arqd3-}621hiHBzZC^2J zwCpYKf&hGIjg~M<&&Ms#op2aJe6V*oN5Y)QdTRGG#$AiM?`dQ&j}DH9jtCHl;`Eb zXvvUnZLbf8Cnhp`{KfOnzVI*4pZ}9T`>BsUc+XO@yfh0C(Tr8$C!t7_l`O%yz{@Yc z^YV*tJoebr&%JSW6RvbUGd#AqlzEdD0eS9o@4>+(S(5Y|vl2u^0f7x9suXoQl`Ii4 z6G@{F3RT?P+%o&7!ol~Vd4=^FFe5?;IDN|AfB*fz|E2#(;Cf5m`@W{aNCW}Gn9t@w zwqT7V;x6#9iQ*{>apZ5KsGLF&XmsAGPWnrIiXcnYF$h|**Zyz>$e0AP2||V7VQR=h z8@?o>Z$9#^uYLU+KmYJ&Gi#{wq5)NaGK0x*jKf67EkNV0vMHeW79iwtRfjHz_=ibmTLGVGs=K7U> znk|in{ZaqZKldxED~C>;ICf}xd107|V0&}p(xnT(@mv4y(&e?w8xuEJP3>ZU3c*vN zF|>U(mRV6BdYC$#jE!@)CvbC3`4J`VEiUbB??8F9a4h$e01{2|T>iWsz9?6#O&?precF=AjMETQ zgxOqe1=?^*%(7kwGI8VfJst=mGjRJ6jz^uE+~WO0r}v=k+jqOA2GO#&r?IYO-{-vJ zs-$|i#ga~It+7-TMUo`SMosECku-hrtxFd-%eh%d?O>LNL`{IIL;@>`S=|_sxPdZ= zJ=q#&4pjhPoRhE{mnR5RB!Ghq7Do&L0x19=`D`5()6KUQda^Ja_Iv%iKl8a;j-R;u zo;y#TI63T-bLd$(AOJm}yk%wQwv|ucee9`co_*q(SKc^#`Rz+P6_tUj3Q3?;U?Yz# z!Njas%v7^6DxTR$b0)t5P)(gBuDRSr^E`L`0hGsi4gyhTdOh14SSh~x_=_*T{?6MM zKJ%CV{7)Yqp`4Rf`-QLk!P76i_{>u;Uc9hPP=zonD;3Yy5~)N`5Hr-asC+|e5r`QSh}3|Hufam~V`_rkKph950_K&@iz@f( zK~W`ZU!$u~i5z7*s1y=~4P+~I{UP2sJO6+G)Bok&i|dnF`Npen#25;653aFBc1KhU z8D)!wB@9OCa52sL^GYRJd9`2zz+itaK47Foj`8xisU_^J+qo%tIha9FdbUZaDoWB-H;uMT zZv>pY3-UA8_`Cwaq`il|?iJ|FZv$0_p1jX}$c6VudgRHYeCB^xci|(=WgNl}8?b_NCX?w#&uC zCkCTMAL#OxO>(JoF6$+;**r;2KF?j&3uK{IG>S|ql&QOo?Kz#a;Plv)J#sn>AyQ`y zF?yDKHOuGQAs>J8V-MbS$EnSYOJDoiA63B{mpa=sCS|rz1F+X*W(FlJqSgq<1RzJD z2xZdH_LDfLC4l&`S1v#G!s{C|^=?og3zD!+yo9*nL|8`Tv1;U| z_ir9eJHX*3CJAknLzkA9C)+!|m<@Y;bTNZc@Y7=Fg3PuCJ-4_#9A*o*-*Wl`ci;QK zJ-09Sv69Yvu1XxS5sN_B3*l-KTk)X*9L%DC43ZSL+_iA(=tn+q$BDD+<0oHw>xpMx zdG4hbV6!79ZkbmypN)66CdtBrLo$~V&b=)&x<0OASEIOgb9FiLP8t>0TZC3 z#Rc!R%qQif(=H;EQf9r`~{Mny^NfMWc56tms z#-V}b6DtvWzq{09bj4a5m5~n~w`;^_x>>jo!hYq|_uCJ-byK5l(P`JRw=uWtGy3ka z?AGi$@`){qN;s_)U;EZ$PrvZ;RMK8Afj4OU(pcD`kX<+ByPWS2=!paY#5e;Wl*QJ$ zSC&^-7Z(?e&o$p1Z(hutoIG~u&X0cZ*shlfY+*P|c**qwKrK7I1=(z_QfpSye!uqmj&IPl_`5|Y5W zi_#YY873hzvKxcCiW7$StoM3@L9<4LqF$8^U_%Kp3%j+=iQ#0pe5R^`SM^{aXfwW{ z(TL`nyo5op@sw-;fQ=RQk+N7>NvN2w8&J=h#Gx2pmU8CvY4DTVZ&^5V>gav<-FNEL zsh=?8PWoNM01jk@77-sbD3(`NPM$pZ>`SjNE-rfy6%&m+L>1~qMW6_63>r+VT7}@N zIZ(KT1y&d!kX4Y95E*Efzk(wm_F5!CZCQBzn3zqH^p}R<2^iz;sKgRfBzSSD*yO3_ zUwZe#=7(=z4uB70Ktj|qR5G)ubaC$OPsh+op6A_P-yO-lr});s$FJH4jzq%?zvo)6 z!q2?##b3W&%k!0MCoS8UTbI}OYCzQ0Gi|@m4gjcvSGZ|WQE&9p%V)p*l|Q3WeG*REJRE8m(*S(F`K9OVh-QusFcT?=nMsKVIDYIH05&FZiNFFD$_$W2Nt_ok zo()8|MZltlL-<^QUszmPP5S9hUU-q99${L_)2Zi{xJkSiK*HBCZ&%?X4aiG{$prQh=i`3+&c@I3onHfKh9hDqv*rvmZY6 z(R=^Yg|+HGeBt;0)qnUsJ36wyvA%rhFpRBgZEe~u>Cg^9LwAusb(m7?_wOGK3DI~E z)4V8@Scr|wF0JnXkQl{PhHXF`9C3G17>W#$V`I6_kwkvV?d?r#DM{ERY=}cBigF&x z`ML9N8Ws5b_S2_7^T~(qx#QM*?>N>=;1~?AQw=vWdfxl)tR+#6r`@^Lf7_%v=f)gVZ6M2yT^4GrgtH1nFbJi8vUfg_rgm5_Ze#5Dw< zG;u{{K-JRn;$*UIEge2ISaSI^GImexu`sp!i%g_3w+0B*gFGSB@eH+&Y=H5=Aj9y8`?Eju(4d$8t3P;b;*B*X z5CICNhMR=qU>oMHBe@40A-h{F^X`eZhK*VSQe!QVA>#x*n-(=3vxY4;X1!sG1c@Vd zY!ef!-)p{4KnA@ugd(4hr#o{m1xX3=ELCRY^sytK`sjy#>Qf&-x;*GP^ioiOk*Y1q z{bOw0_a7)@s`;L~@4oZSJHP$d<14ExvwVz*VQD@v>9orhXamJrLZV>FVQeOhBGweG=Q``#Lku0`mI^R<6=op%7O zmQw^%U(HXj2PAjZruLt*xxboDAkyWxk(R4#k=k1jL+vpvvu_OB=vkW!i8shOmn63K z*$s$P;ge*j1OqU!OVTG_ee>6U_bXSnc5JdZ4Kf%l?@S77ZF}dU=u*updSJ*%1x>Zb zp63am(CZI8NSwcfB@vaGEQm_F#5XIOnlX4AL z|Df%R<@wkT#fuQ|0&z+AG}2h-_}EKaZN4i5e*cw`%HJt+dUv2;p3Cexm};V zmfKP?Y%K|K6%;PLxShX!Y5ObRcsv;$*(pfW40`>Ijdg1W2d|^O;mvLbuQbN% zT%r!kaI^Kcp|eJP8@0D3#00U->{!66Bw(mvQlgkI^~QkN5Jhq_RV4!giD)2I2{}YX zgGD*rUUN3|5>7I@{R8*ib@!d0{P;)jyN#Cs0A-1C5-1dg)Ie<{4{Ow(Z$jgKO@2<5 z1E!x)=o}{-{^b}kto`K}KqQF*Micz}LqGMUFMVxub7OgV`P{iR6hb!3B=`nfBHjym z189WNsAv!{vZikYYY8e0qjfw8$sm0Ckv}bUwY%+SI+r+PTEpnK?YGrv&9XY!ZF9`F!3L$ZoYAS_|H~?Jc@4zQ27#>q~m?BkVmM3-;$%ub<_8cnGE_)2(B;09;6_K5W84ksT2SRDH@->CHw*) zM7zZ$U1oMrd@Nv~Pa>>Bbqoxo>_NFy0QECw!YA%Kb>GRQ*UoQ{8!@HC3=*&rQOkx& zQPYP32qJ;BcHu>pA;E`u)an8gh=?iLR0g!FLL>>#vfA5YX5wJ2^WKYiQbA3VX8MES z#S3SV&qqr`qf(XAkmoA%UU}u%;^K!s^x!8y{?VgHk1j9wmzKaDRSu_RO2jH;EvYaO zL}T70rYmkj2+Y~qqk;gy`i5|Mzx1dwGmU;tHBRb{1(?n2O78_Wx9{+d|#D>{KmK5Sm|RV&0mXanf=@~Yhn`5p+qI}4qK zBe|J)>}>pkdpA(tos|2Mb@6TS4f{x`TH_uad35~u$TA;Wom|B(Q1U;`Jz$UL-YHW; zW0c!0cZ|&Jv+P|64GyX^pia;r?!moYFXm8zKy0!so8{$rJX=^iw7#+9TyI?9vB#gh zba}(|MlgxMf)b6DnZ&XuQQ6$JYgpLmvbUDKo?S|8cs`jKXH+qt7er=zYxB`ZAN|!| z_}I~VmPI8?l6_a9ampbGY>PnI)058oxfA6-s9KPTp@Jq(w7YPbI6x?ZP=Liz^6?Kp z`1Qx1p3ZY?`oaVassW-=={hpI#{w91);|HEJ||$84~J{GTn$Eup&jN}LR;f%ln4+n zv%K71+ZGWvFeV1vh2aT4NTpKUfA^_7Z#(hOM?dnR`&WAwMv+=r3kfI+Ab=oDq-1Jp z-@SCi+|&fzoW{K?RuV_FR(rher>>)p#GQ9Y<;}^HM^4>(;^M}1R?JjN4Es8scBV?~ zKnq~F>Khe-d~NiFPyuSdM#Pr_(}PR;08&OE7Gfc!Nm}|Uu4f;-LP1b)oC;8aHE2v^ zB{b*_{hVA9hO0xE06)33HKr5-2*K3w9;tb9v=!tf0BM@e=kpkOkG+rfeV^xk{VJFi zKhrwzZ5*IY*kZ4V+1IFhg8omYbuBWmUzS!odUyxM*;@|C>)f4vX1xs#)Zq~*V67oG zJ)-GsS{`1+V6-5>3vX<^^7=b!6PQFesR9GG5@pMw4kBOuYaDymqQc@#sQD@k*Saq4 zzGYpIP)ujW8V%lfQ6JVWuD$y5D<8V;Q?q=sG|DIlq;)BpOeMkSt_}S`w4J_dV_=xz z?%U7wEg4_1Eg>aTpaH4~P)N{&hob>A)SeJE6dg7mIGC+*-8&U`h=^O(An@KQdc8i# zS5+xm5In;}E0*H+(Jxt(jH5X9UJG^y3O&p^ir0k z`ij#Y2+{BHUcCemh>enK3ccYLmZqw`mBHHNN^h`Wki2yE{I{OI^fM0}bpnp+E7H2v z>e6hovo)O;S(c?~Ivfs*q9}?&Rns(0(-a-7G&NL$?V z?IOpU>Wz4@2Ol43k60abU#QKm)>gO{Or`b+t{LdiqB(hV_3V{5w9H{<23CBfQBX6A zb?l*rY^zB?#xWbiY^-tCMQDu#VZ$0jHcdFbHtiuGhz}u@mG=dcYHF;LGT#&_Lp8ho z){}SLcINbnqaXahJ$Ia18D(Gra%2>^#|B~={k6E7fDlJNM)_-sovQ}vCO7VN4w@CJ zH=2zy2>J=i>>5dP+`{8D#?L84UU|Xfg7ZWFt zhcXIZK>#E`IUB=O##V4isC;zPgL43ku_m#i3RY550*o;=VGu0yJP2oldC*`|)jYHA z($4nd&ph{2_a0qNL4kDda9lipc6D`ixUd9ZXJ^Mb*UNgwn(giF_B~funYK8MYut;`><1uwD zHM5CU#TiS^IcqHwgQQDd79<28BD)4tvpF~$%A%^o8nd>xcJ|WF-A5Oa#03#c7F3sn ze821Z`){!aPk-XBjL`!OFy5M_hK89n zjzTHoLml2}?s)3^N3Zk5UYCTgdK6i*ze|hEAQ8_(H6slkxc4sp z%|C#!_+Twnqyiyp0HZ--lGGRrCL%*bk(h*PN&t%SoAxJWvuPt=*2Hb%ZWok9RaH-PI@zx9cyU&>1?4G&k-03cl$1Qx%uAtF#^ zRfz5##%@$lYTmXQ5-&AM$9w3^11Jl!&bkyfrDR}T&t)lF2&qU_MVv1gGO9#DwU-RR z6hJT>N`-NyO2TGdXWIz4bb~cBiY$icW}TS3mhDmZ;$R0LK=< z-i0m3lg-tZy_@;CI=_7*O+>ORYxnGCY~xDtfDeE$g2AQ9{40-tr?A6{vOtNzDp+Ad z)E#Y1QtXU%w(U#|uNyXPO%n?T*<;y7gtfamh1CFJ4OdkVbw~#1uDtuk`72YgOT^x# zl_*;P2oU-~0_+VauKN|W0BY^ydO#vnq3NOls1SID%ZBM-#3EjTgi1LDGmJ4H<%XHV zS&GMMB4uJ?Ktv_P$=}#^f}o6ndjLWNR*9Z_%qkcK)BM5vZn@{q6CeHf19#tfWYmw{ z4?#mu!qAZTVtZp_agbW3)H-68z_oBEqCf>lsC;vs=v>$ScJmr{sR_91$d&Gmv|sn5 z-AEkvKIY){u2U=Lr@E4+4}bI{Pe1-lU;`&rW{XN#5&Dj+f#!4XOCwQUDS9+QQT~Ix z3PG)qv&{V@o#ylAC>p7N6`|7kI0g$#FvyzWvPt@;*QYdbX{MH$Pz67q=iJNE!EiL_ zM>$tg1t~FtFNus7?Jq18>IW+)OFw)0jg2yjkT59|#XzF+2mk-<{b{fz$CVxko^#wi zmb<+zGvCWSkx1QrB{&ctX zs**}oT}{}5FoK761gvLxqC#o`#JN&BjUzeGLaw_CRuVL6K}ci z-Uttm6UV>vo$tHzu4kTm_Q@xoTw7Z^cI?=D-t(S7m4QZ{p67W`lnsqe%|!lkid0)> zcFSvO5`B0>s4iGDix00v#1I!s#r$n9QP+Nm-yYVtn^&-Gg@2$YF*B1j5LT>(Ud(jQ8J0Q%aST7tM=m=ktR#$#|ffCpeDE={D< zib!BQnT&_SLx&F?z3%8ew;%h^qetQptQpi;02oPtQDXvQrvMkzB?JK{qQJ9I5G+6h zA&_8+U4k>XZ4v;Wp>cT)2ls0E0ssi}8+*RbhS71JL&PW=Zaa4L!1Auuu^$dcQESeD zLI)T{y43<8o`PquQ4zQxMu!b?(C~jDbi$E|Jace2mjKwYAh4R*ShE|h`zVuqLUCkT zEt9siA{N-Yyvrd7lD8Qk2@x`~C-SQB1&VjM<3Nc4Fpge5y>|K>EbjuPNyIaPVnPA$ z-QJbGKS^I0kH=s9;upR5x7>2ep+koViG>4?B97y=wKea3tJNxsBINSW$jUEA(%2Gt zn=nFMVudOURk9eHviP!cOQq1*_7MN`GMZt1du#so$X?qdZO_@8bK9K59VZ_fwkq{h z*H^9HDwW_2iI5W{ht4Z=VGK_`^UU0VLu-ybYC$971p$PFgUGD_5u=bW02y6A^_5my zX#jA(q-HwjytmF*R=pgQg*G2ERvkzp0wgN3!2P~O^51#x_{#E)dm`!=MGVr7Vg!`S zSADqYUAkSjvhl4+3;;}v+!r=Y(og_$wy?zrHEPo~s&y$J#&NF=bP3?hDm?y!S3dRm zuj|hI*aDfz#O)|b1jt$@lv-XX)JUO{lnMMa5yv7b6f`|^ks;V9rlnpNd_LN^SPU<& zZA@BeYhix=9e3V#&pr3t|BjmvECCE4W*gSOD&a2@3AB0$iD}@ivkxr68Yp|+@$Z@r z?g(!jiP^GlC`oY8XKIs1xcTOTH{W>d3y*z2XO5EvLJ|-_g;At|JQ7c)-UnI{3xSjw zh7LqVR060Fh%{1_#O2u}d=S7U?F#^gVrp#;&gA(dw%s^wp;k&93V1*PAwUn{nb;FD ziW6Y((N$YZ=Unm9D=)ry;{5JC%Sgyv;-!MrYPFACcZ9z7*!lD4opay*_P5WUKY!rB zfkz&Bq}^`kd0rF+5iKq*7DdtT_oFBZK_Or@b;P+ESfFM}!e$l?TqcXhh6P|~5dX!a zNbX2Cs$rQek^Ksj+*J5!{v=Fb6h&I=@L-loE@DeJSpa4k$RT+k0XTm8!grqfVP}5n z!iZT1?JHH$z=a5b!uNov0l>tiZVVwYIQHzFc=pb^5ak;uxlR8A0RTdervQpD6QU@O z)E{Tx`rgy`-g^Dgvht`6cn4rEQ&6oZh;bGKHt8_dEC*x&=ubu}Qc;w~QCxs{VCNmh z5y4U}evA=l;WE-#@pJpIz-Q@4pU`-q^y(ipw(6k=Dku^X### zc!zE#hFZZ59g-+Q1}KUQ##3+wh@0EJ2)3V%2ifS{9d{gDm`iWG{@Af&H{5jd(KrTU zpqN4|KInu4Tm@_{rJN^)%)K$io4Nm7&sB3=yTLtpMZehu3yx#DusZFu+hK2W`yF>Y z{=J{X)XuWP=v06>*la}#NCRpaj>5*Pd;@e)wy%*OFai-)&8L?gC_w0fbruv1<4Nuc z@it15OJ^oYlC(PAq?N9Z#{@*6#3OnX2JsGnkvx(IWbgA=&z(Mb;p~01903pkGkGKg zP)hGz**iBkHyVvPoz9svX9k18lTSW*{P^+rzW2R{4CshffLn`X*ztd@x|sQl&9n*H|vU<72NW4s(TLuCm>&YV1vref!_; z7~*FnjmA~0-=WqK0|+9x#G(Wg1Drf{?)>V;Lb{8T@ys5$sX~s``y*mtG-;*FyqhJ@ zY{1rcKE}R$fBEsH7sDk>kD*-%%cmN>9;F%0YhB_TXEhI^lxO{kVIvuX; zT6*^b?|koj?>(@8Y44u-2p|)14(!w`X0<6YU&T5vWBOIy5hM*i=W8&yH=98#+^un@ zJO9P&7?Tmq&$k@_Gq8u7j@__t-@YF`cgjRd49YV)W+6a@pe2dhxks4{fgJz=hUsDe z9~8%C&($p>G!|jWm}CIOKnM)XKwt=pNwJz0QIxd0w#dd=rs7B&{tgUrWCVBt>BA_)9#kJ$lb_)Ea^F@?K0IDNP69wJ^O>AkD zZD#S?QTY08-~L6|96L58HJOgvgSBkaWZ(Xp?cde~jQXr+rZJ6ekciaP6aWzMNJ1n; zKnfKR02Ce=v;`7?^(j35t?zZ_m-^$3(k|x$;5qcl!|XXRzqn|vbLE}@0mK$Q%QDO5 zPgo$xZ(u_(tL&Z&!eJ#B)+1>tZ`E1^hW772bnfI&PM*CGwdTe-bXtG_Vj-c5Y}OFn zZrn$*A3z!ga4ZE|&}s~vIbkx6)VT0bq=q@3KD#!_{ZC$a`RQkW^3p4(RtIB` zy0dU-p*3fn8d*189b^tzF)0qsF`@3y%or-n!Ym9T2qM6m0EE31c3KdFRyY`}q03W4 z^X=%thkxl;e)-+E-Mq*i2n)%IOaxgX#Dug8j|C16B!B^Q5-htkFTd1-+5v4BeBP<) ztlke?bHN?9HT#E_xHm&=x_Uzar~r*Udv@J;aVYF43^TK2k;1vKr<*JMCx|Cp8aq%G};6n#dJJAckb-^`r0e6oOtAs zhi|&+=2j~mjYdhUMT$bG3N6&^OY_yhZVY6YEpjNAo6;I3fSoeg8k*RmI=N*v6H?Rk z<7YcI1#6ZaU$7;1ZwctInYX^BWGxNBuk8}b^`@%+x73YkR8s+};(hf#k%?E=F7^9; z$GrFOVOH7$tPhI|YyG4%f8oNQ+lf#qg3`ew6f>0qrF3xY3cU+Kv#iKx5(p&|u$~qM zKnxvfP}N;R_fP29Wbe5m%L{^toW8Ky?##>B|Jh&sRqUqky6?6dc4HN}irkA2UD;{+QI&+%6 z6b?j3CPFWmWm9IrP?aTB2Gl?wLQ;xQF#w^syvSrc5Xq;RfZ?8jJMO&o{=08~;J!Qe z@79TewbjX7TZe8KLq-|p+2?stc&C(BGiUF&c3g|Wy&jwRG597UG$eosD?Pa3h8w;A zdN)mgQUVlUAa;rYS(p=Lh|GARvTQ6Cz!fkf2b3yt;GJg?ajLmbKS&CbzGyyOPDO3spSb%{&5S_nx;oQXw$M*Ju{(wgy1k@S; zcP;H=&r3^7*4jMJhoj+iG+A0&Op@f~mtT6}g%|F;^Nx4E^U-6+jsc<~a$Kh8b$l<& zI~BkZ{;fkiVJ(%n)Ag#N*cQF`8e|ZW01!8c@UvG|w9ZY!6K{K<-;wONrFOa{g4c!U z`sYo#&H5)-gLgF_exa|poOvRxbzsXhUo3#=d`K^bqrqcee{6Ma^~PIoTReD3v?>5D zto1Lf^$STrMb>jFn62~Pc~CoKlt@THTA~c@W&avuWiBKH z2qGNXZdg>FIrJ`3(T`s|{s(`uYA0*_z&-cupSOVla+%z%s$fFP*4a$N zr0qc_-~Pd~U;p;g-~QqA=Qk!3PYb(NKt)zM*jw0;$dOtfd zm?SA77M{H;0h!Y7IKb?{6!r9|ddc@$fY~#XszTG;y zyVV~Rp?TiruHc+Vwc=F8;KKXMmSz5yjB7WzQzgk*ZAjmox2MiD?%j-P|zc2sK^5zW)fQ4%4-6GOhSNM_2pF? zD`5cVya*B~<4lJ6SecZxF|iJf+KK=P2t|O`H#XKb23%gga?=oW;JV!|Gml0iBs9jv zah#ZFJf3W9Y#^f6=Br=*>bZ00@44rm_kZyHh=EEY&G;S~Uz>%{I>d{J7rw%ZteG1% z>|TfU?WD;qR#0$lB<#&|fy=XEw!e5w5a05IxcbQ6d|5L|4{3YI+`ab=2MHbK&3X5k zPk;K8pZwG7ufP5`{*V87!#V`80PDliI4{;Gu06kJJk8s4JrYHvkdQzjA}JJMSA<~h z>H~1r0f2ZWMNnzRH7-->O;;abovH&s=wyNlaS@SLyEi%YqFI{TbNKqT;l)4ri_e|C zc!_`QBRB4CX)NEUdTMR;ud5C3f=nw{fXo!pgDHTfqQ3EsXTS5z3*UR@Cl@wGVp_@K z?j&j#B2k>$sr5*4+%2*^TH5Q7ENkyc7{q&EO1o{())obefCS|=4tJ@56A)qx-U@q= zLV;^*bzuMUz4zUH$1O*1zOLOi5G$}bV605Lg^n+*4r6VCCx=!D#)ycw*0CVHeXIQ1 z4erp8A|=G;&X{MA$R^v0@ThG37NoKGW&+WIgF$~`dEPoWJ)GQg)4|)XUwPtt=hN;Y zPhFIx>>UPQbdU@=O_P>tb?n^u(rUiG;j$^%!ukvx3$Oqn3j&vlpfcm?h8rN1g$02{ z2pND>Ab*wFf2mxj06aMGh4`uDW#lta!5_c z`rOpAO4@1E{)>gp%+iWSd!b*5GXvIt`putw?%O~5&_nm!bZFm0@3?=@98!h4 z2m^Qr)$XSqM-IRWFqTkE1~3))(etNXJpSrSubddW=<)BrTwsf_3+X)Rh_nGT4t$o0 zXYJT$ZiGm}9*8UpNCIL21rjyQtwA5Km(gI9_IiXc9QBiSlBAJ$HXDqxi?1Fzxc9ol zhiyZ;^cE28meG#Ctn4RL_ni=ycDdJHlc45X}mgd00l_84};i{Uc(O!HUU z|AlKUbFcJat{j(Zn^UYL@0*BCd4ad3?R7LSmjqFO)B#{T8ZRy`m?*ME;oR)zZME8i z!2keyz20!tS2~FzC8EFk-S2++%U}M+6EFY6@BjHNhgLrOnQyJ_$4#g!f@g0g`XKmgXm7YG9I!xzq+ys-Mh zi8H6pT|9C2{KhC-A5IEMJG*W~Olp;4%icM5zDz{CD1egdg2E_Xf|f4Dc|rX#m@VYE2kspe(VbX_h% zpQ%c~n^;ENd0f-MU20&ulJ9xrqbQ1AD~gmZ3MYt~D2~(}ciz7H3qN@F#q;w^hbVNS z0*H8K?snVaz0Y0FoM_$Z%~|Vn=Rv#>fX`Sg2oe&AMqsJI7N|7MgB7xnNX3*dGt;Vd zx<23L@(>1_fhE?ua7v8vN})z;#Cvz?(xr{{VqtkEjh*LttEJnm_R`YQaHEfi!kp*% zrpau4mS^tudgsoa`>lWTThBiG?5}?KR}btzI5#)%t)EV_@Q1x#Z#W!!kY2AhEpqnW zdEcN;qHJj#u0Ci>HMN=7H;b-YqJIb&^|wDO)9q#jbqk>dHb?3@vcqQO-tBJ)jd<5= z0@wne1Hf=NM8qhHilS(;Vg`djuh$D-kV2!=_4Nzi`R;fB=nwy--|x55R(SvGufIM` z)6U|qF(P}&G8m4AL@J6RtJD^B$vW$ux6XoRscPMgi`3omb zoxE^m4$!UHu{kNq|^5XnU~ZkjSXeHx5<(E3m^5G67V= z3f!*wPB9ry2K~`wI=|2xt*?7ukmBjNQ%lz$de;Zv_sE0y9h#5lQs^e200yI=v98h( z*(=TM*E0gB^;WLqYc{x3bnBw3bO>pGndvt&gcY3+zeDfXV5-W@xwP^nbLYDwW5 zv900w?P>cK#JLI1G$-dR3iMl`m@WLp9ix0*N8O?i(;VA7e(PeXG~_eue~%u$Zlm8X ziXv*5T4=3^)MPRSfV7no%9G#v##g@bm7o0hCy1)w?=LPbYNb8fqt_i>n4d>fQvhMe z^I|%gMp0BK&NT5e#Ue7%^Q~_``S=qD4jg#ommd1ium0-py$5>Y&Yn86w77&ZWm%@9u%XAg-?B7gYUJ1T z$u`exdsu`<^oJ_^ZKqL&EWXK~d2_XBwzFckLorQ8BW&J$<#LpK{>6 z)JV>jb8*fqQfW6y)0T*YW>iGX^E~MCudT0r@)Ljj{qH|@>eQ*Z`MEqRA-Ii=_1kW{ zb>IGdq|`8r0n7@WNQ@|B?cc z@|h>4cNjp;x#qxsuS*jgeBK)O-mI@uAehk8D050{owPaavQ-m7qbXWgveQuxUK5-i z63}iDb_^ntrm60zwlUS!L1J>Akd=4^qJ1F>W3DQ%LGVRp9C-npRX!M)*n@L1VoZXZ zX)2U+Yo|~3+VKqscHMc`ZTH-B*P+A93yUBEo&lzy7$N{epa~QMct>o(1L#P&?C+)5 znb*BJSj3i9-MB5T>EQlW3{q4TGBKz*A_5>R?_Ip*<|9u%^@_I{q7K^y18TVjNOctjK|TQ*RTBs>z>78bm{c=6(; zOP6MUf6QPf-pqo=*FtA)5tXRywz$bLEGMfG`Jr zHx5Z|wL$S*3i=sv~L^jQ$b@tNgB_Lc` zUe0s7w!Th?yLRnLljxh@eEgLY$3O7?5B;sb^|zQgNm9?On3xEGLzPd3AXOT!zxI^` zsI6bT zm%jX^FMi>R=g*&yV>28Kv@yM2ugIM?W;h%gqYocG+-h~0Jt?vP1;B7TUfbA6_AE%5 z!R~lEEFyu~y&XR0s$LqtrDhGRZkt39spSU%8YNi(K+s&CZvadf&ML@Qw>te8NEIdB(+kxSzo zL=I&G0V-2u4toy(FdAVriL^v0tytf7<4rf;aNQ#h-hcR@5`esb{@T?0Y}Z^1(1{HD z1CK6FRGLI8ic@g~SnIt9LL%hXPwRNomf{ryw{M6D(CN-8ack!{nrRe^7^OnTV7t>cS`#9B zZ>_C`J47Vh03|FlnKFA&$~m7+b4^N^H`dnr2+PYW>uYPj{|6ucvp@aQcRu>)2R`tD zTkg0cn`BBW^rbR8i?DMPRPkPG$mJgZ%|KZL^s@ur=^erz_{{}p>a=~w%zb-vY4gah zY-Ke&Y(zz>MxRV<*jE>Nv$#refErmX_^AEwbo9j zMNxPs-EOxiia3r}mRAC$7L~F99$=E$(byW+Uc`r$4&{d-BD;V!F|bsYp~00`!A^XS zD^RqluB3U#<5XpyEiwVTv}TPjFeJJ znNBrId<2NV48oqB2T(u(&O|{D$1hBX!R;*)cd*u#YgT zJk26lx1C=@RIhSq53?m(x31K`F8LlmyAZ$QeRK8m*hICsfr~MMLIjaWO6|?j7;ZUy zbiR{*?+4E#KP^Y>Vt$jvO~BqLjRE0MLdMsgOK6ThuW|3J@on*5NJ(hnEA7+)1OFwEM?&qB0Ip9^t5hZ#&GSS=#u+7McDXB9rb?oP zJqUUcan1s86q{22092%N&|y1^&~7t3XNw}sjMnVO)_R|@2qS?2FgXAPkk(hlmxrx| z3^0a$z5j{LLg3qVitwyfy>E((h^B2(W>zc! zN>q$-M*&iyykrCgvS+Zs){7S?uStoh3nR);r%N{|cvmK*1Y1M=Wt7UdP{Ltzakc#UTSk%GQbgVUZ_Rz&p3cJ+9|<9L zH}@O?ZQtIoGM2v}B%gf8H zv?U_W7os8n^a8mRpu~CYSR4ZblavpJAPm>=tZS&*NGTtWhzvAK*jbp_0}EgILCA=k z%Iru05~!aVkd;yzsmu@T6v88f5LnoI%g#F|KKI^Rwq+|*?Q@MdE7Dd^6+i@v6d59~ z#by0^Zl`gywm#AdJMAPg(KO4vcg}eMBAk&X`OVe{dYeZbXSb{JLe;xK zsAsQikjstMq;^=-N!(#?i`-7_v}R_{o;?T#55NjQ-(;8`VrW^ut}Ee$QYm&o zwcIGs$?FLz@6*OwZ9a^`TbZz`gIgVnLPQqEvdJh^CfGXXy|dOcBcrf1h&LsDzVe8M z`glMXM1V)0#d~kTEzNhq<<{oI(OTgy?%6wc*IjqsdCTqh-FZ`@pqoI%kN}_+XAAT! z0dkenn6JLynzO!Ho0b|M|Fc}r+cAvhaq4VV$5&brAprt~*Hob3rs@1yAT*`DUDbaa znA&ghETQrMdv?w5+qb;&{JA`zD&6y*L6cHisoCu+0^WN8&)$RgB20jwlr}m-U}wNZ zqO`X;Dg!umE(h@#X+s*2k-gZ$yNta>_5sJg+Ic`!N()Zis5j$d-tNX&KAYm`dXT{h*TVF@11ao)m)*S72b?A{3^!`TYs%;@N44fTijx6 z=y~=lY*;C2YCu(0t(+y#rU0O|iX!vb&wu*UpZ@eWzxhpP-SYC@mAxzdjee_@21x*@ zYMb?>X|1v>OOj;Io;{)Isjx)?pa3!pMNw$27@+if510v+$#}@nYXRr_`V**ngJRtb z)(bzEdQa0#SvFt3CW$C~5n!cqW}w2dxNLR~)lg@xcaE(EW&zcRHFbi_p{*3WpM7*N zGf|=mv<7sLZ(P#g;|SYr^UJ^T!5eQnbkj{Y?V8gG0y?l0$i`V5gA%7nkyc76@hsNo zF4xAWS~lY~7ZSdO@XH$?dYap6m52aoLaagtA%(_Jsdhha!`P(fzQyDPn9BH0uPeS^ zj(^&?(?Gy_F$edUd+)j9_^Gw&bkLgbXr)^1h463|7G|){v3M58&JlPJZ~q_bU2t!ro-WA zxwnWxdk2UG9D^3vyLTl`+haQd2st=FsHq5Z-FxX~nOYO{m`-w|w9y(783`Ds(`oqd zNSgzD_X5BVpZ>w|mtOkO51)DPpjubxu|o;ZnrDKiwlbxDh1%IFC2rS(Rf5E1tCI>LbSQg;X@N#=!XawM;ca$)zkxv z$MWgLp%}+pqPPvukf3e`09xzVMB6V%NX)%=o|!#6v9tLPi!=BLaxG6rz?EZ#B2whM zWfX8uX%ojLiVU!~(@{hqE_d0W9h=*4z2UZ7Z``xed+^~SrK(iUETEmV5LHVX5QPLR zgd|=7kVUkKpl-FrEo*6OKY8=VKid$0x%j4S#eDKs1ci}3pdwI+p1lgHh2^>o7yB(Q zvCxq}%T0C`Zi-F(B>zxBg2t2vU7P0RZNr1a=0Y{tyOD8eKF2uLKrp2dL> zfd@hsC4|aoR7yui$0}(%n=?BJd50i)M&%eyXjyt)^@Y$_Xc2<|cS%sDpsgk>;>8Cu zHUJ1ME8!1C7ScQmSxu3I1WzAvlcvu003I6@p$sx?|%2$XP^DV zCq8lCefPcl-S58j)>{{Mtz^^wbUHEGC|zmUiwL9C8SZ8Uj^=sQ?fBb+`{6Xti4aFd7b%v^1?27JykZk+l{8k|gQ%dLoPsG;f*}(<}oZ0b)U9WMp9Q07xXv z6y7K#(4}nWHg$noz`a~UjrfLTWXFc`S45hCA-O^`@0QyY?<8sDM}iodQ&dhLlmD z1<*^dB@WeO2|e45ssrqhS^oSDUEgdBAceEuX-$zW5 z*vc4fUh}sAjcL3&3LsCNy5p|>N3J`tHaP)G;xrl$>TRhLW?>e_N|`8}Z(WZ$Da3l*ew_0suA|&L3 zYxx0|5^*iR<(Xhvlf^6o?7e3ekvuPmNNC1S=W+*6S`#8pCX;@@|LQ9zzV*#-e)z*5 z`Q`V#>+qpN3yUkGjZ3xhpa27vt{{xfmc>n+_sdC)ZR%Ei^FlllhTc~%{&oFf6KdZY z+=IUkNQkgOLb?9cmiI~0Hh}JLT=>$LzWBSp{X5S+_uTH?yKlVy*x3tbTJ1IfjK^aU z3~pK0*#wf=wU+uJO<9()aJ$pqy?Zx{G$H-*Xfzy;Y81sY160!4-j@%W&EQFRGF|EX zMFI?>!ntcz6ZY%Jb8YyS=XqUG&$7%r7qCREE0$YkWn1Gm%FK%x0T5VlLR1h%N~!5^ zowR9nl5U*r>U17?#~qJ6c>jUD3t)Xj3}6ueT=1z!V0O-W#|A+GYC<5S$_1!Sez8ip zppnA=oDS_v>o_3coLPzZlJ7*3CQT)-BvQs*DIaxJu2;R$o6h48fF%h~==cY@T3yVa zZm?*8Y&cw4=7(BJy|8h2nN6k zj=E5}`49J}F|R_e^zGb&O+wapkqq{G)~+PX}6 zfb*gNfL7Y-^?F-YLY8IOv+fxJ(=(Wxm?0l=jvF+@vu{@ z%!|rpo#)f?C`EQ|6ab*otFq$9g{QbsSz!a9N;MdOBQ3EKU~BV9QCPIa?uF&+t~%3#OH> z>|J^GnP*m3R*Kab=I+G>(2JQjRdHn#JOY)_4OB860KioB*a8TF_sjw0K_CTl^Ic(i z`Q?{SzIyVjU;XNV0|(yq=(`?#@WET}yi<9fTbJh!0OB~#iX6%rBa>{))*Cg3ik644 zIe#xNS<^M7DWKeZcI+6O5CuV4YH{tYjF(FCY)h;x37Swc`T;;1%}tS3ET!?Z)*-uh zETW)9C#KV>GLeb9ubz0}CqMr2SHAS+XP)`tOE0~wjh>&I3wdt17NK@Zh@nV=D9kqa zZdN(v?1Wpb*2cz0l17IP9|++r{JdX)_0sS6$t;3^Qd(@T07Ki-mir@|9t5cX-s}`s zo;(6T(wgla+O0NJCD}k=_nwhMFI3elgIuo@thn%@jjjyrLKVY^1%Sm;McPrI<`(CR zEFYXbjjbq7lrf5Yp7@E8%&|Rq_`rh?K6vAeH{No~9tF^5Fp>nqf+`<`RG(|b+{ap| z3Q-A*-^OJq&1#x!>1~htSHD--jDj95@ZyGC@gF}bC%}{W222iO{4&t)Fdn$ zj%S%HRoF2D(d*)=Z*56`yAwJViHN{@BuWtW@7i@>_tFa|&PDTcBbS#gM;HNU+{uZE z8n7flnFdIi43rNoK@c7AXHuvXC-_P^>t6%-<{rBDXp7*@> zUGIAI;E|*4R!bQ(8I1y}PI?xs@#ipq*MU8y%Lh-{xL+2HHz|YWc`hPR6s2iOq@H}@ ztDpVsXFvU!PmANA1(v31QP|OFY>aNDsr5c!7anStEh&lu1HCd(EgM@{$C-D&-EMDb zq*4UK;m~>qh5(2Z0du%#D@St*+o@R)FOe1sMiW&-6F|we0is#wYEcvzj8((4P$V#4 zH!q}y405y4iKT4Y17U{1-vJOKN`NbfQ7)Z10nVwG0?ce?v(Xf?zV*XjdFKNk{NM*~ zzWKVqTD&Q}apEwkmy@&{gJxX2dZ=6ifrJMaA=;R=PR*Fc2(xMFNNWi`+slgTr z@?NiJt(}xamoSqvwB37d&a<^MIy}~gmsa;q#Ba^WC@Ke*4|`-MeeoF7{q3=r1(XTsaHaLS=cgVD}OP=bD$jiF<<$ z)2J;&(G?dmfruOQM@f=&I&DQMv;e?gIDhu|%P)WKbD#U#*T2^9_md>CSzcHaVNzuC z+*?ZmRyil^H;2d&(96nYscTrjKoxmmon2U15ZP3%RT@@TSDp9lxe0D>f{d^-Y=<(k zlU4wrm16dx#9FxpBLEmvh70x_`sP^bjgGh0`OSS5&CgP0PjVUS!zKuVdaeg%R)7Qu zNI`80#V#$jj3R3%qv3#kcIeQ`J-0sm{s->Zzk6wAB|(Iu0A>INO`rjG%qQ!vquGjT zp7pkI4XOzI)MIOKXDn5A0Vr6UgD^O9HrU#npMZcnA^}LZxQ# zWaQ|{?GsX&;If+KYjA#Nkq&i6K#w*?smJ*dFyPJWx&#EwVkuWjlPO> z&3LK%MWL2!ppwNRcBNYW&rxbK``y)s_O<>NG{V=L7{3u6x7WWNh5PF zr8}w;aV;({RdDy7echbA{hb?k3Q6V4B0?fmI%P5dBYF}C=m-kneD(CHG*)}}@44^R z+wZ#bmRoPValWJWc7dlbTz5rLbh|CBAc`PX;HU7P#+I>JI4t}JsghD&07TVAnYzcdTBeuN9`e=I4@<8SSP6&qR&U#x1jvB~6hU#Y zX94cN`^b&g?LG6IXYyhSCV~=!E<5;9JcM(R88NiV*z3%lDuPikf(bab5Ro=27xCVT zIFT9EtJL(`?A8TU?+FBof|S4rN}f#%p6zzaz7hgp_MLV+B=5mbxrznCp385m+LyJq zB6Op$PyiVuIAZe_IY5@O5nH&bFa&`)Bt>d6$tIK1`zea_rAuptb4ilS&(9AAgKs_g z&6d)w!y=0RNDTt(?0EUk!GyNd#LWCF^TTlpzlu?`5KEh&)BFIa4W^AZ3 zNFCF8b6ZpRH!M-E_8$Tupa21dea`HZR>lyZ%d-(`$fg4gb}^>C%bn|w9e((c2kyG- z=3W;%1_U4sMsiS1t^k0>vOK$eQ1xQ`S@pBsnUr5oC_%-R48!@tI!j!_BUK2addj5PLb7>q0M^4BOD(0a zHFGB-QmSeHCd|R!zG^cRUl}?>I10jQ$ACmC^gRJU5UHtS;wA*Y{6z0OH;EzvQ0}xl zQJPF96X$HCP1vlWU8C@;mOv_+wGQTZYQa; zF3)qt zM?{uVM7lhSKtT&(ofMYIJ90^iZEO)30H7!e&!L+_NM?Pi^^1{SqnoGxb>*Ccs6hM_ z#Yculqq7#BX_*6i7C-u~hY#)9b?2S8>|KJ5418e+(=5`a6(zcQlj$@g0VF{r4iXo? zK%mN158n1|8A0`BUyCygq(;fMycy5TLXj9ed+WK-0Y2L%nS!W^6l<*zX$O9b!oYeg z3-uEGs~Rt>N|bNPLYE9?z!!=U;W0#^RDdUsqpu&R0^Z~N{Cu$c zapFq#4G{qeZB$T+*abF2<)dA8QHHO%M02*zxK!=puo>Kt&8uX6eIrQ{Hk@VI?%liB zydO;_*4nxGxuPge96$c4)zvS2_H)1V$RqE4|N9<&_q#XY{@ZvOCEg#J2E$J-Q;ktg zNV)MgSAGI-$J_z8sWER>qZE-OiLEQF^R_6GUg!Cr{P=s{``(K$zWDX8KX&}(mz{S> zlCG@m)mr6wzR~YrbY5#6$8j*_7pa&sg z5b(}#!;;J1dgYnCD6I%3Y_V%Cj^HgFxObJpIZdRKv}eayeNXKc4H7DC_oSr z@F2P@Rg^wwTqV%}s9K#4C?X5Ae>)na2V z8=PhWGS$AJL|~}AyK9H0%Up!Ox#5zff`S2F6ae&qK*EHRjSDZv#@>AEjSt*^-#g#= z;QT_`ia}Y>6WfZF(y8~E&n8y9BSBP=juhyyPHdh7OSNVsxO~5%Yx;9HW+`33?pQ!- zHGwU`od5s>0$Z|rujHOntD}W-PgOEyY%q+mMhh5_fF!sdmiJnyp;rR`ND`XINGU)B zCt!VPgoLQJKbPO67GV|y0c7Ox@EA-d)Jcqvk6eG`v8T@2Nud+1b(~udAb22y@?we##@SdYk`h;8ZWK#BN^XnkbeiXRk>$=>=NJHDZCFHA zm_z7LnHBf0XcH-(n|fHI(MUvM6O9MMAfK8~GZ3aW>HU9Ct&@J?8`G*E5;9W{^z z4P}@RRFO~-Ad+Vvm@`T#XWe)*-nF!gnF0LsKmPG2KKaLg{%3!_y1EVkQ4~c{)J{6$ zAvTG#JU2HF0M0r@vXzt@5!o!~audV~P`odkgRSB=C?bJb52aLZ3Cno)Bt)76r#?;F z(`jzvn1Mh*5H|)HqH^pzy?IuONrj7|NF$PpG%6KpV2J3Mt2!++2yj@W9%fzW0KTFY zu`mDvSMotJyU_z_xV{kR1Y8L5NMIBKiz~9C7$c!%gN23kL+`r#zB{hJ>+ZW3=X)Xo zwm^r9ITFIcf+q#2FaZq4X0!=H5I@`3F;ETrT#4qeV_vwO`SG(Hm&djmVT2eq=ji}| zp``$jh*XUmzDWnAf(?e$g~amX!yU?jLFfe#9Mo#eTqg(w0Gc4sE<^HIIOm*W!4P%< zD!As&9wD-O1W%9^x$!zN@zG<~8}psql4k~M%e7U7lJaH~kk>|wLYMOl(5g}%4v&@~ z#^;eN5fgcc(q3$=v#oAX6l@C!H7fx?@&GK_BT1Rdhj;P;s__6GL@Px~S?_>M6D4Qn z03r?ggDlIk>9nv`N=F{7TWKt~Sr;NUTkV71dZTEzSql($&?YHyobuZy;v%Any6ukj z?oa;YlV{GK`&a+!Up@NhI~hTW*RjE7geyIC2mnD5Do{azH>C1q_-;gkI`|@D6el7+ zFQ(R7?`;$rA{E*}ncdgF@zt+=`77W1?o%%xKYsf3$yS;M1#?7HKrS!p$05`9`cpV) z2@l*E@pK!tbPG8cks$2wLNH zstZ*0kcNbvXFG-pU#zQZ)lFO8wWY}s0Aa1&C?v!nfWm-`z?xVSEAZA%tsSo{FRrZY zy8hV1w;wxn<5IfRHoaa4QLHV>Ib=|wHN64#1u3yj>!&fDf4$&#?94G(0ut6pBFLV@Wv!i5`K>|T z89|T*iGfU#l4?1CU3(71Q97A|c<+3!R2#PUk0Eacy{=O6o^i_qdIseaBS$7yCXNA| zwWHD4O(#%RUsd3#Hxa5z_NTlBt;!!7k?MWRmB3p6AYc9ZG3o zXNQ}PMue+QzcOuun$@#y?0AE1C&kaEfJG1$2@&0W_nl8a{q)B_{_$IHy>(&NA`(gf zk*T6Y2gb-|cyW6c7Kpr6fq1r5rjr~1L`g%>3&o3T)D@b()x*)cF(!`VBu)!EjZ8F} zj4qtN@K>Myi>ID``s-i&+PQNVW3A&jj7ZW=-ztnE`jE+5Vxsm}q2oc3;l=RwM7>f~v7EK}#;>3C9fYFPTPlAfu z8btASIGDfcXx-3w60OY{wAzQrIjvQ1bJ&p$krnfDW#1;Dk%?zj;2WxGXmg@^HXBAYId}>D-$8M zTWt}xHfQE6%bq{={O3Ra`Okgsb1%K{lhxJLJkQg#W3*OEM^V)7bn>i}t|b9RocX~v z_B|dhlf}RGjBm{nkVQy5`+S-irCLd%wDw%g1UV2%YZFCjnhrhJI&Ot`-uuEiW*=^U z!O})`cKKfG*ib;wRTGaTwLqAJ73+#p;Iudd2j~d1UROW#f%iZB@GtG(w`b3i&T~JU zWGN|)Bm&|Xyhme{yrlwCKj)*0>?9!IK_J+kK!s@&QKFPmVhHIn1=SFXLtef811|T$ zxWk)l{(8o+1SomU3qnBy9zDu;aiTlzzPv??FcxC2{6v z>TFTcUQF6WQB21}mrW84D(7slZW$baCLPDAa9%%5tcX(j@R7qWyzoLmeL`}m02L`_ z$-HxU;jIlV>D2`cnft8Ic9RR+roM&Q;GK3V&1f#6u2xGYHqW}^VljiaVy)}-dhK=x zN-7>#)RZPrF3ve-CL*mhB55f5{cUI)_A?(>2)h5`z4syxlrn~hl)~~TL}ZfZX)7f_ zLCo^0bvBB0D{e6t$6r4F(n~M==tn>L@|VAK;*}GpPMy-m06>~{78Z6Hqh0PtqfwsQ zPNxIDBL0hD=?u5E63|=*Tr&4dfMZtGXm(eX6Qs7xd__+bWGRZQ)lR*)0A<0$gGkj$ zD~x$=odX9>oDZDlP+AveFD~%CfVmPhEt!&AuX{&2U3dSRyRtr z>7Z>`<=|;rfVTjefGWxP`WWIkj^nsWNJ|V=0g6a4PAZ9ajTX~4e^y_Qc0{Y)TI;XB z_r32swExi5Wr)~JvFpeV0Hs_wAOKizi;CM5NB7I^yk0u+2L>;$I;T#;>zB=gTY{NVIj-1 z(Rfs3dABpC19)B7dJaVx>w3)Q2V}EsTW+D=*bK90W{x6bqDW+uq=aYo%+6V~))r!+ zWTrEMFS}MyE(e!27RKd=19VUdm9Y2DI|oIf3hTY>+P!e=(F2DL@4M@cTW`K`Ulc@167?GsJD{DQuH~skPJuD-%=X)5LOM}smUOf54cc1z0)6ZB; zl5VfCv{RX(hE}jH@HRc*uLeKe0l2m<&+|BS5CH=*Q0NLlMCKAKHm%ecuT()cVG#%5 zfHlaLqGH-ggKi(pN}8-liHLP}nq^z05NF0orR~(4Fugmsl5U%sP)&LH<(J>{zW06X zV;{3zR@KTmq|nmH0KmZthyVdnz>&=dgTZ(_(oqt;H=Xm|v(_d}5^YRm;wXyZ#KejO z0F}~IX2&9IJtI=Alu^ohKc0-oqtSEE{rIz=`wx#l_Soa!_~zn#XV<)eI$%c6q^VfN6G+z^B$Q?qo~)jT(_^2GR4QOw@UNDP;X5_V$^E2+pSjl z69N$s1Zy)}6h)DtE35-wZV5{Dj|#;qF?wjo|6Oi`e(VZslKK{40GC^(RoYHkoyd$Y z9@^Er`|cZVzvGts?>*KvzyKH5ru~6x#Zj*fabz|wO$dE()+I6uQ4q8MUsk&3t?g*L z7RKdRe^}Y+AXaIifKiA{hA2{66KbSTmm~=iapilxrNR9*M-Xh;SsC#)C=gdOU$RN& zZ2N370tf}1-Jx1tn|$%>PyE?uzIbWqJhXN#AGvsLRVDMhnSfO->l(fYg47h=O``z- z1`8s<0;(=Q)Xib#+0|G@p!kPEr`SB3X0dLGjzV59NEl4$i4dGo8Wn~Afr*5GFhUS0 zZ1cp8isLxO(BQ%Bnb~_m3TeBuCF`#FCqLaJzg`CwLUP_kQDm)c{@p+SXaD@a_&@!Z zd-m)(d;Z+6U3(mJr3gQp`BUf4ojrT@#g|_?bLRZ3r%$c-*Uz87w6U?Fqa?(3@0`+6 zk|ga`D@l^wyO)zBZMRx!5_MYbJ8!@BzPs;ATX7m0LL?Lc9!zta<=^?vx4-a(FMjRo zU%Pnm;>N}rv%m4!k;!!0@Arp;K`Tu=t+utczrGR2aV3$ftdh_hnp^I*{_guedi~1M%F4Vpz@FFEM+#-B+w%pAhhhSD;?p?M6uivXacTC3 z@)j0OfBr_T-C3#%d1OEo1&AaXmC|CAGKw@30i$45Wt|Z z)52?BuT8bVO|RU!vtMgl_(UslmJp}Y$#^>b$N%|1{cr#K|JD;&?-qCOxwzh+o11eU zC)0_El7%!rxw`(1#~=TlfA_o3{^a=!=hvcEJ68xqfC_|4bURSL&=KX@OtsR{E9>=w z@p-Yl^u@dGxb^+-dE}$N_5ot&vgtynlNF;lHa~p!NB`sh@;|SvEIaRXWW2?qC=4l+ zrX(N^1ekOd3@P**b5KCCp-&A!m@tSK1Bxh8ghn|6 zmne!Au4C`G@2-a)dhqaWP-BP~zyUbc0+DVpGGtx_BwU36U2$Br&mS^tBuUGb~4%~0BJL%%ZL8sg4_1Z<@o5j7%PP@Gx zBW?`F3%lAridNV8N6#Mrlh1tR2hYDU;Z&z>Fx||e2L;MNSrBa&$0}H`^w^+^dQ73@ zi)Fc3lp)fF08x|@(&7|=5}+c@hlLwwV>i{>kuW0zu&@Jm>@##PQ<3D=lx#tMgXd=DEmENvBXQv}ags1^16xK))qVmow zt&B;u(x^%w7z9XDIDY2L`PC<0e)ZK8XHNab-}~Fw?_Mat&&|zgpbvleBTqj06ckI$hQv-stHTYL4CmYF(f#{=<>C8oz3s-shxhg7TJsA44h(~7B7RlV zD5HbA{4QJT5I^-3S+H+#gq<#LQ+CE+xICb-k%tr1gnOoT7 zQBS;htXOgY2&#PiOMoZU?8q4q39&S^(%u;*0M_#q#gZ^F13Cg$Q2wig$Ab$n?89UP zE~oh}0#oQn5diky7MvAx3yTgSAmacnE02Vr0U5Y#ExJN6PDB87+Df~f?&`)G1j?!3 z65MICBu>2#yxN+nsdNaUAD)uC?j+`}_9o|IOe0&Aab^hbyvbZBUwM1t0)Z z??3UW&;9-%lo2EY%Q-3M<$I?DMSTAgc`~=deTaW$QTp8t&6&&$rM$j zljxOKPyO%z{txEo+8_JdA6;&z2vE4<)*Ej82Y>$`eEG{?&azA!702}7X`csz1?&ZgqKXbXaE(b+%+$K`qvGbmtkY-Xy zXvG!m^TBw~iuJx-bKQ99SKj&P{*_(FZaCWMm~Ic4!8x$rCqLEA8d$Btq@$K7{Au3k z=Wx_ct+g<6nc(^v>jDwAqDYxoE29vJi2wx&2#`^z&eqHK+(~}mtviFwPG(nuuf0J# z?A^P2gF!x>x?02o06fUJ$dXp-P>-hYo$vqX@ozo#t?&Nu{Cc+M;7z$`LD(4dAu?oQ z4oyQ$L9ncOECF5*GG_`D3n*X!Hs}*2DAvk|UFM6N!2vP@Gq4i&!b)5x5}Aw5oQ^aN z*ES#&4AC(VumW${*?cenoias0N~s7590CzA3n~@N;XJeFz>Dxf@ul+YW&n;%l(tgX z02HWs5hUO$Dz`MK=)TIf$+K~PV_{+OzWeXH<(6BXd+xbxI_)kl+37?v2$f*S zj4&!NbBU`?>u1=r-Vh+$VQ1#qUHJ|VS6OQfS|bY=&VwV=5s-iouto=xTRRpzZEL>k z=A*yz?swgN#|;Zz=tST=42DpQSs92m8U*AkNrGHqQ8l|3{u&Mpgy~Sy;F7IWdYBLz z(pqDzlu@Xu?1n2_7%v}7Un970=3vf#@;VM0s=j%ECi4DP59@%1u@oYP$)w0^0VM6Y zI5yF#)!}Eq@c1V_^~HiCD`{_jX*5Bn$P>ifB`{>U2#x%p3AnUAu2?-3YExJ~rCg*{ ztQ7%@pW4wn+flcj-g4Is2M+E*^21?&b@kGPb7yUqPsbydO()r0SC^CAUF{4;E@PfNh!V>lpZ(DX}8-2aqV{Nx+B*efB9u? zi~?kV>2v}B3QC=DB;}oRo?Rm@P_woHvrBi`_J-zaxvDF}q=G6szkK%m|KU;mWFMRR*YCjh(S`D%ypB5|omPwm)7cUreWlQCt;>jQbGBMA$T9e_% zbTTB#Q{!*G`N)G0+;htTWkmV`oPy(jfGMXMX&t&-};#@;Cmj zRT4!Jk$UvecV2hoy61lUqfWcS)2UR2ecGuaag9(r>df6UgPKiZ6h&HVMWmDp(%hFn zU}km%Lcm19%v$n%-05_dmzRzlyl(HF-W|8xc406{*x~E%n-Fatg-ud zFKE3G!GQ>%$i1D8ye&XzeZyY7GZ$iJnM~o{S&)Ai@&NRv!#o*sy{~r zMNvpmL{U`sQXwFM!DwUB7m@zP@X(R#CLEtRefs>V({`Tn(S*`;dC$tFOP4BPkQuvt z);^Ey!Oz6bL;wjy3kU~WXcM10eeQ`TzxB`l{@Ew!4=* z6{^H<0cev0&RYx*mk1QqNjH{e0zof~Fm(J$rLSiUnMj!^@+z{8!`yz43lfOywaI0Z zX)($3ywmC2eDnT0ZoBP(1P-@e5Y%{*b*_u>pWA zb8+07PvGSXldnDY_`m<7PYx%U*}bndzvuMDf#5u;7GsJOg^H^pjY-={2DT9AMNomR zjVut6#W4w?11Sg!CB?;aCwm5u9lPm~2k(CPf%}#gk~o5FY^j(U(~b~9QQ|=ydzJ!4 zgJ`W$lhNs}1%33$%Ds2rXgzp@i);4c>e_n0e{S{sg-ffiyn5>V#nnk>3(jpJv5LG% zB&m^%p$O)aA`F}BtB9Co`TW9Sv)%wz5%t>9&(lg-XRULg&$Bt0d2Vj5-RYct=45Me zf2-As<`#66NJo3-iH&I#ui*EX#8 z;tB&G01Jx?x88c|bTG=>-7Pmpz1wI&+x)XkP6-jP>|@&LdTM}J8$vPKU|#)=0HP&n z)>;9O6%=P)d1by8EiKG!h zfUA!0Ti&qAU2XpA^=9ka51`Je8=No7a*v2hyISiT?yJwe_@{sRr=R%CPkAlSnrE{x z_NJ9Cdg)niGX+?{1&)Cf1rY-S62&H(jx!Kxw>r*w%MMX77o3lyu2$aV{nf+E^Y8hk zdmnwrU55@W&(B2&P8_!sP!v<{03Zg9(_%KOgaA5pZF^x5(ufKH5nBu9y2WLO%M#zX zHip&J;b=Hq>ko#*;ia|J{%ADHCe!J7GIX}nA;~w^Ry!+;VXGpHr8JcUad13%_)x3U znP!%PJj*slI?`Rl)pY`2a2#_YX!b8~a!@g!}f!{IP$ zb!|Rwa=?e#aIv#6jwgGT7S=9&M@;A3g-bTG2o8{tX4_4Y;5V{Kq^x=5>>Oy_>viH- zcRTah#BB60de4dwQN4QdT4j_%vT02`Cxe5>2-b`KssQj8}mSfxnC6UTbjvMq8o z&vD!N!t2~1ZGZG~)wEijpeRLwB;y?~E-u_~!wrMMptrbt>Zie|D!}U3Uw4GQ_JeFX zR~Ew*+qe3cUgOE)8y?$ZdSiV`X{|+oL}ZlGM6nL7Nuk3N zR7G`aDl}0gyTqYNb(uow>(1O?7j*Lm8825me~pg_YlsmX*eEhe!Kn+=C!ToXU;nTF z>x<7n-`TT!lurQ?j}bxSA!5*gN@o2urB6J7OvjT>s|7-n@xa?cnJ7x)B#NNj z**N{u+8EZc_!N&^|_4~xQ1vgy!gStPh`WlyAp?WPFQO1sl6%Zn^+x0P1j zJCTz0Jo66qT$#7MtzKj8c56JIgfCz^ef7kv09+JBqRnjCDCL0>@%rnp_r-r$zi=s= zOeD)8Df#|eI$1VZ&;iVvfg9%9hYla`g}t;Y(}`xE3kjl{p zYN~tn8RfU?+JKU)#yYRHNn2@TA_3R^N8|xR& zfy>gl*4=m9_Rzie{OTjOB?N$A9gz1*2?%T9h($9Ys+s+1X{{rrXn{1I=yizyPsw|8 zG}IiS@jOEXBm~F`Kq)dx#ad}9BRf{X)>p_(_+z?iZ4kZ9fA4J_a&>!!En`bGnn}b| zOU)w`0!akVK6m`z{k#9|t6%-9bGEazG#XDqMG$n;fS6b~G!QvxSOa3&^Wy=S%6}O# zUs`OtyvVb);b7`F&fk3Roxk?M_rCM~>-WyX#zi;cY-!h0;R=Ady_f0(o)Mn~nxDlu zQ@gDHMO3X=6#~A1f_=NKtOw`7IcUdGJJ!-l(AoJ;yQfG%a*@r+HwOW~mAxy*m|#z; zjDeun7=+-x50YZ9E3$8Y4!n^%4H90saAE!8g(!(DO-ew7$V5S~@WvZ&YPI6EVPESc z-zi*h@c01_v)U;G)+)hVA0IXv+!c`*r$iJWvyUQE6a^6>$l~0*QQ8xM=O7UwThFn+ zwdnO`5C`M z0`SW2`G+6*<=bw*>By0T32~wzR$w$(<(Uf*TV7lwCLkhYl1;3tE!U%7>b#T0-e2pn zsTB^G>a+t;ksxY?qDrPCDJ&N%ZrM+x)Mn0CIexy`GSWnNLQWTc0zf+Y%41Lc>7V`S zSHAKUS>5OzKAh({Km?!x3`l9i$jBfL5Kxp<%A&#y=m7*kTCH?4>7zie6=#EsT1i`j zj^M6`-t+Ev{?fg7?n?+ZE&;MNajXo?@+Tn(dS0Qy^>STDvMELg0-$067C{iL00F0C z>nmbQ0YbuBu>wEtZ=`cQquI=s0Riw}II!0Bdb-o@D5V3xEskThGgP`v+vV-H2p*3o z?RG1CVc9wFUw!q}TW`Ou`5FZ(XD1@w?xd{L4s|H!VH4uJ^FV=DPrRy$ zrqgj@i&&#p%G;b#*s~@xby*z8p1ITMC?a)L_N_ll%snupL?nu$wA~^d<>OH+>3Csg zCW5ieATLsb5=CP_ap(xZ2)DHyI(F#DkpqX1?0@vp2YPdmq(BVA)sYyYL`O!Lt)LBl zoP-g+$;INoUP(R8oZ18hf{rl}k^)Uc1eyquG?60ESR?F$&9)?x%V$w^xsZQV!TpV7 zXRrTnuSCn+l4ml)a5(JF^`b~Q3l}f0@7c3J8cv<*|J4`2^4Twb>AB~gZFLr>DjjSL z!Fp)5LB&9cQn6Bzh!?N|N@}m`AaoZqLji7=67#sdcq-F)*+FTM2A;^IO!%|rx|rdigo&Y;&+ zfPBqvv)6TXwN}&VbYWq!-|x3OopWc;e)5x_yz9OPtjkr^5=;OJkVTdj7WePl|AXgV z$yr+6h0H-Q9xtryOWLXTytcMlJ+82p5J8wFJfV6_D1+gK^g%=r7!X?RRxurUfQ9+_ zR+2D#vA)%ca&OZ#Ma1!F+|pWe2`B?>-gsSUvbN908`TG|44@IJPUCVVAPBAju0L0%A}(D1=?T z6vYFuSf>N^Cdg}$M%E$%$ZrIas&?dC#o&Iiv->6v6Z*XgKGB_)PSjS@R&WBHa((ddsqhI89Z0# z^IS})NC;I&CZZs4SO=Ox<5q20MAS+<>$K5xb8`SN9#5vzNgB;)?>{TfOp>Ji{zkvQ z(d~9yoz96@Pki~yUw;0_&m6n)W)TiCnt`>_4qTEX`}XZ4t&NTWXl|~zp{CvWxmGJ} zwc1M2`STaJm{xWcu-WA*oaWX8AOZ30yjNP!&CO|TG^uu{jQ~VyGMR)u&Cg_Vu4Ys$ z{<55~Z|^=$Bt@Z>_TG7605DOsTSfV}zjpC-A@Rb>{(B$1<(&^daKrw+2RhK!P*|{& zVre0=j`L#boJVD-(&4Q7V6e0lfl{~i+TmIKd<`NB5||{Q1NNfPD6JK0#F^x5@W7PP zKkto?YdpAb&EmKCl@O4MRpyKppA~X?z5m>^Kl$p{AN%50zq+`4ACU5b*4b>DAqfCU z5`#`n)G{hX6<6Iz4uAk+073==?-7IjJ@8RWzNAJD$p*wF`UW#Pul1fw$ zf;Iti^Eks#p<)LSKxtPVK5)l##Zoe;ei2D2-`Qy;!Lp+C!4a>7(F=)?fD({^CbI|% zA_nm+&py$~(W6Iuz20Opw${Zaf~y-*I06g=|GoStJXAd5} zP8(hG(iIRXl_b%1*WW|&qbSl*68;w@X$AtkrIgCed}n*4X3y5zZY$Zl zyqvaD>n#8bvuUjLr3)8}EYI`2ZOq%?;rY4-hL%)?h!lD_Smf9Z$BZ_4o(IJq(L`FM zq}NI_8?n-J%0OJXgwI%Zm!{&4i$zw^I+;qzZyJ9~D|b;pVvL})sl7Q-3(A@(S}>mQ9D_@yfn^qv_;N{^U>I^`7_M zdh4wsOsKqgK_oy_xV&!#jn+Ey9;bPpS)UbFlpRmk`ol4zO4IgqG%hXTNMR-Txlv$oq#SiHA|FPJ#Nif;{ofc0v5 zy->{0QfcR!87v|M3`m+l0R~820Y;i4RT2kO&0(+Z;xOJUVvGJM*eP$~xUzHLY zc0y9gTrqQ==ZB9RzVXJJUVP!jmAxxAn_d|97Zw*!o;=w}TiTE!MMT*oXYZL=>0nh< zv&CmhDSR1~KG`XVHogx1le6onA~l>0;#QnxS(>Kf@kjtpojUdEtFPR0%S{MGK-P1t zqyA)ITD|4v<=wlM&piKp=g2W;*u8t##$ePIH6D)u5XoqQsZ0Z+NdloI8wJAMg+dGx zEa(FNn*hiCeyh{Ebmr{dJh@m2G>Z^6)C^Lg-#6#ciJOF&@4 z7F&ZisEvY1kx>`|dhl(h2EnoHJKkxdjLrKC6>Pq{woi2Pe*8Je+_4%!8WFvKV_*-Y zK^e%$@NfUk?|tU4{_5P>v%6OI_6MWUnjHiO$xuU-dAx;G_f!P zkZ`AM`fI0&?aETG81~PdJAcoexBce-{lB>L#yt__(|#r_2~p5gjFf_zRu==K0s#pi zJ6-8{8A8CO;Qku7e#6QV0RR<=-+pg|ig{BeSwgrs+WgwD{f(Didg+;GezJ)V{X0fa(qxK^vRr zKx9gKXnC><@WO=)lkvFM>4Mu~qw`a^gS`of5g`)p-M8=f%P;FVYPZ|o`+X}bF1I(` zeDm(zyHSy~7C{4rCS(a3{{XB(OxeGzffXZ^bV?CL#2x~v5{OFwy=@on7rn{ojgBqz zQ)#g=5o*Fnkx>wl(ule=6)m*_>MzRi7R>WC9o)IfBE^dcdMQMZfvn|2ds|}*-+TJy zfBkQN>$xBO`25LNRkypb-giX~CXTdexXuNTqWs3_m|USe5MVyd1*||Jz;QR3Z$-r< z-?()4$iC&j`#0YAo_9ZTcv-D3UYxZ6Gl!Jz$K2d)l(HvVbGl9X+M6SC zWd#ARtyQx9)0>_oP5;tI-}&gX&p!LY3(ucBdv^Ek-H15NvUaC!ibxydtktNS?^2!M zCig37czC|vF(Y&l0;r-WwANbdtjGfF4gfD7KORnj*^!QNo5v=eFf7jXdYv{zTA{41 zUhK>-rLpPE&#(127y(F((k9l{+APaBcM7<=1OfuQlS{YK%4XT}%E}Gb9}6c{&)C|< zO9)_;a^7vLqP!hr%M1s2jYw^5tk2KSFYVb40LGYer_bDd=UxB&pZ&8qjtg%~9rvp^ zQVzP&K#c_!zOMhgG{7qlpdsLczfc+X8yTDZha2ApLW@E%T1T3UB88#=5T%}Rx?EV_ z`R4lRqy9A=+^bVY&`4kqD2QCnEx`FceEthx`lCPj7NrF}e^ zbh_Q&_>JFq`Q_uE_@h6z&UL%p(P(t((rU1JP+B2l?Kk_=9T5>SU+v!#QApm4qR8_+ zPLn;$%V*A<2?yYuk2P9rTP78Oxpvfw6e=;q?N-Ma8jnWf5t1+?5Q1YnH$OL-^3-|| z54Fk#Kw$BcfG-uAtN9ZFfWt?Q+;!KTB0yNS=S-(l?|qUaMPaW6GByzcASeO=_T27t zE?&GCMUmEOI2rx@fA|mLI3`7*|Jj#of_&YsA-rRbz(A_>F5dQ=Fy7wgte@XOr9Vml z1qGng<ZY4hF5cf+GvUb^1^AYqLj{Ea)0=T zfB08_^;fU_#qBafA9}aynN#OPklFzO2Gx>X5z3mXBs_{k4GbmcE~6tZ)9UQp#E@B1F{bv;cq+@_f2y z&mKiI&ZZ#@r>#~2PLqxl9N4oYqm7O8uyQy>U$hgo-d}6=I+Hw$qG)bz?$DvV-WO-j zojY}WAcX|(nL;dVCc(i3MHoSmR$3FZqjWW&96fq;d3lZm6e2K_01^!bgMPn%Bq3nQjMdu70bt;|wDPF?s0qdXwqY7^Ah?*yz9SeZTU-4}Q>lwz&f; zOC!j@$bbqEocEsD`>Ty1n~r=F1LRtG%v~#E*7_g96ng|fL`A5Hh=_ng;nWz^#0sd4 z<0#E5(SX4Cwf5*g{rq2h!F|)1NsxO~3rlLP4`2JzHy?Za@u#2q!HJV+!@+RP z`@;LI+iefdocG3PqoYXY#kBt1q}}%33p?-plZjsOXB^b3IEaLZEHW4jk|ZIcS65d*@PQBf(|`I;k|c?e)Q+=R3tl5mIBR`SSHC*L zzyCB|$H1V_8=Ov&2n>#S zI(F>fyWaKCKln$#tPs41{@OSq=_DpKzbvL zrffc*+}X6<%534if9Ja%z5UKRuD|iq}28yiU!x7#gJR65dOosw@p z(+1`qve%M7LuE^yltSmPap0k^GJMf)wMOHSV?J=;zyl9HKt#^jrmGPlbXw-0{o{}R z&Am3+2MDc=FJ_;ai za>c4o_Nqph&!%pB=*|ED!nD&eCc1d>;x9c#opo5;OxW%hcXuo9?ykihio1KEl;ZC0 z?oyoM?(Pc|ceet?t+2qJea|`9_hqlWcK(=bCdnk3%=6s8`|UUQ5&UGj?fooDZ{owq zIsf)%@vd+5SPM}&J5xaE2BHefix`a-zCVVzHk@-);ZpI$#L=l#CgCa2Hqy}?Kk8b8 zieYDN+Ajs_&-QkXfCVDk;J3{F+bT8x^N~bT10k;@{g|N>eUp4>7{+mqKNt#UUaOxX zs$1cRct>4-rQ_d9s73{oN%c8WLYPa`&eQ} z{5-o+f*Ic|yXaUH{&Oj9O?jUJiyqsDCA3f6u1wT-;e08Z+t=gzV{Kf_<6ebd{AI>P z44it}4}QNc6!r8FA%vGZYcJ+*PA`WjZT&d;`2!)LiCLqI{6vwa9$P`KNjt9FDg?w7 zVE~{Jig{0v;5yMb@TN@|!zW}P_G5Mzychm>d$w3HmoF$xlxXUGd<4-VuCL?F_1n>} z+wrvMg2JHX8#S4D^0DotV9O2akvO#~ zY?+{~Nd`B0ZnDupW4p&_iR-E2m(n#gp=D(|;rEWSnMS!_$uo@F{o>!Gqc^ z%q}CjQ6|kmjwG2dNFJ-`Sv9DIGdTug32}&<;G+l}H4=WXK_Z12PC7#i(OR$oHlq$N&}I93 zzA1RE{~rN(NV;)h17*yW^a@=T`4ufYb5I~x2xY^IDse<&Fupm>DX~kKboiV-oVgL`u-C>T6isZt?M*2PuXt_+EC#-tz8B7)+{408zbG)Y=J_8p zo4%xqzd}%yNA&TUV}!Nwnvg*bEmn46Avi9C zQAU~x73-;>_c^LEjY{e|J3HIIdt2YgsOK?ZGw^*i@EtewOYvZFZG5MF{dQ2$8ml-|2III1w24xnGjYTY@ zn5+SbP6HTlRicKVomUcYg<$Q=Uwn>xwRoGGS9^A{zwV^1>YT74UN{c(*sIWsB^(}y zkH*%727)2{D3`$J!5*ganpK>zGqc}0YAHMrJD&2*9Gmw| z7r_Um=dJfYFwZ*;fowMNuxn7h8rnND@$W3oVgGLb4|{hGLO%!*Qq1iHIL+Sw;{>=q zZ-+~jrpc3UqsUn6ZhR42LI~(7WNhSV%VXlfi`-xYaQHfsH9rGuc`hG)>^ENjleZ)% z`u)p!`+52gXj6{6DgA3pc;|vsqv5d+7br3SvUIp$2_ky0t^h`eX7u5n!g?9zr zP96>pEON@DMt~Z)Pyk7^OPJNw;L%T2v%6+X4=p@(0=TC9uf3ky5B3|kwp-~cq%(T#`3p`3@u$X%b zDg@FKFd>L(k4NpERUcAuDnh-`$e76*uo^tY8dHR2NYPSq;Yr{AG!DqxzuOAmiXQ^~ zyQipqZ3cB5x{&-1H|O3a>BV2t>;0_r3}dmBNG-a8;Hy3<8Ew!@=4(K@6)}D4AOLg0 ztiT9m0k@J29spw%~pk|EUZNElW(oKh|$LnUEL}c zMsQFZKV!PI8fg47to5j0bu6>5SQhg8Hv#djaXq?8Htx>wiJhhxz0EY;@w`cj$`Ysz z$Co;}g5r7_zNNWWO?$%CTC2piT&w0_@-#zG5OK?LY$*niDyzMmB7_}f??@a_naEoSz=9T$p#Q$^uSAtr@VyHN z!g&p-DU+pSdQI3_%*Nw*M=K?nk;ybSvS<|IR#GR!qU6(=C9&)+<5vFjNJit|`UV!> zaXm!iC+)oI>g?>KQ7G5XC^x=t-v7qKdZ${^4M&F!%YKk7QbYhX6u*xcW)gVPx6Ejt z8t`t-{e05+=4X4`vOb9djq?jv&sJK4A(^jHNAV}LMD<~Z76njQulqYABEN3g@8-oy zacwjD_WJ4BzbhB5X8}EJA-=yyX`zGI{q~jmLBjoRZ|R4Z&Yrd6|G@3fCvz!AtKNH_ zvz?t<%bQ)GN9cw|Y=C4GpplS9BFOABECc4As%x^HugE90u(5pi#@rIZG?AvNWP+(unJLmFM8ZIKU0HWRObGm34W2I(7o^4hP#h~pND#XGdghJMsNiU-`>tAYx%5*XsERR0T zmn|W9eJsr^)Au3@i>=GYG%CX01yD)by^S@;25J!cW_!EoZ?5iI-VP0hR4 zy2HNTEs}$e5X9dGA=iVQ&F;tawenc%z8z1tGQ@q?it7vmA$8J9D1XdL z9uY+1NhQ?O1d-~uuU;IzY-|{`uL?J{tr!|~-A0f=pi*iDLal9GK2H9kbN7%rM3K4a z68R=onm>u|HDYb|qf=)^oN43;(n#=ZlOasan;S%gjmd#5YDp!#&q4MD*2awC3CkA}_^T<{(Z~ z%hv<{wGDg+)(7l8s4yRv7<}g3QGdApdjSbh%3b*bvP8`B_TLA z<6>1-Fyb*+G_xeU#<@IRv2tq0b*&u2r-kcJE6WcP)=%lw%P-e*{FSA@G^h}N;tY?^ z5lTcHGg&H5s$8*%Lclk@pjNS{`92mNe_|y2F6kyv<2XG7D%+Xb*w|>KmeU^I*hm(c zyBFc-#+J>Gp(wun1}IuIWU9bvov1cbmL4JYrd)r)WC`2*Y!w%Mib-g)56P~49wgBl z3?^N($F-=w7PZeMbRhX7I#%)(s!sAytk8wRx~5C{5S3N>U?Q1@DuK}_7^rbeD7Ab@ zGJLC@QMTRCW!iZ|nQ%Bo_*_GEVv;6Pzj;PFseDu0@3T+-4tcXX1@Dt!>YIu;_I8F# zMJ`HtGTNFbR=8TXcDwIePd52p`>&pgKW9gN>H&|X=IhR4WMpvhVFbmEM#Y~B@UroB znix}HGxWe)SgMbr*rSG3za0NAV^5td-JxryaAk|$=2EEc%TtByNOX;J`U0rw1QoHm z*O{NrthTNz5tJVnSt;~fned8vZfnEtp}o#L2<#cGQMnipRo9&-G_6ytfK$o8IAK$w zK-LLcNQ`aToB?2N^}wHPNraC236iNyHyMd}P|Y-sq@BLRSGcqliM5SlV~v{3S0c25 zQ=RaOR)8U{!1AB=srh^;Vjct-2#aSe(PwI7sjnz}r15$3=P4|gsN-MajUA=&w!;|* zYI~NTBR_v#x0Ij|Lc(UWAjPJX%bQ@ynhj%U^IO&lS-3ZxCs|(EC2~@$eLwcO0!?+w zmK)Wq>zWla#1NQx?MI5gzqo*BGe6E>PPZ4ZvC?x5*Ei}~bk*5p9B zg~@~_y~TOQxw>^IhDm5hngCG5Ge_HXsX!P?@BHc9vT?7s8i7K!#C5U>*af&6!t&0E<)DJepTYTSkR-P&;{`npnz-46)eiVDG&n>$M4Z zuj)piQen+=MK$SVP?>|JB|o^s!P>+BNL+}FKJs-=bjK29uJ_$fdrs=nglG!h6}DAt zjg}2dRhmYK886q;n6wk)bm61zW9DY7mX5gwcVmcU>MiGcuN!K(`*#MX1%yqgAW^YdQ)zsm>Z|K7iEKTU89AKWFBGEX}x#tjXdMHd+;&xxB}Zg^Nk zz@zL$4kSd$=TTE>D`Jnc!MC3Of-hFbpg1SyQ~<)ulxG(4Zu^Oj=IHy*9a`j_c4CdC zDj1>BC}6KMeR`D7bD}UzHMU0R8;<)r}V!@Eb!8AGexg_zu~_BL+f}IYyE^7e0~5S$vO^v;I-T z4;=YBz2JLIs>^FG0f0M@n2i#>c_;sPQv#o3eB5AsaGV`kV;z*|N4;Vy$V=S-ONudF z^*1zl#gPC;Q<9O^oRoG2r#qnUju-pmJAo(B&)_ka4qossu0 zRCmCt(C+XlWkaksN_eQMremx5o`g7!DzEtsAeI=SqF;Y z`oOfP&9euu=-fRMnwLg>)z6v|I^ne4Z$*id8XsOCf0W&I2?)nDI zoC}LRXagTsUN7y~@RTD9Wa7Q^=#%ob_Gr>emCD)e@0sqQChu#P&8f(77Smn9YoyTv zlx@K1SS&RzN_@;ECa#ioQNKp4?yZ2O-m|~cV%=@0AHDrP-u~})6}kAwR<=jFIvF}$ z_8PFu%zMMt=MX+@2YBX*ULu#`=X2g=?j607=qg|Y*OX5 z%ueVG7NZ1JLb$Jz+|;Dkk0+M9ox3Sw5|3AsZ9K(1Tp7Z|HW#nWO)-#R;OQCt+?LP% znYzzkG~}7QhxR|LHJ8890JL;ecIxUx7U@M;S#ZP@KnLk$ON8qCH}0sO=n?5=&50K< zFF>QWeOr6?1Sg^JOY9$}fGhuLFRamUC_pP_bnm%sTol9ihR6wYtLmg7$6`u`0qBy6 z9h9K><$vEr)ekz5ytG5AFr*rLjExWz4jsBb5#f}nud-^1oJz-aEX1yK@hJw!})2QdHM%U=|gr|hfzjA_GyKV1PS$p(si#@ZlZp}P)233g9>aL1?G$w+3!N=Dh z=h^gXq^8C*9BjD021)09jWIt`-GLrC(6V=j)5=1<+r%knczRIXyHo^ZcXngs1| zpV`85K9&5*GeoprvVrD_IUg+x9i_Ix%o2D7F6##oYG}3dN*lR!b~f7hZq={W-aS;V zNdIa>#T+ln!6vbP7vnRTlQoQvw_wG<%w!*NRkLoON-N{9Eij})#0q9Mv0bW4TvrFm z){0ty5_fpv78Dy8*gTMs6r|+!!jk2ei1&mR%oc9imp#2jebQk}SJ8OtiP)Zh6K5X8 zNc^!k&NJ2cDTqOVYXdK8072PKK0OjV>pVdr90N+y&r zn*OCf;Q1MROzwBty$hCfaerT%BpKhCE$jt+XAq6686Pfrfrc>YH_o^;0&SVSb|-}t zQj}vS_lBlDA;d9)zMF8hfb%a9FA>N3&jBIv`K|{R1B2*7Z6`PJ8#rsD&Q~?#9VGgx zc(hqVOCgkFI+8;Z&Zs3Z(p)Z<;4)QGYID~S z)iqAxIwpQ58@U>~yS9D1`B5WIp$2Bht?h;6RPpzDjJ~Jqj~{L#ULOb;VjmyRJ6;Z7 zIdWLs@AE$rvg_DbQ_TfFRoMGjv64Lu%kc4YTQz1$8U@-`bhnJ4o9W`K?}ZbXyd8?a zyo!T*+2h9+7hMABjrs&x7-w|Vc3a->^y8*tXlV;*7zeW`m8-*bX-|M<$5wfzXSY8c zpT!^7YerUwklz~I-cQWeHrGg zi*n2Y*s8<$YKPJe!QK(C2`Ii0B9ynZm1!iizPf5pPyx>s&wr4o@Q>duS%SD_&_(gEU&d?3SuMvb%ZwBvjq|vxct#Kc(Z< zvlzYWX%VQPbYs6IoTC((?QQVK9{h@`IwbtGKC`ibti5as|8)IcA0xPY4wEqBxpZ_K zC$kKlOq9mrAh2Rc&+Wyly^JX{wTEY;g{P@Ms;M9Tx7x7jNdQBe0)&rdU;^u&ipgj= zIxu8~B!D%UMMjO?Bu5ryH^^%;*6}x9Hjhz=WyYhP1!Xdw%rgZPc>gcjvU+q~H((z- z;BIof|0cK4f3<$AEyY}O0D`YpQkt~FjVZy*kTyVSf3Lg?viotcf+Rs?W|OiIj78~8z6v{d)BP|cRfzWZENuGO=mYJ6kb;48R zE#W)rhT;_Bt1I)OvepGXmcO%TUXOI8cA>Q6sTI1eZ;jARqqWdC=Ro5KhvUYR^#9f}Zm^2;BsunO(OE)R2QffMl$lA`H%d8< zhD@igcpWaQtN%EVKn8a6HHX^y-Ij0fQAIiRxQfIRY71ii(k8l?`E}*4ozpxi=EbVQ z`%e+zwNj}KA~#BfM*)=4Irg&ee~b!i)k7^k3(67iOclDtu_$n#NKbHfzhd)npftxY zmgqCN7x3Ox4;e{4mK!?z?~fLOZX23C(s15W!OwHEUkkzi+~)GUA9}|VSjwuHEBaXW zHK7)6?O3+a&*!62js!oYpP0}9j$opak0?rp4(GrJn-BuRZQ#cdd;enh<813AiK*Xh zdSQQ)tCi?w?UM*i5)5gXF}))089Ngdhk7y{6B$tg{OHrkLKTVF!_p$e1giPE19b9% zpT($9nrrFXjT(M!wLTR?g8F_OKV^t%FkVo5M_XgT)>ht}H-Q=AeXlywh^al>K#Dnu zX@N$3_(}zAK&gTZem&K0CtVZW7z6+)(4Q@13;o|hp z_uKA|EjFxXePmbKm*SP89!wPNx zv+>#ewS~t1w<|SBwpbzfAyOQ)RUz*B`c+P0>m~jpnR?n=E>0-wM+dIkgx#tlUv|m4 zBwU=Uxn)bs#``F{$%|Ux#|-#iJeY^+@7nfrj+JeD#6)KIv>ftJ^gJv$m=VEXtzebf zuGFF2v}49OscARmd%JUjj6e7KoljC^^+8c9a1%U@bCh?k^HWd`wgJhQ?HP6m~sWRu`T<+svH5daJ<5 z{sbJFL@Hu<+{7qo)R8Ljy&4n&yY&xlx=laWO<&G+1K&~$d1-$@IiGh0S8M)B|2d9K zUcR&WEhKaHlc*1DDaomcko&7N;-Wq0Q|iZ`Oz``=n*ZKsHBtYQNqT3Y#wJ13#WNnI z1)*hlEjOSM|4G@mft>2zYG>B_UD(kwFM&ueb@#DGoXC>8tX~RBKwO7X{25eE-tFGY z5RIyC#lw2o<{oiQ{ydJal3%yk;~WjJ2C@gUc*8cP>(;`kpmZw9X=ATMbU)$Sq>ek! z`HQ>wo0io0t1o-Ibuya6GC&qHr1SkDp zn>P+CB+6PFqja4w3tQXP?o-Frv3;Z>I+qQ~@@`28us1r@qrdVxccKmZZfC9wx_^TQ z6ARvM+{pbvwakk_neB9%PinQ~!H_sB|6=Lpg%u!zS|C!RU;gglkI#3HMXe47*Qc@% zh!&sxeNT@4?QdE9pjLPORPNK!-E1{IJcV??`SMZ>cJYtiS+6yO7gcuFiucQWH?cHk zn$tyQf0JiPkI?U)?U{(k7$eeSmp_XZwx^ z#D{qRmR80EhwIJ8(RF=lF z9BClrOq|9~2wCk0DhcyE%Eqr7LbY1gPv=NVCD52>3QR?jh7zG49gw=HEFSYBo(Fss z!e0Ap{8`#8-7~ZJrUS9i;~+$D&(yhtPz-Nu#XysuTkc8)6c}*f&}QW=3=qCdqq#^E zP1&zd`)HKh#pOpQtv&HT5Ge5NF%bMH4$9D->Q)*AohTs6imeF10Pc1aiToJo8K$g+ z6haY3bry!o9)7<+LpUUd*S<%=hmOoF0-jfSK|VB-o z|MH|eeA8C+@TxFZ1AV{qXJ=X|-tWOesOL2bH%Gl?hPPIJ+I7kK>uqWr2e zB`!<0QG`#{qbB%V@&gORJ$}zAya4kLv0ij8ekn;fogzg1G6>%<|7-9 z&;rni*>FrBOmF~XlygDby0+u zQWUFAYZb527Eo^mcIl-g!#@~#c_S*0N}n1BC)UmTV5AW+o3zB6pfWnxD%w=i9vGC3 zqoCuXw0Jw>N1@3*efLY8)JJOPBHrUw_~(2e=u9o(_P%iYe%A9Bxv46*F1G2~&O~=- zX_i-i)8AR=xRpfu+|O@^;7bVHz3?5ql)A3sTM0gJMOqmBy~yucH$%Wcw7K3Y_T z(}8QS6VJQk$Fp0w=qHf59oy~eZeL>@=_44~2|7H{ZXKuOs+U6uM^e^#bknr5f#v3o ztE56cG_aLDK*2o(xUs_ohv`M(P|5w3NRXGn2Cv|XB6tXDZ>K-jILkTgjBkimPds6s zHCc+aBB=w?SIiurcD6H{T{bsR-QL@^bcdH#*FAcJx>j>E+>NMHN)1P=nCJfy6Vk}? zIx=?pbii`+bE1EDB1&Czj48j)?EK{2_Nww0#ulvaV%4qPB>L|jEMmoW-qaUp{rf64 zxBHm=s&n`}KoCJ@gSpUv*y5#GQ>&kj;3D+(>8ps7C%17c zBtSqX1!!W)4=XYuS`+g8n1~;z9eio-SJq9e{pEpn-2dVkc!GJ=dGW+;ThQ_N(0EKO zCz}d|Fx@n(1LgK+yZbgD_;1YA?-Km7NImZSZT;Miqu}Q$T(tphE6bz?JfMn3A*J-7 zeDTcA@{o+5+;mp8?_$SO?0&!Es{6X!yk7)7HFo#Ce)BR;_OnEHuL+HDwVp}~`g+^V zm{*{SAkSSzqooFk&ZZBe?&*Vv93Sr9gz2)$-W)&e<)C4aMc4LW+io;ao}pDSvu)a| z!?+sv-uaSHYbzw#)yXlZCfa2M*3GHPH}JzI@%J)%^$ZWU9NZ@=)iorggDBdQNy;F{ znZ{KlBajvZLuaAMph$aiynHzbd-Jm3a29*d?xHD6@6vNjvin*O!N@-cJRP9S`TaZd z4LDX+9L@X^vAgys@R1pO;u!ewSO~rwx;<>CecAY?6(UT0QY~;U%Z_g;&MKKhUnQ`< zzJV^r!uovG2_h>5FS#Z5oQ~Cs1-uNsv@Y+U(W}9-5-GOcSatwYjf!gfv^;S*zl=(+ z5jxeJ<9gm_VpI99=D{7o5a1Hn5;^%d;z>GKP&+j|;hTWvZc9e*@F+bDxqHQ`y_wA~ zi=6^fsVC?CngdH;upCtgQCeJY@xIck;KjQ;v4<$&w!qOU&n6#sl*s%dKF+Z2S6xdS z-G1j;p7tJhl3dP|WQKR3jz>|*^o+9RAtV*|aHBK47lv?EoXD5KlW!h8GBMpyB!F$8c z@AZMt*Kdja-X}-N$1^kE8@Tn1uRMGOlV#>-P3kkt&%Oz0En-3!Yl?2~s`PI)0E>lSe3q~%2_5U9 zJlb$MI^^tsZ2$&zH;bOOf@B5?+}8W~=ATH_mVfnKqYM=E&K16-H%i=7P7TM+9S4As z_c1G!lGh+3rU?0yD6%h9Z01uVf>KN=9HgHSFQbZ=GW^@>d(E?7^2zQh>r~b68UrVQ zsEX3x6)=DNCXXMtw5SOamN%vewFp%qbEHpQAPB0fCx3sa5QqDd+4oRCSGapqhWCZA zEKZqKyHr+Q_{@q25Z<$SYfh@|GV-IV+57wmi5omM%}y%X_tf_+dUphgV-|aEH%iI7 z>r^>tG5$O^L8v$hfc0V5FncVgzMoE82oQe~{f;{@b^;$4P5PyTsYrU?Y!=Z$?7A#Sb!=1NK;n~ngz2S~ zZQwsq&%YDd^yJ{ek0(<|AG7w>|AF1Llj6j?W2QiHPKfPmH%3_Jo%;A#-Ykh z|75~kD4$86R7dLQ(GtcRjc=Ld;+RYjbSDTkdJ7)bRlSF|rs znd`ebxWwoIt=kp|-5(wD=lvz(_>W7kLj&)oG5wUTzlU6`-M>rxS7|bwZ0O18f!QMn zON3BYY|u*({)Z~DH39kw>DTznQT{-(th-^$k1pU?L$z{ES*7JFPwWv@v?Z2+1TLv% zWb*YcI_jmdc*cnS8I&}ZHFW~6zghW&F!YxYY?RfO%(0Q#NG@eXhNd0jptBKRX-Wb> z-MxibzB}KEXAS`r?ynUURIo6(gPr(xZz7FL^Rz{hB>#7j}4!3xO(UQ$l3pyfHus|UIuSIKWT+H zB-;P|lp5kVNK*LGz@3!%5GIEG@LB?E+ZISU=FGd=DLbXalFI&6)BCaNhjK7Vm%^;H z@7vk&_TG0}d+v*!=mKS$&imtW*nSGv6Ce1~x2CX0^yQvzbbVv(eC22dV zPzF)*x}N&|C`&l$#dGdsM$|3r8$=~$yx`%4Ni9V$D3aymv1AB+JzL_euy0QlKD84d z9{l(370obL7#B2B6qMMcRNmFg3lvsuWswzb?|aXPgplF?JBG#Gt8$x|FoH4+Up}F%VPuHV% zCnui0JP!`Pqsgv5clJp>3jjc=SCE#}%9YKqgEX_+>6^k(1dGZ@GLEYXCD(wKMqDU` zPHX?1`>JtF{2_6~=A#QYH~CT=gVJ|%NLpPHerg??t3u8z7p{riFceCCT_M%5oj_b1 zapfiN-r?^4*tARFI9cJ_(YV;_R`w&WvZ#qqap3FHcfqJL9km9N3Wz-&;Gt`qKY!J3 zwadKmkBM0@Km2l+_!Frl5gjU@bXn<=E0r>L|J<*I&V(;RA!Kg+M%LX_7oNj9TCaPg zBq=PR2Eo`4iX7V9mJQG;RyIPU2^UwF4Q*|>Q@3O5x+x|ZrPb%}KTh2W15PHN#qah) zF_72oHZ_YkRoODX$dB$w234iVBU9MP$Z3aiinr@tGn-QY&@c|JaD?M_>{}B>;Svyt z9(oH+Z6$jkM-JMqxqX)B#zN9#bjfZg54o8F3qMIIk2+!hG3VzjYI!`1g`sTu42KYb zU;mS6t4Gry*#qt44rnhA3x|+`Vf`N?oL758v(gfn}*#R>~QBu5sTP{#4`$7LcI(y`Pbye`6XrWp?o zN<7stBdX{qefg-LfVicS2oxi11R~F-qERnsEo5y9^lC*}V#C1niy~w_s9lwgMPqFA z(7|xezW0ZprvFBKckcJ1ahNL-Dt;D|KZ1ZPV^(G>MH;kt05i8%P9Ffy=BR6#L!OE8 z;v!_T-vqNziZQh$V6nL?@ZCMS+*EgxL=dM+%CVJbFWdXK`PQ=k8gMEOiU#fakDp_k_}Tk93dco;@~Et? zX3+l}Dp^`|lvibI%7JY3YmkF0A(bMM6t4A+!x$kAuA$1;v40|ipqNiW-nz20Y$x7Dk_hhB_r4^TWTN&L`! zI(m?wdwNuit69ptS04S@xr5MJK}iDU4CDJJtM0Elr((~KFj}eTLl>O1W(qSiDfWJ>bkw<{BIkKQ9-^}8eF6-07X+F_F2Kxyk`i7 zcV=&-Gu=f0>d({kpBuD_1aZ*X7jnNh2wljvivdLv=}v2OJ{#4jy_MY9kO|rUrL4BB z?22ltaR7Ri+M(~L9MF;_=@^Ru zyA--@Rft92@$YFDA%6#7TVKbUX;n7ze|v|Ceb>e9+uz=n&@KYhpGM*%p$5Ktc9!Hj z#ZDQ{r~u$O{;b9i5zxEle`$3&1g!LaR^M)0PI}hq=fJP{`XOGF-pOqR) zX%IMJarGWjP9}EBw06;tkYPE|9$e0Q8c+^G1N;yoKRd1Zvr=y8>^@F ze}BGA6n(t`iQn`YIvd84@)M`aFC zYGYE8)n83|{R1Yl=a^?K=^$3*gnB}woYLET2leKh7nJ<;D>IOYS&lJ8eq8@| zA9#P>_1t8=*rs)IiBM(<)@b0;yNEeg-dHeO9&*^PWp5bZMdxcZK#rQkl-Y_R#UaU4 zKQW@>h4Hmq|BB`5ZM?Up4ac3&a`_CRQI;6WfFYHAAGBHD_4{`#2f?x8U~GZwNL)k| ztkjv|^`^2XwNRM-IPkx(H1w%2x~Z#dbNZN|5VVPj!+JhlM9Tc~3x+d6@tAkVYVn>T z8Usd0SvCa2B?x$Oi{}F(u%hfVgm1eB;Np1|aQ*&xbVd2W=+G=;4cjuW&u?D6ZqbXs ztsN#77>p*GtO>bV)IR8_j^X5U`K5d-pvzW@an)ODXK5ICjP9aFk|xbOlfvAWW^jW> zNgymmHD?Gm8_nzgRuo_TclU1F#PN} zT-92OVyJM?WuHd&I)Zl>^o@zBR|4o#qCYIB(^;b)Mjv@AZg2;If(A_chqF;G94m zE-6Ai?PtmAI zDpLxN!U3ayV3Z?78B=zV5MPWw#u4vV-zb@HQ6;0LLdD~}C%JTi!v0YrFk#Vkc)?sY z$Hzas?v`8OEdDZ*Jzn5<7v1eFIwck)qN@xuumfK>_4^(QOeVf`p?~54xoZ&p)lRZy za7DPMx@c7qF$Dbp8_>-46e+I=nd1U7rD7#Gf6g^p@L9s@2kaZf9?FqNN=@XeSK zvKcJLA-HA8=++}omV;6#oa-Jfd&AIV`x}N{!$(rq+h}xL`VbD&nT>AW!YTQXsAZ2I6}`2+`lbmDK?HZTK5xp zrS2uvok$}Ns?mM1`$L2N+k(se=-|;fsfD#+zxO)ENja&4(G>L-iqY%+}N*WWcI z?q8MHh=ob-_3k%QC)|8u8F!}cc1&@`4aT}7_sx0 z)5md0yOD$1f(nNakiIG-=MxM$&DD}lQP@*KQEpbsbU^(K8dcISf90VuqX!+QO^B@8 zWUxlGVfmH5&w8eYcx6x->%BtODUgs>$Z2L|p_!#s)r`nh$Z0zUo)}#|F$HRX|DBYu zCiO;{K`vwW_&?3u%~3e!P$+`q@?IvIFo3jyo^nt_gu2LKX!XRp~k@vylG-a2y#O diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index 5f40af4d..3ea22d2a 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -1,7 +1,6 @@ import { Layout } from 'antd'; import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; import { Outlet } from 'react-router-dom'; -import './index.less'; import { AppLogo } from '@/components/AppLogo'; @@ -11,15 +10,17 @@ import { useAppSelector } from '@/stores'; import LayoutHeader from './header'; import LayoutMenu from './menu'; +import useStyles from './index.style'; export const BasicLayout = (props: any) => { useTitle(); const { Sider, Content } = Layout; + const { styles } = useStyles(); const getMenuFold = useAppSelector((state) => state.app.appConfig?.menuSetting?.menuFold); return ( - + From dee7f961db14bb610c41556a0f9122e0becc116d Mon Sep 17 00:00:00 2001 From: G Date: Sat, 16 Dec 2023 16:55:37 +0800 Subject: [PATCH 009/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=B8=80=E9=94=AE=E6=8D=A2=E8=82=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...prettier.config.js => prettier.config.mjs} | 14 +++--- .../src/components/AppLogo/src/AppLogo.tsx | 8 +--- .../layout/feature/components/GithubLink.tsx | 2 +- .../layout/feature/components/SlideTheme.tsx | 21 ++++++++ .../src/layout/feature/components/index.ts | 3 +- apps/admin/src/layout/feature/index.tsx | 5 +- apps/admin/src/layout/header/index.tsx | 14 ++---- apps/admin/src/layout/header/style.ts | 15 ++++++ apps/admin/src/layout/index.style.ts | 28 +++++------ apps/admin/src/layout/index.tsx | 2 +- .../layout/tags/components/TagItem/index.tsx | 10 ++-- .../src/layout/tags/index.module.style.ts | 48 +++++++++---------- apps/admin/src/layout/tags/index.tsx | 36 +++++--------- apps/admin/src/main.tsx | 13 +++-- packages/config-eslint/index.js | 14 ++++++ 15 files changed, 133 insertions(+), 100 deletions(-) rename apps/admin/{prettier.config.js => prettier.config.mjs} (85%) create mode 100644 apps/admin/src/layout/feature/components/SlideTheme.tsx create mode 100644 apps/admin/src/layout/header/style.ts diff --git a/apps/admin/prettier.config.js b/apps/admin/prettier.config.mjs similarity index 85% rename from apps/admin/prettier.config.js rename to apps/admin/prettier.config.mjs index e95b8c12..a575ef6b 100644 --- a/apps/admin/prettier.config.js +++ b/apps/admin/prettier.config.mjs @@ -8,20 +8,20 @@ export default { tabWidth: 2, // 用制表符而不是空格缩进行 useTabs: false, - // 语句末尾用分号 - semi: false, // 使用单引号而不是双引号 singleQuote: true, // 在 JSX 中使用单引号而不是双引号 jsxSingleQuote: true, - // 尾随逗号 - trailingComma: 'none', // 对象字面量中括号之间有空格 { foo: bar } bracketSpacing: true, // 将多行 HTML(HTML、JSX)元素的 > 放在最后一行的末尾,而不是单独放在下一行 bracketSameLine: false, // 在唯一的箭头函数参数周围包含括号(avoid:省略括号, always:不省略括号) - arrowParens: 'avoid', + arrowParens: 'always', // 换行符使用 lf 结尾 可选值 auto|lf|crlf|cr - endOfLine: 'lf' -} + endOfLine: 'lf', + objectCurlyNewline: { + // 对象大括号换行 + multiline: true, + }, +}; diff --git a/apps/admin/src/components/AppLogo/src/AppLogo.tsx b/apps/admin/src/components/AppLogo/src/AppLogo.tsx index 02861498..d05460c0 100644 --- a/apps/admin/src/components/AppLogo/src/AppLogo.tsx +++ b/apps/admin/src/components/AppLogo/src/AppLogo.tsx @@ -16,12 +16,8 @@ const AppLogo: FC = () => { return (

- logo - logo + logo + logo
); diff --git a/apps/admin/src/layout/feature/components/GithubLink.tsx b/apps/admin/src/layout/feature/components/GithubLink.tsx index c5199823..9d459ab2 100644 --- a/apps/admin/src/layout/feature/components/GithubLink.tsx +++ b/apps/admin/src/layout/feature/components/GithubLink.tsx @@ -6,7 +6,7 @@ import { openWindow } from '@/utils'; export default function GithubLink() { function openGithub() { - openWindow('https://github.com/baimingxuan/react-admin-design'); + openWindow('https://github.com/anyone-yuren/gbeata-react-admin'); } return ( diff --git a/apps/admin/src/layout/feature/components/SlideTheme.tsx b/apps/admin/src/layout/feature/components/SlideTheme.tsx new file mode 100644 index 00000000..61b9bf7c --- /dev/null +++ b/apps/admin/src/layout/feature/components/SlideTheme.tsx @@ -0,0 +1,21 @@ +import { Segmented, Tooltip } from 'antd'; +import { type ThemeMode, useThemeMode } from 'antd-style'; + +const options = [ + { label: '自动', value: 'auto' }, + { label: '亮色', value: 'light' }, + { label: '暗色', value: 'dark' }, +]; +export default function SlideTheme() { + const { themeMode, setThemeMode } = useThemeMode(); + return ( + + setThemeMode(v as ThemeMode)} + options={options} + /> + + ); +} diff --git a/apps/admin/src/layout/feature/components/index.ts b/apps/admin/src/layout/feature/components/index.ts index bb37402d..a62bc00f 100644 --- a/apps/admin/src/layout/feature/components/index.ts +++ b/apps/admin/src/layout/feature/components/index.ts @@ -2,7 +2,8 @@ import DocLink from './DocLink'; import FullScreen from './FullScreen'; import GithubLink from './GithubLink'; import UserDropdown from './UserDropdown'; +import SlideTheme from './SlideTheme'; export { - DocLink, FullScreen, GithubLink, UserDropdown, + DocLink, FullScreen, GithubLink, UserDropdown,SlideTheme }; diff --git a/apps/admin/src/layout/feature/index.tsx b/apps/admin/src/layout/feature/index.tsx index 0e8c3c03..fcce0890 100644 --- a/apps/admin/src/layout/feature/index.tsx +++ b/apps/admin/src/layout/feature/index.tsx @@ -1,6 +1,6 @@ import { Divider } from 'antd'; -import { DocLink, FullScreen, GithubLink, UserDropdown } from './components'; +import { DocLink, FullScreen, GithubLink, SlideTheme, UserDropdown } from './components'; import moduleStyle from './index.module.less'; export default function LayoutFeature() { @@ -14,8 +14,9 @@ export default function LayoutFeature() { {/* */} + - + {/* */} ); diff --git a/apps/admin/src/layout/header/index.tsx b/apps/admin/src/layout/header/index.tsx index b4e09a4a..4eb78187 100644 --- a/apps/admin/src/layout/header/index.tsx +++ b/apps/admin/src/layout/header/index.tsx @@ -1,21 +1,17 @@ import { Layout } from 'antd'; +import classNames from 'classnames'; import LayoutFeature from '../feature'; import LayoutTags from '../tags'; import { Breadcrumb, FoldTrigger } from './components'; +import useStyles from './style'; const LayoutHeader = (props: any) => { const { Header } = Layout; - + const { styles } = useStyles(); return ( -
+ //
+
diff --git a/apps/admin/src/layout/header/style.ts b/apps/admin/src/layout/header/style.ts new file mode 100644 index 00000000..16655653 --- /dev/null +++ b/apps/admin/src/layout/header/style.ts @@ -0,0 +1,15 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(({ token }) => { + console.log(token); + + return { + 'layout-header': { + flexDirection: 'column', + height: 'auto', + background: token.colorBgBase, + }, + }; +}); + +export default useStyles; diff --git a/apps/admin/src/layout/index.style.ts b/apps/admin/src/layout/index.style.ts index 57d0de9e..17317ed2 100644 --- a/apps/admin/src/layout/index.style.ts +++ b/apps/admin/src/layout/index.style.ts @@ -1,20 +1,18 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles(() => { - return { - layout_wrapper: { - display: 'flex', - width: '100%', - height: '100vh', +const useStyles = createStyles(() => ({ + layout_wrapper: { + display: 'flex', + width: '100%', + height: '100vh', + overflowX: 'hidden', + '.ant-layout-content': { + height: 'calc(100vh - 48px)', + boxSizing: 'border-box', + flex: '1', + padding: '12px', overflowX: 'hidden', - '.ant-layout-content': { - height: 'calc(100vh - 48px)', - boxSizing: 'border-box', - flex: '1', - padding: '12px', - overflowX: 'hidden', - }, }, - }; -}); + }, +})); export default useStyles; diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index 3ea22d2a..bc85c70f 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -9,8 +9,8 @@ import { useTitle } from '@/hooks/web/useTitle'; import { useAppSelector } from '@/stores'; import LayoutHeader from './header'; +import useStyles from './index.style'; import LayoutMenu from './menu'; -import useStyles from './index.style'; export const BasicLayout = (props: any) => { useTitle(); diff --git a/apps/admin/src/layout/tags/components/TagItem/index.tsx b/apps/admin/src/layout/tags/components/TagItem/index.tsx index 7be4e4a5..a5ac0080 100644 --- a/apps/admin/src/layout/tags/components/TagItem/index.tsx +++ b/apps/admin/src/layout/tags/components/TagItem/index.tsx @@ -13,8 +13,10 @@ interface PropState { onClick: () => void; } -const TagItem: FC = ({ name, fixed, active=false, closeTag, onClick }) => { - const { styles } = useStyles({active:active}); +const TagItem: FC = ({ + name, fixed, active = false, closeTag, onClick, +}) => { + const { styles } = useStyles({ active }); return ( = ({ name, fixed, active=false, closeTag, onClick } onClose={closeTag} onClick={onClick} > - - {name} + + {name} ); }; diff --git a/apps/admin/src/layout/tags/index.module.style.ts b/apps/admin/src/layout/tags/index.module.style.ts index 3c934d63..4a688cc3 100644 --- a/apps/admin/src/layout/tags/index.module.style.ts +++ b/apps/admin/src/layout/tags/index.module.style.ts @@ -1,30 +1,28 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles(() => { - return { - layout_tags: { - zIndex: '299', - display: 'flex', - justifyContent: 'space-between', - height: '32px', - padding: '4px 12px', - lineHeight: '32px', - '&__main': { - position: 'relative', - width: 'calc(100% - 116px)', - height: '24px', - overflow: 'hidden', - '&-body': { - position: 'absolute', - height: '100%', - padding: '0 2px', - overflow: 'visible', - whiteSpace: 'nowrap', - transition: 'left .5s ease', - }, +const useStyles = createStyles(() => ({ + layout_tags: { + zIndex: '299', + display: 'flex', + justifyContent: 'space-between', + height: '32px', + padding: '4px 12px', + lineHeight: '32px', + '&__main': { + position: 'relative', + width: 'calc(100% - 116px)', + height: '24px', + overflow: 'hidden', + '&-body': { + position: 'absolute', + height: '100%', + padding: '0 2px', + overflow: 'visible', + whiteSpace: 'nowrap', + transition: 'left .5s ease', }, - '&__btn-space': { marginLeft: '4px' }, }, - }; -}); + '&__btn-space': { marginLeft: '4px' }, + }, +})); export default useStyles; diff --git a/apps/admin/src/layout/tags/index.tsx b/apps/admin/src/layout/tags/index.tsx index c28f0c68..2502efab 100644 --- a/apps/admin/src/layout/tags/index.tsx +++ b/apps/admin/src/layout/tags/index.tsx @@ -8,12 +8,7 @@ import { searchRoute } from '@/utils'; import { basicRoutes } from '@/router'; import { useAppDispatch, useAppSelector } from '@/stores'; -import { - addVisitedTags, - closeAllTags, - closeTagByKey, - closeTagsByType, -} from '@/stores/modules/tags'; +import { addVisitedTags, closeAllTags, closeTagByKey, closeTagsByType } from '@/stores/modules/tags'; import { TagItem } from './components'; import useStyles from './index.module.style'; @@ -106,10 +101,7 @@ const LayoutTags: FC = () => { } else if (tag?.offsetLeft! < -tagsBodyLeft) { // 标签在可视区域左侧 (The active tag on the left side of the layout_tags-main) leftOffset = -tag?.offsetLeft! + mainBodyPadding; - } else if ( - tag?.offsetLeft! > -tagsBodyLeft && - tag?.offsetLeft! + tag?.offsetWidth! < -tagsBodyLeft + mainWidth - ) { + } else if (tag?.offsetLeft! > -tagsBodyLeft && tag?.offsetLeft! + tag?.offsetWidth! < -tagsBodyLeft + mainWidth) { // 标签在可视区域 (The active tag on the layout_tags-main) leftOffset = Math.min(0, mainWidth - tag?.offsetWidth! - tag?.offsetLeft! - mainBodyPadding); } else { @@ -174,18 +166,14 @@ const LayoutTags: FC = () => { return (
diff --git a/apps/admin/src/main.tsx b/apps/admin/src/main.tsx index 947b97e5..895b5ad8 100644 --- a/apps/admin/src/main.tsx +++ b/apps/admin/src/main.tsx @@ -1,3 +1,4 @@ +import { ThemeProvider } from 'antd-style'; import React from 'react'; import ReactDOM from 'react-dom/client'; import { Provider } from 'react-redux'; @@ -11,10 +12,12 @@ import { persistor, store } from './stores'; ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( - - - - - + + + + + + + , ); diff --git a/packages/config-eslint/index.js b/packages/config-eslint/index.js index 8e6ed2c8..002f7c66 100644 --- a/packages/config-eslint/index.js +++ b/packages/config-eslint/index.js @@ -32,6 +32,20 @@ module.exports = { ], }, ], + "object-curly-newline": "off", + // 限制单行的最大长度 + "max-len": [ + "error", + { + code: 150, + ignoreComments: true, + ignoreTrailingComments: true, + ignoreUrls: true, + ignoreStrings: true, + ignoreTemplateLiterals: true, + ignoreRegExpLiterals: true, + }, + ], "no-var": "error", // 禁止在定义变量之前使用变量 "no-use-before-define": "off", From a693e2666ee426f6e44b45682e56998f1336d38a Mon Sep 17 00:00:00 2001 From: G Date: Sat, 16 Dec 2023 17:37:59 +0800 Subject: [PATCH 010/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=B3=BB=E7=BB=9Flogo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/assets/images/GDs.png | Bin 0 -> 5003 bytes apps/admin/src/assets/images/Gdl.png | Bin 0 -> 492796 bytes apps/admin/src/assets/images/logo.png | Bin 11266 -> 135220 bytes apps/admin/src/assets/images/logo_name.png | Bin 5866 -> 8450 bytes apps/admin/src/assets/images/name_white.png | Bin 5080 -> 49683 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/admin/src/assets/images/GDs.png create mode 100644 apps/admin/src/assets/images/Gdl.png diff --git a/apps/admin/src/assets/images/GDs.png b/apps/admin/src/assets/images/GDs.png new file mode 100644 index 0000000000000000000000000000000000000000..09199541965a23e01587a80de0784f403ace5203 GIT binary patch literal 5003 zcmV;66Ljo}P)Px#1am@3R0s$N2z&@+hyVZ+HAzH4RCt{2oPCVuRdvTd-}^i>J3BK=Mn$t})y@{s zHKN&864!#VXiaf_9st5%7hly!yDmql4 z+iK&cYKq}yr*>&q1>CqZyTi=$+|xhq>+gA)m#wp4$|20o^Ly^^-gD1A=X+l6y(3@? zFbZr1w*2JH_dViFufY+>0C`5nJi(buqK3gMjIdubtX? z{burZ>BPSs1oj426zxHPVdC2FEWTxSGsj;K{oeSu4+!n|_$VzSNf7KW9zFH$1DiE= zyYGpKv}j-;aIF9YU?>SMwh#d*!iV}hAsHsSbNeF!WYQZDfGL5Eq^if4sHWu`@7~q* zoe!kX|NhhzcYo_b9FC4-?)HTpb1xu!XO-kzduxyhlyov^o

8tf(8Gf#GNN@S~gO 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 V%Qd{(Xchnf002ovPDHLkV1lNc?NtB( literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/Gdl.png b/apps/admin/src/assets/images/Gdl.png new file mode 100644 index 0000000000000000000000000000000000000000..85ceb9ca08981a1dd97789dd9891bdf8b27ba436 GIT binary patch literal 492796 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%0Aj)Tl@n);jHaw;T}wydk1 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

gaNKGe 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

Slqk)mn!Pu(p*_-9Epg?!wcMJ}BL| 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

h&o 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

txJd0j#h2{VRm|PeI`; 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 HEk6Dq!_X9& diff --git a/apps/admin/src/assets/images/logo_name.png b/apps/admin/src/assets/images/logo_name.png index ff85108a4f3bad6dc1c2e1a99358a73e6505d9c5..d1b0425e90b8cb523a88217c2dbc5c14bf3c6ac0 100644 GIT binary patch literal 8450 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 literal 5866 zcmaJ_XH-*Lx1~uD5RfKF2_Q|S1VTvwkq~+ff=CezBvL~lgx(~8NJqNTqTA$n=DbWoLPD>l2{R&& z9mLy+nv(crdY%5BIB?+99^md_9^EqUkQY0ZE7j`gy zfP0{)3$ewZ#Sy=J#J$n3L^KJBqO!Lu!qy3e1K6PK99)$6x8FDO100Y_{H8K`l6tPH zD0>G@Uo7gLufDOZuahkp$*+6|py&-D5};8y1i%~Z?BWjbR^tDQ7ecguElcnN{&K-N zDe?a&sRw$7096bY1ptc!#cU-dfdDz81(KDL2ZQD0knJP67x9gC!)TB&4Loh#q3@ zJ}x+fx0s8&z;6Z^%H0<0;EHp=xBz}JB5W`oI3<2!w*T1%+Vvk=7x%wQMJ$?xH^Nl{ zC@%SHTfZIk^!|TWH2NQJcbpOGzxn>3#O}sEt|$p3lsm=)YfEh2V}W0xTp_Ah6at6A z8e=fdzbk2IkHKNw?J=$ZDUi4vK*ZF+1&Q%;7yS#Mrw7q;amOKCY*AV;C4M4>xPt={ zqAsN-s|J;n2g}H-0)c93Do}Z8Re3N-MHUQ`l#!SEjfG)sJf zU`80=nseLN?2=Pbb3YQx939)19kJw%P-HH%{~UKTv+PM`m|N58ThSk{cdS{R;o4Jr z4zx_DKVDIQWoWRyH$)56bx6BCjJY1|;)FUfn@Q^~j!2fS=4PlH9+3P*uCS%a9BS<} z{Lu&RIRs^VZT*9sck$|$iqN& z%kU>Bq2#Pb4tX(T4)UXC{Yda;=~2-RNR4OaTpN@bO8C zzgVw9ZozV$ci%_J<-Xy#Clt9z-2`pJQLCtvDDo~jnfzJXeIgQ9mEr!tGy7SBc#mqr zGy%Omv*^X@vL|gdZNQ$Bjg;)tW$)L!MWYo8Xf0G6o}G;ii|^6+$ zri$9v$vjb3Mz(?AulZRX(c$Wag9S+6F(SvOZ#id5pSYEm5Nvh=sDdnlO1Z9+8y&~H~DoDYErxO-AeRt8KI6mTeMSRuyJx)@Ka;S{l z&SnuPBl|scJNXG^1||OJUe{eef68^&r$o!^8o2yn%jnAYt zSoMwtMEZD24-G{NrZQhn8ul(iBEukKQT;D{Xl+hza?j;qn?W_D|Fi_d#Q zst}k}D6VEtcGW&61{`A+x18#4x_J_0*!SR-g(3WW|$Ul+xnAsnta8<>p+B{Y74%q+CxeERkcO>yPRlM4C~Yu9rEpU1u{dm@ap%OCx- zE>W2!E$`6Pga?usl{1$4nD&dX>lbFVXYPbAo^Q(r+p{Dr(7Vxd& zDc|TgWqQ4>yujHItZOV;82|G5V|%^ZQEU5k94IykW*sHbn|vLv3riwHw~96SOsceBMi{kJ@hkRb4A9hw z;dHi_dH&Hhmqklpe8|~NiVrRRP@5`k`Q`)KYhHjpO=BPfM;gs$=WF=r(!Hls!s01J z&ATa4wVgY@HjPBI1bPkw=Ts)HIw&pbx4%faebjOb2^G1*@=DA{eAy(iWM!!6eNn!A zC_sQ-lp4ZtYVjPqx}f-VE7NXW@kZ6&TX;pdf}l?sC+ievzDH)Id@0qpHmtBN}fb!g4AIC$V>HkUo{<@6O9zMp2w;lbdT`rOp)uM(7N zVi5#GVGA5gp*9eIOcVo`)4JjrcNaMd+wWa8P_gOg zeCDF8k2W#uS6 z^NLUb`~C2@3ilF<{24B888vH2u5^jz=gd4LQ|iT81j8{W))DW*02-XJgp|gQksA|1 zQaDfE@Ee^kV-0EBGUs@(k&>=%XScbc`@-*6^Dt%No#5?bb?j~x#7xLn1BQyH$|p- z_eunPd}KFt3fR<-t>j5EiXC&~<%mC0Au_WZ=(p3XXmb{f3@EXC)?_*bRNP!C=*G}^ zwi`TK0~T;xpA%eT#dCdoh1;f_dYYyqaX*u(p*66O93D(-_BB!hKZ;y7^n95SlvsG5 z8e9Ejme$%aCJR_T-sH!TUv=*T{L&2=54M*jTA}nw0yZyqJz1n6!kk!$#4TC8V0wPn z(52U1L#Zie*N$VOmc5k|kd{e@*T_>;o*VU+F(8LmTjm*F4K{KUuu0)J&jb~Rg0ncv z^9W?FMveU@Y1W%n4syXjVN>q-+bIv?`7Y7ZI*IqW>bAn9{D216Bf37dR z3l^}kkfTT(efV^c-;o{9rS)oJSh>A);7a#*c^I9_faGPo96j1QMa%nbp*c17#?q-X zX_M20dX;{*HQ~Wpa~h_2KkWf-nitjxjn5+mv2UNkzgG1;Y_E-BB1p0lFwq_$X~jdQ z{?k<-coE~WJ$b%Q_Rb=b(v(zg0 z(qjm;X%nM(4p8h`@4#`HM1sh17Kf6yqZ zDV^L;fm49#wNi0x-8p;J6wRR8?*&y+)MJHl$27ByP^(Y`91C@UsDBtNM^!@^gD?5P zE?o_wrXZSksrea+@5%U{-32h>|5|#~&-gv0fBj{_o>Wg4%UFl%(C1LzwEPzeKRNI@ z<74)p-y2R8Kv#224Zm5;TZoPQLF&ElqYT*|dxfQpeZlxencx^&`yA5HdjajIZ8Ws7 zmf{TEISx3xZAH&La04CGesni+?~HMyY-mtqX8+jdtIrhQu@&ErjQ^~9>r6A*2fHEr zl!TpoXxx{OcJLeBlwCKRVgS<-nEJ7NeQ0)=?_zV;X+OzlV1sVJ%_Hbs@fMDI?M(sG zN6_`|bIaQBeJ&8}>1=Z|8@^NIBRYcm;ow^Xdw&kSbYH%M9?*;7uCUVQt7yLy4(hS} z#(O?LDe&8nL0qX$^}g^c?04-SGr@amNu8FM)*rATKBe4Eg^2FZtyQ(8aFzi0VP0J8 z3g(>je)Oi_?X^z5eZ6(nQmq_YGlVkGC4Z)_J|2Mk@Hsjlt}6a%JMVc>MXV6txTWyK zTx-{bY}cQV??LoJ0G85!!q8n zH}i@?Wlp>sas~{ENhMo+-?935IL7(8Y@{~Rhze}~^)uF%JEl~rvl7!=2+*l$5S;NR(@w1sYoU15ND^O z#PGvlkK0$Gt8O)eVD)x)x7JBwIpCqrvx;^=wAC1csDYirjAlX3jq;5GTZZARH6aSU z#uL(*-TdN+4Q;NX8m#O_=wvH!(EL+S=lFMikZgu+*yzj6#rvr^b!Kt@+%7k&ap+Tu zGB0QtVY=%n45VCge_O-Vw|K_&d z&%p_hT}oPc_>xx%h5E6Nw4>zL^IhJGPT|*qoVir25dRWgR;Bf?^B*DEhvPkWd^L~Z z^mpXwpI>lLB&z!-oNo-0B+ADqQn?bEx(cHsuYU|$O}XPz=P(AH`;w$KT2#huVbD5X z5%sR)S?Wji3yvkl=EcKp6n9B+Du8yp=jIO00Znf^Yg?mj%LPNejXf-j)Y3d})bcYMSO0N)R8G`a+0gwGlThmK@CiBQ3xJ zq#2oJQcx*>Q>W0Nq>I2Z^)Dd91ADDFS~G*Bj$=&H1y{>Sg0osvM>7WH)pMP!@f^B; z-UHbcoVClV=&P9A)>Efj9QApq&2uiW?jmk?`EWnYBYQ2^BWh869=@;Sf7hKHsDAFF*>HHbLv|ahwLyx*=?zGLZ zRrhn=@8&a+kJ4suCl59kfybMlKAZ)XRc(DAekKqsHhI}9aJ=Jo&9y!_X8QFw>jq)2 zZ1mYolKLpCrJOaYd(l|nS=mVdgCj*f=gs|tnB(s>o(9l;Pb&7NMdNF zWJwV;_nI*CEjw^k%rbe9m3v&ub+PwSoCS4{fgi_Lz~a?OuN%0!rN6C4JFNSGC7b%n zSK#mL55QkWe;AhvX9+q~C12M#=M=6~`(E>O*pq%r`g64NxJO2li8-63_Uey{GOQ{# zZzb*%!=~}hD`~ES%pDYwZBzlWZ;i4<$teBeW!3D-NP^uQQseM59cDae7Ruprk ziOnk6Ydgs;W_8= z&Xm%t*19X+p)8f@ypA@RVnGFAB%=Cb?Z+9-wt^#<`_pUuIy9;)tB#v|>qrVscnWGJ z5spl^^EVf5?c8)~cz-l~dyf1znuT}?uMoXsUiexrsJrh@V%%m02&dJ15c;BP>t=Y{mqEaLxyCSkgG9i1ftDj)9yR~=0OwuRfw?n@)JWDGxaeacO+2XM5(vsgo zdvJzC%Jz(n7(LuVr(%w+1b&0W)=~R)7|bk_?yQCGd)$=0Oio48AZ18*ap)Rp6UOD@ zMCkX6*3;|>>kVySz06#9QUJdt&-`iZbsqTprJ?g|rR$yp=&o#jVH0w{?cXm+AUbm+TkL(->cKGC*mAwtBZEj^tss9 z@{~Rqn{R($#^K8R?FaPD(C)K;-ZeKf9}2AG!emzEbxZHxeePh5o%pYCxyu-#58#d{_D-Y=hho2- zG}Sf#+x4iww9{F=eK(U(_Kb~sVjirYJ~BDYf%)$57x%KSK&dq*OXX+6 zy2>4I<5fe33Nb1>4`>gGgJRP8GBJ)*0;-8lIv&UdfJC7w=tM) zDjB&=zk#s;o=IBhaEM@h0mV`n&qVuxwAfZb+V|A2l`XfGtQK2mzgF(XWWTzddiy^C z-8x%|-!|{ZE5sx}tzUTS$VBxVX6g9d4tBThCMMb*S-VP}D&xHy!M!_lMk`Lak6=ir z>(rtZt=}oot?S=D;W!>3U*Z26yksiuU++F)=O&KtZiaL=RyO*CxR~93boYEe+)mZwh~(v#$}zDQ*d%x>>1AoU$)PmO&|ZLBxv$KKOyNxl8-QwN9&sY@5z*lgVEDm z=Q)if@!z5(FZ_@9-!6&1kybQ5rcqXvUd0LSJMB{?R0pjQ7XF zC23c&-Nk6*pVziNPiOj*S_sKI{Qd5=(C@g)xRqjf*n4M*Ke@zVU3`+7&%G8pg}^^) z#}C(NBv;F72yqMacIDe1$1~^Yh=Hqx*WEZq2V@d|GuX^J`*-;q9s3AX7UH@Dp7UUC zIRXh!w=GP6e!q`-asKr+PYn(Q?)_))jr(9_*3MAd_qNIZD1N{HMn8Uz&9`ZSxhE6t zzwdZJ5z{1L(Shzt6+WzM`$WCVkOKh~gu^)9rE4S>7s@MS^CPDU==LV$01M+sdaIQK zUN5kc(^jqEB>bZl9QH8a(vZfmmVFN3{$6kb-1C1z{_zs8>ZiZZK^|J3(MwY|;}3rH zj$}Y$vAq)VDa663cjC*X)f;Iv2M9d-z^C|L@jY3HK*}NRNA4bS9&;iA^%UNpX`44B z`^`a|F0fyZl$x=?*_e=Yw{3GbzsHn5-fj_dS}iR1QP_>ct1)Gk_UfN6{aLFOyMc{(E28+Q5jwx=P8lGx9TYf-^+8*79se z00W%ssR2@$&ACkwVFwp|oB2|1V;h25*RsY~DMOk`i0+2Git;PKUPs8*^DH7hp$11| zBlpvB4X1pXZC8zxiE?V~y>`ijUwHm@mr28nMVAOY8$DQHAWDbPLJWbe*Fb{IO0FC5 z1#`__=;+&M`YPY1og@fVxbYAw& zcUKIt*&On#$yk4W51d%y${hZ#z=(Gcoii|4d%G6zphz@O3`pd8u9wSI6}o*|J^shv zt7s_7`BZh=hN`}CGhf&7b*q%*`>e(*5_DX*v7PZEDr>iHYx`qLPsnBPntgAyeC!hu z#emIYjlalOi!KRQKAH9{7#0E;y!yWg3-$oTH~}B>j&sP!VxK9Z%N}`4*BR`qC$1i; z?wB$U=z-zZMmb%uI2&>g?HY}_j5l)XySvvjm0co#W&%#Gyk;>MN-@LE|MiJtnS_>; zvB4#l6SCU-n*J|z*<+fQ0Rn$|y7hP6sMUS1-}%-}LpNnq4-)E{f4NYK7_NeiyYuRp zCU6X9;yUS>BSM$Mjz6N?_<#9;5XZ5i3Qryu0{s1tIsIQgaOCDIa*j!RKClcZGxDYn z5%^(AX>@6q*h5@9}EF972aIIQ8(l{i<;J}SabZp)%C5KZ2ke=4EVwh? z$Eokgyi1XO_l(>Kx-9+OGnN3>r@r02ge+o@N`mvO^uEG~W7z*3K3IX)vjd!^h<7z% z0gnbqqaF4k3~S@gT%+?){E$6sIXpieY^H@ z?r_U+Ciafd;RDMt%eR(s?NRm#gmXZu!%wQv@0TOPe%ZzV(;2l78`TTd07SSKYu7i^ z{xGR*XnCkM`?y!1Q(yJyQ0<9E>u{@ZF^!A9AYhw(`q9b0Ny*qRr!*F;e zv%2h%HhXOI-%As-Ek(IG%3|%}^YsH|7Q{u@lBSY}gp8kCjITLev+Hq=ec=^$eJ#UJZWp=Tfa#@3)#Uc?+t|9TV0CgS)3$MeC!I{(%rI_H;1$tH-eu= zIYSZUG^>jpZEIfqeWuv-H*-bpz>KjfR@|PgmYk{bJ!aR_zo(-1zKkB_;lPW-Els=+ zD5$Bacg_h8NtZ}s8*oZ}N+~Fr^AnRHx|{#V8(gv(q0d|HxA{x`O;GT|odvaL%!Qi? zFX()Jz+b{{?l@C#_<0jac1;)X>HEgo6NVX}H(^-AQ`HJ@J|#`oHH9FCmdq~0BezLij99SwWAF3Iql{~g2)~+aH zl&8Aw-b^!zKwjfkQE(5VDla{9{kek!`=ysJ`C6^N0>EVT8=4jj%0XJ}yXFwP) z02x|i7kUKkOi(~?Lxr=$NPLy9u`ZQfRp*PCNqNe*#Me_FY!qTM0 zRGkwvo@X4r^BcY>zO=b1gt%B=#sdb6-2+ukH!cL{^Bv>KYtv&$<2Rp*R@;r=_>+gV z;A5z!Ui1iMs;#A|NSzN~WZ@fY#LU;O+Yd>RINPcw)!?6tyKGv-F&gw(*{{#QwX<~4iFf+5TBA_zzMtn5PKw5$=FDX zjbz^$J(tW)IgT$f3Iy|g4d-zZ0rHZegcuF5I=Z}+UBTeA+NC{KMkN&iyy#4EO99bh zUHm$miR01$Jh-K=MHX)5F0n`cjc`g^2!CIMN~;M<-Z9QtzUYkQehd*HEe7d?2RmJ! z2sDzr+qacBUfX$iz9g~O5<;kEJITFpoNJYta6Ktsiho~tRNX+jQT!>lYQ9jGju zl8Y7Ujp-N0$W>GMSE}h?NUg*xPLAn*Hx1jFiQ|W8fnHeWX^MP#OWn!X`1*!3-xc(g zL5!h(0M%hcC_}iQE(_HJ%Yo0A)+Yf9c^~2EV~=wjZq7s&{ec=uTO9pQ8LTO1sc%bLJN!VjYvT(hVEQ53@oqX>45@+)Wwr? z=CHE*0ajIcfY&xIt-;+>Y1&Fe+Eo?>(ho-?9xhCD{G zE3l|}%<8V8F-iyM_YZ*098qCTL6rA<2KGY|@HT+5YanlwyYX+(c+q{X;A0pG@GOe`Y8*7EL?H_n1 zygm}UU;QJ&v4;L60S4%?y@A9Jkb&JakocToIT|_BHWFjw^lOHGi`gmXxp7vU6CZvP zJ{Fd?ZhpVI%I6j0`y1sX1-sVBs*C1W`dxQ`u3tg z?ISsl5c%&tpOeA!$1bvSdPE}d1ksGBaUyrZa0L^s2OX;CLQ3O>(qPSEg}U54Um&&8 zQSTqph=;=; z_aOv3H*RM^;d(MnI_(>Q0*jULm&K&w%yLsK?{sO9*hz(?R+6V`cpW{*c4FMimvrV= zEsxI%TtSQX-JPu;QsTAk#gJ0~4;CLd6-nn^nLiW?ht>oIV#ZvgSU7)xHo*S-^E$x} zUF8K>CS8UXsci}1 zMV_GR&dw|^jrN5fdd|Aqm>AMcbH>{rdlUw{l;>(N*d$HuK{0M};98+hs-GAvjXlI6 zaDT+M_1z)O_iz`>WsR*@NNkPos*@u6-)!GWGr@w|-U5r(`AN;HSX}N-ap=y>Ze=j- ztjhOclCntX$)Bc7Bj9X7+)_32j-+O(d6BE-VLYo@9onsW!{`%t?wZhwjf7=nz5S2E z#MT=@1hH;+XQ2fW^{d{@Bj6lJiGf`*?aKCy9mvP(%Ue}&dTrKjy5 z+#|SJ=ME$f%B+=+nT$l=DY~GrGpf3{T7$&W$bzWq1*jFaXXx|ZsmJ2dXKL&%{vS?f z!iY4$R6zkEvH5+5rNF{*Q@4>umW%WpkcJtQtGqh%FL~TXvA-f%9GdLGE-RGAbjvztI|sjqC_>{NF0E;q`%q zKHYl2_xr}+5I5tp<{-51Fg#yuDxUa?^4!Gfgz@thL{_!ctmnOUg-s-50zfff%jn72AUuh;Z2V5x@r^WTDfNB?Z2*C*!)9al3`? z6-vIzVX$EI4_c?R?Iw;T9{ZVP&KbuJn?;_o?#r*oM zxXGm~U0MuKzn>hZ z$W(S*iyvKi%y@_CsP8_01`NxN<06Rv;m~n~w3T$Iev^O=-|^7|vC zEyJY6*4%&WvG`3f4Z%h;{GQGRi%4x>J@##7u$iRE;%D2D;=Yg3P|BgF$LXIGL@&*=|)TbO+|06-PpZrT`b!vMti+X+^_F$1&dd@8a2wqr)!SWX8MvXMBHGI&X;cZ9xE)b3H+Rht3`dIBA0q zw>^+EHDWp{#SJcNx*Ra=eCXV1x=6|kXAp5;HYA5DGd*D4%M1?jq}I0}r76YFObW}D z5y5#qGO6yB|Ks>JEy6b9`oTm>$Fxifi@Cks(C5albed~8L+*X){up*CYcd?WP?K4s zc;EbdINDz$BCWK%zEOiOf{ss+@#Mv7 zSQ)RZdW$Ul~}N5I}L7Ub|A3$ON2egs3aG1JLKVE!&RgA*9tFD zhMeglV2<`7hv?|)y-ms*vMc@^#e_2c#h|d`WMr&tfT@~E16r2k+@h~lmt3J09Y%WA zeH$xS@fjD-y0oOx?mQzVf2ar}MGo$9d$XHzo#YjJi14bSUCL@9mq=;Jl!?sC*t<*W zme~?^GBWItI1j>+M)9`!G0h@qI8Z}3;g?RoSq*9;Syy>hU#^g4=CtD|>Vlg=*1&tr z=q`UIFYm|yB;9aME}pfQN$#YPnW&T|MsM&&gl2n5Z&FPtHdVYm1oM*FmgOhR_D|&f z4Iv&rq$U7{JRz~;CuW@=m}4+5PcBiSDp(y1J92@b5^f_Xj--N=W>r;ZRdj=m)~Mn@ z@wNH!so+Y-YVz@71O%~F2WN5wcsu-Fh zNDiYb)jw^OztqoLlcT#`i{d%ort)k)B>d2xpNa1RZH?}mcYT>^_xGw!C-5}gby%=4 zvw#jUN!D}FvxuA1AqEN-r@-cA&4nlV8#6vEEY~eWE3pxPFyksdIA3`qHJ+(B1R_N4 znc>`8_K~HQ%&5;BzT^&%o)TJ|&t1Hu+q}-{o?o$F1e`sc56`rC#7Z|r^U=ZZ2B;@l zi0^vlmVO$ux-0d`@au_-7GpjW;Wg%ITrRJolYOV726@s)ay7XhTG!_I2Y%7oLQD+& zU1_4Vo#O61lTKWwjDQnk%tW26t|iS5E|cSVJi?GBER2*#sZ*qrVy8B+@-Pkh! z{qjb9mhee2OT&4N$-B&BZ6a~U4z@4Vwk&ur7W~rg)>!K_+fEsKi>w*kW$)!??h+Dd z8+JTnQp|eZ;@JfOKLzc~1&h%K<&Dp(vDMp_m)9>kI6a97;$L)kd)jLtjF(j$qx{@q zVR~L6vh%|eH9mz?`XmkA$3IXnIuTIkGSCGxmT5bkdin`9E+ zV9B~E>W3-4(TS5voB7lR`YZs29T6?r zF>_%P52wS>8K{?@Wwz&J`kyKWYM`kOG0)X5<#dzWJFt+-(>x-2C8HT3N?(qY&Cy3; zlW-1~Hqp7_V$NaJmi9gjMp`BFQl_Yl^@usPPHM;Ls$%N=4^AM8*F!8g^G`pG^V!eN zMV6mZnpFc$p^`nve=lJpYNVp?CMa#U?JT9tT|b%gaz0HnGF+~@U}G5Ke3ALExC zena_CV#|zBnZmZ64bcVSZI7WDo-r5o>a?k&~qe}}0!4@_=YzM+Q%(Gmi)O`&f}cV;No zE+1uYr<5hg>Q~|+CGWsWCG2+^{Aj@iGYgoh*AdHE_&dlnp^KGNW4R>2jb177^Vf{6 zXKw0`vGNBedp-Hl$Z0m*I-7D@pBc}ImKzGoJ)ix@9U=2V2wZUQSKyoMitK#-hV$3a zsuxWJgEnGb1}t`04^hd^MwhbDrHef$4Ubx_jE*Ty)w{Qgr*>_?c20Fs6KCWXXA37y zpK}uSwx@jRx^dq)0s@l1m0@y}1@m&|cd~)yd{6(dWz8H+#P54FQ8XD*du`xA-{d-s zOW7L;`eq&D-5Gb=ky`*p!A_-B0@|zOkXP>=@cS!nGd_(JiQHg8Llp_7z1o3VcLk_)WBn+Mh`KQ0 zyP7zaRj;mdiG3rX#cj;C$GP`|2*yQscP2Tm z2-lSnaOtDSQLzZ4R8z&msm}{fh2I*SinY$# zv+x%?rehr~$iWC`{?)}(6`&+_s`pYI)r^7N@DBb6@6Yl#7pIJO8j~d8sS9!CT8&5b!S{CALi?`^03)`Hz|QfK`Bo|J=R) z`s?EZurs?amtU6c%az34+~*aW*ReiNNC^S8oxZW%n?LZ79Wm0p2gnAAV8t|zSdJ{1 zejJNF2CQnJ$E3vSKLDkFLEU4t)c-|62#*iAH6kNa0W z-zL0lYsjzRk<;M@BV(T^p(SoWF0Z@8se{g7jr*u8Ks@^`@a!Vtzi-VqI~tig&GiB@ z>19I#aC$RZoD-V(QQuw$5KprP8`*YOGKyChry*f?4AuYJ{WD?U)1~Y!CH>pg01Yi7~z>j;5!6UPR39|4f|dy0VsUQP%L3rJBnnMTpS>-e#R zXKhc*QI8`vcnPSNbn)Aj24(YXnee9hv&&2PCuv7`-yc>V9j#+ zL>P<@_q97^rPR*bQW@_COyyaKHYFy}br^1~l?3|w!4?@Kg!y^0@{k(7@O&{dJ*FA| zz+Z&aG@y!?k*1*F1pT++Dq83I(%-p zxwR=h)7341r4+`MHLll$@m-gYqg0Myw*d3Ya>!0A=|>^^_|6o64Ib1_sT4pFV|zH~ zNtsb3@~%ADpxoojhNh|H2c>T@wihF`j8B;Fc?)RYXcotlzSJ7m-g<`@(&r_(u14+S zC4fn#XCT3K*^j5xX-1174T4_j(lh zJQgV$Lc5@M4Gn@@y5pxT@x%4aV%q!GW6VyA1!w>1r*qc1WCIJvg$ZrM+kj|#+z0Qe zk502rdmanIH>Q${1_CWq5U5dTPIq;-9YgZ7uX#wiwmfe?IKynbU>U_DJxxX~&+aBJ znQ{^NxW0SQG_q5M=IZVv1&O*_n|Wcs!5B?F5nv=kU(hEwa~<{H3XLpicU75P2htc8 zBL3+Ks*=I1#sxbHs$K;>v zhr=oV*cGoV)dwxLqV1n^0RyBYj80t&DnK@4W`m`k#;R3>|AcoAqf=nnwng|NSG%yT``bFS2~<{|)go*{~HT5O3pTP~Fu2%z4&lj^(Yi$y5x z0m;bCK+%onxd#`}lL#-dfZ!-Izd_-Ra@4*UC|_=5Z4bF4$ODdb{;@!%DM%TTu>dV9 zIZFNBYWn)jm^^>9*S+QC1rNaH|AGRV*(r8O6Q1XmFFJwThhS?p>r?d;xDIA1RYiBe zYC)%M2IjL#uc##Zl@I7Ov+BT5auV8)9~)6$#Dz@yJj9{l zVbFLnVkX2_-)()G^XM=Z=wAtS??O7g-i_RYleoYOU z%(0_9pk>1hlgkJ-wY?5KN6k1ybJo%2>Lpf?y%aK5rM3Gb9UNy)_c>1$;r4)-H<-dG z*Gb!;>^s>W=>1?qh6+rW5618t;rK5iFJb{}L^<`Dr;fNXODoQQ6~-+pnfyuifzsL~ z_6E4oI7;x^Oqh=RRU%;W=8x_JjP2q=gilm^$fGVphojWQpsk23wb*#EgPhJ+&F<;IJU;0JivHYzF| z>Ohz0Ls@|TmQ*orjJzpozgjdcA^T}iKRH>EZGGXqm`(D6=NE#-jB21tbZOw#~(fK9j??Is+ zM6VrG*&lUhvKN{&m6eVh#iSRLLDO$tY959Xa3#!)7x#C;umnJz8b}t^Z&P#bB->7z zP*LHO*`MRaIN_n3guq>z zE<7;kHg&%+rLY@Paw8KCldzMHzG_)-z>M9Z7N|!xHo^{#Q8--Ozh?!y|Jm6y?QFd4 zj(QNWG=-Ff`~0uG&Kht%P`iE%sJvbu{sSH;d^%rSiD596r6!%ODFxa_DTeBNDo(o$GzH;@s%{pX!-PsnDrEnO20As`vI^1>=H=&)x45X_s= z#c->F=UQLg3|XL;+F43T zj_K3Tx`WOP#!QeZMwq|WrEP-CACSEM`?6QeRgKh^iL3Y~ErtN2uC%W9;#JalcKaq6c^2chq zPt=FgnjJ(=N5gwc?0THxt#ys>;7@E(rP}W|6-liFxG^pY(GYQ}%UR-GK2Wi`tD&ku z1@);g7;h>Npd7K12PByVk0F}1h&pGTQGFrvS5Ojwf^9pf&@wh-PnxUd(w+aDu|~bY z?A)|8snvGCW{aiH#UObL{tHGEfk+*~xZI*u`!oN*rGieQT40_M)!4Xx5i0#W|6}CN zTH8zV3ag-wd09iF5i2zg=4H!jWtjgJw#V)-2v#4^1X#|m8+$pzO75n1(Z)(qZ>}3P z=@9;BQc_ydYR=BX6fd^|=oiLcOFqOwvG_CU>UcC)MWNdDO0<}okp&^A&P%O}%2%b2 zBeXCMb7`!qBGQozl)}aQM_%Z^G+A9Y&@=Gg z_6zH5FFvpXK9F(dNXalYU6sSuAXQdSVBk_&U!SEbZ5DteL=*higl^E@Q4D=J6@(=s6kmD4(_-YINOXN|Ve+xfEsveS3w< za|3@bE~wza5uKc0(tTE(8gFf=3My>sTY(TLW2VQ#pauc*z;i8~sMLRdl^78r^MsNU5|M=0qk!|7DPaurZbf=)v% zBck(ng`LGNrxVB(p49qK`Glr?thYUKhtudTM~1Xs&=k#ZB)UX)QpW@uZ=97>f3Z7Q z-6II0n;v2a$8Uk@E4d22ANNf!wYAv+N+ct@L2(N+eS+|0uZ_+4M@lV39Jd4Z5cX1b1W98J)@9P2k&BV zi9Mt~KmJ~&^|2zgl9XL>1>IYD+Yn1cc#^!wvDhLK#5cGBvp1j`zx1GM>549A&)qzG z7bJ@25uc}c!d%_6QG^$^c7_7KgoP}zK=p+y(p3pB(|ZPkd}D-;x|nc%e_p;p9a zL$MR3ZQ)!ca}J{yoiYBx@-W6_<}E5Dgw&K}+(LyB9_odcK_4{<%6UC%iH%t7>fX19 zB3$^`_%!h&7MGEP%f?bpA##YwH>iTviT(9YKs&E+x;qW+EWolH+m7+o?xdc6nbY-Y zGL*dmgmgp*F0T@TTMwaSkf4s(irNI9@{+6$tJpqD((=!ey0YrzRo4$vX=cQnTWLz({C9`oI4$?WcCY^Zsv9C+M&P% z%^)fB9dudSX%iv|e2n}GcX9Yffo3r->G_PxxNfl35Z>J1hebP4ebtix#f zjbbsFL8PmHk{@?l(W~K;&D4tN?35zfSO~lf83bxU4~{_Y$tam7*-YUWy!UF7n1mPZ~1B~~C9P@=)W6h#_U6N;}(U=~=EEIJ+1f(_7RAuQJ<&wBQ$5 zEC;8i%S<8E-FMJ705c>?ErObD0u7#_FMPtD?|1i6dl}Kx$ae@?4?SFYkfSvtEmD}6 zU12sHLt>e6Kf-a;H&7n=GsbrF+N4V43g5;;7umHOwSCbDftp2Z+g2Er@N4sPx`vwW z7LKz5As;abZYZzEnha{vG$G7~&x~~f4OgkLe$N~RHAqL$CLqdVDeQyCZvg&%KKP%kr|{2Ep-Rsj0uA9oE^>%c##l=pn2EOEDr2q$ zlRug9+1Q;3Xe-rNw|$Cg#E4_eenGQ0K=s^cTEFzJRmxy`AMmSjtJCfF+on-u%Nf=W z_9)KwfCurz^-8XoF!t5Q3bW~O%BvfVV>+EV7YrhtA~;& zfX*Yb7S}@`Jq=Wb>9*Y5H2qbF&-e&h^2XfLU{ri4OgRjl$mv6aW63SLnT}X!zOfSX zH)(hZHbBmYM^+Se%?{<=ZZFUAg$V{1^5I2qH=frG)gjhbe*vZPHPV37ldNo39S(!> z(Rg>9+^JG)lA<%#vM~nc!e8>SDYD7=+D(wd3&N4shB3R3Bp*a@g;jQm?||g;QWKTk z&^OH2>0;7- zG=uVbUO5EKJ!IKX`A9vnKG)g^ZhGo9IO-p$v7k<^!@(mvJ==3u#6s;8mAk>n7e)!n zqgic-M3(qhT1uFNUr-Ptt#{l+0u6Az)TA{OTz0~W^-%jHja{RCWP*z27)}^6;)I`>KcZRDcwTw-w9YUiLsHC9pBF<@TauKA8Wf5ZjuZijq zz}bga^u%<;CHW74UPA?b348q`NV?1XKy{G|NPNneDy&ZSn1Bpi;tlO*f)ZU3!HJs0 zL)jiP&t>L9SJY2L5unVW`VUl_g)o=XhQ>Aei7U-R;$pjnYBiOmi|S<7Ej3W*y+DB; zTXH5ZeT4QqQj{cKAT1?Lq1~h?TB>Lr=A~MXcb`0+vqBRW$j&V4czKd)fjXKDv z8MRtO=!MTh!0AzFr6iVW-vMRio_dWzXHe%?U|~gClolJXm|^9a?YsxfB~SK74$+~6 z`D6BPIuC`2bM*vmq#*pz3}KC1)vt_TLJWy*dEsi%LiFV5OmYeUGmE-LaYPoj@D1Z8 z#J1pJ^hZzGWL0R&8rp_2yN*2S4z2`6?GNdK52CStB*w9!ao0CTFy=sg8+-`r#?)k1 z=cWucX*WUrYmA`&d}p^J6lymNU@@~g4rp)8fJ@xJr@TSFpQ|4+x{iEm2x;7I#yS8v z1Tlhx3mWVw=`Jx{lD+2%51=>V>6;_(1F|7+pf(THDVTt44=PhTO;rk@e@W@Ee@#36p1a7r@AQ`SQ#Ls9F z3I0Mad^hKYj;nq!Jn+6h3Gnr$W&}hw&+L~xJ;Y&GX#yWbp}V!?vO zxe&fSqt=q~uW&tb>Ik%v5`Ux|>C`Ts*3M>T`N%g1ctg0p?Rb{h+Gw2Ke(I<|*01*F zRjxjVPUy}V9su0>gxcU_$tE!o)Z7EY)?pE}+N4QZX<%YHs%Yxr;sx0D`$*~{V1>o} zs8x!z5cHPKwlGw`d9sJ0$#)QhaT>Sy<^#7Hp-PAqR9B!juUbV!H|4obHUWlL5(^=1 z4!01+W*a;7;hv$imoM%FxpSBbxo&bo-}UE#D@JbehtVXeI$QCaQZh8?SzM^Q3+fG* zHZ(qfVt)h@FXp6hD#jZ^e&72LhjqJFb+E=mn_k1LOZX2PUzQ~y><2KHweB2LG@n%%1%tE1Pc4xH=G}GGxh)LB5AE9uBuo0m2 zMMTS62woQU-OZu6ZcLi06A!`iNaj&XwS7!5S_6-niJn9P_V~G>rqisY-NJpN+F3Ku ze<3~7&P^XIN5g-pXg#F_1xBRKi$|TSg7z2*iJC|g7(}bwmyD7snKiN(Rj5>0m8_J9 z?o2)!*Cg0o9SDXO5ay{Oe%uT4!pz>7v-gG6%x_3)ugPPmLn`D}4#X3iuA z6SF#sMb}9Vnky34hs%cCjoS>GHXyzaV6zbvuhKRiFx`SiYCv1(ygH&=zBBw#23v;f z7+rrJr6e>D9(q#_C0eAMX2$?!P$y_pY*xGJu>XFrDzHE+P^pzA8>6({Qjtq}pSW=| zJbSeL6KlxaS8p^z;6tK)|LK!3R z1htV?9JYmFw5)M6^Rn?*mp%@7bO}9<&#$?Ib(U;% zo}sxhnsSuQ2ZW`-x8R&^>r7@L`@X#(X6#3~_GWzY^5=q&;1Z&!RmAD*nLBoE7bb6> z#slw(L3YRhbT8jp5tFjoq?JS--YTL3&|NtUiYH+&BB$^?*=C4?-+;8bkLXRFsrMOG zg&G2SRUpVH-3ri(s1>zo4D0V6-LW|uhsRWEA`&7S zI!=Ki0z?jYQ)mQj-VJ_(RNj|rs9q0pGX%EJ8E%*Ud=ItB0RF~#bHdkGEUbHFOAsh1|YJq1eV<OK=p+kB6nR$>$I342icqW`qmuxO*UGa)d5rvjcs z7IflpU1wPSWuc--k$w67tR}Fg-RwGASI$(!#0FD~oQ8Z+fR2uMlhs>Z{1$_-!Th+C z0ndT)>hs2s)i6T`l$Y@X9}W2C(nes$DX(qPV|nLtd^O%!0;!t`HoG-lhT-w!%A+2* zD~tUlimFmlqFuKnFnTl1wif#HU6Hu9Hw^>fU`;(Cb-TM!!W4c=O(mCzT(+u>%+DAX zZHu`t6HS_vX>DA=+)h|Lb3$fqTf9K*qCrpB@rOk+X_b2;0;^j>IRV^e?F3sLuf7`g zO0|23JFzQcEc9v_{S^Or9N3&g81*G&cmhU zmik&Ojc(sW#kM$SRp)ekVs{cK_d|b1Tf_$EE~*8@`@fdgr{?7Bo4qqePQh`nm&+(y z8o2@K1QIQs^m`|Cwc`Q|&!Kz4JU^hV81H<1{;Q{EnmOg_-PEjKGng>b&%Yja_W|(6 zDrflXu{KQ*71O%fZ`-8!(x~iNKyDKAig8dlBV5XtE%b zLcz`1yU*Q}Sr{SCG}-7ZmBU~|2anl{_J8I`?T+~UcsbQ-@|0n=Di8JP?6R?{V(%q$ zeY-9oSyH+h@-xTGMV+oZKYRh6rCeeKA*BZ1^YJGoKXt7a=0z>4Cr}`dfK}2BmMx(Z>WLUZ1F4{ub$mEs8r|n1{sE?hk?}rKw z2YdL*pr|{k-7AMneB;roNfkwr84jy(B{oTp;~QOczxJ^%E)q56(@a9KpTC@QOp;<3 zUyn(3oj*rOs>b(+R&p&azs@;9wj*tty`JW8akF)PsGhUvwU;DyHgvX3^tBiZ3xVqh zJYdoI5Vq`sUtB~3ZnlBvRGK+)UdA2d{LCg^{gABe6S;GRiT(N()Fv1_RvSLs+TCG5 zdMp|G%dt&4ldhvNduNI8#7|mY-<-jaZ<<=0)(N)LPZun)D*H{&&zeJRjKNI5ekHkE z02D!Ja~MWBUMUTTEJ=dU53VkoDk?SdA9PpTn}fqMJ7}YCmTPhsML2-ZHTwIw7CZD4 zs&i3$mU>8A?b6bd`)BWqMgB)&0KT&(w~ftX9I9Bu*L6f|IGU0d@Cv&sQl4l^+}VC(uY>#J0v6R z9)LV3%)g{J9@(!tkCU-UaEwqAcOutCv+_t;9{-onUs)a?z$T8y!{vUjCDo>t;ZUWumlKuLrsO*9cDHEP`5s}FV)@gs{&#T&Yr61}~^?t{UG~xEo-iT1I94^_PIv}Li4r%5C!^Jno z4J_eNEs@gdQh5S7=#DG1L)?Vf-2>VeqB%!zo`;t{^5Z32kNvtcOm6M@vVU1tr`F=B zil|^Fv^!=x%`c+kYjJ`V{%R-F5`??=q}MPD3G&1HKw|caTas?yNf3wU{b(zh-U4H1 z^oPLF6UXN+_Bj$@p5>)_To%5^_02DykT?5wWgN$wQ;Y`Fz+GeZa$&`PJr?GRxa7*A z7tinlo67%qCjZ$ybF!U)&V+1pr0f~8RnjZ+lpKP3V-m~flehPsXtcDD%Q<>wH@p~y zb~bxx*wVg7UtQSWd_xAeB`A%zA`3-E8y~|nVHHvSfj6iC6a81)!w4w-xultYr?dSB z4`ya1whQ;+4iAIPQhU?bMTKsb!#wZ58lT~nKQA}Z89yl|M6+G@`QhDK9nr?8x&m_T z=O~rCpZEnUOUl>f58QxCef4N$e5sU3Q+G$V3^BLC5#Ho0Qd&6Y8Tf`hdq;*VAzDQF z`Rq_^g*fmP)koet-MbvjqWbGS2Je@GFbiKTL_8f`DQP+`7IP^5UQJuHn6a2?}eudT?xag z4uex4`rY86$R~bFeG49tk)S{RiM3T4Sq;g`n#75pI=2K(W0_k>A5 zfIYED3+^)wHG`p=`3+Zm(MFXUsAo*j1ni?fZiH#cjZ}T)WoZZ5{CUqn zv|3vAal&R|zThu%kpVjDZy%Jq#IW%QwSB(R?X~vIoC~pp!5w^6Mx(e#?Gj8;EXo5+ z#M7`?vyp2+Y;cE~PR2WU2b@8~>=n!7l$w>W=W6Z{>(H}lh33903w#f4DpK0Zpt49B3QBR@1~R}Z?k$*%n7`M!rf zRl$*VFauKa%Cw&xI~VJQ;0Di}Svpob)-s6G%mot|TyG!C$zQxVXOG~HZUb5vo?E=} z-|se{X4Fvw2JqnV+)QN+MdxHhNg%*W#Fj}xWcW+)LE6$9Z!+AbL5!Uu*|xz|8+Drl z5mvlykKxpMc^G!|%Hr2+q^+ONBZLe4ecqc6a?%)H4E7}D_?}^^>+i1Q2M*T<7S{ku zci;S~%@M%;w6)-l!M8P}iy*9{Th;}}WxWAZx-n>qy+q=h0ys8IpQ!d@4LkH4d0E5X zh0fy|uG*oaZaG*^V|@`i(;wW#LAzJ#*H&CW5p5RW=vo*=#Szl2Ux_FmeJ`!-XLxQ$ zL%A0A*NhGCE|G+$`dE6rE^j(QL`-qz&`V=L*e9X%8*m+7=+Q45I}THR(|?zd%IeZo zE8I~CD6%*BOdHTIkDXz8M=xbZ+GQ=UW;6iE2n%GrPk3V5tpK2J0Sw>a>(mDm*vNBe z0}$HL8BBoDUyPob-Iez328W)&;4uaY_|)0^E>93Z^Fjn(_J;;oEt-xS^Hyae8=KmHszoT=LjnV#_kLd%G z5%f1rcrIQUt;t5&C@?O^?#>{<7bqFi{_|z?pCALb={6nP;^?-75`2kt1e6i9l?~w; z?Dg*A-`xFn?@fQlZxT@+{-}{dW!Cv^m%!I*kFXQ+xVdWL#BFoGgBVW_%Bv*5eg8Y!i_< zwm3bXPNsmV;|E2W06X zZRoso^$3?5p_F77(x1)uD7=bpBYhc=dUg-J?fn6oWi3UxGhDL;JgdhGcmx5czn}zj z)A6R<5m&!^beN;ecq;KNRr|GBZ9MM-zG^@%nB?BM1z*pQon6730N?I1!2E#_KZqAS<%pd{Ix+#5ofC-<>x)5up7{Sf_r%p>vFq z?$sJjhdhxC@0=OC3}i^I$jb|@D}#y>vT%zV;H4htlq1GXjpE?HKv<_f09hs$K^31;NYYUjZ zu?mOHfCMH|)7#qXknvm7rnP0ftVHknK03b_VetE$|GpBQ zBa|~?slM79LU6`C3WMj0$4VavvJj#nZ9?yopDaae3AE@gqT{Rz43E%v$iHP#mGkiC zK(8$|)WoIbx!_2lY`}hOJ7fYm4XN1_BKO zpNpGztT4l0p7_BICv>%WIRMb1{~TrYux2FXx)-m%tR`TeaJGqMSx{X9Rq)2o(K8;o zXN_Nrj5le9+<_VSf3-cs8;3iXOMnn@05L+!fi+Zbn#Rw7Ah}fdn!m>BNF_PIi^>fm z2EWEVeY0H>+~a>N>xFj+zm)1;kg?02#YHxl^3+fCL`^_@YE}ZysSDM+>i=hdhFmtb z@dx|&`$d>!_~ih2=KMXOa(B9Ss>}`~5tKeo%ty+}!Oq9i`xpZ??_hpYL{3D!6o9n} zyyU*_Cx25MOtj1758-=wn-k%y*1-T_cHSYB4Zrw^}Bb@W<=WD7Lg;UKhF1S z*g2XynTCRA0E5<5p%^+|>+$ph*8L>nM>3oW!zDC3Qon}mZ+ME;amccT|Mo+qrF!`a z!bBJp&3XKN1sF2~oBj`MeH_$3GHb=DHB5)npRmK~(;O($`UPKs_M3S)XWD8~42d1< zu?lfdvDsstA5OwXTpAzm^kkr7c8f?}VQrAW?H$)#iX zO$Jf6@80_-^U`MmEMq2+Kgh((GXMk?l&Itnova+;A_}~)2le!|;ELG=p>4ZncE$xc zodr$`FYvN~By=McFPWWlEcZ?ll`F1S=li}Oti7w-SB*3PI+Bseh>^@x5V|;WB{a7Z zs>tUz5k#`dbpgPscmB>D;%vP{LHLuyF+XDV%9EaxX)`8Hw>9xm6}|U0mP({HJil&h zGCNETiA9t4?^OQ15W)ViFiSzFFyx2`YLR?$v&=%^nNcYpxJY2N-F)~eTl9a#3$OpO zM{k^>xmD^024n;=hDAZDmSRs-LyoU?x4(o*X)g#gE{5`5_-o_t9-+efltGQ;{ybbt zQKDl~EDR2IN~!h?XLxqSR2w|=sBsmcbF~UI9hgKk@4l7DJeHf1aM#!h2G0zls4WZ0 zIdUHe47UsqnR+U}UG$>g+c>?>MGlW3o4Urk-||J8NfaZP1gH|mT!W5KbZC}o}n z6%j{Jlx_vY0SkiC9i%G=VnAvf3!{i2h=>>v0TD5PLg-B$R6x2w=tz;?A)zMUJ~xR8 z*ZK1P;QeOayU9Igm$lYDXK#2Hz30FA7^B|_zf1%BzPvI%%U@VD+lvx9Hl5g23-Wd6 zV$0hT79CB#&k$`+ItrQGzV9=21K6y_&Fll7`o?wlXG5|ZxNt)oaS%>Z6$snw<_R`- zbL?`@l!o-C>x+6NL&`#sqoZikef6dI(P#V&@Q24#ykuzmIw{hquh&uV3EN$TDT0{X|d#EM>lZdEiKW1%i2Cz2*>$J z|MJjN_!rP^SF?yi(6P)f>VR>04*I^?aO?oi+I!C;GQbw+AwX2>#@m7n4iWGG5)g%C zg$8Wd{BOH^kFtBLBB(CB6twK`*t*99#l|s{YB-r@c@u(!5v-CFCQ_@Y*)R7k zQI=_-!r2j!l(qHV5m&^=;3eOowQ-bi2Sw+`9zF(W|Hi!alKvW1g8Dai_fOb;O1f8|3(!dFlON z>>GK;4kA9pK6sA0ISZK zNl}gfpG!Oe&$NZ8gOsgONid0MSNRd3{Ji*J34Xy{I`lU;lwbCU-OlW5xrnLogN1zT zuN(3FZHIh$-JVD~c$=5B9~I}2KONd^v{a{V^-{)z}UV{eN>1J={Ey1gDkHRMSQJg@6%L5{4Q-II?*paW?`bpn)i5-N&GLw`X?F zBaO@0sTKBWlXUP7^b4rrorsj7O+4#tf9`k9mLX^vNREPptsy0~cJn#i8bo!R#AFQs zaA0LN>|rGHLaeE+l5zb%qE9j{hLu638nBcR5DZ+wmavI!JkezSKV)prLxpU9U_MF|s2Rlzw zF~{$@i*P;)Q%a(_N{P-HD7LvlAr^>Pogq|oPfBW+*csJsU!8p#!65Tgbc(=$Wp%6~ItDHE?psnZRGDV|fK zDNA-F*lZ-{zopC9_6S-F9zk4u5!89PZ{vSsDfho)e=XAwjH;n%0wMaeHBh#tv|Cco zIc0{s!wEg3KLF>_V>mxFq{y8SR&;DBg$u`}+jv;ZL>%t@ib{o@Rf0Y~Z<6esn@oT- zrS3Z3#n;BI2p^jpgv#`hOyud*xObLG_`3AtXLG*>j#h)316Rjky#>pR$2N7+yP zk7t4l5l2hz^#fL?yg@MXPDBO#I92E{qm{$3f}?Nex7LKMzmOA=}Lirt7$Nz)i#BA{UxfSXft3@T2B9CON+#ZW}@^vAHw$IY%DCpfC7sQv;HgtC&wl&?3FZk)O&t4=v+h?decvGDJNc;kh?7uN@l${N6G8z5oYzWIg7Cb8&nLKm%>AY4uZiyMk)eRRk9S~+2(+t8aua1u zQ9WJ8sy>}*5>kc}VvYjmDL-%+F&NCk{}hs8D<%U~PXg`}qQf`S@2MOA{DA3_ zZx%fcX9PE92>E=Vbttdk{)H@zjgNhC^a|t;L(ON)LH2{H5p;Fy(Rx`V zPj7hizfD&kJ~%q}_X`?Aq~Bw#7LT_anE&M6oVz=2JUfuM$6$#`HMKO?EM-XDOUOpv z>!-ta=lU%FX>RKN)h~V*eQ`bM)~>mPk7h1+McGXx7s=`hh7aGFtZ)V%xRjm%h?S~fYfK&&-li)Gw{|D6!czaOb>4P%Rb_D zed^hq6UNpS>yi$#hL{mQ)G?$O z4Y4b?@vq#U_?3$qw!CUg^d!DNAhwt5 z5ciAkmATS+=F1&TKH13b9ggry<|*25_1xwOS4jzEN&bb)uG~jG@6tCzjgu_+``&K@ zJ_}rY>E8-&4qNhqq%*ERHtFKlfTGM@&Mt#+E{x!qT+>9(5|M2Y^!Cp4vAe8k|2nno zjBWj^rWaBdPp@;l6JG5#=|HL1=55E1543o`bL1E_>j9`iD6N^bf|;8ZBtPq_yd1ko z-(j_*AJbyW_i#hmWj-omSk_=nwX!K@08O0`S!%^ zMLiwW0=AV`OV#ON^(?EX<6HSw&kHBm({u_V+TCkrYV!N<_hX&3p10XLOm%n;j>MT$ z&ejgU?v2|mp zkz8U@dS%A}%b`Z+rwmKGID;*|=yopqLt20jmpZ#@K1*DWUJ!<^5>-fX*=Y=%NQRy(eK{| zzvSt{iK&{#UZ^p0mum1dE|dyWz&?pfoP>Kt`bD4=qtbB(E#6rBq^Bq>-ahU3H0tX@ zY7f=m#nkVAP6Q3N1{-`sw#E7U_&~{fE#=KN*I|x%r&y&#Wg1nKayZ~}z`!kAb)kG$ z2@BmFP+p*{X5`IN^c|Cl7s+G!3QInP)986T=|2%BZ)JesE(0`UXRIdT`!7+3i$y^q3o^`+{!{a>+obwfAnBw2r| zOiyN?{DgVu!zP(Ol#Nf(QM*kP{w)3{&c*JX+IMnanP(;o&fE~*>0@TMZp^zi zu~qbz?Zh_I>JM;Dw%P&M&XR@=4I5AhN2!(1X;0&xSR8Qs=zF^*f(I?2Ss=g(+dfsB zvbNr~5Ex{1s9dd4e_w_J#Hh&MQ8Mknt-%*ab#Z}I?kK>SKE>K8%S>4)M$J{(JInOi z_iy4P-v4J4;&Hgs@qvMa?C#OY0cm#q!pbD+F`*ChQ{^0^kSAm} zX~#kxzHleAIO~tmLl15r<^3?+39DrW0Au=;(^ycB5C+()=S-&mmxLuYZYr|uT9@1 z$t4)jR^F;hxzRJlArc!R&e@0z+#p7=SN)x7*{$w*FrGR|i@SK{rXx)^ZPg9=?9Ia_ zb&c6G7TjjzJc)##%(d(oY{ZgKkxUSiNOV2tbK(B=>K@0RNbZ0HrvK#M3Jr^ga0Ez2 zs3mJi1=-~++LPP=U=hlVZd7^E`U%US(Uv0;6_ar2L?s$(NPqCe&%vVe4#7<&IS-)c z=Ny%(S5FMnv_oQN9RKoYIneo#xCV0X)#nx;JY8yD-!c;Ip33lKIh}&y9xn@-ForI{ z(bo&}D93u<=hx)R@{khz)2LXlc#$5LS3UPrrLg$riXe;*^TH-sCE4s)qtBr-{tTVs zxC=`$Mz-hzl?}~L*ztfqF?z2fXPMZ466AMF7scF9Q5^<5w)AZ?a+q@Inw%*rDjK+H zYn2lD@K}6SP8BR%`5RUnQ)@ON%<#oIPag)%vucJETU~zzL}=-YtTdn8wji&jExp#_<>_8bwKvShow3Ofbcz4g!eOeSybsE2O0Bs zM~$5v4&1p|?I1*xPQ}^~iCJNcW{3-87lZQ6jEXp$G>I9hXR`mguytX-HY_iPQO`HW zMtT;2HRz#DDx^AOOgeFCtIAaSf$wk_TfdCL%J;gyR}`x%?@qNKCyJCv3#!jHO84-* ze0jt*Twm@0W~x5)X?kcx_$iZEEVgvtbKz|*oLinf51Z5w6>O#H1K0-{(&TERGcPte z`HQZ!@b-oW?&le--h3^A#+S3mD}H7eDH#DBGluy`#@&Ifa2ZL=5aG4TZ`R5P@h(e` zI(3&rNC0ppwXq?36Ym^GZaFvej=^t%n%V~2ZDk&=lkJi1)_`-7OAsD>&LY_A8N|-;lYQ~8WTguc8tK0WA0lM zapQ+oy5D5gtnkeqw}b;QgswDVOKrioZ{HX&sbw8Ug>jr8`TKwKBx16`>}x_Mg8xJ) zuUAmqyIO8uZ8%fiJ&kVP2glYdqeBK7GXv_?nHu)lscX{BGX4p0cIo6^h8eD)-bx2J%7bECBi zisNv4+tLf!ruyT2WBB^yU>%t(7h9O$JwMV6$ziiFBZ-Wg3Ga6YZHv1Wy#dHf-<#nM zi4*?nJ0O`S2XQ4DI8vG9=uDC z_nC|1AC3zWvNrj&Wd$Zm1R-m<)wI?lGcbt{CeqI0R!ZNRC$_0%)VnbNB7R1F=}CQ( zJTmZE^Aw5_XT>_sOT+aMqj6< z%7*gjYi=A-0%U})v%V?skk9qR_LMI`& z7+*Kpg;>D?O%dm95H=1Xr8zA?8+i}d*V2)Q~=U{o0G?1wlX!#Klu7>=j%7=*36En7f1 z;VzHK6z&I8P0gW?HqB@9C96C^PZmORMQ#8LA+JE9rsccrb;#W(n^2wZ!=nT;{xFzIhWZWE5BJ_Nqq36$dM*x>06-v{QpNzPVMbFW(+js}MtZqXaqWOyGP^Q3NS!T?^&Lk=V@TNS1Wxd%Cl|zBhfqKVzNfirxW{ZNQ7gA7khNP2Jh{}O0 zDnK9oAfm>@Vlt>0JR1tj;U>&CFXAaHBw~zFOz|cs|D%|E{d4pF zV?e^rDCc;<5VuImk0hiN5BH6?1QcdI_S_1sP3G0Me+#S648AQ5>5U-5Ck_jFSd0%r zEtnVjpN`;S1@r!F2G7M%Y<|>yjt`KA=OZ z>BmSQU`An>KS+x;Uf~;o(WB;&ZL^c*b5vyfXV(dSFL;j&K>}PaFs~OBfN8$OiQela zlc;0>`D9#&FP{CkZcWA=l^qm#9Q^Ier@9Rja5i#>O-HrI^2%o{AaBiekGWM>aL_s^ zF`ihT$9EFLasKQOi}D5L06gu)GRT-YCbf>^@E30L@}}dDY@~FpL-@Sr{YlTNRHBaW z14H#VRep5yL0RsO!{1z;e7d=o0{fUu>5lw{HhRb9Fj?=*h_@2-IZ!R<^0?hn==?L+ zsvA?Xa~%G{RNmE3N6dtRjRqv1o=VcATq|9|elohHX`;VoJnI@9oP~zLbBxb78!zr% z)WG+}1pWWrV_pJP0_rR9Qqx^h1t&Jc^wc>CrxBtH?Ft@Zog-$V?W3ipp16amDuYxy znI?Oj91jBfJZ6p$_po3>g|o?>i(gY3XDAj2;O%Zaurj+>vOajCgcYAPHACr9>XrBC z&w8L%Iceq<-m7L=IsNANy`Xe`Qt$p-=heIw7Cv^_?{j6zPrs@8>De!{&zo!U$FG-& zZ`Qh=JZIUn`sSPuD%a$O30L0}#@=q18zlU4##Q}joYdCa-~IiV{|7or?}yI z)RvR-w#&UcG=?*cJl{_JR`NBi!%Z1tLiu?Umu6)&V-?1woEGnYlEobAf#VWyLm02` za?b)Zmfn_IG0~NIP#rDP$(Rfr|hoHWD z$E4D#^q-RpnXOY=z4F=dCqKhw|D!i+N)>a9s~Eeh53v`Vl!e{M>%EjSTH@K&7C$`{ z@AzyBDq5=uy_zYZR#FRX*mjqI&Ph2}cl!GMWTf?*#HJPvXt~I%f#0l)>rM=#z|RNEf~{jQ8`oCAfE1-HU+2N zi8*k%E4e%&;3KU{U2rC|I)8k#TBWbg<^q}eG_m@q{<{hp#YoO1;>gEpFiO#k_ zu;p+wx!}YAUri4=$B#4q`RADxDpn?_!A9ia3AeQ9({?_vBK?v{a%G+6i!@Yy zS#Ry(!j6?{jY9Eh`i?k{2`{^a@d2?hYvmU{c7e&Z0uSbYK#)AraKa#s7UPtC8jJvzk(BgkpY*AG zTQjJ4%pv5udds$q4ObUV)%wuUWJ{BQu7Anltxbx|`|u+kd~k~>H?q zL{+Q=IyeLtz%x$&Js)I6E_p7A zJY0X*SkKL4Xbio#h}-nr6mhLTm+}yd7&K*upFsL@2UapqS=HOvwOe1OhH$dRUUtS5*%|r+gIQ*ko=sM{XQC(Sd6*!3rKPxZ zh~+j73`J}!{GaV~9y|RS^$u>%lMY>ZRu(1r(AKM%)JOj`pggRi8*PIIuW&y3Y;irZ zoYIs{{ZgFdg&HY#Il&jrbF{g3&o#fLeP{#V*A^5obki4TT;BjML&}1iu+EN6 zx80-ZqD`3jwX1rLNBs5RHqz+S^dJOSwYL=Gu8U1UuM95CYcH3ok$oH-#_@7oX?zgJchgXFW19mB%9dv`_Q0Tb_Ly*C`(WU3pcNz0hJO?)Gi8(nzY`2s1DHfI2 zUIr5g^>f^9w(6H)gIui2&sctr&q}ZQ6f_)x>}R}dkKF}LNmibN%--FWD(eZfJprO& zZoPxi0@aWn{9zo-sf%WM{fXDUbVH^y3X5@q8fD)@#Yc+eGhh4Z>qK2!(HvOL$DgfR zt1a>RbuOWIaiE1nJXJ@(sfUv!%g=xNd~8!jAo4PpTXE6c@|%%-g$Rm*z4pPDoitfr zcNxd|8#gunQ{5vy7Iz?K=eqQt#UfMJ<|K_zxAdTmCyy83ZX`Ze1T~lQrKIz0{&Mnt z_}>J=*Nd=8dTFUAMV|;|q6QY_kq`vSUM9r}Da-|<`*y42LyOON&c2^k6KI;qkEZSo zxH_|jX2d~^KiQw{?DVFhd-^Oacxj7^Li+SD6eS_-EM2^QZ=n2xbz4HW^Bu^}rL!}3 zpY3bfz7JdT;P7Bqig^zM>_esYK}nFS-dGiOg~}tnXkEyu*dX2N;izepwoL2_ zkJN;7%6$Th!)F`oM#$h1KK&zkc2F?ZcwF8xH(}N+( zck590fWe_MA?rfd*;Lm`VW>-z;J29rCeq-E*c9CXEE_T#>P}=d!s5eDxu=EJcZj-7 zheIDRQl!kcb%CiuS}sR^9W*6dI(FTRs)NbQ8DpVc!k-+?vUxXcNqubLoi?(qM8^ny z=cLJMg4h$zJ4#G3vGFJ<>sxasS! zeKp-dBA^J}=%H;Lu9(n}5Y$DT`s*ZJce+MSy>IA~Rib~unlG~r;DQw9dby#it6Rnb za||Y)UU!EXR<{T8dZZ6ZGit}^reNw~7ol6M_8a}0XymlubMe~Z*45Ur6J67&fxHUz zhz&PwQlOW?QJY8~R>sgv5j*54_R)iE zwT{@2p2v1UB1}TC)q48ax#R>iPvN^2(wlm*fwZ|9SlYjoR>OuQ1XtrB?V+~p)+v!j zPd64E>GFGkLY8mcP#BO~niaqI(@}b6nAj#jz~novRL8E`C0HOIsC`^JnZZe`q@WsjGVyjWmQK(39fp$^giOLP5g3p`o3YB3KE7U*nS){R1qoBoKIj84NZ$Ov< zc_o078;yxs)C*3;ExZ)){kw~l{>UhY6o6&I)0w};2Z8;=Ccq?0f?7!0*Rbn91w%E?)A58>pHz;9%B2rv=96EdWMa0M{NWc{YJY%Mc~U=I368(}iV zjsf&YEX*?vN8;VKFCr`}?rX|YT)R6$eEsNRLcTRTwA#qfrcGm_3>`Gc%t&1wFLihO zdTW#lAOkr*;p^(s4tRi&gX_jSaGO!d|k*xNxB8b8zrcqQn$-=EftvtLd?ablqnU z6#o4l9g}gKu4zRlz9Oj-HVd!~lP3^g;^KikqB{sE@)e4p$u0bp+|W~42GA!D$UU78 z$cAhi8Gv_a0=!3?)J)Kkhh_Z4h!)ot7%0L}n$QxK|9_BtYO4fK`} z0GV;)XlNhBEF=fu)@VO>;glN*D5;)Gt20CIFVXY^qy46AxCp|Ft9e^II?bIsk9#@aTxdeZi ztJV&kZ$FB<$paeg;$R@m3RlSrgbdXMHhYdYdeuC%jk-=XocCI+!;3gpsnC8FPpqVMuIjAS1~ZgGG{qs zVSuwl-Exaz|BDtE)x&^uIBGPHpcd2;(~^(K)f=xjU=1oK5kSeSbS`&2Pf!lyM*@Ay z*(|tgHYKtnbXzDKEcyOB*cCC_7y|h8oN5 z#Zis7Kln8f3kF@?j!Q(RKD@pTfLMJ*t3;|@E^QH7iI7wg-yJ!baGPMk#_)mL*<03` zVThOg3ofzPk${+0XPmCMmiml^G)UM4CF14Rl^14=AU~)@Z~~zLCqIy!Y9Yr^U9Mia zc*(l-T0B8zn64ToKV9=a8k(c}cSGDo%a46KE)uwQ4tXgB_vE|7f$3hc6KI9EAJoeprC@g=ma^3Pn>Uee_*<9|Wr#@57V~utX03g7ZmLX8U7CZGB2d za%~MAVIYzW=S_D@@7?W;A|%ct5nEoP+iLM^BD8Tunfc1IMBl~A4sw7DyZRaZB6oW* za@4R*nVgg4VBh`~Wh5+jZ&|T~#|oR7Y>Bp44%W$W zC<)8W^H2ICdx+E|HK#F$KO7wNRUXX;bUMP@d}mHD&d@Z?J`rOWdsxZuXM!5s4v#PK zaHp$qjLYf^j*&P=BT&$NYAi=&%aXh3U~ak9@RzpZkn`aXz5@hiE;m*{3cQTu`FGsKad)FN;hgD@a7qhDbMSTZvFC_(H23W@y! zPRf2jyFk|PUk*UmJnHJlsq+Me76g#mS26<#Vu$OSWFQM2Rj92vt#DcaO+03QNXAbv ziNHkntTXYeW#%elbgsv5511I=%aW3|fjE=8dLE(o80Ir)EDgTzf`nkl5ly#_LvWN? zt=yM6sG7HB#oD_IQk&SCVG4w)jNgCY-*rG_dV9EM5doOJRK?)N9u(Y`#*C-&Y z*chnZFnpcbJIp})e3eiZ!N0U62l$Qe1$uH7+Yk`J=0#n54bi~wNT@f6zZX)noqKFK zDu7xFqFRkoj7De#rj7yxhlDG}erE&zgUzi1*@}>>`CxF)8a4)tJFcV~>hrkF6CGdk z+k>0j)ZkJmrR;-;YhV#B#2)kmUdJr6m@!dvH;3@if(eX zqVCv~d-e}e<^=nDt2lhLx%o@;O)TwPo^rA+q3TgQk&%|a#An_BY$uG2ipG~LBG7(8 z3X@Aty(@wlF@H3@_!m&n8OdBa5{?iz0%w6)%z!`)ni}#?1@Hmk@d=I{yc!N@2Qd+7 zJ%K~MzBPQ)U;|o0WaTU*XvNO?9;lpv%6!iyMk={+FECmn1+LU0P4Y|Up$HAB?G4cH zN4*nF)UT_+4LaU)H$hpH?Ev?ZKrMesq$JC6k;mo`**(!ZQt{^VqvuOOXyuvVcQrbo zQEsZr#(uZQ^PT!<(6#qLyd{=@U^R?CWfTzn`JEprfocq|j5<5FULQD9%>6OrXu>ai zh>HDQck52gzQ10@9{mN-1&pcUIFgd8m}eNBc5VT_~+RcYoPn$*_WTe z!Lp53m^3WRx{4OU>QIm@xX#UD(#9vCN*N8j=0=|09qgbdY=QpwFat1kpg@86C*@`qNiOY>sMIibsw8sZ}lU+LWZ@q?gKmV%^aP6IE zJgI`{NDLS)Qid0Qnzu0?;d%GxsFj_6`BZzOE67Nue9@?eV}%b2QY1VptQ?uNbGr$I z{M)iEV>R(5A~5&(AncV`(JW;q;GxtG)H{-#LMsw|8RcH63q)EKcpF*r0()SJwc?|7y~NiZ@Zrr!t$2C0`Is8dw^&pM5h}on)a2|6(?oYakFm1BF@U+z#$72 zy?@sYxlHu5yZ7A^xIRZLk{bsPx`7_^5Lb;M<>)G$Re0>WQ#O_LFLMQ))mMiZnlZ_{ zD2N7~Do`LAa59f6hd83t!d8YS+xoF4>5^F6Cc~3CmDz zV^(cM6hRq`E#3SW{ zjp^*`LfTO7SS{P4v2+qZXfd}wlluj$I;kZFOG^j#>d<4*-b_d88)sgTPOvu$}UrHx7^u*u%n4ZFle!G z#z6VuFT%O<)Q5TvOwELV3t80m%(ue*#W&?ED|L0Cil8!PJ!aWCpVZglQfT{IbqiE9 zNKUP17swkLcq@0$SqLF)nKq~qy4gA9ihFl=Zdgem-T0U4?EW?QrY07W|$OW2IY{!5}YcvR)(kC;Iwo zm=XO^`UKHCj;=SQ%c2`IDW28@6W=>MLvUO}K5$A50$+<>{W@v{Fz4%@kEg^5G186Z*9rsP!V z(QpgpQK&ciMIvF^es}0--R9ilGLUDcT^N|2`9MH%D%|%N>%%CV3oyNQinwtgXdc1p zi)Uh!;1SQQo&uVhl<|@CH-O#(bk4lffWlOtlU^k~xv_y_3xeIrNEDT1r zI?Gg(_49>`CMA@1Zjexp@R}ag7hFY2r3=v5n>1(f=MW$Bh@g7SWu8=WI!bX0s?{( zFw%=MU_g+r0i;TiDqNfy=ey7I-MQz-Icx2+-gmug?e%Bx>(-X%c)7&600025xtWPA z0Kjzf(1vjwIego_f-b>K3XN z!NwRLU$Y1t#xBCr9v$J2*7lUvKMR6~>l_jUVhAWucwj&fUME~n`cGb+L;L44L>lyG z2*F=Z`Y%yV7S!(y=u${X5^Grzh=0AO!0`AYox)Dq(6WSe!Qms;#XJQH4QZFz{gn z7*7l$pu)jHc$r@eCKx;#=NnA$#Rh?XGNP_vLkN1(hid;SBQW?M+93SjtvYNPBpekC zfvTwfEbCXGg~k6L8W{LbG@f9K`H$ZJlNfJL48}lgF?ehU4t=6q=#W565aAcr^FLU%f5rZs zhrr;&%qAF|Zz#so6o(B2{aLe)@4stN{a3!fv7Y~~1^Ta8$e|d>&z=2WJN;|vaD0B6 z|IF^8^Uw5Sf(}O>cR1VGc1@!I0Pvi-iJ^V?@B)%JaOslp`1mf!lub%t+xm!&&Of-q$mulhM1i^!@4GCE{j2s-SA~V`M?J%c;9uoUF|81{0)Pgm?oG zki#U7`d<#Kw876mHvyw?YL}3pTafi=$hg1F01B7|=4|wiz~(OBv75z@?9|9p zyssP=NweVTYV`NsVjC)Inz3WZ)eewH|<(8()qJdVz}6szgiJGpFGz+7~XoJ|UK z9FR$Tu6ZiLs4wJ%IK6n586jhQAN`s0D1Bt$x?Z?#EmAB@ol$Tf~_SD)eQ%cE^SW(8%ksl!HF{(0n=q!ZTF!fS(kCqy!8?^DO<7a4OT zK8N*eAvO+?r!Pp1)Ag=vQLcz_yEDod|5gQ37R>!?V#hH?50d~oJdI5C$&YpDBa%YR zo#P7m9Z%)_KFij#7UNbv3TADO74Dgg!8M~umJ=aWjmtVjz3m?*RTZ}8M)w>(sme@l z8t7N=(bGu7LOoBmTGEpvke|2m+k`h#`}VKj7~eMN>&@A83)tSZAbtO^w{O-KL2;;l zWUL#hVvMFtRH_3f(>ZaT1A$R^Q06>kzS15BXX= zdm=^sN-9IL#Pd_xF3&6N(QkUoV#D6#c#?xt_cZjwxNM(zp>RH9>j65v0C=JWBZe|dasp*Ed#SisZ(xV7D_1rtpYy8rdL|pVbe_Me!)-2DL z&z6vGeBb*am5jyAm7C;6`0eYfpaoyuD1Y9_Q@t0>Pm8EVwl0bbRO*HzOTBdNEI;zO z*;21x9oi)%nj(H*k7xI-+nMPh{aQ5B;ON>!sMfwdkDx@?CaQV*nq@+E>B7oxrNRO2 zIVtq}`$6;h$?0h8V~wM6EyjZk${Md8O}-!^ptJ7smqh&Yi*vj5fQkW`@`A@cb(oJN zOhE{J*kOA3tL2SJyV)-Bk=sf<%mFQnq_O9Ux~cP78aHeSNi4MGug&y)IS>F+)Rbbk zE*tRPZ4wFG^+$rOBe7be}Z0_MD))TLy9#1S96t;%dfo-(R`^uf-G{nm*uB@8h*zpsCTsaNy zqFs%RWD56?;cg&mmn+=)p|2RxyO}nfQz0+w)SkS0ZPbTS2s+;u+O_3%ge6V!>1%LT zs1>MsEfGv)|HEY^6m;dQVOJ&p=?KX05zl(ER{&!k@&0N2;4Vy$vA?s&jATW{MeN(O zX%3*zoSk6IW}?s$Dh;(eruQfwaX`B_&`(~Ve_lFhKRv-M=DMO$x8msE3BRjJz*9uu z+}FRM$g(ymC{|l4M|(jN=14hklQ}{c-n9XyGW1m5L3nD#yEE`BbqyJDcX9&sPa z7gPaI;;N`RhL$qmQ}P(`sEJ>5@?L^pyPK+z$i^zJEWeph!c2~}0k%@sYMXKE7Z4Ed z7o(CEeGf~t%+st#9c4P3vxlu(cMtA+K`q_E9t|KNZ?SwS(p=Q7sDQ@Iw%M8jkVq-it%xTO6{vpbqx&KxP|O{7JiK3Db1m6F;twGMGg37mKBO-`IIGLj=0}Vq=UM zsio#pS-k#3en7L93WP~Eo4D_$71z@3`$DU_vV$W9%mwCEEI-oUI~0ApPeF4=j!UD}tfr|+BbLHUMec^zDV3%WV=&al2a zsj!ooV_qq4P;MDkGycmLmx~!;MP$h2US#6>oEu*uNW8S(m}xp%+f$(`hlJUQ-{wo9 z68gg4Cj-q^yqymOna-MN^@$RJAUOuq&M(uO7&tp`6W3&g3yR-q7^dQ#n4VHsN^kGZ z1dG)9mbf?9@BG$WAFmUgd338bfR&^7q)AfrC~dfcZz#S=Kr{<|GHotHQH!;|`!Q_9 z4&FDf2B7i7a?id_=b2j#2~+Vf(l>80e`H-MfTUfkEV7a9MF%?e^1Nm5b?>pPdYF5dXf#%@kHkRjC{6$gM=dLi5E{P7lp)bI+=-z{VsnAq?$44 zxxUyi^z|W4=zK8LX@HNlA(;g{mQXjP$J?FOpP`X5F;T>yHsC97x|3RaH_|VEn$nZu zFJj*>{mHVW+b4}eNwrFGuDZwAmV4#D2r|5d4035w5%bRM%!#15tuC(SE z1KGZxV_|%K=2NB+ZS$y{K_Tz3+oM#Pk~v=8u)Rs6@p0Nk!qARYpXvuoAvbY0wGU^d zn2Xw--V~+1GJ4;1)idl}GRQUeV)Mt8F{uVAx82Aj!X-vs0<(KcZwX08JT*BQ-Wv+_ zbG#|y@vguWseo7N?cQ@;J2*?pLx+*MvHNk%>=Aw6s(^MaVw4X-cZdc4xgGG~euHS| z_VvuN&YoPg4ki;rK0-9=KA@Qs_dp935UGK%ZoovZyhb5CRUMN!n0+QwGRMqs&=QX4 z6#i&`8+Ch9ETHmSrdIzNpX*6C?A+5&PI?#HEuk!$G+XsyDb4WkY{3UyPs~wa*tW>$~M^3Gs&6pHWg=9vE`bAypS2+n2=CPEj|c| zbN{?8?{|TaRCh$Pa|0tUD3bdiP=Fep6b4cWA0qScy;|r) z91-;P-e0mlF=IRyNd9iDhA^S)WDhbMo_d_$vWgo0cvDE@%-O$G%0H^`r1k z!KR{O-RfCJFStx>D1nt{;{dOn87~ZOiciGup&zkwz^FGewj|HA?xLgk-_Yb)g?n=Y z^?Yh;yg79gb#=i;GXc3%K>CFTcOI6Xn&>@MzIUm^*IoGKK5CZW z&vRwnJAYj0$*ldHT{U!Sn1^~%!p)Xar{iwg3;G(-jddgsx3*QW{0*t z#!Y(X6?xv&-w(u(N)EOEdc zXO=fCbCp=qgiUUIoO!7A`3<8`|4$0>dj#{_N)FHA&Ak9eLkY9ck2N-fkDh1|D++xI zXw%eFCM%cfkkdGaSWn>DtifmqGi&c!pmYq&+6QCKQ?GAi@2;ofv;<+vwNro@ty20j^dau?<8$HaeyXT8DBbu$B<9BqT=b0JLEC;%;+6K$+4h@~Sn0VY3U zN+nb(ZJH)$SQO!E8m#S)CFqh4vRjo_8&U=?U=b*QQCcGCAi?~(nuF2W>p?P&8w$dX zqk255XDlJw`_#*{KPH*VN`2F~1)FG`Uq@1Noog0DoSTAeMY0XgMU=6tPefyJBgrKz zKeUWI65Dj7^!AkLl~00tDw;ul-HY+*u#lIHVgAMNa;UtUX|uEPh~%mlzP`pN(%H`r zuk`W}cg>zCxDy4Pd+2;I5KtvtcK*kEHT(}K*F-wa|b!+AWtNHhBG zlS)GatH&v-j)SlhONMQM#(foa#^X~@vkBLGD<{9jI?=75AWp(XAn-;HL0@g_P? z%D~Pld0^1^_2BAeNL^ZOm1~OX?qV{VaCF+PHPC3(LCxS;fiOjGRyxMv>T!kR^2}r0 zYeTlQV?(g%wwwd~PM56;V2m@R&m~YuNH*$$pN)twGOD0EBe_tRPR=}Av@|o^|mp3RO9uM@+cs6{8 z%^CMZI0qE?^OtOVuO40e?Y$OidDMLE85g9+=HXL05%Ie@G0Um%6|G}LFR$p#w+2W; z&g!HeL8o))wjzAO>$>(tj3p<`#+sWT9#h^&ecov>$3`bqx;bS zU9TtYaYMl-V9$H&IJL` Date: Sat, 16 Dec 2023 23:21:24 +0800 Subject: [PATCH 011/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?logologo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/assets/icons/logo.svg | 1 + apps/admin/src/views/login/index.tsx | 33 ++++++++++++++-------------- 2 files changed, 17 insertions(+), 17 deletions(-) create mode 100644 apps/admin/src/assets/icons/logo.svg diff --git a/apps/admin/src/assets/icons/logo.svg b/apps/admin/src/assets/icons/logo.svg new file mode 100644 index 00000000..fc0f2c2b --- /dev/null +++ b/apps/admin/src/assets/icons/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx index f1024e68..0e38d902 100644 --- a/apps/admin/src/views/login/index.tsx +++ b/apps/admin/src/views/login/index.tsx @@ -5,6 +5,8 @@ import { type FC, useRef, useState } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; import './index.less'; +import SvgIcon from '@/components/SvgIcon'; + import { getAuthCache } from '@/utils/auth'; import { getUserInfo, loginApi } from '@/api'; @@ -93,11 +95,12 @@ const LoginPage: FC = () => { }; return ( -

-
-
- icon +
+
+
+ icon

账 号 登 录

+
{ password: '123456', remember: true, }} - className="login-box-form" + className='login-box-form' onFinish={handleLogin} > - + } /> - + } /> - + 记住我 -
忘记密码? + 忘记密码? - From f0b5dbe254a06abe91936c464a4d19d99f8b0c9f Mon Sep 17 00:00:00 2001 From: G Date: Sun, 17 Dec 2023 00:31:52 +0800 Subject: [PATCH 012/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/images/illustration_dashboard.png | Bin 0 -> 46112 bytes apps/admin/src/assets/images/overlay_2.jpg | Bin 0 -> 41129 bytes apps/admin/src/main.tsx | 13 +++- apps/admin/src/views/login/index.style.ts | 66 ++++++++---------- apps/admin/src/views/login/index.tsx | 25 ++++--- 5 files changed, 58 insertions(+), 46 deletions(-) create mode 100644 apps/admin/src/assets/images/illustration_dashboard.png create mode 100644 apps/admin/src/assets/images/overlay_2.jpg diff --git a/apps/admin/src/assets/images/illustration_dashboard.png b/apps/admin/src/assets/images/illustration_dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..4e178368e5101833d78a464e92df2908783de3e8 GIT binary patch literal 46112 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 R(_#Ps002ovPDHLkV1g4sJaqs7 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/overlay_2.jpg b/apps/admin/src/assets/images/overlay_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..119d428b842e58089574cd32cccde289bba0e5ec GIT binary patch literal 41129 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 IB=_Zi0cX - + diff --git a/apps/admin/src/views/login/index.style.ts b/apps/admin/src/views/login/index.style.ts index fe522259..afad75f1 100644 --- a/apps/admin/src/views/login/index.style.ts +++ b/apps/admin/src/views/login/index.style.ts @@ -1,41 +1,35 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles(() => { - return { - 'login-wrapper': { - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - width: '100vw', - height: '100vh', - backgroundImage: "`url('@/assets/images/login-background.jpg')`", - backgroundSize: 'cover', - }, - 'login-box': { - padding: '16px 30px 10px', - background: '#fff', - borderRadius: '4px', - boxShadow: '0 15px 30px 0 rgba(0, 0, 1, .1)', - '&-title': { - margin: '0 auto 35px', - textAlign: 'center', - color: '#707070', - fontSize: '18px', - letterSpacing: '2px', - img: { - width: '200px', - height: '82px', - margin: '12px auto 0', - }, - }, - '&-form': { width: '320px' }, - }, - 'login-btn': { +import overlay from '@/assets/images/overlay_2.jpg'; + +const useStyles = createStyles(({ token }) => ({ + 'login-container': { + display: 'flex', + alignItems: 'center', + flexDirection: 'row', + justifyContent: 'center', + height: '100vh', + }, + 'login-img': { + maxWidth: '560px', + height: 'auto', + }, + 'login-form': { + padding: `${token.paddingLG * 7}px ${token.paddingLG * 5}px`, + }, + 'login-left': { + gap: '80px', + flexGrow: 1, + height: '100%', + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + // eslint-disable-next-line global-require + background: `linear-gradient(rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.88)) center center / cover no-repeat, url(${overlay})`, + '.logo': { width: '100%', + padding: token.paddingSM, }, - 'no-margin': { - marginBottom: '0', - }, - }; -}); + }, +})); export default useStyles; diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx index 0e38d902..113c92bc 100644 --- a/apps/admin/src/views/login/index.tsx +++ b/apps/admin/src/views/login/index.tsx @@ -1,5 +1,5 @@ import { LockOutlined, UserOutlined } from '@ant-design/icons'; -import { Button, Checkbox, Form, Input, message } from 'antd'; +import { Button, Checkbox, Form, Input, message, Typography } from 'antd'; import classNames from 'classnames'; import { type FC, useRef, useState } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; @@ -10,19 +10,25 @@ import SvgIcon from '@/components/SvgIcon'; import { getAuthCache } from '@/utils/auth'; import { getUserInfo, loginApi } from '@/api'; -import logoIcon from '@/assets/images/logo_name.png'; +import illustrationDashboard from '@/assets/images/illustration_dashboard.png'; import { TOKEN_KEY } from '@/enums/cacheEnum'; import { useAppDispatch, useAppSelector } from '@/stores'; import { setSessionTimeout, setToken, setUserInfo } from '@/stores/modules/user'; +import useStyles from './index.style'; + import type { LoginParams, UserInfo } from '@/types'; import type { FormInstance } from 'antd/es/form'; +const { Title } = Typography; + const LoginPage: FC = () => { const [form] = Form.useForm(); const loginFormRef = useRef(null); const [loading, setLoading] = useState(false); + const { styles } = useStyles(); + const dispatch = useAppDispatch(); const { token, sessionTimeout } = useAppSelector((state) => state.user); @@ -95,13 +101,14 @@ const LoginPage: FC = () => { }; return ( -

-
-
- icon -

账 号 登 录

- -
+
+
+ + <SvgIcon name='logo' size={30} /> + + +
+
Date: Sun, 17 Dec 2023 01:05:31 +0800 Subject: [PATCH 013/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89token=E7=B1=BB=E5=9E=8B=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=EF=BC=8C=E5=AE=8C=E6=88=90=E7=99=BB=E5=BD=95=E9=A1=B5?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/main.tsx | 14 ++++++++++++++ apps/admin/src/views/login/index.style.ts | 9 +++++++++ apps/admin/src/views/login/index.tsx | 21 ++++++++++++++++++--- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/apps/admin/src/main.tsx b/apps/admin/src/main.tsx index a18caead..99c0d11b 100644 --- a/apps/admin/src/main.tsx +++ b/apps/admin/src/main.tsx @@ -10,6 +10,16 @@ import 'virtual:svg-icons-register'; import App from './App'; import { persistor, store } from './stores'; +interface NewToken { + colorDefault: string; +} + +// 通过给 antd-style 扩展 CustomToken 对象类型定义,可以为 useTheme 中增加相应的 token 对象 +declare module 'antd-style' { + // eslint-disable-next-line @typescript-eslint/no-empty-interface + export interface CustomToken extends NewToken {} +} + ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( diff --git a/apps/admin/src/views/login/index.style.ts b/apps/admin/src/views/login/index.style.ts index afad75f1..130600d5 100644 --- a/apps/admin/src/views/login/index.style.ts +++ b/apps/admin/src/views/login/index.style.ts @@ -16,6 +16,15 @@ const useStyles = createStyles(({ token }) => ({ }, 'login-form': { padding: `${token.paddingLG * 7}px ${token.paddingLG * 5}px`, + '.title': { + margin: 0, + }, + '.login-info': { + margin: `${token.marginLG}px 0`, + }, + '.login-btn': { + backgroundColor: token.colorDefault, + }, }, 'login-left': { gap: '80px', diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx index 113c92bc..c6481d98 100644 --- a/apps/admin/src/views/login/index.tsx +++ b/apps/admin/src/views/login/index.tsx @@ -1,5 +1,5 @@ import { LockOutlined, UserOutlined } from '@ant-design/icons'; -import { Button, Checkbox, Form, Input, message, Typography } from 'antd'; +import { Alert, Button, Checkbox, Form, Input, message, Typography } from 'antd'; import classNames from 'classnames'; import { type FC, useRef, useState } from 'react'; import { useNavigate, useSearchParams } from 'react-router-dom'; @@ -20,7 +20,7 @@ import useStyles from './index.style'; import type { LoginParams, UserInfo } from '@/types'; import type { FormInstance } from 'antd/es/form'; -const { Title } = Typography; +const { Title, Text } = Typography; const LoginPage: FC = () => { const [form] = Form.useForm(); @@ -109,6 +109,19 @@ const LoginPage: FC = () => {
+
+ + 登录 Gbeata Admin + + + {' '} + 新用户? + + + +
{ } /> @@ -130,6 +144,7 @@ const LoginPage: FC = () => { } /> @@ -142,7 +157,7 @@ const LoginPage: FC = () => { - From 3e5d6a0b0e861016ae59cb77919ba263baa1ac5a Mon Sep 17 00:00:00 2001 From: G Date: Sun, 17 Dec 2023 01:17:38 +0800 Subject: [PATCH 014/134] =?UTF-8?q?docs:=20:memo:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 14 ++++++++------ apps/admin/src/views/login/index.tsx | 8 +++++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Readme.md b/Readme.md index f43be8f9..2785d896 100644 --- a/Readme.md +++ b/Readme.md @@ -47,19 +47,21 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 ``` --> - [ ] 框架设计 +- [x] 主题设计 +- [x] 登录页设计 ## 分支管理 -发布组件库分支: ```main``` - -后台管理模板分支: ```admin``` +发布组件库分支: `main` +后台管理模板分支: `admin` ## 注意点: 1. 使用semantic-release做自动化发布时,不需要打包的子包,设置`"private": true` 2. 项目中less改造antd-style写法: - ```bash - npx @chenshuai2144/less2cssinjs less2js -i src - ``` \ No newline at end of file + +```bash +npx @chenshuai2144/less2cssinjs less2js -i src +``` diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx index c6481d98..8652a6c0 100644 --- a/apps/admin/src/views/login/index.tsx +++ b/apps/admin/src/views/login/index.tsx @@ -116,7 +116,13 @@ const LoginPage: FC = () => { {' '} 新用户? - From 9e0e81406c10fba8fabc66d0b7f9c06ae720f30e Mon Sep 17 00:00:00 2001 From: G Date: Sun, 17 Dec 2023 15:51:56 +0800 Subject: [PATCH 015/134] =?UTF-8?q?feat:=20:sparkles:=20feature=20?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E6=94=B9=E9=80=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/components/GStack/index.tsx | 10 ++++++++ .../src/layout/feature/components/DocLink.tsx | 15 ++++-------- .../layout/feature/components/FullScreen.tsx | 14 ++++++----- .../layout/feature/components/GithubLink.tsx | 21 ++++------------ .../layout/feature/components/Settings.tsx | 10 ++++++++ .../layout/feature/components/SlideTheme.tsx | 4 +++- .../src/layout/feature/components/index.ts | 7 +++--- .../src/layout/feature/index.module.style.ts | 24 +++++++++---------- apps/admin/src/layout/feature/index.tsx | 24 +++++++------------ 9 files changed, 61 insertions(+), 68 deletions(-) create mode 100644 apps/admin/src/components/GStack/index.tsx create mode 100644 apps/admin/src/layout/feature/components/Settings.tsx diff --git a/apps/admin/src/components/GStack/index.tsx b/apps/admin/src/components/GStack/index.tsx new file mode 100644 index 00000000..1009842a --- /dev/null +++ b/apps/admin/src/components/GStack/index.tsx @@ -0,0 +1,10 @@ +interface Props { + direction?: 'row' | 'column'; + className?: string; + children?: React.ReactNode; + spacing?: number; +} + +const GStack = (props: Props) =>
{props.children}
; + +export default GStack; diff --git a/apps/admin/src/layout/feature/components/DocLink.tsx b/apps/admin/src/layout/feature/components/DocLink.tsx index 998c4726..c750ed58 100644 --- a/apps/admin/src/layout/feature/components/DocLink.tsx +++ b/apps/admin/src/layout/feature/components/DocLink.tsx @@ -1,17 +1,10 @@ -import { Tooltip } from 'antd'; - -import SvgIcon from '@/components/SvgIcon'; +import { ReadOutlined } from '@ant-design/icons'; +import { Button, Tooltip } from 'antd'; export default function DocLink() { return ( - - - - + +
+ + + )), + [APP_THEME_COLOR_LIST], + ); + return {PresetsTheme}; +}; + +export default Presets; diff --git a/apps/admin/src/layout/feature/components/Settings.tsx b/apps/admin/src/layout/feature/components/Settings.tsx index cdf4e58f..1e331627 100644 --- a/apps/admin/src/layout/feature/components/Settings.tsx +++ b/apps/admin/src/layout/feature/components/Settings.tsx @@ -4,6 +4,7 @@ import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; import { useState } from 'react'; import LayoutSettings from './Layout'; +import Presets from './Presets'; import SlideTheme from './SlideTheme'; import useStyles from './styles'; @@ -37,6 +38,9 @@ export default function Settings() { 布局} description={} /> + + 预设} description={} /> + diff --git a/apps/admin/src/settings/designSetting.ts b/apps/admin/src/settings/designSetting.ts index a9d9e8fe..2900d3cd 100644 --- a/apps/admin/src/settings/designSetting.ts +++ b/apps/admin/src/settings/designSetting.ts @@ -5,36 +5,28 @@ export const baseAppMode = AppModeEnum.LIGHT; // app theme color export const APP_THEME_COLOR_LIST = [ - { - name: '拂晓蓝', - color: '#1765AE', - }, { name: '薄暮', - color: '#A71A1F', + color: '#00A76F', }, { name: '火山', - color: '#AE3E17', - }, - { - name: '日暮', - color: '#B8831B', + color: '#ff3030', }, { name: '明青', - color: '#269491', + color: '#078dee', }, { - name: '极光绿', - color: '#509827', + name: '落霞', + color: '#fda92d', }, { - name: '极客蓝', - color: '#20389A', + name: '极客', + color: '#2065d1', }, { name: '酱紫', - color: '#60339A', + color: '#7635dc', }, ]; diff --git a/packages/config-eslint/index.js b/packages/config-eslint/index.js index 002f7c66..76b88825 100644 --- a/packages/config-eslint/index.js +++ b/packages/config-eslint/index.js @@ -51,6 +51,7 @@ module.exports = { "no-use-before-define": "off", // 声明后永远不会重新分配的变量需要 const 声明 "prefer-const": "error", + "implicit-arrow-linebreak": ["error", "beside"], // 禁止不规则空格 "no-irregular-whitespace": "off", // 禁止使用 debugger From 219fe76c4cc11a66b01f0a22012714154f9dfa3d Mon Sep 17 00:00:00 2001 From: G Date: Mon, 18 Dec 2023 11:30:05 +0800 Subject: [PATCH 019/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 3 +- apps/admin/src/App.tsx | 26 +++++++++++++- .../src/layout/feature/components/Presets.tsx | 26 ++++++++++---- apps/admin/src/main.tsx | 36 +++++-------------- packages/store/index.ts | 2 ++ packages/store/modules/admin/global.ts | 29 +++++++++++++++ packages/store/modules/admin/index.ts | 1 + packages/store/modules/index.ts | 1 + packages/store/package.json | 15 ++++++++ pnpm-lock.yaml | 9 +++++ 10 files changed, 111 insertions(+), 37 deletions(-) create mode 100644 packages/store/index.ts create mode 100644 packages/store/modules/admin/global.ts create mode 100644 packages/store/modules/admin/index.ts create mode 100644 packages/store/modules/index.ts create mode 100644 packages/store/package.json diff --git a/apps/admin/package.json b/apps/admin/package.json index 46cc5657..8e2508c3 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -44,7 +44,8 @@ "sortablejs": "^1.15.0", "use-immer": "^0.9.0", "video-react": "^0.16.0", - "xlsx": "^0.18.5" + "xlsx": "^0.18.5", + "store": "workspace:^" }, "devDependencies": { "@babel/core": "^7.23.3", diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index d6c08832..22825026 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -1,10 +1,34 @@ +import { ThemeProvider } from 'antd-style'; import { RouterProvider } from 'react-router-dom'; +import { useGlobalStore } from 'store'; +import cyanImg from '@/assets/images/cyan-blur.png'; +import redImg from '@/assets/images/red-blur.png'; import router from '@/router'; function App() { + const preset = useGlobalStore((state) => state.preset); return ( - + + + ); } diff --git a/apps/admin/src/layout/feature/components/Presets.tsx b/apps/admin/src/layout/feature/components/Presets.tsx index 05778e1a..aa54a9b3 100644 --- a/apps/admin/src/layout/feature/components/Presets.tsx +++ b/apps/admin/src/layout/feature/components/Presets.tsx @@ -1,29 +1,41 @@ import { Badge, Button, Col, Row } from 'antd'; import React, { useMemo } from 'react'; +import { useGlobalStore } from 'store'; import { APP_THEME_COLOR_LIST } from '@/settings/designSetting'; const Presets = () => { + const { preset, setPreset } = useGlobalStore(); + // const { preset, setPreset } = useGlobalStore((state) => state); + const PresetsTheme = useMemo( () => // eslint-disable-next-line implicit-arrow-linebreak APP_THEME_COLOR_LIST.map((item) => ( - - + )), - [APP_THEME_COLOR_LIST], + [APP_THEME_COLOR_LIST, preset], ); return {PresetsTheme}; }; diff --git a/apps/admin/src/main.tsx b/apps/admin/src/main.tsx index 7d8519a7..da97dd02 100644 --- a/apps/admin/src/main.tsx +++ b/apps/admin/src/main.tsx @@ -1,4 +1,3 @@ -import { ThemeProvider } from 'antd-style'; import React from 'react'; import ReactDOM from 'react-dom/client'; import { Provider } from 'react-redux'; @@ -7,9 +6,6 @@ import '@/design/index.less'; // register svg icon import 'virtual:svg-icons-register'; -import cyanImg from '@/assets/images/cyan-blur.png'; -import redImg from '@/assets/images/red-blur.png'; - import App from './App'; import { persistor, store } from './stores'; @@ -25,31 +21,15 @@ declare module 'antd-style' { export interface CustomToken extends NewToken {} } +// const { preset } = useGlobalState(); +// console.log(preset); + ReactDOM.createRoot(document.getElementById('root') as HTMLElement).render( - - - - - - - + + + + + , ); diff --git a/packages/store/index.ts b/packages/store/index.ts new file mode 100644 index 00000000..d69d3453 --- /dev/null +++ b/packages/store/index.ts @@ -0,0 +1,2 @@ +// 暴露modules文件夹中的所有模块状态 +export * from "./modules"; diff --git a/packages/store/modules/admin/global.ts b/packages/store/modules/admin/global.ts new file mode 100644 index 00000000..4f2d23fc --- /dev/null +++ b/packages/store/modules/admin/global.ts @@ -0,0 +1,29 @@ +import { create } from "zustand"; +import { persist } from "zustand/middleware"; + +interface State { + theme: string; + setTheme: (theme: string) => void; + preset: string; + setPreset: (preset: string) => void; +} + +export const useGlobalStore = create()( + persist( + (set, get) => { + return { + theme: "light", + setTheme: (theme: string) => { + set({ theme }); + }, + preset: "#00A76F", + setPreset: (preset: string) => { + set({ preset }); + }, + }; + }, + { + name: "adminGlobal", + } + ) +); diff --git a/packages/store/modules/admin/index.ts b/packages/store/modules/admin/index.ts new file mode 100644 index 00000000..09370234 --- /dev/null +++ b/packages/store/modules/admin/index.ts @@ -0,0 +1 @@ +export * from "./global"; diff --git a/packages/store/modules/index.ts b/packages/store/modules/index.ts new file mode 100644 index 00000000..2dc46f52 --- /dev/null +++ b/packages/store/modules/index.ts @@ -0,0 +1 @@ +export * from "./admin"; diff --git a/packages/store/package.json b/packages/store/package.json new file mode 100644 index 00000000..0ddb9c7c --- /dev/null +++ b/packages/store/package.json @@ -0,0 +1,15 @@ +{ + "name": "store", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "zustand": "^4.4.7" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3870e48b..f739228d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -168,6 +168,9 @@ importers: sortablejs: specifier: ^1.15.0 version: registry.npmmirror.com/sortablejs@1.15.1 + store: + specifier: workspace:^ + version: link:../../packages/store use-immer: specifier: ^0.9.0 version: registry.npmmirror.com/use-immer@0.9.0(immer@10.0.3)(react@18.2.0) @@ -377,6 +380,12 @@ importers: specifier: ^14.9.1 version: registry.npmmirror.com/stylelint@14.16.1 + packages/store: + dependencies: + zustand: + specifier: ^4.4.7 + version: registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.45)(react@18.2.0) + packages: registry.npmmirror.com/@aashutoshrathi/word-wrap@1.2.6: From 6c97c4d2994ba6e4ac389150fd42eeee51600e89 Mon Sep 17 00:00:00 2001 From: G Date: Mon, 18 Dec 2023 11:31:02 +0800 Subject: [PATCH 020/134] =?UTF-8?q?refactor:=20:recycle:=20=E5=8E=BB?= =?UTF-8?q?=E9=99=A4eslint=20=E7=BC=A9=E8=BF=9B=E8=A7=84=E5=88=99=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/config-eslint/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/config-eslint/index.js b/packages/config-eslint/index.js index 76b88825..fd028f13 100644 --- a/packages/config-eslint/index.js +++ b/packages/config-eslint/index.js @@ -100,6 +100,8 @@ module.exports = { varsIgnorePattern: "^_", }, ], + // 限制缩进 + "@typescript-eslint/indent": "off", // 允许在导入上指定 type 关键字 "@typescript-eslint/consistent-type-imports": [ "error", From 12f129555525ef49f83544dcc47707e4d9c3b196 Mon Sep 17 00:00:00 2001 From: G Date: Mon, 18 Dec 2023 13:55:34 +0800 Subject: [PATCH 021/134] =?UTF-8?q?feat:=20:sparkles:=20=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E9=A1=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/App.tsx | 2 +- apps/admin/src/views/login/index.style.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 22825026..3a292e00 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -18,7 +18,7 @@ function App() { colorSuccess: '#22C55E', colorWarning: '#FFAB00', colorError: '#FF5630', - colorLink: '#00A76F', + colorLink: preset, }, }} customToken={{ diff --git a/apps/admin/src/views/login/index.style.ts b/apps/admin/src/views/login/index.style.ts index 130600d5..74704056 100644 --- a/apps/admin/src/views/login/index.style.ts +++ b/apps/admin/src/views/login/index.style.ts @@ -33,11 +33,16 @@ const useStyles = createStyles(({ token }) => ({ display: 'flex', flexDirection: 'column', alignItems: 'center', + justifyContent: 'center', + position: 'relative', // eslint-disable-next-line global-require background: `linear-gradient(rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.88)) center center / cover no-repeat, url(${overlay})`, '.logo': { width: '100%', padding: token.paddingSM, + position: 'absolute', + top: 0, + left: 0, }, }, })); From 8d17b48410af3f35ebb51fd78ff9be6c3bacbbf4 Mon Sep 17 00:00:00 2001 From: G Date: Mon, 18 Dec 2023 14:48:52 +0800 Subject: [PATCH 022/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?loading=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 1 + .../src/components/LazyLoad/src/LazyLoad.tsx | 16 ++---- .../src/components/LazyLoad/src/Loading.tsx | 52 +++++++++++++++++++ .../layout/feature/components/Settings.tsx | 2 + apps/admin/src/layout/feature/index.tsx | 3 +- 5 files changed, 59 insertions(+), 15 deletions(-) create mode 100644 apps/admin/src/components/LazyLoad/src/Loading.tsx diff --git a/Readme.md b/Readme.md index 2785d896..58b2594d 100644 --- a/Readme.md +++ b/Readme.md @@ -49,6 +49,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - [ ] 框架设计 - [x] 主题设计 - [x] 登录页设计 +- [x] 状态管理(zustand) ## 分支管理 diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index e0102fba..12e23af2 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -1,25 +1,15 @@ import { Spin } from 'antd'; import { type LazyExoticComponent, type ReactNode, Suspense } from 'react'; +import Loading from './Loading'; + /** * @description 路由懒加载 * @param {Element} Component 需要访问的组件 * @returns element */ const LazyLoad = (Component: LazyExoticComponent): ReactNode => ( - - } - > + }> ); diff --git a/apps/admin/src/components/LazyLoad/src/Loading.tsx b/apps/admin/src/components/LazyLoad/src/Loading.tsx new file mode 100644 index 00000000..cdc9adeb --- /dev/null +++ b/apps/admin/src/components/LazyLoad/src/Loading.tsx @@ -0,0 +1,52 @@ +/* HTML:
*/ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(({ css, token }) => ({ + loadingContainer: css` + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + background: rgba(255, 255, 255, 0.2); + backdrop-filter: blur(10px); + `, + loading: css` + width: 50px; + aspect-ratio: 1; + display: grid; + border: 4px solid #0000; + border-radius: 50%; + border-right-color: ${token.colorPrimary}; + animation: l15 1s infinite linear; + &:before, + &:after { + content: ''; + grid-area: 1/1; + margin: 2px; + border: inherit; + border-radius: 50%; + animation: l15 2s infinite; + } + &:after { + margin: 8px; + animation-duration: 3s; + } + @keyframes l15 { + 100% { + transform: rotate(1turn); + } + } + `, +})); + +const Loading = () => { + const { styles } = useStyles(); + return ( +
+
+
+ ); +}; + +export default Loading; diff --git a/apps/admin/src/layout/feature/components/Settings.tsx b/apps/admin/src/layout/feature/components/Settings.tsx index 1e331627..856ee7ff 100644 --- a/apps/admin/src/layout/feature/components/Settings.tsx +++ b/apps/admin/src/layout/feature/components/Settings.tsx @@ -3,6 +3,7 @@ import { Button, Drawer, List, Tooltip, Typography } from 'antd'; import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; import { useState } from 'react'; +import FullScreen from './FullScreen'; import LayoutSettings from './Layout'; import Presets from './Presets'; import SlideTheme from './SlideTheme'; @@ -29,6 +30,7 @@ export default function Settings() { placement='right' onClose={onClose} open={open} + extra={} // mask={false} > diff --git a/apps/admin/src/layout/feature/index.tsx b/apps/admin/src/layout/feature/index.tsx index 94933719..56557b41 100644 --- a/apps/admin/src/layout/feature/index.tsx +++ b/apps/admin/src/layout/feature/index.tsx @@ -1,11 +1,10 @@ import { Space } from 'antd'; -import { DocLink, FullScreen, GithubLink, Settings, SlideTheme, UserDropdown } from './components'; +import { DocLink, GithubLink, Settings, SlideTheme, UserDropdown } from './components'; export default function LayoutFeature() { return ( - From 46aadbae3fe694f51dd081bffd14f5437e7d0d58 Mon Sep 17 00:00:00 2001 From: G Date: Mon, 18 Dec 2023 15:32:30 +0800 Subject: [PATCH 023/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?logo=E3=80=81=E7=B3=BB=E7=BB=9F=E5=90=8D=E7=A7=B0=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/assets/icons/logo.svg | 2 +- .../src/components/AppLogo/src/AppLogo.tsx | 16 ++++- .../AppLogo/src/app-logo.module.style.ts | 67 ++++++++++++------- 3 files changed, 58 insertions(+), 27 deletions(-) diff --git a/apps/admin/src/assets/icons/logo.svg b/apps/admin/src/assets/icons/logo.svg index fc0f2c2b..cb1abcbd 100644 --- a/apps/admin/src/assets/icons/logo.svg +++ b/apps/admin/src/assets/icons/logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/components/AppLogo/src/AppLogo.tsx b/apps/admin/src/components/AppLogo/src/AppLogo.tsx index 9dbca726..01348880 100644 --- a/apps/admin/src/components/AppLogo/src/AppLogo.tsx +++ b/apps/admin/src/components/AppLogo/src/AppLogo.tsx @@ -1,4 +1,5 @@ import { Space } from 'antd'; +import { useTheme } from 'antd-style'; import classNames from 'classnames'; import SvgIcon from '@/components/SvgIcon'; @@ -11,14 +12,25 @@ import useStyles from './app-logo.module.style'; import type { FC } from 'react'; const AppLogo: FC = () => { + const token = useTheme(); const { styles } = useStyles(); const getMenuFold = useAppSelector((state) => state.app.appConfig?.menuSetting?.menuFold); return (
- - logo + +
+ {'Beata Admin'} +
+ + {/* logo */}
); diff --git a/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts b/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts index 6bbf04e9..90881462 100644 --- a/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts +++ b/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts @@ -1,28 +1,47 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles(() => { - return { - 'app-logo': { - display: 'flex', - alignItems: 'center', - height: '48px', - paddingLeft: '24px', - cursor: 'pointer', - transition: 'all 0.3s ease', +const useStyles = createStyles(({ token, css }) => ({ + 'app-logo': { + display: 'flex', + alignItems: 'center', + height: '48px', + paddingLeft: '24px', + cursor: 'pointer', + transition: 'all 0.3s ease', + }, + 'logo-img': { + display: 'block', + width: '32px', + height: '32px', + }, + 'logo-name': { + display: 'block', + width: '120px', + height: '15px', + }, + hidden: { + display: 'none', + }, + container: { + textAlign: 'center', + // filter: 'contrast(30)', + }, + text: { + color: token.colorPrimary, + fontSize: '20px', + fontWeight: 'bold', + lineHeight: '32px', + animation: 'showup 2s linear forwards', + '@keyframes showup': { + '0%': { + filter: 'blur(10px)', + letterSpacing: '-1px', + }, + '100%': { + filter: 'blur(0px)', + letterSpacing: '2px', + }, }, - 'logo-img': { - display: 'block', - width: '32px', - height: '32px', - }, - 'logo-name': { - display: 'block', - width: '120px', - height: '15px', - }, - hidden: { - display: 'none', - }, - }; -}); + }, +})); export default useStyles; From 1137e11b25234deb97c120c17edd7b976eb4687d Mon Sep 17 00:00:00 2001 From: G Date: Mon, 18 Dec 2023 18:00:25 +0800 Subject: [PATCH 024/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=9B=BE=E6=A0=87=E4=B8=8E=E5=85=AC=E7=94=A8?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=8A=BD=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/public/favicon.ico | Bin 1446 -> 14774 bytes .../src/components/AppLogo/src/AppLogo.tsx | 2 +- .../AppLogo/src/app-logo.module.style.ts | 2 +- packages/store/modules/admin/appSetting.ts | 0 packages/store/modules/admin/enums/appEnum.ts | 32 +++++++ .../store/modules/admin/enums/cacheEnum.ts | 18 ++++ .../store/modules/admin/enums/menuEnum.ts | 26 ++++++ packages/store/modules/admin/types/config.ts | 83 ++++++++++++++++++ 8 files changed, 161 insertions(+), 2 deletions(-) create mode 100644 packages/store/modules/admin/appSetting.ts create mode 100644 packages/store/modules/admin/enums/appEnum.ts create mode 100644 packages/store/modules/admin/enums/cacheEnum.ts create mode 100644 packages/store/modules/admin/enums/menuEnum.ts create mode 100644 packages/store/modules/admin/types/config.ts diff --git a/apps/admin/public/favicon.ico b/apps/admin/public/favicon.ico index 661e3169cfa1f94787df8fae8addaeda63a06c22..c8fc9b71e15716e7cef218e22da25819a170fe05 100644 GIT binary patch literal 14774 zcmV;nIZ4I<00962000000096X0H8Sl02TlM0EtjeM-2)Z3IG5A4M|8uQUCw}00001 z00;&E003NasAd2F00D1uPE-NUqIa4A06AJoL_t(|+U;Eld|YL<|FX1A+Ggf%GfBG9 z7Rpv+6+vVb;h|MFEn9(Z>CD`FXOeUQ+JcalCp_0D%5y;lML`U7NiuhtNz#;kRn#Z% zxjo_e6af(hQC!J8=li}%3zV+2+_`hk@Av;Dg)WnOzjMB`{tsg$H80Vu$)ULL)iK9@ zjnF)sDUQWjoHS$ievGk^9(rITBvm85^BMd0`Al^!ruhKR;z})Gy#>1eMvVRUxBOoC z^Dh1!ru=gzn=!JO?YCtyJ#!M0a)~i$vDi>Sx$U|!t)33|ySBq*)96q_($bGP~p?s*PwS3fmg zg&P-s4Y#;;HsA`tmjEu{Nx*Laf7wl?E+z2a|101{z<&aAfLo<;_z2)|Fc9skXEqzT zt~dOg@bj@ro4T0d*mM|3YQ&XyQxKhXWcPurX7wiV~W2E#Q8@A4swH z3V)T=j9Yjj)HkObu=aa0jIzlyAgPSZ99hI#vT0_(O(g2y7^|k5q$S4vlgctyXa!F-1SZA-oH-DT5|jj z-~%l1x@PP7Ov6}daR}ZKB@Ri7DRCFeR3=lvy~lEu=Gx;_&puq%=I;Z%N=jJ~{0;D9 zz^7%%)vP=G{V;tHa|H?bK0^nXWbXurWa7LRUbMJ^0hl1$YQG@6DWUbC|O9dy{mu!MXcqi zlbPz8BFX2bCV>$+M=JiGNSUe{f0x5iXb9RA*`qPZFkHdRUlQPtrj2l|Z4!-;R!XQdL-1x`K0h|{} zSwf#9Z~*fFO?=FHAjMh+k~D-=E24Ajj}v)VD&hk1kwZ5yt@ zp)RK81f3a4l?i6{BRNZS@j0mmIg&dh%R+S62|EK$ATH8;EC<8+LE3aG8CHkHhq{2?Yd2rdWZ(XgVXUWz6fJ0iecssbEqeFu$$V5)P)*SxChRNzASVu|A!9RM zGP+CU!eGcq4=BCp^HzDkw>3x9cPYb9C_2mW7W69F_wMA2PmIANQ#N&z4pywZ=UBXP z16_V4*I5rQ=Yz7YPY0GzDu7pME(J`$DuI?u@oE7{*_(R6)!$V@AQ+_wY6t|1V`>JnYZU5hCYL8HXjYxf92o5vcP8Rho z7R}L6QRy3du!rB{%)4j+aBbFRqS+=?5EycvKI5KC@G_!sprkjy&Y*ao z5D@&Y=Gm8Pxl|)Ipy^qQu_q`bD4z7rXGSg~xcBoWCi^a-={-UK7n-b&=8_XJDXkB8 zGkt(ch5KIL&tvyhis?CvDPCf{tna@-2aXUxye9hvG~5*tcPu`GLbA8|ygc=2QwyrWft5Gmmo3-Kgv&SxH zF(-pr{}bQ={Dckyp@#80z-6t@qB?9Fj`fGQJcwlv?QRkCNb=76=>QN2)-#|J?^E(A zZUBt1_6TS^?&k{_vCHo}^x_GGF+8TZCT|o{+z^t9h~@`e$(?DEGt*S-ClKC<4Vq`i zcs?LZ)MBv_QSLivv>(4FG_iJxUO0j9Mqu~rC*t|!cmrGF!$2~s!mS_qMv7^URan*a zG`(m7;cbEC@P)>}QfBxWraM(^1k}L<#4{$}+yidSG&vAKFPT8tIerGAz`JnM)#0~Z z%k`)_4S-{D0|3A_-3l+ds*) z-s`a5zl_>^%c|Ia1N;{7W57cIPgY&N1o$Li9kyPBSGGd;?QZyfIWpS9t#ciG{WriD z0CxhivQ+ycO>ABID;bHh<^yif9CKWOOr*Nxs~-}BKCXF;aB1kJmI%1H_9=i5_`GbZ zJ_~@)eGY_QaZvK+whf;co4t5@nA^V3C2>G&0vHJcFbn?Mk?<~Y7XupePa)kE;0J&g z=^d1`N$5NyUu6aWJDNDFk7q0J^=^8RMa4@}@sKbj1vm{b6BK=d-fs&fcDE@t&%gLK z)14J;+T-?a?Y2jL2G!|A1Hjj>je##_vDwTm@Za;+IQaE6nb=(_y^F`Gt-I*>E`$LG zVkl4*bYhsW(7hC!-hXkObS-JTci&yX-^c{&HGtE>u(rW%-l(~$F-14vd$mlpV|@^e z!LT$4vStmRsR6#~(jZ`1u~8GtTd3b--*JnYwVPE}Y{L$;w0`Yc&g};`(YvYSx6e2I z5DtrQcivA$+1a!B4XjEI1=d&lm_jBPKU`Wyj zc#iT1`&1gdSOLA#2bZu(151KS?ImMLr1I{k7q`bi>hu5NoszzFitd}LG0;60pJPR3 z&V%bXi&9Y8omz*MGnMBOZ0Q}OFeI4_2I5$me0+?&!o3Xz%>6|umS$`;VDFw&9y{3U zpTHO2DKpXZ;&u?XjFhQ+74}OzrUf z0>FSwVAA{FecS||)p+y*buSaJ+h4kW@UrL1@)NzV-E-}*M0YVjFU0eTVC9oNMI7$}G)GH-SMwk6<%3jqMZ|TCZw#yXsKq zDo!XG+hWQF6T6Li{dbC=%8Y&+?vKYrS*z2qqobc2K(Utc&0!P117(Dm0U{ zeW&>Wn|lS=WYn6o8sPbzs_~6F)KK&$ydb+kS)@|SMKl+zwzIrmT54+Y*anPYZvllr zV60PbB)MB{xFpgL_}g_Fx_npU)qv;eY`uv=$hBK4k__B7Kw=-wNe$^`Y&XkoE!BM- zfd*H9z^u*155;IJ_i$mX$-f#-8ZVmn10JR`HU?zYI$xE#SoXTVnoEtBqoedPgayF9K$WBvzWm`!l4y#q=0gZ!u)){CZ^^L2`ar4`} zOAU+w5*2)vUI6dTTCIBKB)qB0YKd!1uyWG4G9kQyyom|I3jsf;Gid#XI=Hl6z3-CJ zzl6xZ7-_`ua!j?BA3Tn`UTQe0Ms9(#nd;?ls}>pQVTPCF4OB*cDTZ3uMfgOGpTi%) z`J2JHAWB(Y#%aH3miMYRNRGc+e(1Q;Y+kHyk&O4LyjRwcz)kbj+J?(l%)Nu>Uuru9 zJ(pk1`4Sp{_Ush}+9;%(`o9`};NQdiM_Vo_XY727=+{?+tt#+!6MYz7feq8&S?8>pW^GZG%=r2OVg<@>8^E# zUW&8X*835-_4q@*NM;;sN%?Ua?VR|a$yCSW#*ieyg4Ah0KbIMThU`c=kX0jX!S;D2 znGO`Y{me-<$npO&ATfQ&;^Yg+%1TlN@RizQ&o2kJN_{$pMeXf;8JmopTz$w)6Phl+ z5inv8f0ij;7mEotUS{M3>4uR5F9+gf!^^N%@ODo8;ZkaE6*2; zz-=BMG#m7s9nt+vI~anwy5Mg3pd6vS46p>yp^0_h_!T$&UXG<+T__21@f`sNYMSbq z3K)QK8jq(fo)B#VW59lKB%9k?9pTZ;kwtv5rkcaaP3!s)atz)Ix;n0C9>C;2G1m@% z;i4KLWW;8lcWT@vwt49@$P)K6;Gu2%tnGK4$5h8gZvCn7GvKK9hc&T2d^O;sfa~OL zzV&ayj{X~>NB+4r09zW4Q^A-V5YMMuX7;bF!&wL&Zq+y#%SaU%Ox?*8yqYN?Y!b4f zxG|_G9jXv7#)p#F?>@dphAWU>s++ls1rJ>|n97gteFS3n8BUtTT(ON848Ser_G<3gn?RoD_>Y zCR3bcESBqR)1H-dY2<|7W6ZavaW48~Jpg4k{nN79-dYXQQj1J_x?Q zOvdJwRQ$Iy2G@Z{l7w*Nop6Sl^?@$9aWhOG=wPCuA|TQ`pS5i2fX~KrTpd-;FpLTM z1JMAicyAFBvbb!JQ(Sr0RQQXZ3i}K-hBNzon+!g_L9IR$cUB ztO=OXznvjK1GT{LtXbO7>N-K<*%_#w3JvE31XTE}el;@zjlX+wT}w8>OZWROUmENF z!;;Y}Ay$4|Jh}S7TNic{&WgZ|IZyVmud6}>P%r}5^4c z0r-LL+cU9M7MW!$e)D@`f8exDE3tidj%>UMgW|t6B=GHH^?bSk>8o|OD-cxz%}=uQ zaie(d%_u`6)n^rW=YY&FV>8OLx zbr@hp2$g?(Bd`XHz)9MW*{FLNW_XqN1T>ioFgy!MZ$2Mz&dc9}x3Z88oPd=&)>_Qf z;Hr~i(;i*RLewDfcH4UoLPHlHs%+g~A4>6o9o<|Z#=@U2FJ zFIB000#?hJy!xfNc3Xg%uh2VLqh! zGe*q1)y6^Y5NzMz#ZAWSgAWt2O1{-UzHTJo}(X-%8d#xUAx#Ky+jgn{n4Q zvIEnKYrgdv`1;2Rp4n$0=3l0Isqs8SL1yYwG*rb0$NK-T3W(J!Mcovq*jUu9+(sY6 z#ke2hO+VcNpXZVqR{rgcfT{Z_+&RIb`C#-2;J_6&F9Dh`>89}wyk$MF|Bwq$PoB`X zpb(yy(EZ7FGGp_KdiV!#4{P!dEa(Bk{jba+!-|8R&#>5ic7yKQXUG}-9s)N47l9|x zEao19!7YHFh4%>z*oD&g&1D)P{uwCyRjOyUayoifFmsnY{s9>958W411MoGteaBaF zjd#mHiYL3kt(+@~I@Xc$kKtNmEt)y7qOR40%P8L&keLB^UxT7j5%W{yRFCs6+$vXb z6}vg@r<{G;wdS7is~!e!KWlTYEKjeBbpH<)F-Isl{x3yqt~ix30Im5IGPz{p@JWJ{ ze}`Vc3L}@Ep@5;B{ME%QD5B&|7Uv5{c}Tz%-y9F`@mM+Z^nm0T+?%i&N9}(jt8QH? zmZx)>dcJkKw}UlqxVU`FXruu+Eu^czehLrw0AAv$fB~55ceD1vRcy-emGxkR&Lm~u zsS&u)$flbNFqXzpuo#&!^B&E0^Q}XCX6E6g*hHkk_b19q&es52C5g_9GJF4u#LJSp z`@aEsz!yXU*ghIO!bpoNh+A<2^oBF8;cUibj(4~LSQgR*;9cOljaMtwb=K_Rp~1wT zJ)_3z{d7IZ)d&aR zd{X{hVm&CyQf;tvvYyMZ)@+&uUNC9tb~2=rSGQB@w};7pA3K8;znN#RT7b7KVak@J z^;$TWf4;!?8iKVx`Q*sH#~6r?=MTNWB_)JkHYhMSIajSu~TqonCxPs+V}xd7d>I*gpzf;$MN4$)TTa>W0$ zLrDSVT3=TNlJ(;@RG`iD*H_Ah5*y+^>k7L4_XyYMzI9~Owb()T({k35NyCu;ns#^d0|7%36~6AG@2x&a~wrGyq%S04aI}=%@|2wPJ1>D=X(v z@^7EQfW?MuH5*m9sktfyM-1b6tB&^|htB}q&K_URB7^0RA?58)?*G2yD&0>{(_Kmg zmh7Oao`pBnS3+n2@CIQmWiBJ}@*gKx;kEy(Ns0F{4DhVuqMpej-&#%zTXX}!7bBQh zr@kj-%8!E9M~T5q~;^4C_9!WLVU;e|+xjC%lwLuLSw zL+y-87=X5{$)@z1=vB?9_`fK5fP~@LlMII%f{LF5$Sz~LlSDe?M?z)*{-B91y5)bS zE}tK7p|RiM(T0H+(9ZK!Th^1(7WJ??I3!~t5y)}hXaF`EzBREDG2_8QSE2_nj|@Oj4ZtD|41h*e zfRY%1!$X(@*bKM-q)K=I^*4S9mrI^S2B4@0;8NX14}c6nDGb1&fM0~n062h1C1S>i zSmAssDQ;2Qfj^>qsfLPi=ZCipXd@2f>^UJL0|6M7FaXgkjsjc9Q6o@M4Zu9rvFbG< z1}TXFz)dFq6*2?x1jLI|Dq#Q=xTOrwK9meVF%5uyGJAcLQ4XN!2Eatb;URxNWCj3t zu+6H30pPO$F0O#G){^oTjTGca1#bU1H3Ah^Vq&k^WL%&TG6V3eCU&}4sxR(&Be0DqP1xXPacco_c8QS1egYdGda z$^-24?cY_YevXAd@Iw1|07So% zwZ}#K${$0<@(H;mIHSVnuqh1Kquc*V%}vk5+h561`LDDFV8BL9fQRmd&;UH8d*)0W zBULIv5$@P*a$jd1+-9edV(;1bZ_KyH88rM;26^Tj)-setFW^fdGys3X1Sci}Cwt{z z6MpXKoxIcv|9%WUM~1wB-BSLm;CUT@qrYtx2;KHA?_;ype3GePxI_}zEOgs)G~a8N zeOvV|Wm@m@LKv_L@OlW1zWb$7|ohY9ZazH`#aDGoI)eQyJY~*k2&Tz0~96} z;OReXPEs5=Q*JjiJhPxfOm!_e4`S76xn#YOv+5&#i8`KZbLH>xc!HQ28^FkA6Rb5` z;XH@@@aM|RdDsj9E(w`jsaf(!{xY};QdkvG;Ikyj3)tl%(CK;(ZqQA^9Q?rxlRbB~ zxYcoCsh>gP-UQ#zk$oQv0L$gi^KXC~rQt^p@Ip;o1T*10j8_JwK>*{>HoStd-uV?Z z0LO%|6j&Gyey8{u%O3``=2o$V&u?Z%uB)(v;c8O$9Rii)y|GOlb^1Vp=>w^N-S{aE zJVy$ICSU+G`2IBcxpRP@0)D>>FZ!Q=-$}lT0of{k0vLc63>Ep`?bsaUO;$my0@#l) z)eN5jK&()Q!2mcFaw);G>)7r-8ZMj@*i$@?oZB`A)l!htvQ(50?8l%mc*wuBga)LNbe~ zS%~wt%tx+(cTkJ)_AS5mDO0zss&Dl=nc-JH_UCl+_g#mHJWxV@F+;q)Ys%`Zu-}J-xW#+8H-b}ppKVKwQe^2oo;2JOh8iwfg4_UmVT-rpS&)0;# z7*Yf9ICucy@5M)*P6vYQ{LkFx)N3b>^2dHgwg=~8GgPCMPo)~2__ zgP{NpN11T2r?liVtbOCc%9X&zZhp*zC799Q&19)ANKDy-V2}>cy)>_6m86;_yOl6Y z{q>L<0L0yJ^G?(%++Z^8q2;XU_6r%-yOBW{u&9QN04jePZvI)V5ZA`tRK>|Yb@&|E zq@!}r%seHados4d1$HnRs;T)jYt0q8Oxm>hQt6s$*)Bs=&_S8a~W+f%&SS)^L zH}^&i&yGv>pmjCi_S?E^&u$qsIfc4bX|j(|GyuE`hB5!q0UwHU;oMGF;QTiB6**th zveuNH({`BS)wD&j9?aVNv4 zB`Yn)KquV(d|qQJFBb>@{C-t+Q!T1&DK2szfNu(lg*Xp@_&@A=)OjwT@>yr>`ik*s z#WWtmD7bm&!RPyE2)%)Y5W}{&;D|K*tg!$*dySK~rVtZ2iEL@=`z6R_SzSujt`o^h zyO;)mmjcIybTV*z+yu(spu!=H2H+rKJa^Ee%UJ|sVJ&Yq$uK1heFFITuK~k$Hh4IS z4q;ae4s1|{d?H&@yxa$hbe?SEt(Noq41`a|6+NLH^~3{#zqliW9D#4<3p@^g))|}5 z55!@d`&18Ow_c2u0Tv(Xu9qxLrc|PJRhsNufd|#dXU1dsRd<#L!s|kb4|Nqrb=%?V z166p2do{7vuZZrbmnwJxhf7yE%wE8k71tV%ODEL;(N4$moy-`7TXJ9(hGYgP4)PkV zsUjn=PBu6#0OjBB!#CXpH-4HKx!}yft4^9v-!=9wD2%~ZW77LoY@#ag4HWO;h^Z&! zw0A;o0DcP!cBal-Ejw7CWE9-f9~~ivvP+3YW0Suy%wjl1$htlnZh=a=$@FaQtR^C33?uK|{|`C>tekq?#;;ECB>nyJHJkTHAy zovmP?)0*yECxOLJ$ZEm*3K@g-(hzk6{>5e+yD&_PHL-*^Sn{RD5G zY5MAVq@jv{AvhX-eF=`!Zl{#%N_f*3{{A(hamhXb`3|Rf>3USE7|vPrUCK@!=?Uax zRAlX373;>bAvwQ4g`Z~*{#-G)vp5fG|0gbD@y(nBp{E8608a>lLNy_`ThUuAi!5!q z42$2pg!9lv`jf16Ff$(9?x_&Zo(Mn3Ws;8S+U*o}{a#cO*1bvLdt|a~F&LfG4d0rj z=j>+1?chx`tzMc<$aVx)@wZ)U*m<}Dm*HL&BKo_(^9C{qwbX2pye=fN6y$~Gi6QR_ zEZ`NK`NlAyJ)dM+6)dCVWy94cvG`zy*MgOS1ZLVXVTgnym^3^?6N5&$lVGL1wXfUG zDC`J5lClhyJuRAdIIHqeXk@_KXqwPxiUu0rW-|sq#@*^_kfSceIsbHF(C1enJHMaT z9J8@#)c|e)eBKqbxIbAFU1&h z`*5P_o{h@a-|;s0c$KvK?kOI?BymymF51xI!rs8{Dru1{25tw1Xwd{mBCAG0x@ye6 z^M)=6;|%!T5bNJKFqznRx5WKgcq^A#T#>4hrl@C_xTK)l3UIe-v8-9$MJh}h9~2o4>x?)+3wVoqPn~{{jM4@0EJ;8jGtKqV=9++(^ab|KIim9I3RR^ zR{ZHetI#ifv8N?1J~40GO)14q zW#8CBvd5x}#5L~iLwdWlHR8Fx&dF9vVF0jqT3S=AEk9jjUH~?Wd`$7uO~@Cg%?#x9pf2dxHN`>cW&Kt>>7 zf{9u{i(|4`TUIbRCi|NjI-`G7J?q?(jkQndw+cN0XNGiv=&pc2b4qcN4OkvjT?z$) zBrWhxuwpY6No`&8gEi=>J}-y&O7nnmG*vc;U{Ymc4H|#~qp;cHCb=g-iNS!x{Cs_v z#b$|B+aIby<>v!Inr}`k=>%pZiwzZgbLqKq4!LHHfa+$(6`hHNWbd;5_zs@_9Da|y ze$UkCx%5;&HL;`y05jn5k03BB?$zjn9+l*gR~jDfv$L6z6YaGml_>R@Y_exzi!W|` z`rjHplRc`_RabJaRPSHG54-AFm(*Be(2f#=>%jovuoR08W>~bJyn*s$`!C=l$h^_V zH7Cev$LDMKEaD{VSy=v5HkWwAlKR*Mf>6QbgbG`0_@N{I3iu+R9hrQaH+2VsVm!=( zTn&nok;6(>L~<3pQsd|FF+d!>A$6eCTo%3a*&%+C#Y8UP@*4L73Jn-p)wK^pf(|8T zRRxzoRl5B7BvS{MF*&3)MV6%hR^#W7yZ`&&^?t@4_+@h`HkMIupE6H-3qE zi(RAoqIDRPrqnvTkBMh5#iCwPhMhJ}r7i~ijLzB^ZjNQsjfRshKS_%wMujm6b~n9< zH{=EG0INK={k{ZuS1)>H9y4+#Y4aXPG;6Z>2r7PxvkA+)_}`fWWxEM zbgtfzd%7W-wd>VNg`0|-D)7%W)#!}C?v!V~g5E&%q19s}sw6v)^>r`+x?>e?{p$hG z(OG&6eh8SO$u7u>i7~iXk}dLGf)tzW82=6E)O=g#8EkA`8A!94Ba2AmQAR=W9VB8+ ziVMY0<664;a$zUk`a7Qd>)dbfG8XkRmA2R!rsfjx4oC4|SL>3+a=o-19PkfnUTPvY z1frB$)4H#^X+BuRZ?b$xgDO^^-9fSbPB94HQCzL`?LTG&hL_00Y_?K!&@S;Z;M?%5 zPE&kNSiwDlhek(>v(~9fZhU>y6+FQwswJKEl6V&P^gT;wWS8WhA21;Nj^qNe#tw4< z@j*d7Ez5#`pcl1UCBv@(P6b71*2TgKrug7d`RP#VJx-LyvV7SLkM*NoqERaTjeuX! znb``UuP;B~{@yOKyd(%BV+yH0-2g@uay|g`> zFmwS+LFs3-WEa;-7ADr3OIBq=5uS&Fn?H5%Iy3-=9NE2{T>ZVpc!MFjNmr+rI{Mg#334~mi|t@OojJ{`1n~< zli;%-C-)6LOlM-RaTj<`El5P84+PjN)N+D3DCXH%%DIhR+&%$wDff$YR`#iYc6QU1 z+f!bHf?@8UGO-|b>){GA)f;OI7lbjc83Ds}j9e+_)fhKlDe!Z6o=5Zb^~gIB^!03- zmyq;f=3MyjKcW{{w5FoRvG-fl$ZgzoqsF|YZ!!piyD>J{$x#g1Z)7o>KC)DXch(!g zXV5(pY2x;We|H{sr^!JbQu^X;{IT1g_%ayQD(NIO;6}oYIunHJdMQ-}N-}ToE2(Jz z4p<@yA*X`@h^jezoZ_V3sI0EFLj`_YxKhCjh6PDr{0x@saQ34ea1`KTsqlTW3G6j` zH^pC8t2%;orfLj;FamfRVX4QSAcr_8(_6xYrZS26GdZ4(Rha8AX$1HnHx7I^o;?-5 z*W?&?6kPX+RA>ac?F#?@z7>b>4}kBF1p{!FGrNj3%pL=>t z%P+3NzHY}XxTV%)DBsDj#Jzw=q;jJn`K9c^|GhLY z^gPR-|GCg`O@5JT)yOo3jS2>LMbQx0r^rJ{FPA{r^-8)MRo5EN+kO2iZWq@$Yp%&= zKDe}w55$n$NFeMA190odctve61UwRG0Fcx{%bQpl`~u|z2!x$=``Je!r5yHuV1r#a zroONv4A+eN)>PT?MlYK{c|Go73)6Mo2JWHO3gI)SjQ zlCxHK%tq{_RE8I`(217gVF1%McNeAxU!WIHAn=g*E2_`;9E5w_91jCLlNpYU>zuj( zf1(3GsB!qZXHD0@<;Trip%=c^32U1^=Mua@qvZ~S+Qk#diGcGI(fbz$zt6vTo&dI% z+DyswMWbJ#$^fATfelxu=sAn2mEiTSq%^#2AbCiEP_$k4lhdIf)C#c6^22dI$rLvr z+glYqJxvtkeODI1s zKBe1#H>U@Y3B@%fj~!18K12tKP(?rz*EO1NHDl{L61D0M#r=Ee35dA?MUYt@PPAf# zY8mT=IKNZ%?eUz)-!(~@_f`xX9FowGdfKx#P}?vez(Cr&#k!wt;I}@x{KfDDY&Ipo zT+mhfHf|ukMHAH6bl?aUK~^E9u>HofnkC8Tb9DF!6~sRPn{iVUX8GmWBxNminGm5k zW`imgUpz?%kx&63!}aHM*J{(`A{=V+DQB+$)>fTmg$jW~$w5My$9b27@=xLnzFW?( zt$F?+NF=|UMf2SSj{vRk=ZIpAPzHPtJx}A_<@Gw>+C#T~<>m*_3&^GUS0!iRpoOW4 z6xQ#{4_Iibn91KS_Z^Aay4hM!ydT`y#d^mo72RKB|5l-V!8Yu zRb5lVv(~(|n;DM9No`1iQYyqzWc6d=A*Tiy5I>3Z|!NcI@f1ovIHDb6K zhua_bUXlbcISBEXk~KwW;AX~aVuw9(3lR2}z2|1Ytk{s~>Z8uSsxSf>!6^WiI_@WM zrr;oWiC>lj8g#G;yMrHqvM*4)bQ3ClWU~zy3n_n9NfZnL0$Yhy$HE;1^8t_3;U??^ ze*pXk;J~Px;I;iYQg=~_ue!qm9vWafv2V?m<-!-~uoJe!Kjp~zM-<Lz&y;mI!@fH{Ig;QP-4o+qWK znTDRN@ZK+h%b-P&&R8twC)i|)^=n5|*JcXe$p&9@CWHm%NpLW}B@;oUDB;8Fl4Ldm zir=c^QW{YFS$!8WHqt{1QIj&tm^QGSslMnPFuY8&%nxiLzJXBTCxEL}tm*f!0HbfR ziOx!1B_bga)dEgECOiVoOSfP~7~oO=Kve@b@UDkc#<6@ z3XzJu0Hk%Yk$vbKz}?hVTva3;PXT%WbE7${9uSC?K-34!esa|TL zTvqaF8CTN8Vde2Mz(qD*z?9Z|t`Y`3XR=AzE;e&y5glZbeG{W^31g!Vjd8xU<}%<` z+H>IhF1fFO5{BjP-1{Ff<6)nHM6tS9EX$O9f>(G*NJ?W2e47K?MU6b)SD)e}l%iM%xjMuZ=?zm=p&INyP+Pi`5OwnKC4dfsw<0@^mvC)MMb+s{jMC z-~4Z+%zLEtxD@s?aJ$dbTq_oJtvazQ5&+Nmr0Z7_BM(V{#Lci)xS67^por#U$Sx<1 z#GZn~013diC1>Glq~vdD&;6~;r+f@>mgd`S(VW%5V|!PyKu5M-%9OzlI%_1s7hNtl z9ou7&GnwI9&2X6KfN{7$+-}wuz;9&jy4KoqUzM%7x67CwJtocQUq1HCaJ|;(=qO{o z^XWj5RIg0yUCw6Txm++6$-_Nygp-+K0`UmI<$x~%?v)Q)l8{S$AkEtPGQ8PH9DI`<^@-J(OpI#2HCHwrtpI#OCcvJqq9LU} z%LM2TWd7quz$Jj=(5;W;)Agz}gna%2!X)C_BdP5~;$VVBM;3`{g1=2Uw0^rmcWf2D zKNSAk`v8k1dBq)o2LV3@{8Glxua>DX=`XS^`q#489v5S7l+97-%72Kv^RC?*_3Uwx z!9?A*+udeh0EktWgyikS00qHiCuj(w_jEEa0Arql?xvYKWP(DOO>m1w71y37s|_E} zaWB1Rt%mRa9dH|917Jvc5ZIsaEZ`-XVgIwNO1v&vkzSL{OfSit#Lwi;#rtKK-M1uX z!ZlLK=WD+C9#H66x@Rl!874-3s{ym~W6BOU`y}|hx-aq|5XnPx)U`a$lR9Hu)muYNNRTRhn=e{=`XbS_8(q-D(fDl5Jh)awV4Msm0(_#ryP@_Q! z(FEvB3$m&BWXUvko7T3-VhT!u&;)`_5T-@I1w{oUQ4`r(ZJ8EDGi=>v<{k4&3)A*a zX9nKKch33W-#zD^^X?kGhm0|cdS5d#3! zD?`vp5jCv(ws@k&4<|Qo_J)E936ND+G{zs*wMCG~BtRV~*bm^2(Z>qvhoxHHJWyEJ zHWWlifb1_FX?~S{0`nM|P!IqkDIR5{`uL$wtIppOfDt_NkYg1SHUJm|90Y((!=lz6 z+)<(3a|sNA7mpREa98(f2JQ>11O!jCCF+s7trd-715BvohtDm-8Gu+8lzDK2jf5xx zAOh`@3^19+>V}$63Z#oOQ%X6~n{D)~VZWWy)Cw-s$6{qm4t2-^jZTR5nvW4MZAbvZ z&z{kk7OVr(N;$1t!Rzi^TH6mGrJVQqffo0Fut6hT2JwQ+@v;K!911`&EAw478@J2i zlS_EGU!Z{q$K5u1XApo_N0zE%T1!6tC=;0T+n%V-mJ4S0C;ARCPBZFw|5*x{M|RY7{Um%j&LgyD1h3<%t`#95x+TUmHY8mqC0x8Q3c zWGDjbFXhtvvJ7N1;8#^lzOUQ{M0*?36X!tFq~(iu@{g z&TXSLQh?q?Pg+LcnLifLbs5CWddE~h1b|fqD_fS(N5SeF?EMUl)w83pPX{sw z`UqgT+fIccOJF$Y3~!7H6B-xOpOHXVOE|}`V0Yia>sJCD_SSqV3k#q(u(~Y?3z0+q za3GA4>k~K(;7OT3MGC--t1*Nr7wz;{H~@*oJX=>#OOpFT&#q+vRwu9a1M6j%4kL&e z4VSHWK2#PaZe;7VPW%Fb^ajO@4pkuQl8uZE-DyK+ri3!&5MUg*RM}2VgzRP;?H?)& ziB4X}zbP({anNi)8N1g#QK_aKII@SWaAS?|OV}>3@nAL2jF9t { size={30} />
- {'Beata Admin'} + {!getMenuFold ? {'Beata Admin'} : ''}
{/* logo */} diff --git a/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts b/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts index 90881462..12fe5d1f 100644 --- a/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts +++ b/apps/admin/src/components/AppLogo/src/app-logo.module.style.ts @@ -31,7 +31,7 @@ const useStyles = createStyles(({ token, css }) => ({ fontSize: '20px', fontWeight: 'bold', lineHeight: '32px', - animation: 'showup 2s linear forwards', + animation: 'showup 0.6s linear forwards', '@keyframes showup': { '0%': { filter: 'blur(10px)', diff --git a/packages/store/modules/admin/appSetting.ts b/packages/store/modules/admin/appSetting.ts new file mode 100644 index 00000000..e69de29b diff --git a/packages/store/modules/admin/enums/appEnum.ts b/packages/store/modules/admin/enums/appEnum.ts new file mode 100644 index 00000000..62282b51 --- /dev/null +++ b/packages/store/modules/admin/enums/appEnum.ts @@ -0,0 +1,32 @@ +export const SIDE_BAR_MIN_WIDTH = 48; +export const SIDE_BAR_SHOW_TITLE_MIN_WIDTH = 80; + +// App mode enum +export enum AppModeEnum { + DARK = 'dark', + LIGHT = 'light', +} + +// Menu theme enum +export enum ThemeEnum { + DARK = 'dark', + LIGHT = 'light', +} + +// Page switching animation +export enum PageTransitionEnum { + FADE = 'fade', + FADE_SIDE = 'fade-slide', + FADE_BOTTOM = 'fade-bottom', + FADE_SCALE = 'fade-scale', + ZOOM_FADE = 'zoom-fade', + ZOOM_OUT = 'zoom-out', +} + +// Permission mode +export enum PermissionModeEnum { + // Route mapping + MAPPING = 'MAPPING', + // The back-end response + BACKEND = 'BACKEND', +} diff --git a/packages/store/modules/admin/enums/cacheEnum.ts b/packages/store/modules/admin/enums/cacheEnum.ts new file mode 100644 index 00000000..f33888e8 --- /dev/null +++ b/packages/store/modules/admin/enums/cacheEnum.ts @@ -0,0 +1,18 @@ +export const TOKEN_KEY = 'TOKEN_KEY'; + +export const LOCALE_KEY = 'LOCALE_KEY'; + +export const USER_INFO_KEY = 'USER_INFO_KEY'; + +export const APP_CONFIG_KEY = 'APP_CONFIG_KEY'; + +export const APP_TAGS_KEY = 'APP_TAGS_KEY'; + +export const APP_LOCAL_CACHE_KEY = 'APP_LOCAL_CACHE_KEY'; + +export const APP_SESSION_CACHE_KEY = 'APP_SESSION_CACHE_KEY'; + +export enum CacheTypeEnum { + SESSION, + LOCAL, +} diff --git a/packages/store/modules/admin/enums/menuEnum.ts b/packages/store/modules/admin/enums/menuEnum.ts new file mode 100644 index 00000000..50dd35bf --- /dev/null +++ b/packages/store/modules/admin/enums/menuEnum.ts @@ -0,0 +1,26 @@ +// Menu types +export enum MenuTypeEnum { + SIDER_MENU = 'sider-menu', + + HEADER_MENU = 'header-menu', + + HYBRID_MENU = 'hybrid-menu', +} + +// Menu modes +export enum MenuModeEnum { + VERTICAL = 'vertical', + + HORIZONTAL = 'horizontal', + + INLINE = 'inline', +} + +// Menu folding button location +export enum MenuFoldBtnEnum { + NONE = 'none', + + HEADER = 'header', + + SIDER = 'sider', +} diff --git a/packages/store/modules/admin/types/config.ts b/packages/store/modules/admin/types/config.ts new file mode 100644 index 00000000..d4e94bbd --- /dev/null +++ b/packages/store/modules/admin/types/config.ts @@ -0,0 +1,83 @@ +import type { PageTransitionEnum, PermissionModeEnum, ThemeEnum } from '../enums/appEnum'; +import type { CacheTypeEnum } from '../enums/cacheEnum'; +import type { MenuFoldBtnEnum, MenuModeEnum, MenuTypeEnum } from '../enums/menuEnum'; + +export interface AppConfig { + // Theme color + themeColor: string + // Storage location of permission related information + permissionCacheType: CacheTypeEnum + // Header setting + headerSetting: HeaderSetting + // Menu setting + menuSetting: MenuSetting + // Transition setting + transitionSetting: TransitionSetting + // Permission mode + permissionMode: PermissionModeEnum + // Whether tags cached + tagsCached: boolean + // Route keepAlive + openKeepAlive: boolean + // Lock screen time + lockScreenTime: number + // Whether to show the global footer + showFooter: boolean + // Whether to turn on the color weak mode + colorWeak: boolean + // Whether to turn on the gray mode + grayMode: boolean +} + +export interface HeaderSetting { + // Show breadCrumb + showBreadCrumb: boolean + // Show tags + showTags: boolean + // Show search + showSearch: boolean + // Turn on full screen + showFullScreen: boolean + // Show locale + showLocale: boolean + // Show document button + showDoc: boolean + // Show github button + showGithub: boolean +} + +export interface MenuSetting { + // Menu type + menuType: MenuTypeEnum + // Menu mode + menuMode: MenuModeEnum + // Menu theme + menuTheme: ThemeEnum + // Menu split + menuSplit: boolean + // Menu can drag + menuCanDrag: boolean + // Menu collapse + menuFold: boolean + // Menu collapse type + menuFoldBtn: MenuFoldBtnEnum + // Whether to display the menu name when folding the menu + menuFoldShowTitle: boolean + // Menu width + menuWidth: number, + // Hydrid mode sider menu fixed + menuFixed: boolean, + // Hybrid mode sider menu hidden + menuHidden: boolean +} + +export interface TransitionSetting { + // Whether to open the top progress bar + openNProgress: boolean + // Whether to open page switching loading + openPageLoading: boolean + // Whether to open the page switching animation + openTransition: boolean + // Page basic switching animation + basicTransition: PageTransitionEnum +} From 486c6683df0f963626e247a32f69979259170abb Mon Sep 17 00:00:00 2001 From: G Date: Mon, 18 Dec 2023 19:17:53 +0800 Subject: [PATCH 025/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/layout/index.style.ts | 5 +++++ apps/admin/src/layout/index.tsx | 2 +- apps/admin/src/layout/menu/index.tsx | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/apps/admin/src/layout/index.style.ts b/apps/admin/src/layout/index.style.ts index 17317ed2..b2feeb93 100644 --- a/apps/admin/src/layout/index.style.ts +++ b/apps/admin/src/layout/index.style.ts @@ -13,6 +13,11 @@ const useStyles = createStyles(() => ({ padding: '12px', overflowX: 'hidden', }, + '.ant-layout-sider': { + height: 'calc(100vh)', + borderInlineEnd: '1px solid rgba(5, 5, 5, 0.06)', + marginInlineEnd: '-1px', + }, }, })); export default useStyles; diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index 90411306..ed302df8 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -21,7 +21,7 @@ export const BasicLayout = (props: any) => { return ( - + diff --git a/apps/admin/src/layout/menu/index.tsx b/apps/admin/src/layout/menu/index.tsx index 2e4af5b1..ba39f907 100644 --- a/apps/admin/src/layout/menu/index.tsx +++ b/apps/admin/src/layout/menu/index.tsx @@ -97,6 +97,9 @@ const LayoutMenu = (props: any) => { Date: Mon, 18 Dec 2023 19:43:47 +0800 Subject: [PATCH 026/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=9D=A2=E5=8C=85=E5=B1=91=E4=B8=8E=E9=A1=B5=E7=AD=BE=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../layout/feature/components/Settings.tsx | 38 ++++++++++++++++++- .../layout/header/components/Breadcrumb.tsx | 8 +++- apps/admin/src/layout/header/index.tsx | 6 ++- packages/store/modules/admin/global.ts | 12 ++++++ 4 files changed, 60 insertions(+), 4 deletions(-) diff --git a/apps/admin/src/layout/feature/components/Settings.tsx b/apps/admin/src/layout/feature/components/Settings.tsx index 856ee7ff..886c69dc 100644 --- a/apps/admin/src/layout/feature/components/Settings.tsx +++ b/apps/admin/src/layout/feature/components/Settings.tsx @@ -1,7 +1,8 @@ import { SettingOutlined } from '@ant-design/icons'; -import { Button, Drawer, List, Tooltip, Typography } from 'antd'; +import { Button, Drawer, List, Switch, Tooltip, Typography } from 'antd'; import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; import { useState } from 'react'; +import { useGlobalStore } from 'store'; import FullScreen from './FullScreen'; import LayoutSettings from './Layout'; @@ -14,6 +15,7 @@ const { Text } = Typography; export default function Settings() { const { styles } = useStyles(); const [open, setOpen] = useState(false); + const { hasTabs, setHasTabs, hasCrumbs, setHasCrumbs } = useGlobalStore(); const onClose = () => { setOpen(false); }; @@ -43,6 +45,40 @@ export default function Settings() { 预设} description={} /> + + 内容区域} + description={ + + { + setHasTabs(v); + }} + />, + ]} + > + 页签 + + { + setHasCrumbs(v); + }} + />, + ]} + > + 面包屑导航 + + {}} />]}>系统名称 + + } + /> + diff --git a/apps/admin/src/layout/header/components/Breadcrumb.tsx b/apps/admin/src/layout/header/components/Breadcrumb.tsx index 22c1bab6..6a9970b2 100644 --- a/apps/admin/src/layout/header/components/Breadcrumb.tsx +++ b/apps/admin/src/layout/header/components/Breadcrumb.tsx @@ -6,7 +6,13 @@ import SvgIcon from '@/components/SvgIcon'; import { useAppSelector } from '@/stores'; -export default function LayoutBreadcrumb() { +type BreadcrumbProps = { + show?: boolean; +}; + +export default function LayoutBreadcrumb(props: BreadcrumbProps) { + const { show = true } = props; + if (!show) return null; const [breadcrumbs, setBreadcrumbs] = useState([]); const { pathname } = useLocation(); const getMenuList = useAppSelector((state) => state.menu.menuList); diff --git a/apps/admin/src/layout/header/index.tsx b/apps/admin/src/layout/header/index.tsx index 4eb78187..0af98d0d 100644 --- a/apps/admin/src/layout/header/index.tsx +++ b/apps/admin/src/layout/header/index.tsx @@ -1,5 +1,6 @@ import { Layout } from 'antd'; import classNames from 'classnames'; +import { useGlobalStore } from 'store'; import LayoutFeature from '../feature'; import LayoutTags from '../tags'; @@ -9,17 +10,18 @@ import useStyles from './style'; const LayoutHeader = (props: any) => { const { Header } = Layout; const { styles } = useStyles(); + const { hasCrumbs, hasTabs } = useGlobalStore(); return ( //
- +
- + {hasTabs ? : null}
); }; diff --git a/packages/store/modules/admin/global.ts b/packages/store/modules/admin/global.ts index 4f2d23fc..8599931b 100644 --- a/packages/store/modules/admin/global.ts +++ b/packages/store/modules/admin/global.ts @@ -6,6 +6,10 @@ interface State { setTheme: (theme: string) => void; preset: string; setPreset: (preset: string) => void; + hasTabs: boolean; + setHasTabs: (hasTabs: boolean) => void; + hasCrumbs: boolean; + setHasCrumbs: (hasCrumbs: boolean) => void; } export const useGlobalStore = create()( @@ -20,6 +24,14 @@ export const useGlobalStore = create()( setPreset: (preset: string) => { set({ preset }); }, + hasTabs: true, + setHasTabs: (hasTabs: boolean) => { + set({ hasTabs }); + }, + hasCrumbs: true, + setHasCrumbs: (hasCrumbs: boolean) => { + set({ hasCrumbs }); + }, }; }, { From 9727b16e91bb3f5b16e67deec3284730b60c7d66 Mon Sep 17 00:00:00 2001 From: G Date: Mon, 18 Dec 2023 23:55:15 +0800 Subject: [PATCH 027/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=AC=A2=E8=BF=8E=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/public/character_3.png | Bin 0 -> 12236 bytes apps/admin/src/assets/icons/homeinfo.svg | 1 + apps/admin/src/views/home/index.style.ts | 16 ++++ apps/admin/src/views/home/index.tsx | 90 +++++++++++------------ apps/admin/src/views/home/index1.tsx | 57 ++++++++++++++ 5 files changed, 116 insertions(+), 48 deletions(-) create mode 100644 apps/admin/public/character_3.png create mode 100644 apps/admin/src/assets/icons/homeinfo.svg create mode 100644 apps/admin/src/views/home/index.style.ts create mode 100644 apps/admin/src/views/home/index1.tsx diff --git a/apps/admin/public/character_3.png b/apps/admin/public/character_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2d639ccde3c165991eebd0c29af084ff569575bb GIT binary patch literal 12236 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/icons/homeinfo.svg b/apps/admin/src/assets/icons/homeinfo.svg new file mode 100644 index 00000000..707bd1eb --- /dev/null +++ b/apps/admin/src/assets/icons/homeinfo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/views/home/index.style.ts b/apps/admin/src/views/home/index.style.ts new file mode 100644 index 00000000..a10c5c79 --- /dev/null +++ b/apps/admin/src/views/home/index.style.ts @@ -0,0 +1,16 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(({ token }) => { + console.log(token); + + return { + 'home-container': { + height: '100vh', + '.user-info': { + backgroundColor: token.colorPrimaryBg, + }, + }, + }; +}); + +export default useStyles; diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index 443427af..05e0102e 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -1,56 +1,50 @@ -import { Col, Row, Space } from 'antd'; -import { type FC, useState } from 'react'; +import { Button, Col, Divider, Row, Typography } from 'antd'; -import ChartsCard from './components/ChartsCard'; -import CountUpCard from './components/CountUpCard'; -import { - barOptions, countUpData, lineOptions, pieOptions, radarOptions, ringOptions, -} from './data'; +import SvgIcon from '@/components/SvgIcon'; -const HomePage: FC = () => { - const [isLoading, setIsLoading] = useState(true); +import useStyles from './index.style'; - setTimeout(() => { - setIsLoading(false); - }, 1500); +import type { FC } from 'react'; +const { Title, Text } = Typography; +const HomePage: FC = () => { + const { styles } = useStyles(); return ( - - - { - countUpData.map((item) => ( -
- - - )) - } - - - - - - - - - - - - - - - - - - - - - +
+ +
+
+ +
+ 欢迎回来 👋 Gbeata + + 如果你正在使用或者将要使用这个系统,希望你在探索的过程中学有所得, + 如果正巧你遇到了一个问题,请告诉我们,我们会尽快处理! + + + + + + + + + + + +
col-6
+ + + ); }; diff --git a/apps/admin/src/views/home/index1.tsx b/apps/admin/src/views/home/index1.tsx new file mode 100644 index 00000000..443427af --- /dev/null +++ b/apps/admin/src/views/home/index1.tsx @@ -0,0 +1,57 @@ +import { Col, Row, Space } from 'antd'; +import { type FC, useState } from 'react'; + +import ChartsCard from './components/ChartsCard'; +import CountUpCard from './components/CountUpCard'; +import { + barOptions, countUpData, lineOptions, pieOptions, radarOptions, ringOptions, +} from './data'; + +const HomePage: FC = () => { + const [isLoading, setIsLoading] = useState(true); + + setTimeout(() => { + setIsLoading(false); + }, 1500); + + return ( + + + { + countUpData.map((item) => ( +
+ + + )) + } + + + + + + + + + + + + + + + + + + + + + + ); +}; + +export default HomePage; From 7c498248e3c49b1f7bc14216a012b4d438c1d0a7 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 19 Dec 2023 00:11:26 +0800 Subject: [PATCH 028/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=85=A8=E5=B1=80Paper=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/App.tsx | 2 ++ apps/admin/src/styles/GlobalPager.ts | 25 ++++++++----------------- apps/admin/src/views/home/index.tsx | 2 +- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 3a292e00..39a66bfe 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -5,6 +5,7 @@ import { useGlobalStore } from 'store'; import cyanImg from '@/assets/images/cyan-blur.png'; import redImg from '@/assets/images/red-blur.png'; import router from '@/router'; +import CustomGlobal from '@/styles/GlobalPager'; function App() { const preset = useGlobalStore((state) => state.preset); @@ -27,6 +28,7 @@ function App() { paperCyanImg: cyanImg as string, }} > + ); diff --git a/apps/admin/src/styles/GlobalPager.ts b/apps/admin/src/styles/GlobalPager.ts index 1c10b920..91ccdd80 100644 --- a/apps/admin/src/styles/GlobalPager.ts +++ b/apps/admin/src/styles/GlobalPager.ts @@ -1,18 +1,9 @@ -import { createStyles } from 'antd-style'; +import { createGlobalStyle } from 'antd-style'; +// 定义全局类名样式 +const CustomGlobal = createGlobalStyle` + .g-paper { + border-radius: ${(p) => p.theme.borderRadius * 2}px; + } +`; -const useStyles = createStyles(({ token, css, prefixCls }) => { - console.log(token); - - return { - override: css` - &.${prefixCls}-drawer { - backdrop-filter: blur(20px); - background-color: rgba(255, 255, 255, 0.9); - background-size: 50% 50%; - background-repeat: no-repeat; - } - `, - }; -}); - -export default useStyles; +export default CustomGlobal; diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index 05e0102e..d2bf59e1 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -13,7 +13,7 @@ const HomePage: FC = () => {
-
+
Date: Tue, 19 Dec 2023 00:34:02 +0800 Subject: [PATCH 029/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=A4=B4=E9=83=A8=E6=A0=B7=E5=BC=8F=E4=BB=A5=E5=8F=8A=E4=B8=BB?= =?UTF-8?q?=E4=BD=93=E8=83=8C=E6=99=AF=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/layout/header/style.ts | 1 + apps/admin/src/layout/index.style.ts | 44 ++++++++++++++++----------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/apps/admin/src/layout/header/style.ts b/apps/admin/src/layout/header/style.ts index 5dc390f3..203522f6 100644 --- a/apps/admin/src/layout/header/style.ts +++ b/apps/admin/src/layout/header/style.ts @@ -9,6 +9,7 @@ const useStyles = createStyles(({ token }) => { height: 'auto', background: token.colorBgBase, padding: 0, + boxShadow: token.boxShadowTertiary, }, }; }); diff --git a/apps/admin/src/layout/index.style.ts b/apps/admin/src/layout/index.style.ts index b2feeb93..5b9c16a4 100644 --- a/apps/admin/src/layout/index.style.ts +++ b/apps/admin/src/layout/index.style.ts @@ -1,23 +1,31 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles(() => ({ - layout_wrapper: { - display: 'flex', - width: '100%', - height: '100vh', - overflowX: 'hidden', - '.ant-layout-content': { - height: 'calc(100vh - 48px)', - boxSizing: 'border-box', - flex: '1', - padding: '12px', +const useStyles = createStyles(({ token }) => { + console.log(token); + return { + layout_wrapper: { + display: 'flex', + width: '100%', + height: '100vh', overflowX: 'hidden', + background: token.colorBgContainer, + '.ant-layout-content': { + height: 'calc(100vh - 48px)', + boxSizing: 'border-box', + flex: '1', + padding: '12px', + overflowX: 'hidden', + }, + '.ant-layout-sider': { + height: 'calc(100vh)', + borderInlineEnd: '1px solid rgba(5, 5, 5, 0.06)', + marginInlineEnd: '-1px', + }, + '.ant-layout': { + background: token.colorBgContainer, + }, }, - '.ant-layout-sider': { - height: 'calc(100vh)', - borderInlineEnd: '1px solid rgba(5, 5, 5, 0.06)', - marginInlineEnd: '-1px', - }, - }, -})); + }; +}); + export default useStyles; From 9ec557f8b2ef2f3ded1ab696a2dbbc0305409d8d Mon Sep 17 00:00:00 2001 From: G Date: Tue, 19 Dec 2023 15:25:50 +0800 Subject: [PATCH 030/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?tags=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tags/components/TagItem/index.module.style.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts b/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts index 6bbaa64a..7c623e46 100644 --- a/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts +++ b/apps/admin/src/layout/tags/components/TagItem/index.module.style.ts @@ -1,7 +1,7 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles((_, props: {active:boolean}) => { - const {active}= props +const useStyles = createStyles(({ token }, props: { active: boolean }) => { + const { active } = props; return { 'compo_tag-item': { display: 'inline-block', @@ -22,7 +22,7 @@ const useStyles = createStyles((_, props: {active:boolean}) => { height: '8px', marginRight: '6px', borderRadius: '50%', - background: active?'#fff':'#dcdee0', + background: active ? '#fff' : '#dcdee0', }, '&__name': { fontSize: '12px' }, }, @@ -34,10 +34,10 @@ const useStyles = createStyles((_, props: {active:boolean}) => { active: { border: 'none', color: '#fff', - background: '#1890ff', - '.anticon-close' :{ - color: '#fff' - } + background: token.colorPrimary, + '.anticon-close': { + color: '#fff', + }, }, }; }); From 7f5a8d082f8e279892d11fe7b0e543ec34996011 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 19 Dec 2023 16:55:36 +0800 Subject: [PATCH 031/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?UI=E5=8C=85=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 2 + apps/admin/package.json | 3 +- apps/admin/src/views/home/index.tsx | 54 ++++++---- packages/ui/.eslintrc.js | 12 +++ packages/ui/index.ts | 1 + packages/ui/modules/AnimatePanel/index.tsx | 54 ++++++++++ packages/ui/modules/index.ts | 3 + packages/ui/package.json | 25 +++++ packages/ui/prettier.config.mjs | 27 +++++ packages/ui/tsconfig.json | 27 +++++ pnpm-lock.yaml | 120 +++++++++++++++++++++ 11 files changed, 304 insertions(+), 24 deletions(-) create mode 100644 packages/ui/.eslintrc.js create mode 100644 packages/ui/index.ts create mode 100644 packages/ui/modules/AnimatePanel/index.tsx create mode 100644 packages/ui/modules/index.ts create mode 100644 packages/ui/package.json create mode 100644 packages/ui/prettier.config.mjs create mode 100644 packages/ui/tsconfig.json diff --git a/Readme.md b/Readme.md index 58b2594d..ad97e85a 100644 --- a/Readme.md +++ b/Readme.md @@ -37,6 +37,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - [x] 完成组件库自动发布npm - [ ] 发布组件库文档 - [ ] 发布gitPage +- [ ] 新增spring/web动画组件 ### 第二阶段:react-antd-admin模板搭建 @@ -50,6 +51,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - [x] 主题设计 - [x] 登录页设计 - [x] 状态管理(zustand) +- [ ] ## 分支管理 diff --git a/apps/admin/package.json b/apps/admin/package.json index 8e2508c3..d389c919 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -45,7 +45,8 @@ "use-immer": "^0.9.0", "video-react": "^0.16.0", "xlsx": "^0.18.5", - "store": "workspace:^" + "store": "workspace:^", + "ui": "workspace:^" }, "devDependencies": { "@babel/core": "^7.23.3", diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index d2bf59e1..6cef4ab9 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -1,4 +1,5 @@ import { Button, Col, Divider, Row, Typography } from 'antd'; +import { AnimatePanel } from 'ui'; import SvgIcon from '@/components/SvgIcon'; @@ -14,34 +15,41 @@ const HomePage: FC = () => {
- 欢迎回来 👋 Gbeata - - 如果你正在使用或者将要使用这个系统,希望你在探索的过程中学有所得, - 如果正巧你遇到了一个问题,请告诉我们,我们会尽快处理! - - - - - - - - + + + 欢迎回来 👋 Gbeata + + 如果你正在使用或者将要使用这个系统,希望你在探索的过程中学有所得, + 如果正巧你遇到了一个问题,请告诉我们,我们会尽快处理! + + + + + + + + + -
col-6
+ col-6 diff --git a/packages/ui/.eslintrc.js b/packages/ui/.eslintrc.js new file mode 100644 index 00000000..0c24b4aa --- /dev/null +++ b/packages/ui/.eslintrc.js @@ -0,0 +1,12 @@ +/** @type {import('eslint').Linter.Config} */ +module.exports = { + root: true, + extends: ['gbeata-eslint'], + parserOptions: { + tsconfigRootDir: __dirname, + project: ['./tsconfig.json'], + }, + rules: { + 'implicit-arrow-linebreak': 'off', + }, +}; diff --git a/packages/ui/index.ts b/packages/ui/index.ts new file mode 100644 index 00000000..01628104 --- /dev/null +++ b/packages/ui/index.ts @@ -0,0 +1 @@ +export * from './modules'; diff --git a/packages/ui/modules/AnimatePanel/index.tsx b/packages/ui/modules/AnimatePanel/index.tsx new file mode 100644 index 00000000..bdaa479a --- /dev/null +++ b/packages/ui/modules/AnimatePanel/index.tsx @@ -0,0 +1,54 @@ +import { animated, useSpring } from '@react-spring/web'; +import { useRef } from 'react'; + +export default function Card(props: { title?: string; children: React.ReactNode; right?: React.ReactNode }) { + const cardRef = useRef(null); + const config = { + mass: 1, + tension: 170, + friction: 26, + clamp: false, + precision: 0.01, + velocity: 0, + }; + + const [{ xys }, api] = useSpring(() => ({ xys: [0, 0, 1], config }), [config]); + + const handleMouseLeave = () => + api.start({ + xys: [0, 0, 1], + }); + + const handleMouseMove = (e: React.MouseEvent) => { + const rect = cardRef.current?.getBoundingClientRect(); + api.start({ + xys: calc(e.clientX, e.clientY, rect), + }); + }; + + return ( +
+
+ +

+ {props.title} {props.right} +

+ {props.children} +
+
+
+ ); +} + +const calc = (x: number, y: number, rect: DOMRect | undefined) => [ + -(y - rect!.top - rect!.height / 2) / 50, + (x - rect!.left - rect!.width / 2) / 50, + 1.01, +]; + +const trans = (x: number, y: number, s: number) => `perspective(600px) rotateX(${x}deg) rotateY(${y}deg) scale(${s})`; diff --git a/packages/ui/modules/index.ts b/packages/ui/modules/index.ts new file mode 100644 index 00000000..e72e905e --- /dev/null +++ b/packages/ui/modules/index.ts @@ -0,0 +1,3 @@ +import AnimatePanel from './AnimatePanel/index'; + +export { AnimatePanel }; diff --git a/packages/ui/package.json b/packages/ui/package.json new file mode 100644 index 00000000..017fec3e --- /dev/null +++ b/packages/ui/package.json @@ -0,0 +1,25 @@ +{ + "name": "ui", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@react-spring/web": "^9.7.3", + "antd": "^5.12.1", + "antd-style": "^3.6.1", + "react": "^18.2.0", + "react-slick": "^0.29.0" + }, + "devDependencies": { + "@types/react": "^18.2.45", + "eslint-config-gbeata-eslint": "workspace:^", + "prettier": "^3.1.0", + "typescript": "^5.2.2" + } +} diff --git a/packages/ui/prettier.config.mjs b/packages/ui/prettier.config.mjs new file mode 100644 index 00000000..a575ef6b --- /dev/null +++ b/packages/ui/prettier.config.mjs @@ -0,0 +1,27 @@ +// 配置文档: https://prettier.nodejs.cn/ + +/** @type {import('prettier').Config} */ +export default { + // 每行最大宽度,超过换行 + printWidth: 120, + // 缩进级别的空格数 + tabWidth: 2, + // 用制表符而不是空格缩进行 + useTabs: false, + // 使用单引号而不是双引号 + singleQuote: true, + // 在 JSX 中使用单引号而不是双引号 + jsxSingleQuote: true, + // 对象字面量中括号之间有空格 { foo: bar } + bracketSpacing: true, + // 将多行 HTML(HTML、JSX)元素的 > 放在最后一行的末尾,而不是单独放在下一行 + bracketSameLine: false, + // 在唯一的箭头函数参数周围包含括号(avoid:省略括号, always:不省略括号) + arrowParens: 'always', + // 换行符使用 lf 结尾 可选值 auto|lf|crlf|cr + endOfLine: 'lf', + objectCurlyNewline: { + // 对象大括号换行 + multiline: true, + }, +}; diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json new file mode 100644 index 00000000..ba9cb152 --- /dev/null +++ b/packages/ui/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "baseUrl": ".", + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "paths": { + "@/*": ["src/*"], + "#/*": ["types/*"] + }, + "types": ["vite/client", "vite-plugin-svg-icons/client"] + }, + "include": ["modules/**/*.ts", "modules/**/*.d.ts", "modules/**/*.tsx", "index.ts"], + "exclude": ["node_modules", "dist", "**/*.js"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f739228d..a89a78c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -171,6 +171,9 @@ importers: store: specifier: workspace:^ version: link:../../packages/store + ui: + specifier: workspace:^ + version: link:../../packages/ui use-immer: specifier: ^0.9.0 version: registry.npmmirror.com/use-immer@0.9.0(immer@10.0.3)(react@18.2.0) @@ -386,6 +389,37 @@ importers: specifier: ^4.4.7 version: registry.npmmirror.com/zustand@4.4.7(@types/react@18.2.45)(react@18.2.0) + packages/ui: + dependencies: + '@react-spring/web': + specifier: ^9.7.3 + version: registry.npmmirror.com/@react-spring/web@9.7.3(react-dom@18.2.0)(react@18.2.0) + antd: + specifier: ^5.12.1 + version: registry.npmmirror.com/antd@5.12.2(react-dom@18.2.0)(react@18.2.0) + antd-style: + specifier: ^3.6.1 + version: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.45)(antd@5.12.2)(react-dom@18.2.0)(react@18.2.0) + react: + specifier: ^18.2.0 + version: registry.npmmirror.com/react@18.2.0 + react-slick: + specifier: ^0.29.0 + version: registry.npmmirror.com/react-slick@0.29.0(react-dom@18.2.0)(react@18.2.0) + devDependencies: + '@types/react': + specifier: ^18.2.45 + version: registry.npmmirror.com/@types/react@18.2.45 + eslint-config-gbeata-eslint: + specifier: workspace:^ + version: link:../config-eslint + prettier: + specifier: ^3.1.0 + version: registry.npmmirror.com/prettier@3.1.1 + typescript: + specifier: ^5.2.2 + version: registry.npmmirror.com/typescript@5.3.3 + packages: registry.npmmirror.com/@aashutoshrathi/word-wrap@1.2.6: @@ -4366,6 +4400,68 @@ packages: react: registry.npmmirror.com/react@18.2.0 react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + registry.npmmirror.com/@react-spring/animated@9.7.3(react@18.2.0): + resolution: {integrity: sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@react-spring/animated/-/animated-9.7.3.tgz} + id: registry.npmmirror.com/@react-spring/animated/9.7.3 + name: '@react-spring/animated' + version: 9.7.3 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@react-spring/shared': registry.npmmirror.com/@react-spring/shared@9.7.3(react@18.2.0) + '@react-spring/types': registry.npmmirror.com/@react-spring/types@9.7.3 + react: registry.npmmirror.com/react@18.2.0 + dev: false + + registry.npmmirror.com/@react-spring/core@9.7.3(react@18.2.0): + resolution: {integrity: sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@react-spring/core/-/core-9.7.3.tgz} + id: registry.npmmirror.com/@react-spring/core/9.7.3 + name: '@react-spring/core' + version: 9.7.3 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@react-spring/animated': registry.npmmirror.com/@react-spring/animated@9.7.3(react@18.2.0) + '@react-spring/shared': registry.npmmirror.com/@react-spring/shared@9.7.3(react@18.2.0) + '@react-spring/types': registry.npmmirror.com/@react-spring/types@9.7.3 + react: registry.npmmirror.com/react@18.2.0 + dev: false + + registry.npmmirror.com/@react-spring/shared@9.7.3(react@18.2.0): + resolution: {integrity: sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@react-spring/shared/-/shared-9.7.3.tgz} + id: registry.npmmirror.com/@react-spring/shared/9.7.3 + name: '@react-spring/shared' + version: 9.7.3 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@react-spring/types': registry.npmmirror.com/@react-spring/types@9.7.3 + react: registry.npmmirror.com/react@18.2.0 + dev: false + + registry.npmmirror.com/@react-spring/types@9.7.3: + resolution: {integrity: sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@react-spring/types/-/types-9.7.3.tgz} + name: '@react-spring/types' + version: 9.7.3 + dev: false + + registry.npmmirror.com/@react-spring/web@9.7.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@react-spring/web/-/web-9.7.3.tgz} + id: registry.npmmirror.com/@react-spring/web/9.7.3 + name: '@react-spring/web' + version: 9.7.3 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@react-spring/animated': registry.npmmirror.com/@react-spring/animated@9.7.3(react@18.2.0) + '@react-spring/core': registry.npmmirror.com/@react-spring/core@9.7.3(react@18.2.0) + '@react-spring/shared': registry.npmmirror.com/@react-spring/shared@9.7.3(react@18.2.0) + '@react-spring/types': registry.npmmirror.com/@react-spring/types@9.7.3 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + dev: false + registry.npmmirror.com/@reduxjs/toolkit@2.0.1(react-redux@8.1.3)(react@18.2.0): resolution: {integrity: sha512-fxIjrR9934cmS8YXIGd9e7s1XRsEU++aFc9DVNMFMRTM5Vtsg2DCRMj21eslGtDt43IUf9bJL3h5bwUlZleibA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@reduxjs/toolkit/-/toolkit-2.0.1.tgz} id: registry.npmmirror.com/@reduxjs/toolkit/2.0.1 @@ -10281,6 +10377,12 @@ packages: graceful-fs: registry.npmmirror.com/graceful-fs@4.2.11 tapable: registry.npmmirror.com/tapable@2.2.1 + registry.npmmirror.com/enquire.js@2.1.6: + resolution: {integrity: sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enquire.js/-/enquire.js-2.1.6.tgz} + name: enquire.js + version: 2.1.6 + dev: false + registry.npmmirror.com/enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enquirer/-/enquirer-2.4.1.tgz} name: enquirer @@ -19828,6 +19930,24 @@ packages: history: registry.npmmirror.com/history@5.3.0 react: registry.npmmirror.com/react@18.2.0 + registry.npmmirror.com/react-slick@0.29.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-TGdOKE+ZkJHHeC4aaoH85m8RnFyWqdqRfAGkhd6dirmATXMZWAxOpTLmw2Ll/jPTQ3eEG7ercFr/sbzdeYCJXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-slick/-/react-slick-0.29.0.tgz} + id: registry.npmmirror.com/react-slick/0.29.0 + name: react-slick + version: 0.29.0 + peerDependencies: + react: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0 + dependencies: + classnames: registry.npmmirror.com/classnames@2.3.2 + enquire.js: registry.npmmirror.com/enquire.js@2.1.6 + json2mq: registry.npmmirror.com/json2mq@0.2.0 + lodash.debounce: registry.npmmirror.com/lodash.debounce@4.0.8 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + resize-observer-polyfill: registry.npmmirror.com/resize-observer-polyfill@1.5.1 + dev: false + registry.npmmirror.com/react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.1): resolution: {integrity: sha512-fc7cBosfhnbh53Mbm6a45W+F735jwZ1UFIYSrIqcO/gRIFoDyZeMtgKlpV4DdyQfbCzdh5LoALLTDRxhMpTyXQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-sortablejs/-/react-sortablejs-6.1.4.tgz} id: registry.npmmirror.com/react-sortablejs/6.1.4 From 8f5d7c285608bdcadd1cc972a75abd19b5642410 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 19 Dec 2023 19:28:14 +0800 Subject: [PATCH 032/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?Slick=E7=BB=84=E4=BB=B6=EF=BC=8C=E9=A6=96=E9=A1=B5=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E8=BD=AE=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/index.html | 13 +- apps/admin/src/assets/images/cover_1.jpg | Bin 0 -> 83219 bytes apps/admin/src/assets/images/cover_2.jpg | Bin 0 -> 57203 bytes apps/admin/src/assets/images/cover_3.jpg | Bin 0 -> 87952 bytes apps/admin/src/assets/images/cover_4.jpg | Bin 0 -> 138000 bytes apps/admin/src/assets/images/cover_5.jpg | Bin 0 -> 158208 bytes apps/admin/src/views/home/index.style.ts | 49 +++++++ apps/admin/src/views/home/index.tsx | 132 +++++++++++++++++- .../ui/modules/AnimatePanel/Translatex.tsx | 44 ++++++ packages/ui/modules/AnimatePanel/index.tsx | 16 ++- packages/ui/modules/Slick/BaseSlick.tsx | 10 ++ packages/ui/modules/index.ts | 4 +- packages/ui/package.json | 1 + pnpm-lock.yaml | 11 ++ 14 files changed, 269 insertions(+), 11 deletions(-) create mode 100644 apps/admin/src/assets/images/cover_1.jpg create mode 100644 apps/admin/src/assets/images/cover_2.jpg create mode 100644 apps/admin/src/assets/images/cover_3.jpg create mode 100644 apps/admin/src/assets/images/cover_4.jpg create mode 100644 apps/admin/src/assets/images/cover_5.jpg create mode 100644 packages/ui/modules/AnimatePanel/Translatex.tsx create mode 100644 packages/ui/modules/Slick/BaseSlick.tsx diff --git a/apps/admin/index.html b/apps/admin/index.html index d33e7830..7466b91d 100644 --- a/apps/admin/index.html +++ b/apps/admin/index.html @@ -1,10 +1,21 @@ - + react-admin-design + +
diff --git a/apps/admin/src/assets/images/cover_1.jpg b/apps/admin/src/assets/images/cover_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..768b45cb5775962b144f468481149a303f6d9486 GIT binary patch literal 83219 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

    ^IXR%TQKnwy8#nIDXo?v5Pdp?WMX9EVQ0GA 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/cover_2.jpg b/apps/admin/src/assets/images/cover_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..37c637f72ca1022e7dba31d1ce2dee0a53e55363 GIT binary patch literal 57203 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 x$@A*u+1_w1iRz!FE@S? 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%0DRBH1GFY^m_D7o?0a9g|Lr;b$P(Cy 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/cover_3.jpg b/apps/admin/src/assets/images/cover_3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..93be1a40c9592049c1f4550e9c77e838a05d846a GIT binary patch literal 87952 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 z zDe7&qx7KPiSi+FZ>b5zxE$|37VuQ_EA=Au>@1Im2Hv|TlQSotr;yy6mGS)x1Ur!Fj%i$1_n zQ$ANLS1i{IaMk*HMTUg&d3;-ubgL`Fo-)yAJeI?xjj_Wvv+0+CNdL#%lTnjNL|H{FP} zMy-@4I3z}em_pcBywd{IedCGeRu+-+d-sQAhYoJDeOCAN${lZ>1ANdPzf=xhXJVQy_ zjyX**2C~%XsS~&CCY*MVXaZSo`wF2U0&iFOC_of;y*RYoQ&Lh=34*;z7UUTiIWTDK zC_tDwPLsL?nn<3RN)~#7! z(*T!1Vx;jY>5J@@G&s}5l=9=;pF`^N1V@a5Uka_#xme`X-xa9aB%*)5gLxi^q}8$l zQLst9-(M{p@E{sG;;cJ{--(hECYlh+x>`n3e3dPv&d8bb{6Ts2KVrats&vU;~8jVx3S@QDH} zV4{PI3y*myqosZ*R*|m9GTMh#ug=Ok(6}p|?LP!P{NI`$t_XmT1cn5XVAw~8(|N=& z3!2*B_qm7VgG?x^GVc&Rit-Q8PZ~|I3`VTRB&FC_jIArY5XBfod+@w+tqwsfDJ>}} zKcY?ZOW9A6twWJ+YLV||-CTWJ<1n5ks4+dcn+EVnk)%MR)+wvZpE(WcR<^_z=`7L@ zY^N4Ch8;a+o`C^3lO`KImR&wKCIFUNy3R~P&<1?0by~D)_?)a!G0Ri$RlsH5g?ed- z4Pmy3+V=RQ19+nw9aEHf;3U*|>gqAW5jqSB_z`&)s+nC_Qc_Bx6yYdvgADc(%uw}_ zSDko2d}Ez|(_QL{ec@5?F}oT}mYyrV<5oFbCa94njpmZ`(XYs8FvLErbCQYnxjso! zirZ`H`8f3KdwcA=eq+B31qk=rG=yGDAq3g<%QQW<7oUJ)o_}Htc`$_{frC_ieiZ*a z9nBcm55>+JNzO8T!ef@?xZ?89ilj8w^(Z)i9!eqQ;zqPvW20pzsE){+@j`L#guT_n z9W*&>UG~9a?nKMdjcE0evNLq>udx1 z0IX`GKmrlN6J@qgO*(bhfn!#JMBR8Is|zx=OQ8qDY5am4BWI`@`(47<%gxo;7SkI^ zU*5|{B7Z`*u9|^VMjaIHrGdi? z%x!NLxk?-RG1<_#p%HLR+C~F5F`%u`%{d&lx$b48t=}Ft-yXxBeb#Tgeg_wLqAgY+ zfl{5`HI;^SBF|f})s!6ETWDcWGdYl8j;VZ-BTygbv@CToY~lD=7>d<2aq))|SqDBE zdDm+j@Z+VFLi7u(B1aU#>M#WAzz4j`eZ`5rQcH8TW^31>XzY4_cOQ}WQ!Y`{3!3U> z%!B{@1kFkdKG%nBfl8iWC*v->E3jzSzr~#St{;+~U@B-p=P8Dn&u?zZL+O%Q^Y1y^ z2(E$vwsz7d0Fv=QX7wT?q5I1IK*_0s7LacL%F^Y|0s}p$K26IAm{@4wxHEjBGNTBWwCM5rK9>-^CS2gM?TjpVs zDDW-{ez=&ViiJQtl2k@sfaVUc$;BI>%5;)xX~lSIgBYPGa$>bI(IR+7ir8HzS!*0T z^`7?8FrU(|Wz5Q0LlrS8N}DjHgG}#?IZaRuSQ=kt@eII3;o4X7EMUe`w6RkLSJY-F{%u0EYMf?;8n7mOI> zxC9azT_^4gF)lxpr3%67rHx>)L?{wKXfs8;RkOggXxK+1p>QG#gHY)vkwA_zZj~Fo zBrtIEkFI#w5PeG=;tn3~EM#rZsY{W$#Z47UHem?S)0V{0JRZ{DG{NaX1$UuK-4q3C zWHM}_BPth%M?R+Tx+DFl^;--+!9a!-<(0gXX>$D{SmdnUR}7$YdtQlLZ0gZbDAFt2 z@+81h4+d1NEV18Wpex2D^0@i6w*aeB-@g!2ztFM7qYh))X^EN_s>+Y&|7>P^<`^sQ z?L-+PMf9q)YND-7oRK}uj81?in+v@e}yg1ZfD!~i-cmd9ck zOiCT6_tQvU;T!j6IN+s@B@!X)`wMcp{|RhQnG$xn(7LAP=Fo%<1nw5yQ)XKdXBmR# zP!lYdK%qTvYz-kk+8GHFg~n7Y*XsJuaBAf0Y3&HtD9UV*Qj8HIC<_Xr8uTRh%y&Z$ z`qI)f0<n_~fmiY1FTHZs6#j!%mzG=T5m@Ng6$keFb} zW-zzP*ip~x+jfz2$P6SUk1lpAk?_3$Mll0wO(~(gsSR+;np+$(ghI*Gk1UBC1Z$rh zKI{=v>t<5~{>F*oPePWac_G+_B)0J!qI!!_ymKP4iwfb$94m*jmDE6mjz0J70?FyN zfZHeqty%Rj_Xf-zI1;U6M@W&z7XcAg#x5QlJycIz3 zI66A2Rbhl7f#?}Hs|JOu9A1NrIN)QBn4KhY5enxtH=9sfV>;|avXDot^!@pY>N=9R z`yqDNi_O~?tG8!_AW|UC$kqlC8P~NTeioZ=6A`nZv=oHa{LaZ;<@SLt@MwsMMOoKP zu+g!eiE4QCaEy_&zP-Ml6GK7=092anLIflTUldJdgN+^gtv*WBJ~3e>XILAHelu2Q zcxq?FjJbMSF*>^92W0Ijd!k65Qd>Hf%bQ$_UM(0dP3{@Jw@`sn4Foayvp)9h)b$sX zk5fI$y~H9SpY(c#)A#;(wwS z4^k^FeR2xS{oQi^PnulTf6BE&fJbTKF~pbCBo0R$uT>AKP2ZH_mzoqlFJ^f&CA^{UIx}ny?$>Y$+ z7|%RtWsYoWAZi1Vi`Rj%Xa2uq9a|P_UvgCHuX-aH4jaCpAp_^Jc<`JPc+{sdj!Q8R zExiwUdA+Fyf{ScwH4%OdXKwH2CA^Al?=*9n$FdbCtX$lcL&6tD!?Ei%N3HJHGb!E@ zg+J*Y_;W2QLg(~>25%KhM-_>w zeL9K}gvL?aN-+eQ3uvQMCc$@bT8M_YpWhCBbCw*)w(!?S(@u${h+F3;kNY8aj*g!v zR}DRn;y!pPAiyFh*3w(Z-UH;hJXJi6+k*mKodO0u1cyEV&g!RA;7NIO9S8y4l3Nqp_vyM(H~m6XQs`}f zSH4X17ydsmrIizAf)xqF*b|QOgCEV@AxxHW{P+S1%=8+F$Sv3}i9i-9aK??pP;k3o zw+0*c2r%H@%aJhcNWkv=7vfE4rG^4QW=m7;)T7i;1Z8O=5e%D`M)-2fGQ8>a_pd|4 zh}xR9#vIUjCr3y-J?G5M_Z-6ee?U&RRg{6qnyAfQoow9z2@}@Z(4?DL3ca>WnB(t2 za)Bp$NURK67(>xg7p(86lkfWN%CSe!1p#iVxQL2JR3R(k*M~VpzV=#Y^7z+0YC$9D3cb=!c_!N2xEKA2gsjEU9I7uK525<&I4FTjoRl~!!c8b}gUee-jdfC?^MGiY| zn*}69cIT~7q@s5Kv^-Gv#9$mxygHfQb4+TEi>J;7YLZ9JNGH-pekM4b)bj((tO6C2 zgb@Dp16FN`5sJ%F%%nppV?>PDcXjfl|-;uU4I(dI9 z>N~N$WphLQ-5P?cHLBBZs`!)(f!_}1VU%(71uDMTpjXJ1-{gEfW>4{SoksQ=0D?#Vf(8H-?@gowXolo;V1a@3kb2`tJ3H9zIBrxFvW|@PD%QLE zBXB-r>00UPW}l)!uMPv_9s!DO_(EZafq6hmN+uA>O=mUi;7aGzSitg6zdlR?5>ggz zz98aSn##7rIvIC9ChUm&!%w~gteMm3L4+89trPrlc# z9Q-DOV{e$u9`p(YQ{C~mFDYe1z$+j(g%o|D1yCZp&itLAH)5a{ulsH7EHf~xQ3+=z zYAlsd1CR$pT}RV}1!h@rm(W2)UbYvP!eji7Q{OOTp5hu^(w6At_}l5jmtjWpN#Jn3H$d=O5fAlW}H{`S8!d*IP? z^$*%fMXYHcf<8StrKAX?H`R$Ys~pZj`O8pI5_H8u(c#~0PPaBcSxV4a)2G7wrDrsK zAvnKj#&ePB|Hh=mlx0<*7caEu8HvczN2JR;L65_r!_$#pxKbt-tSA`-4~R7YxBox| zba(%cWKSe2KnmUz1$B~bG#3{>5V$s5Z~2v5C7WHuBjZ zy+;@9aRd6hrR(grXXP(Qg-*X{a#~TnNHG(&OvlrcCL_7tpZzDwPd=**^&*se%u2IU zig>aQ{mx?~x0ym6LKZ46=@L$sQFV27QKE3+v06&rzb$v;4w4QE;&AFiA`jXuQE=7O zU3HD(Qn2rFKm}d^bSq8r_zC%L0fG2z( z1#7H~MAdQbdyhb9QO8CESSw7BpV&~DFyMrRXZRaz zE1Rh9iZ2$dJ^F#!0Q!JRKpHxqg&F;6 z`^)<9PpXENLA{h|i<HMVUUOpo{&7JVxGN(}?N z*Zyy?0efk=?t%JSADciPmjB;_?xySfYJc-%GQEcpm}uQ~{Qonky$%EhKt{FhL(kGn z-G8Hh*Y*6nE{|q75Xj%w!T{2;5njO~Bcr@QKtP0h1@~Y6Hs&iV3JwVjb!>7<$qz2U zb4WN;?3^0fDY&%auI`D2bq#&gTxw=+9!d3Ecr=sIsOfK~fLpykOov$6}%=@)Ed<_?4IidlY4D!V3qlNe?gf>=R)F2SFoME)D7%llgF|6r^?7i z;QKo>+p9Y(iyS|H+MU9oxA|4H&`{zOJ3ef>cmP0NB#3)&{Nmtj9#xvy zJeuI(lz66iSw>Zge^LAkx<^(0cIkFHqk@z^>ijxY9E#>5mXQaLW4z`rPfhHra^Rk> zAB0F%8R1FWYpB6`lGY_#XYSnkn;Q1pUAE(B^EJF!(WLIXW{d)5s7>Nk>g~`sF!=vR z*?WdH*);FN^b(4I0V2JV&{0b0gqk2F3B5y*4hjee2ukn0MtUIhUPVNt7eS;8C`cC& zm8t@kf4raP`L*MCKfE7v>}0Rq*}bkg=bYKuj?eUIv#cLj8hKW-&M!5tHs5~hzmtqF++Ad)xVzoug+ap{w4N5hV=I#|3m!WL;a8Vzs3^Q@PEeg z?;-x55&z#m{WBlef6piEe+&PAbop;7*Ok+Mlt9qv|5n0(hX2nj|4}qSW&f?4H-9I; z{NI!Rx7dFvI4tb(2|f0gs_T!stEu6NVqhXqKIzL^ zmY!zD`<#Ks4(tzh=<-baVq!0FE>(`;9yqB3y!4dynW1wx5s-9>0S00uajshiJK%^S zdBCjsj7WS96l7W;9mYS_6|6$(kCxzyibw_^cKAOtaJ$q@V)!l{pH=40MUj5fIK0S_ zTc7yMzRt4>s<4RS;DgFuA|k2KKr}u-@)iYUw4A6hKn>rq{einj_VaSRkKqTd#NR(~ zu^$DCa)V5tUiTl^uC&bw@>?;To0T7?^`w3C>N)sF-Q7g4RBYf>exUXrA_Qe-1J(41 zcP&_=a0C@(&)HHv;TYV@@TjFl+dt(G(eH>K?=Zhq(uNp1tgg#zht~c+rMr3W#SUZ= z(RYrunaInVCmQGX3Fm8Wjcm^H6^gOOHIM0%6)ZITa=3`Z(Py1j zP$9o)K%VNuE+B3_$I z_6#&z84~T%?}^t)(2n?Us3RAzMJ>MK@cAA8i#_x%n`kRB4nZ!=pi?GU33bU`ej`n0 zhXC?BpYhGOL!W9X%@)y;qzAh2tYq4VLVk%ynEbvB(5HOYr0mK%jM*6Fk4VCovPEUv zYXQMxE=Bas?7Sn#?vK)7^S+;0jXtNPA`Rfqa%buHsJ(|vk9rjtzd z*1}&BL0WUw1}ea^ zAAyHZZm^J3{c_`8C7yY__@w=HD{=$3j;mu_mrzm^cjK~yP zTNB=S@uy6{m43a5d64ZB#k2ea4LYQef-rwGqs8-N8dc8?YX6zIoE@TF$*y54i!;-2 zptsWXroaUS?FIYkbsTUf%qKHP=HWBZ`V(2xaf|c;(J7Z`$^Z(nQB8lqJun5Z2d^(Ch!iKpKHi z&iQr3sU2`*01iO{5I~*-UNhyBC$eG+Nghh2s{l&iCXed0)YqtQ?Jp`9j7Vys8E;@` z(YF*N=I6TymV zSN~fZvdO;+KQpyT-uzg-J~lYpq#`aA`F@Z_yeq0K*4LMK23@@9Z?%Zhu&pZCp~&xj@QU?yws3Moms2ZY+4 zcDXc$0LCx@s-YOql2G^RD=iapTKJU~%Y07hSrlOuZ%;=iSoaSf z@ubb|J|^r5WzCT)?2Cj~M4-^zbhe;zXfXX|YK#|sX?(YXjMY&tiX$d{a*zEY>1Q$^ zJHw=o>Si0gp4cTtwbC4OMCJ=-fC#lW`U_h_PwFvH3NUoVPwueC#(8A6#6NeJG+bc2 zzMEFf*>Gaz=7+`{3k$C1`M`M0Tn6Tm#hQyFvHR!5czT?7wF3^0)XT(8xUDMD{>pZ_ zVc;St(((fS@!Hf)6LM2FQScN%KPbDeLoiFHNXCcW<9V`)9fOK=wuyh$XU6BPGBXxc zrC*|JXxxK3Thes47J2odm2a_I^Ng(2+#QePEJ}==j<0i9O%e_)& z3Wozl@>roE{=Zw4^C=6sO}EeQ$F5PIsZt8|2iW=sXlc`iQhRs5x{i3zQ>UV9I0!1 z@zy+h;9SD&J`-TeDRrLa_FUk{uuzec<_#Rme=ZR9TXBmv?D{tl^m35<^c{tJCZ1qH zkn&ZiWTTSBSMuti`kFz zw4i#r!(RV6?{f8v)cxOu8xq1HW;_!;+qF~TwHYW5w(j0Nf`eAr#u&rDL4C_VIMCPV zE1ee8fcey&U+JtdJ{DJw@Aw|s%{a~FSy-~qRbS$2E_7T$NMoZ?apBSt3T5Y*r!}B} z;WLahh_i&&Vv1$XvIc4E8N60J!%WnN+>_QDrhf0R;>YKVU-U2uY~b94nvka7S^9`RJn&3MVj*>!Xr6AR&EJ6o?2(H8|cQX2@alOnmZ z`isxt;fh&N9M#P^sv_Mow>UL^)@eFSDI+r}hn6XCh$k!Dgc{N>6@hs08mM9lb02Ot z1j`zkQ04>Hq$9Vkvygtw9kz9V1yL`gdPe^E`OQ`~E!=y-M{ZbkOqw8c(H{?mxX+REtM9seavb`cZrJhOHP=A|}?wd>(K6 zL~ee|24BTQsX{4DHz||Hpi$tv#ZwKYVI=w)7?|kM18(MOE0CpdgSl@>A}p@$d8{u<`f^{ z(|sE>ch-BflpI!0I_nfBnsPIyVEvj0v6VaTo;bq1mBZV?9`qB3lteo+p3C*-j!(Vh zt=(mxuq@Va;OAVy1L5YfoyGTxU&WJrKL&xGcY#g*A9U+Rk?u(Ox4D6*O**uPAU^ z#8~@XQ{jx2uq{$Q3zj&)7l9s!au|dB<8fpl`m)_;l_Ya^em+t$GnWp!6d%oES;p7L zPm*iXpFHvJlBNOm=eL%$*xTA>$a+?kzYinXR&nw?(nGA9I}1IvA+T@_d&8?b zBYnXkU?H;Qn?{9MLi8!!@L38i&2VHeJ9isd13#2hsNE* zyAR!-&$tT}G`aKG?dN}Vr1$V&Izpv?1SD2Zm$RK8i!h6nmq2>Ej)T98JxyVIQoGb7 z+rKZ|?!-E+Q!bw9>>m6QLD8H*<7VaOJ!?2u7v;w}A2^Ubcz=(hGc@Z3WO{fZH`~Yl z134M~xYu^|uLT%+u>q?YbjUbqJ-f7t3=_FgiS=L?a@N*upKARR3e}{N zj8ozvAV|Er!ZK}zo89Z5S0(Ya%IU)Q-;-b@+5nh^0t9#NVogU$A~SK5J{aETcCRtP zd@-0*;dzU`_^$3f2MNXv&M2ijP3Pf0vj+nqm+b$42ibB$+Y*1-&~1i5Ip$ANLfbf!FFA;uYeNm$D#LQF~qFV`~&PP7?=q? zV^|KCXB604)c7tQHw3P5SBSjDh=TXplY)?_^H&AjI%STM8f<+H48TT@yV zllQL_;M_+|SKwkj!j0Rnc!wt%}mUW8p`^KSj z7dld$8t*>De~J{LcOnG}a3ljo$g-~jC#cG=yKKG7-22L?N$ehu2Tf|;5_>5qdzldZ z9(Dcz>>rh^;`~}gPzt;SfT$?N@9}~8GlF*Dmwmt`r%~smYA#EhT}#uG^@U*m^q_@b zk+MzLAMYIhx~Te((!ah@dwf{9KYS~*CRn7K06dfXZ-7`Tio{h*^pjGn{6;7wpe!ZY zNKTl}G1b#U>L=uh-D4tdqkuu2+sSMP4Od%8>g0x*|K+rde5M05TJa`wL;@;}x7RRH z5!nA8PtMBZYb4$_LmgK4!k<00jQaNdluPd!8l_R0-$)_B*@i8yF8e66tLvK;S=%K> z^~-M#rWg*GwmfLO9Uvk%7%2Et6{Nx}S=y*5tQ_74xlwF<*@*6~> z19IrYytn4tE%!q5Ri>%f*)YGQ;9@`p$&kKmE#-v7v*l|#;$>8r+9Q#tu9 zy;KLI?3@hLh}E_DVKwgIRw5DAuPQI*xx&->>+Dh(be-vk2X8^(*dv`gru3zqjZwI` zkM(iRCBTw&OZUgnJ0bB=;xZ=T$ee<{kSf%YQ?!QNjZ0BZ>Hc~T%2n2P&+X8`2&Ewa ziMB>8|5xrpKVbikEo;`*n3P%eWchi6pNa00gMM?4XLXzyyNlJ#-Cl%=FMlz?ubqEK zr!UpqSp>HN%2Fr{5|ZjqBBldTwiIl^d4iP;oR0Ik?_nPW2777WWwAWW0V8@|{R*7Y zbe$}s@5$(ubY$DsB7fh$Y(QF=*EjRtD-`B9KR|G)fWzpT638WxxPEF(OwA3m}5JywU6=W^Fd+akccJNw}}FQzK}qo6IN zCcsDy!*BZW+f~B*IbF4RNc*B{iYezfHavd zpudIN9>Q$%OsPZP9)<{SuMq*=anx7DbIRFi2N?PuohNLyj@N%K28?`X`zYKdeM8+! z0$UA{_SK=1ABk1gc{sw(rQuS`37Cgz)Dan1O0kcI0$N@ZwjKjF<@b-(yeCPN^3Ze=ib8NnEO{wZbSi-3qyO-oH z;mBA#_GE&fs{PV#gyONOf9?MB9KtmdMx6j8-U4$d z*Suff{g%uNx76#`%XGsRQb~s=Rh15lv}7|;--ti+7RuO1T?^Q&hL}1r_(wvF5TJNm ztsgYCn%Y*zjE`C5(#FtDmNaNyJ-zUnl$thnr}M!*E=)$hMESHCe~QnlLU4p(Ne0tO zVXYe#u#r&T**oUvfc^1xF4M=*i|y!o2x|h6;+bzU@+}l0Pz;~;RyXI#gftTFKaxEy zoOQSOff>R0r`z8fn+)B^_{`YfZHybzr5%TyMTZJI$4!Gj`KxGYniXbfro`Nm$^<+R zEyS8ec^g8%b6C@JF0o`5BqHN_1@>@0U0+1#E=&liJXLK zWNymJ$H5|;-+?=wGZ43RnZIbRq`u$mQV*!>j_=Lk8Kr2=qU(Lv`UcQ`qNlImI;8?W zDo+uKtE!YFDXFDHH;%nlYT?wOqd(i^QCvb!YIrNii=C%a@3b1phK&H{lDr)%5HdV_ ze_z(}Mu<`}Fq59lw<)PgdUvr^gQ0?BFT;+H-S#6JePy(*K(c$pVBj2_Y#pqsdE7ei z+fkC>kBNPpQVn&oic$eg4?ICfoE1n(@vJ-We!pQ}x;~(6<$Yn3`B9t`Fx^*> zj#+dD23q76U&H~62g$t>nnmyz!lUo2SFvOL#%}&DQpgB&M#iv;Z_MDL+V5Yn5)eK@prFp|P}-D_e=2DqIYWnB9@ zajg(-su%N3y|VM#RMNiM6cYK#BYY$S-f}uL+uan2A9jPZj>gYoX}C*3_(&dT{>1>q zHfY$iTNGxz8{@O})2sOp5%%_P0{gA+QEoeO*y8%qS;Oi1ww3#?bPuw1P^w>-nSn?^=9K zN@ck+W=&_grSDTOFPDbsF*1>M*K2rc9GsBN@}4tfpq}O~=1n2<-DBseYyy~jrkf|x zV>0vHc1x3keW!fyS=`->bm$`;5;NwP(%*--XPdd)Dy#rp)uwrB{_F4J=%a|;*>j>p z`CX`m-&#IF85O3`+A$8`;BVnLDfB%$zDv@C&z}-=d-!v7c6Z~xHJv2J(`e7J0@0X_ z>ahV4Jd~us2UyJsi?L)$noS($Spb}8`Vnxv%@BsUZ1f#7gElj3#sZa(lE^o4MX;ma z_0$Q4{A-Ics+j#XS@t0oo3*G!!{d?lg_(L2Upfz&$O(R_s^s5XHlXF7OTTm%i{<-?~?GI~~= zLrj3o3UpBpA_4$9idTiorztV9@2yCN7i?v!6SZln-M@={G}UpXmxMe8C z0b^q%cJqzdc4)1tFpq%MI*kep*A6Int$&qR5SS!*97G?DfbX?=~U=CiZPgy`^kC)=(Xcb;6xW_cJbB%yk@*S_WmR1(R(S}D( z7G+b%Z1^TT z4IzNxSuqO^!&yFoJ*)Z= zngo3L94V!I*HOjB@4moA{s?dd%9E5(EwDC!<{J+e=Fe4i+H#Kj*C*HZLm}auml|B6 ztD-gsRa08J!Z4ANn_kw9@@PP5R*niTgjLv@LTt11#E!h@Yrj()nwy*T9ekyjUL&&A zc5k-bk72kTLow;F+CT^0HjA4Ag7J}5(*y6&Hs0Ez8j+bg(Hh>t6jkp?PGU?l%Hr@m zJnKG_0lKA|4i#tmRfS;3C(8lNC->Sn^-PNPp^Si|+XGJuRPWtzy++nnmhNYw;QZ#f z$VaIK;YGw)zeb{HWDBQ{sAgshV`c2kq_NT|x&l=$9V(wi(%F4qp{Kgbth3K~cfMM4 z=Q~MZE={7A$(Ur>p@F1@XMW}v1b-+~-13f@$8F|&)>f<g1c&+}QAN_9#^<1Fepa zrH{BmJd16a$uz$0XXmAS>gy<#<9KOp?QfS_6mR2enImJ5DJF~2XywEU@8YyukI%AC zoA2YSuY!iyqKN0sQ6*#dxja>Qgo!BLq~vm+Qa>Kj4}S0{`0D4TNi(oH{61<{T8f3) zG^+!o8&A%Jf%F>rHFAPp6Om?O}h5q#0{WL|!#*}20S(WWChsadW&Fd-F~&q^At>!Yk7cH1`b3eib72m2J*Cbuo7AD9e{&vtQUqHL=!es zjBebmj^@2BBe2Tc=MosyGm$AF68|_mH750#S7DlC>M=9!oUjBe#5acBFh^v%DYwD* zv*M$~*4-zW47)*rdd@Wo0jt&?^m5f6Z`+oNU5VCrgcr=pM7e*fOF=nfZC6eW0SDok zXmvDmWi;&Q?wW5ji6Hk0;X-;N`R0wbXzc*TXj@DE87XlEN=e-6~nc&D;AQ(489tWUTjOw|!#bO3j(jpfC zvqhaSwKAof7^)MhgZ}SjId|BUGj={Fn+I$p;B8TcTl(}1U1e1SxA{O;8B;%HqY(($ z49bCek*yc>I>QAjv;`6!{Ff>hb4t_O^P{>3yl=}sYhOPgLUCiFk%F516x9Jz4Et7o z_Fzp9y@Fs~udd8@2?{__s4D3XS81M0PoaHYrQBJZnL*{x%vO!ss82kb*A{L(ts&UL zSCrc72nb^ePe4@R4a-Ci86-LZX7>-uZwY5jzdU92pe2utx#Q5; zA+RfF?@_q>dxrbKn$fGBGWGVtzEjUZ@eJ8IjLZQxJ*;J8$;MG017mRv z5N-GBO=WN?yzFGj1@aw4Ao@15xXG>d+jnLVmYaItc~>9xeDg^;OUYK|8T&|Q(7fHY zHQp^zOvoa5T@+~g6+w}+CL^6sYiEEtbvQ`AEQ>2W)Gim=&ObE+E9KBQ54W#FtmtOt zxuswLLoy64fbtzsuNir6`aEs$spfu_Dwv(Aidv6^$xxF`Ln9t0Vi=uxz1?JPGMfQk z9Vt!bLZ}-xREXF_e)lp{}{SBxvBhcB!{$qEUxwn_>-wK0CBPlD}w z-VNGa6yXoY(&PO&u4rwA5OX@KvM}WZ0zCR55^^$5O|n(9w)VRn%av(>u7@%9LYXsg zLtZ^J!VS`rcP;PB`A@Uj8IW{nT-0*vaJN-)W#%I^55;g!cy0Bhr0TIgUvj`$zqd0b z{CHWC!(H}~h2P6y?oEY3=ee1TB!XA09l(IDjqgFZw@X=e9kGc%zW0PKlSO3q$l~Yv zgfh}V$I*J^x3sgP25CHvp>9INDY>3N#FCsOm)sfk-NTO;WaFI??uSJ(zl# z-ZMQ?URykEeB+yxz<)m9jF-1RsMtToG6v0-`WK5kbTvoMR*B?$m(|@~rQldkY%B<$ zuFe0lqN?tuZ~ofR4xHUSnKe3Q=%<)h^)?&At6z7XTu_B~XHD;X{97yFezZ?=#Y}=O zudS6f5;pfGEyfGs8IWOFAaiu>tN3*j?C}NlZFj=WBI36eDS2(n>Bq#y#M~SNo%}kH zq^xsr{q3@Xx0>H!Fo>;2rdtTD2*&mqPUA{I@Xgx(XNH7j6i>x`w0$0Gfvu|EYhxMm zv7B*M4k&RnsY5)|=sPI&Hu`2wZ9%!QLrBlUZ&V0r!|W}_0r}7nL{jYNwt<SuKq((Q@DIf92Yf}j@#`D8j3X?l3A6uyD=CfztH1}eO zx6%^c{)n2p5E@&mZM?BI&Yv^G4anEeW0P-^wqo)b672>pkMpG)k=%RSNY zE=3usXVhmmbEZG^zG|mgoySGXD~TmkHq&t653;HwwRQ1WYSXhznjtS7SOMg|xR(9I z;2S5*d#KpYkb>*TZ|TvL{~DF7_nQj_KWP+DzElLt3ZLHOv08LWzV?wjZ+(8ZXKCi}>89RxuO2>`=M$NOu7YA2Ax`N*m5d|Ff4ZPDcX@~G) zY6M)M<2{m#U)rb0w*uQ|pX+5-n4lE;1V~DW7p3`1k11q{?YyGN^N~C8O>AY1g6=mE zF=(?OpWE+q?wbPiZX5pY$nv%2*JMq%Qgl#kzw$}?Zc`~>Yi?tQpw#E-c^?;DPj8_r zDtp?7_)IiPo9nG}UTzd{YBUd7;@ht$`&hL?Yb%q?6g+;VWu9R}50T0%fFP?YsMdJK zrXUp@GKAQcvSav4TDB*_vmptzO0CO5zT5IUv-e^t3~vYCH%|+A*TJO32!cUp9BfwSz;E(YDx3KjwdTwGA*!SxRAiM7Fqt07 z2$rYE#y{uS$oBDA%LMBjb5j^)^Pkh7yi;L+t~`9q!8CFAn$RuUsB4VjLlu4 za{6X1biGk1QnWK2(u|zX-*3Li(2)JGix4Q0dYa3yqPOS=2Nlba0vH=##s4szatY9B zlGhOmIWu=l7JXuX4$-1Sqm3$W?N1LgpEj#t*g6GV#U6~&O+EDipK^e3wz0q%gJt7A z@oMJVJ=dhwKQ5_DZ5I+Ua{$m;LRmH~jA$ii21>)%Ynl)aWSOTwyk>%Q@EdKFruk4v zo#3;nB6o7I3UEhQyuNW3FDHwCzf@aMxZPc}r-qF-e1#{ENl(X%-Jin|NJvV+uUNp$ zfN^#qYwHGXY@ni&B=(1Pf>)kk214PD$kcYR-$Pmxo##->anj5lEqOJO!}7JL$ej27 zQrqQUZYzVg^dQnfRNbZ3^LHE|^7;&pat+0m?mGoLG9eFOWEJW$q#DYjfT)**kN(5< zlj>KHk?uxnOO8&E67v&w0D{ta_GY+|D1Q+TAR@lrq*%)L!MzIR1xs}iqI|$Kmh~07 zZlIk~VNddk2-L-6aru)qhbC5jW(@m3W{Z<@f*e~JdBSuz%4W671{fh6Z`uN zB~)Incsi(muw}qqANP0J3??y=IrtfbLKIPaS1b1Ti8GOc`>>J-qr03mQ1e4ZWQ_I( z#~?6itcNGr;pSe+9n@1FpS$KjW}DKCTK2_UvB<8YW`zB_J?d{2YIAKC6@EYMg4kh4oSE% z5t%DGu*Uz_j6Ov_Dk$F*elHs7e%m-;I|nb2F-xo#3aN;}X^SAL`8C^*sd(1idnMVX z>6_%*i3nva>Jx4Z)Oqo2c$>r*(l>mT?TP&~EB&GjR~Ir~ z*s{jU=Pc{)Dzpm1+1pW;VlA(md9BcR?%X_}cSEWL@p0q?k8lF5Js@UNj6K&Npa-CC zjdl};q`n2jXuSuIiMUX;33VkvwnB@gaQ$t*z7qKA{>@L|;2cVJi`a(evQNJGyc`dB ziE@%AR)I(dle1M3(DpkCk!ECRsXLdrVv=oyj!QEkQu_Q#%Z_op=N7xN-JNMa)>jM( zv1Suxr*}zmsQg|R2cq8V(NhLZAI@v*OvIHA-p~9pp|l5uEX>iv4HQJa(Rj@zmPIxz zQ1e`$4UEf2U%MkXB%Y^3nOSYp_R2lD%62O;_Ji{9teuS#!V66=CzE|6)HP}!sB`FH;Yd-k%C2xXcv2M~@sPPc z6|g}I;D1;xbOapZm>ST~ChCT?$jBa^M#kdb8Y(qbQ2Q=4h$r$~w=OSF42-Z!JSJ^Xz@7{&3Dv)77*fR$_!t_)(G5bME)ECVvjvhN$xnEk1?YmoJK*3;&s}jnLF$c zaGLxpe6b`Pde7=uO(}t&>^rHDL?82P1nF7QN_){tr5Qe#i10Y3tB?T~=aD0xCAl|5 z`}o2ghK4b_Sjo!IA!V0RXIb&#Id(>6^*U4Tu>?XFFQjI6a`)|mqGvK-FVealWGPgWaEG_RGGlvnBIehyW^2=PNvYZVunM3!A%T_Og@Tw| zD^b0P?YJ9~dI|%T$p0mho&FNZb3$tIO+Cj4(Up5-*I#{TW`dK^5lYHNXA*8JFxHuE zb)yzGxVkm!fRjDkVo>}!{VrljV(~?~C=ur-Llw{(p+Vg*Xv*ISKoHJvGayHpo9?hu z>A_G6#D(b6b)6v}J#rBV6I&#dxDmJlBV%KXk8ne@$k)#KPQ}FcL}&WR8|`pJ7NI?O z$kF6491NG&P2cs1a?%Skp6|S)Y8P0|x=*zC-1xOwT=T$+uR#~UEE8So&nGER)vgPO zmNccQ!fAkOcOD)}+30>vML(7%hKV-X`%}I%es~gdb7zoPvvi?Sg)uWFIts_PBQQCfQ}c=^rf6z_8^Xd8oKMx-~h3_D7p0UBmGybcfm5UCh1XIi@5 ztIUmGUc**bPK+HS#^VLujPC+)n1k43Kx+f5vr!q{Hs`)VaP*{1Wlm-^%Y5acGy=k> zY~={w-7RhuAEgE6FOo(I)jwNw-R8FGnFG*h#>?;wa&azwf9qRkXcg(4@oTHJuiZK4 z9$fa)nt!4~`Rua*jFL0Ead0a&h8w$|HwByXvHHOszWT`Ecb0HXbAxkkcH`Mi;wi)VETBm5h!x3r2LHPQ6z4CQ? zfD5U{r|S;-9rN|0n27NC1L1UVLi?HuJuUME*HU+B13z}WW?_A0wr;CHcdg7tYox50MJ@-Hgs96A(|ojT==%sVN8 zF4()ianAO`PtnL~KMmh~-DcmMY*6nqyPByK#w%ghCmgRy4R{;NB*|FF3q* z`OwR4R)x71A!hE)_@edxBg}_@Y@y6IOj|Y%rW$TMMCuXM$v?){7fittWqXxmo+&{e z{(A-FoCrBjZ#ecrOz^?ak&?91QT})i`uTJ)m16!!;wtp!iY89zDXW!eV>IZEKRK90 zLx-fwFbjxcro?;IvoZF9dFB$}H8m9u)kN;$l_bD!JK0hqUrG)}b?FaJGXmEymKLRi z%Ih387|QVMo9&dqt;WyUP`2YZ@<%^jgyaQO{^rdr#<*&UF$Z{l(NKSVFouxUCkY%@%x0v7WcqTfOA6O(n1JhHKq==+mYLl`#jc!tb>7;8 z%nUB|`yVJvY|TZ20#zL+13^Cwhc>43Ur0{q+ikANkW{6@si&QX8SrFldRalHvNuw; z{u_xHVE?8r4%L)yvg5s#HfRDj0;ml{gQE1yjY-n!9H}jPGTW!aMGecF`vnGeIc^)! zOqgjT){x55eYb-aw8(7|Q8(+jAoq}tKgR&bSM#iTuvUun4z?=uJqGQDu8&{_5dn6f=N(fhQE?Ol=%BUkcRm1W#|bWK&gwqian zYsu}=AZrG^x^arcees2MMq6B4mQ04ZV9q&ym_=R$tYvHQ9+UX4|Mi3skHd)`^JyHm zEIO$D)8Sr@AYJ%kjJQ01{)16hfelPUIcJYJIw+wS{edyDiBQRc+mlA_zSS7@iK z*({*n^C4vQwL-pwA!O*>Hywe%VaT*Q#pd!V!23Zu91TY*#Yf14h`~=p4GCdSZ&=iFAYh+kCb~Y+oGn`-4yA)h zMA9)el+Lu&NyMHDIWZRnSza&7<8hxTpwtB@_y$UxHw(v`dnnYHHLJau3pQ5Svw`{$Rl{KT^v9Qa{lF0*Fxm%`G2 zh-9icYfwp(aHa06$KH=`-54QJKqTv$n7ZP%S<-41L=H_J>DiFk^r{E(=8hVb$i62U8E4!w>4u6Q;k{K63sa@N(;Odc)2j6XtzKvepsXEU4PFIM1CC%wO!HG%? z*(`4!7D9%|nLhg#hK~6a@MU>C)g)N!d{hLoL05hjqbuy}%FbT!b85wEwlU;z?m!6K zHR{5cY_B)-Ng%#Fi9K7(akSyd{N`h5UAQ)|u~#@-DHOYG|4Z?pAW+n)>&2Tg(dO!D zKvp`VQF^H7-$*zCuw!zwKWI+;-eS!*B>-;#>FVMc- z=u0VGM~8F9LE8nkEF#q+krBA8-6sisP&`4#?F{6o}5I6lQOW4yZ$GItK- zj1}FL761fiP^JYPGvwgAav;n*Wcf^rbo48SU2_db-jdNocF5WcO*zC_Nod?{|<#2_Q>6SW);}R_6UT(STT`9jFXJM>;-!!i_X(Mu9i&yW8)+H#%=W`hu zifmw8?JR!`eHz+LD7;W;%9nem&g%IsyFU6?i&XNl7*PwJ>!oi~pXx=qi*#qU84yhp zxS3qm(;I}~D0=>18oKD$r>>{;0_IdjYd9J3iQ|m$UA<%S5*-3J7+0SIwMfQk*0Xz~9N|33TMBGD2%1i9y7yxnwlf z1Hm2TK*7EN#jLnB>a-h2kq*fP-Ajk;;2co7?*#lkU-c*HF;t?Bz8}>&?jD3rMr13R zmp@o2@;a};P?-t~lJTv916d~KBsLMBVUlH zM%Ra-X1OMz!{s!_-ZE9+wEcX9=x{*UtnZ0zSrISpUC9!3>GMm~1mEm#A~ooyQ+S&T zYi%YwXOC5bt~UeksJb&gM{$EnLkGW3#@BabH_?)jon5XUSiz$n_#rEuaNhn#!KY7V zv)3)Au%rMg;|D3TF#ceUfR2#O`GWCoH+Q7}3Zj&G1ro9RUmn_b%MW;kU!#*IS?Y=u z1)jUrqO7@k>gtLlZqUK)8ea39z{qmI{FhBSayh}<#J8y^3;mbO3&~f!yK&1a$3N}(xaTI|L%uNi`PrWCtKb$uwWr@k^B@)|`d?rCiB?K$4oVSeoGB>XU_z$cdjrg-Ug;07sJdbUY1o|Ukr)Ac z(kP{EY;(4(5jx-oHVCM`2*ae;Jd0h@@sv4W!%|m!p}@p=b#+p$`0jKiOg!~@vH)8H z3!o`fA8Hj(*1Pr$fzcLit(i6@KC7{^&=}JRMFAiEzGnQd8{u3eAV_I?}I} zk5bC&w6_=S^k>+!zy4SftVo3IG!Z`q{ZM@sJniJ5n%@d>k%sVR37h75ZwQPAgzN0L;&MOFk zZKibIH?-p4UCFfyw4REkjD1*igm{yQG3oI8Q^9%aA&5O0DFejCwUOu7E}{vvDa7;5 zFWxs_l)W}&x0$ploNR;UWu)Y$zvAg%RCgCtXxkhlL(eYsOgexMG?Cs# zx}bnaQJRV%g7yB7-p})X-}|lqEEa3QJ~L;ZIWx1%%)VyDY}viydtmLdZB3*x0)+aR z^Iva3<+0vw+@33}-yQpHJV|``M$6*IvYG+fGB}SI$OA4@wl?`R%(0TCQq(}8Tyun8 zi@58{SL6;}LQQ9z*g$gU{VBGJh>`LBj8eQclQoWC-Rng1`R^thMouBKR}P6x&n@s( z`hMPx&$Wo@C%TM;sm5q3RH{~LwFSgk@*QT7d%b%$-}>esAKP#Wift96i8_A|F7^$; zdaHF)L0sAW`!qGBNMKK=_B~z7K)C_AhR1s!^>VSqtxWzRr7DNF>o>i6a#}32X;oh+ z<&T{sX9{zY6yaj2@prFLw0gZ1Y`JkQb1Jkx+6ho;r@Y#woVwR~-j|XS{vy&*PJTL@ z46~{j&Q|33mPrtoCGaW*f<(so$X&h##TQqrDVIPj_^qrgLD6TFm-=}Jz${vi)Z@>Q{B*%3fdn1Gc^>0#Q&HB4 z)ew8u6q2h5j}=5diZ0kXu%g#=Xd$OiDBC|}KUx|+rFicU(TTx=lvv~hDZHJ9n2O5T zAGrJW)i+9KZ!dRI+fUohM+L7_5o);zL7Z{U+h9*p&z~0vi!PcuvqyxqUoFIvJ-E~- zG+=tY<%0W{cYG)q!X>YRj(6gg=Ru!PJo(x2bNR2;)QoY-;7Upmm{-kY^8T3?N%)-F zJ1*;4wnmp4=kp*4TsqdnN`OY}@xr;Yr5Sa&zpE5fL>aBa;n*mN&R}awUki}MzdcaLa#*-x?qdI1wH)(!4%eCMt>-3~S znr$ABlh$@AD1vvNj0>mZ#^XBaZk33+z9Un*KE~H7uW>(3*u|T*lfNowHW7LKTclN@y8qOVMz;!Uf?3<6%@JG}Xdv zj7R2uqR;hF@fQwFUH*nLqSx0V+|S9@++3;{kTjPPjvX+F|7n=zgJ-)z?^h-1kX%wX zw(%zntbY6au40_urKLMHpKMA`ESb^lJ4vG)Lb!UPhkDQwVc~trABqy zRJBB!T$vf1L1jCuHu?Mh#d!SUR;MsLil+Q)s?%U z2$n1pN?W)L&ip~dLoSz+ziID(wllat$tEn={NCwoA&b0iD6`$Tz}R661E-fgfVvov zYfTNPwuq(Wn&nJ$CGa#C2P$K4(6=q|Ws_lvO?9O~sL@m7wHH!d2sOsL_T3nc0z7)< zwXXlD4|K29T~+BL>2iSCVGZ)!tB%A@dgB{H&9?!AqgQrz!wZ9Jv1Q2_pQ01h4eFK) zfh1adP|q`p_peT0q-1-SI7U6OOi7G&UONhk>WGXVH~c-ppKYMKc28qivO!+_`w*+U zfTzhEB;ZZQ<|7Lp^6Uj=4QiaRCT}lW+n!BP^qd=}q;*cc6Zg8!x3KH5nX_NNe1G;y z$66{+{>oW(TIUVnq4)3B@pt65Zqkr*7s7xce3ssA*rnFcbw$Yo-vhTpkZ|@%)p~qq z?=QV^eV(sjbQ!86Ej_U0e}484=+7~fzx&x$ZK_`$sCEs2fVg_QXa20N;pIO0b2hWD zL=+H_Q^HHGjQIdHZsm7>h~09r_19kn&^i5u2X0(3-bi(vDIsYxHue!nA=-n zH7M4y_=gC?B#CKU1)$5i(RKjSx%6 zAbJPj@MD;aW0M`!rKCP!f3xwI+SQJ_mnh8kq-k!2sqTtcxv=a{W>?|L`HOEfUwkDJ zpk_4=PR?@+i4yqC}mV4o3r$=FetGj>g!UW8FRd(uxX z8B02Rz=a1s}9vLOg7Y6zTUeu0+gV`18}x|o=GekQq00 zZbGDRC$n6siCDTuuPZ+Ntl)M0NU4YqKx}KW&J)t`y+lq{UbH44YV!YGTw@|WN=Tx)@vDK^!I>xa>|cuW?01VS5bXq8eE>Cu;*aM3gD;2 zDh0%iGY$Q&uaREohWD#G)4oXDvbAQ3EhP;~tcU9NjlQiyv+ZghzJs^g={5&cFR8R-%#6|53_sB@`UcFB#R*V#=hEQ$EFRL9b+Kd1PSD@1tZ_ z|Fa)@%OU#Dy5+uD9{-%NCTwSnA0ceoOqnJl5&J769KF$MBnM3OtR{4DWTwVSDUNZT z7x9D-5@t*Ql8-`p9L9S0=9||oGcz_URc+@4l0~o8h8vT5r*Ep8O5Q%PkU#W;)?o6B zMsko4(@z=8QmC5?;Zr{=V!dyH^6Im3v8IM^$p@)OVhVLG_1qm??pf!}c-HYgtrj1n zgAZr)xWzAq4d*Nx>h~U8|D}#>!=d;Fi+Ic^%8Kr0T~9k)wo&5P^`j<)5!h-$$#$rH)0%n z()U(R410Q%=HbgS1dn!I5yn@FEK_yKof~It7|Gws6=)Y|rxbwkYmPuJWv6)rGiH`M zzXKD{Tw`rAtd)<`w1P2d`=M6?Q%eH;yx6syHTvI14omr0F!? z7PfE_GmfG&xGE7rb`}o!rTpm)6ctiS9q;zJK zRf=FBhx9M&Ch5OX>jSm1KzyG?AUZy1b9t@UlnqLqX+5p379n$RjIfsGglDil@|mzl zyO=RY*eJgiUj>zYh!g(~lo?1;%;8W>DXO9`^UvyTeN${`jY)0Hauxi!yAxY|L35}K zLY2hQm(W^d=c8g8+6#RIBKq2r*OmE4dFWFW#h)R|tb8$8V3^npTK0jTrh)~lDSPeg zx7M>S#QfEd^i-u7K{R>NYq&@{mlEm)7l&Hk2ra@6J!nqN+0y!G?4x=_JD}ZF4a<5m zLg|?Lau5fbGTqnDA8BF8IvwNn5YD)nxh>Ck&mnW4|Ht6Ok7O$+{TZpkhf1=-j_de8 zFsVL1V!?eJ8J(;0iIY1EsGz#+3Kg=@DK{>v)ggkp@nPM3B~AQ_ z_;Od@SaZupOXem!S1T~+*sH4eTalAZC|wwZ_&veYaF|%F05jkM!5b`f)dPLM=#sGX z1y&o@&DMF{*EG8vM@J3Go z7+&X@`*!o$XGSpot+@@E@e6F{wYH@wd0BD^J;fpx?=neLP!!gxFc+d=Q4)rTFGL_L}PN zlAoyk-9I1zItmD(8r#BR82aI|0!v*~&pU!i)qaI*1ZtAG+LtL@Su{JLAFZf|+88F>Y^$_#@>L+DuVO}iU zp1LaVN>o+sJsbF(+NFTP#nGLc>%gRH@Z=xRP)6KF-}O5Fq!i>JA-s{~srE4$yLV6L zD=RQrfj4h#=NO0x6if{k)U0}1pao%nS+h(TtYp#caa#R=i$QgOd3aBA4Tupl zcoimVkKpo1Evv?9p$c^HL%hEd#=^4U5&VR76Zi4M&SgWl@t2oa#h(Lux9TS%_`oq~`(O4*Q!L z!O*GqiF-;uPtG*Zh%Bsq{h{@A*RZab!ZS3VT)?aLccSE)b8W%x5s54Uswg-X-EiA) zBjuA6|HRXPv}BKp0-RO;R$G<1y-hk6$ zAfh8#n{rQ@?#32SU)y75n~l+%t*b5D!DabT)LgM;fP=lWr|JXaRj~y~_4F8ceWGnu z#^Ltq#QW~%S~XqxSMvrw zCAh3yJ#A*JgxTwZ1rM>YLOLc-k;W2=ngL{FisFi5waIZttC}7l1VrDKSz7*FJ?Bhx z>IrreO>wSO)1t`$~;o0W64)?HkN#D|~FNV(XKkA0(^H__f$hHoGEQgGu4| zw3RRO<*dS2?eAuTbtxu-IldSxqkE_Fw~nFi>HOOc)hcC-(CXKEBGWb$oI*PKBcDi% z+wsiL!teHX6`th3&TbK);l|t8*ruf}Rm|lk=C(E*+!aIiQ<|b%Uc2vaM(B>g;fT*gD8@J7r>MN5^j4X zCkyY-wxbTB8*0emKImoGs*_omZ#OktSX3xk#~FK(xbf#ffyIFW zvnQ#Tme>Muu28Jka`g!~F#WgOsK*4--&s2&0nhl&ckJljJ!IAO8r5_FiqHx!XO8Nv zGw?6h1g#3Y!5T7i^Eg4y7~;HO{%v7&w6LXm47c*w+Au8}25) zU8+eemw#%!*Q&Ba@Vmj*@I5VcMu0-yyZXqDNQ49-87n-fv@OgRV_(l&74V#^kS|(B zoL#NhygbW7I^v#Vev`U-<@k5=!S19jfAy!!%iAR+Tsv_r6Z6HRi&(&wpVB*~mnxvHH&kchkJJPg2*3EhtT z1jzH?^iQtc|HOblqa#kF`I7WKb^6?hWaRt@SsfYAmYZP4=CdcCVzl`k9OJyZQFc26 zOi_nCJR)v(G4Ke6-}a`m9yRY6bPHZFW|%aR`}m{Hku-W85^l;V^hvc`JzqGhIUnLf zocC;l_n2zG;BP1`m#lc~$%R4~q=+C~x+QuMhSe%;Pf~l~4aN5@eFO4l&0o@NXbwH@ z2{;6C774=?9-of$0E-a0tC$b)W=)caRME-+(;6P`N+=QN}ELOz;QeBNmDRywA{GcR_QslBAdeo=U1|J_R36K_r{E_UM0Cuy+{@y{_!aDeh){HU$|wQ2F+wff@r)mq#mMledt*b zkRfjl1I^KZuUgPloTsxvbgVIol)DnsVQIG&LLeHwwEEpxD9^~Prtrb<8n0?s*ZF>3 z+nUN?6z+JUkZ##!r0y2o+KIot#;L?0*=i5ioRfr8CluZX8e7P6S zLgC4>8y5~~Fxv8WcG98Q+dbJg@o@g)7ZXG#BFtK!vKR}oNMNo5Adme?x&Ad3c=<8f z|IC6T${az1Y~~&lB;u{pk{CKMrBKS+<5JBf8-06UbBSh1g|s!(#z64B@X_mq5)V6S zLp3^A-I-TSJA+iIm1lXC@{)(^me+!pZA}z%$mWV&X1wMr*?OA$RiKZ=s-&Hp)YZsw zDs&0}_`HY_&yB9w!d@eWIL|SZa1A{FdxtoySMNU{N5}9t3}$Di7;yHD+2;)+8xu$S zIwK>^ah<4+96{j`0x@#gV_Cbh*seD3p`#gD#J!h;r;;P>FF(oM69}QCU1S@AGCpC1 zz9O<(sX$~(@DKfzI!Rhp$WpB3M*M(Q^Dih=!^rbIPz@d2J}a zO4O-NPlo@U5&NjX)L=!*Aa}ve<{?WC^X!&5$=B$y*9?C!rGSi=_n+5)@4Qz~xno9b zsNdh3IN>X9y!P~mt!zXY_pJY zFe42DrUS%==*fw`grq8O-Wae2$M`QMCuGl z*zo54k$i3{^^sFh4n0o+F{IGbmf_=}5xCXP#gw1J=q)6~vB1RRtol~tyQ)EZwAo#0 znPx#Xq8WS@mb^zuNuuP@*7N+u3eoIDU>sf?s^s2M!aTnJcX zioWY*{tu`%Mx6bcI(VZg4l;J5mWZ3$s)`2w`0=uLbmsG9G!JDtdvaGhOjloDqy#+%k>U$eG!%^01pVD5#p}}BJWmTu^A9W_M8c_{9*gtqlgoYx8G zqi}hK+9P?04+c#?Q^^B(Wwii3Es!?6=YR-Qrvb_W_UE(~3feQuQuJviSW8yRJp$$M zd5^DuE7A)eSZ{w!32Z3`;R{X**NZy^PXg?N^`yN?z%?zJb`Oi+mad(M<_$b17(6G= z{iG&i&elQ?F27Qdk`TVJHolb;_FY>n;}w7%^e-@=RbX5oV4mAs(e|}vw?G>PM2ht- z4Y*2F4w6{QK=g_p{tJF<4k{&wXZZRuLm_2m(nM#yCg^)xTw$xptei8>4QAC@=3a%d zvd&B!Idt4QlK0Jcskr;<=L~B&W>1SMH2+|oZ;P93B#!KOqnc8|_=VipJt7zpBU3Wv zkWH|e5lkd0f<7nv<#VHV5nz$!x^bGl1|U>;Uq_D+DQhl%u;mOT)ywy*#a(i4ZL@{M z1841T$i6#&s1R?AsgkSh)0-IPA+wsLzfQ<7IMqG3e$PTgfnd}_442c0)TMKNjbzTT zv9e33fh(L)8i2#F}0^}cp|t)DvD}UFKH|Ii4*hwBAH5=&c91mIdGCO#C<>c%HT?{RStP^ zS?q08d`@P{$9S{X5c?_-4S~*4-E}a0p*X~UDxH~Z@vu|!`!+VAlkLQ4@SxXbiWw>< z9{0lUJ1=)(@c26$vA)CUbWzJXjV1iVVP7dBQOonDHl~_PmxY?#IHP5-N@hV!vWWA( zLyzd`O}9rcQbE@&%jtn|{P=VMzg=vXf3s#dAJ3_m(KL_&`WLX7v7_d9Ca^IM8++EW z#C|LO0m_Z6mui}V7~Bi7XFXy>#HxC*zBj>CJtcZ-Opm8TqYyfy+I|`L8)fRqCn_>m z*YT2=FdgYAFVrV>$9_peUEMnN<t+>7NFj%m9?dkA50rt zm#+3`Q#if0Cp{-7rjX`Mq>Q7b(X9LoBjP+i0D8PToO7eL@g+K3JH?_$$)GJ}bVx?A zYgxkoCb{ni)jzQAt3Q$4pBR9G0---LCbjxJUZxwDmg%K!_gS}K>}0X0<0vM!!EkqP z-j?gVGMy9U%Tt&^7t50Cc_s(3=%}OUcMOWMm~TD9c0Gqr_|@LMK@DY1hhgJ?p{VKc zE+!9b@c~ElwPH%|G5o_Tzv?C2dJ`Z`YWFm#b5{A-#v$k7wLjjPUE!&G*D(9GF2<*f zIIYwMu^+>DJCJM+2(h_r1P)p5+J#F_D!@D`3&VOE1K4qXpK>#h&)SCs3asm;^+@&Q zm1Ws6o=Vp?NDA?Dh?84`3GZIp2vx&JN>{!;zwcf$^kbj zk0H8)N#Ycw%%{t?9^*TlaW0hBLoRky327*v9A1jm76{fk#u6yMKyHZg zh2zS2Kz4X9-LmbIx2VT*a0dqcBVzA8!=B{!`QgfA?@GBJV@IO=jjpBYIg6z4{ccYZ z%nnPPU{Yd90_=6YJ7&r2S^IoX&hFp7eS}Rm=~-Qm9>}1-)%Z~LU4iNCt>xJ`@2i1OQ;!-__&t7;{o=S@Y2`}-+}mC*zxq0kr` zCw`BS{+**6?E}_T%hjjsWo7TLAt{Lr3H4TKOTSOkU8qD#_ZYd4{4NmgA`cAV95u9O z%zkXz0~p?QWaavJwrkjC)8LpM(liZPjEdkfGh(JC;ZGY*l`xq=ntUThm75mD1$!E; z0_T4I4j~yAN&kQ>Sa)n+>P)_>6O{%(-sRY4I_xPOfaYkt7 zO}xiUmWM&H>D=D6726sI=xdC<%@W=4%)<#*2*X*RY~PUE5Y3A98~p?)xzYk>w2_MX z8TT(bYMon(^5X6y{MkmIvK}hTLVq>8>03!@HS1q*_~JuSN)5}#9d^C7H9eT{BqCkL z)!)$d9~N#%=C|YN#^j%#>fE;o0TPFjjb=+&e;ur+53(>7k;t} z)wts7zF3=Iky<$TVzQK*(SUzSKKO_<<+|AMc@>6j6BoG5VkSja>lA1xbdery9P`*# zXSZfjQXv=xPWe{FB2@V)9l`)4U8>-jMqUkK z?53zMx9EI+TFu3uNcv8RBj23Y;{J2G`a+>LsRf7c12MM+xFw*_Rm2zeQSBAf)w%qG z={q9EYzRa~ym!!yO5vmqbo)Yd*5j@ewnNh`HZu)Oh7q8fqBa>PZ)n@+I}lulex{b+l$KO>mEtHrV1i6n9#C}$s}y#_ zz7)?G^Tf9d?JMTg#ZVf@YLw@42L+@_8WL0Eu-D(^=_a*?KR@sc^gM(kE@N) zCIA7jzQg1Ve@#!*R=AL)9e7bjc&NpgWfzYSdG@_JT<_N&Qb(+L(NHj{T z&6%XQg2qDDOg2zMM0Zc&ebd{S(LsyS_=Yv|_cmYHbj>a2Lhu1mj`zcs>NJ-h9;)WY z5u{M;%!Ad(^3Dq(FGqjvKVXYqw`)XFB-hdK@icGRG2NNqw`V3r7q%*sAQ^Qr)hxLW zq5|9&tk9(63hvq3y3!;~+#T=VJSqU9?wC0KG|)Z?EgTAjyx9?T;&nAkhaD3>9G=*| zod^Hc)A(C?<#|~wP{ynG*E^Bt;x}ux4MM8PF4?~>J=}CE&tt5u-LbbRC)FjPmC+hL zIP}veTgV?%XJ9bA^;B}2%KCcj&~<7$n-goh7mYIEAJzH%mImBgva&UKdR5SC7YLp{ zcHQ^QNUEX&|CfxY4z`@W!Eh%`67gwXms&N39Z~M5r}dV2xkIC}=SYa3%5A;lERTL$ zzw~i4>sun)%>mv7%HShX0nw~!-uhqjJ@8hI6+CU1PS1us&35x9%2u2!csl$`0DC<> z;@7P}AgAp^av{F%FhjHb`z=-Dr6CtrI)_`$nWLO|%#J>}-I!Qw80DP_A2xOR4^QP~ zw|q>|0zSeYiK_*bggUD~BsEY?Rp^}4JvXvTscV)u87!?wZz)tz2LLI9;s+8|G;`4S z>srit+=YBAD#?mu%C5UX-^3(5G^suJ6AWe^ZZl6O&y1ume zeNyb@+oFQRFYB(&S$js%&EDCSHBNw#l_YN3ZC4~Oc^IA%#jB5?wX@&YUP2Iv58~&| zO3M$$eCl?lE#AQ*^x~cNUgbVOs8hpaacQ7e%NZ^+uhRF$9zXoi-$v`_Y*^dmbI+F{qqO-99_(M((%p;vR-dvVGic ztj?w2^9Y~za9e{%#lgqWszQ=!%N~j!Zz=GmgZ=SoNZz~+Nci%MN^fc>+GUQ={7=ITf{&+R_n`)C5Sv0hA`DQZj`VtLH} zrrqU5_5-9Pa1s{~f1S$DFGI;C_nftE5DHx!l1#^3v+-NCPzmC==14H5Tk-4}kx#g| z&o0bxR!}n!on-3kV^;Xf(%%$U=P9igDDGk_cCD6XIK^TvYVC6E-}Q6!Q!8#@f;nRf zra6%|E&cuv$Ra&=T+NQ9x*d?shCznnnSUb!qp_c(Wi?en#k0cTD{r3iZ-^+~?m zt{$pFKJfXVG>H_KvhqMDq3yf@&ybtT+SUQ#zpZ!dY1HSZ^ykg=-==w7J$BCqDd$O&NJuKHh3u zsQZi8b5dM};?1|A!Uz5u%bqi%(ASPgV1MSS6xAvHCi-{Yz9JY^XGIOZZS;wS`To7D zw)=qAHSku;Rk2kTkIxz)~~|ddG+whe#0p% zC;JaO(GjWAJuy1RwdPqiKLWF*k-nJS%uJVF{^2BC9zPx8AC|YzyThYUVp=AmgAPY* z@rVh(LC+VM%=yN7y}B06ME~KG)o}OIk^HD5^2umnPtG1jwMy|v*h}pX&;DJhXbfEX z%zrm~wiyzHI9MffAiF$x1@n&|c^i}yFT*$n0c9fOIZvqc{6yuTVmTSm#J+OFUdpy) ze+aItl*2#+20x<^AlLsmPK@J!=P$l(>0eo*p4%tVLn$J?9c33&la1c5$-N8f?=!q6 zpz)FJB=vi;ggZz4_xRR(qu2Ctj8e9Ncp@UtKgkI`7Mo$|cgIx^SiJfWZyupU%#Cr` zRnXi@4}1FSyt7(xBQa-3w9oO>4f+E{R(>BkG`owPU12#|$Smv5F03{?M1bg)C6GvN zH?cOAGwU`}KqI$|+v5*aP5yY2D&HDH5(K=$d} zBjw#qXNzmn6x9c=y;P=izpD@m)DP}0U;G+$@tgEQv+j89(@(08DaL!wMn8IflrMkP ztoS(nF~xjMHlg=MkLVqzS1QN-`yKc4-0nX9QNHq3v+7UtowchE{xtjkr}=4?+Yg|5 z^{aBt$NG;cj;miE^fdQ~W;njGJ?!7_R8DihOZZX#>Z{D(X3y2mM}L~1IlPJjnxCLD z;~cFjg?P4`LN%Wp-!j|a_?Y6knqSi+zj5_ttG7|`ogi!5(GKP1d-L9RuP$AfEB#K@{rLB`*Iz~JKBk9ib{tz9ZQTBt;z6PF=NGXHLqEzFZ*)F64nK%rC`F}H*wrc4>+>$-RTR$iWUdKzWaC6BYni6$7({d^ z^1{Hs-zMcdtuzt6o`ruZ4M;k;B?qjpu*WY1%i1OpDM$+R8Y>~oXc;al&?s`L;zx{V z1~u)sdwrIY5pgzZkR&nv2UKx`$%*NKWs18~?V4Z+>(m3dV{_f4Fg zgqIeuc>Ak^ES6W}&!bZN_aEiczG}M~Gf2jXo=KqWOUdn%| z|5w-k&x`%P)c>pJ|A+doT>t0UfLQ)m($jw>2XyWKm-!!RK(POpSpM4Kf1mw-GY5?P z?tebZCx^cu`w#O!)PLU__-a7&U+Vv9{@*gcyPE(1*Zk%y=ijbHuZGn8@d5vU>|d1} zz7MkgJ^a_eeecpPU7#;CpB^ikZJ2Ldy=WEvYuFV-y{uXz?E?%m^!kKf{`1^Gg<>8$ z5HWC(5D^i9{=JBZL3AWgFpQL59AV7xx7;u>P_`KKwYT?%)5Z^*AIz>^-I70k+`XG{ zAus77ulx^a@fVrNgJ01v|NO+;ZB=`5WFCL~loinA#gUb@@u<+8w`&4OsA-~pFFe!T z7s}5Xa2#3+BK+qfCOkzn-??M;@1J>>WRrrE*A0GLy}lOU?4q2a;xJ}2{U9{d(xQ@trH2MxDVZ-Mc-SyF@4g0Mjp?8lB z^&gyYQj_XUja(*~kLGad%WK%}OE8`S3Br zYFqaYP98PNlB*Ht&y!kP`o&ymDbK{qpezk+#0lf4@y+U6(yEzJL)J1s7@|g#9?u?+ zck@4rnLj|G2zjtOb3jQsstYXjWyAFf%TH( z@dLCe;i(=r-v6|Y1g@~F8z<0{H8qmfAv{Ck=*vAtACH4ZYEMMHJ%?tGK5d%h&kylQ za892%uz>@@N`wQgA>lb(`r&kQw6f}u37iO)BsNiko&9nXGeQPYL~$=W7_9SWTNd=@ zoDu2}A@=l`n}azNFOudLm-X7>U(o9`*QZJtI9Lt zzm0{HEd(z64kdS{(?0jmCGDrK4w?qFk@U1{jcwk{#-(8)SlUW4pdaL?ESnAao(Zk< zKZjA%S50qHsZdOgOct>+knCbOW^{(t_#C_lf`VFG0iKSxz?>tTSL}Z#9L^XXmCfVO zC_)_?PUt1Ft){u0Rg=|-v_#M6QC#nC<$>-Sis>g0vpYuJ;A6-#CL)4{@RE>anEcG& z$Tk}J2#BG+%3QA&_PRFaX#BKAB~re1Pn&@u@7nALP7gmTJMkoKzRw)aYWhx=bM-pZ zr~V7~*emfzv7Z3R{~<1ABCEx=()h`<1jN6{kX1@V$Q8i@BpmGiyk(Dw*2qs4EuioV zUpI-mYs+t`{fFES(f?k01VSSOmOJ$p!tW=qq|}${Q}9_qeCW&c^PzN#WaDjlD9+1! z=PZuErlXh%!$M^4H2m6Rh>oZ;t@@Wi5F5`R#N{dgJhH|hrnI_FF+TZFKFoha&`RZc zytA=?=grT>jcF{Ep}Y{-GFQbJckiQz=2m(CdAyAV{X-j561lZ7`M`?Q%hR&NF(-~b zixOx<+PGKkAUnH%puHb;qX^W^ClO1FixzmX^5kDqQ$oGAx*A0K0Mo{B(zX+--*x5~ z+;Af+oW+}EnCZm1z*yfq>E|609(Fp&Clk9h@ICS)y8hrl^7_L7&~VcX0GP=Sr4jFU z>Mtd2|A-4Ee7_=tCxL-Kj8gTAn6qDM0@X>|kSuS>5DP?+?;Fk8A6Wxe9zeg8mI%YL z48*cI`p8D=55rxxFf6m0yIW@WPu)0JQSZhjByVQy*5#EkrqNbHD>uc}>jJ#o9)$iJukvy#5fyrp39c$>&7( z(}cYxmsBrT6X1f5SO$Lilr1B{P$VRXPiIx~^J!L=l*3f2crUH(RhHYIQnI+=8h-0y zrm|ysxfjkB3M_WNVQB;c6&n5TYY+(Ka6;l*LNFML&~Ub|!W)r@UzZX@Pk_y`l%6mr z6|QRfaJjIW7z(Lx%R6v&;UgiY3Uqgdp)nx9?KO1(MKz6?&^Fh!%b1oBsF@_P+^xwt zfnEK}00$>E7q7?$rO5W+q!y={&MI~?TUoOuM*EEcc&J7+wVE&j^oV~q{q3Y^s3wY#;M#>H&eS%I)AQTi*-PzS%re-tAJ1BPtINo1CKIg1dTOTA9b36|omr>%@C+Lz@4(ZpI2hzYeIIHCUK%aue} z@_al?P%wH`6Ki%|Lh$B}i|H`jMH{{16{VgQ2a}<@T(h|?GIseWZUPrHoEZuulvGB8 z)L=2@2oS(Vmu^@Kt3!8X@*&J5Y4+kPe10yOC8VwjcW(wEEf6@dn+`2aQer!OY$9d!^=~V2t<>wu{;PHvHEDZ*d&uwE~f77JGz}F=c&Bd?k@RNiA*ir zj;r4wZzuETzAQ+BhF!4oZ0;L1m5X!w82YCO!W>Bl8g0T<(MByk41py#E~A0IVp%72 z)R0Ocw~Y+D8Q=QO#d^kr5}hPj;C{t=KY21%zv-Q>OJghzTD*BxfCvQw)R=%q zl?y;M)v3jY0M&w5dBk987Hewb9iwEC98R|r_YcOSY-vMCg^^GWR*M!jTIRO_j4g_M zv>K{(rC4ncC5`Stx!AEYczq;nviF$W}cMNtDRElZAFp%l9wmSI*QQ$Y&>kglaA@+61wl$2dj|E2--0hWd#)KU@%8-V>nvD8fiXk(&#_taw1 zXblCoSuv;J>#R21?7U+I;-_8p3~GXi8EC`6>Z7!RSTacP{jK>8Jt&KeZAmqUvwgyD zlo|+3sJIpkk12aaNc{7{!PbBoVZYx$KPN1ki8-xusmd}KHZ*6zp(IzX4N_+A>$6%q z%v^69drul0PwdJ7i_>;QISc}>@Y>QCh8s^wnCAjKLNI|Z2#M3fL6J-vdZo&qOO(Wb z^Vf3@$`f}Q)9@RNtJbjC4p$MAlx<^>8ym8>3kxq~(U35tjyXmWfZ=Kt%ValYuKgKO z3cM=d_N|C%I|#gGIH;xxlWiG-a1PA*JO~664%|7Ptty z4)^)nh#iucb!6(P22>4VMwSG1$4yj5NiY&w{V_(Mi;eRD3JGvxm{2Nw#p>_Kg0^JV zV%>gRU7(jYkzUf29QlkhgtwS<-j%b~@G1r@9xpQRy%vTw!4k{%n6W^SWL)F#cn|AQ z&OuE(tvEUj6EGdxw!f4J0XSHXI5&$b!r)y~=1EY2%&!O%Wnsak;YMd_QpA$0y={!MS3%2nfuxdbo zaSI`Xpg;rDzA}!O!I+o0;9O)Xi!`jcIe)D5KHE5pImo;@!-0*HE_G)gHkT?w&CaII z6+k3&Mg0q%v)bJZ%@#GLqenBwaqYb1*t)%TqHG%_<0b?Y&n(;Hvnk@@rF&P z6AK?*L3U(-4QLV_kdm{A`JcMvd(COU(EsPkTd6|3X3!>{5Cz!-#O08)D*G65JY(`! z9mA-eoqbvZZ@X-3X-ZiuwGQ8`){JV5=G@QV^^b{pf1Z4YEzeBEZEjeJ*l|NzVh=hz zBhFaCk2X1ECLUIDOQS6$O60;qT87CIZu=qDCikO`7|g$2nXN+W{dx8!)KQ(fT#m(` zrajEr&}`3-`2K_(KKXk&9M7DdRko-P$@~HZQHR0y1%!o&rVM9P{Ta}A;(s#%T4URR z?jZm^{W+JkxIT-9NoN{F;j9l&TzWfY`y}str<6u6Y)%`uRxF?s0V&O6)!BzpHPq1F z+_(Rcm>HrxZoT#sjsDzJu(mTqe0ePQz=Z_~Rt)?GtSPq&UohG#D_06bQB(?{R5(`!kjVR5WYbLw%|$Yk-8QrMVH11 zGQS^_j5Lt5Fjl91JS!%1fVd?nyvhb8o3I!9WKCye>WlaXBw6twgVAv~fh|VbK0!aS zSx9<3&4j+|vYkLA=U*-?o=uI? zZqnviri7+;>u$JpRdVSSIjbC}^oJVcr)WrTLFdnV+ zLX6hC0G9ijD5)fD47xmQH4ib5+d-SGs%;JtJ+m+Rm9%{PTly#8myA633T;w9dvr1= zo-^mg-fkG7o=(F497Q?&l9H%`rFEp7w!)IrF0O1YPGjRY`hyMaSi(NHhnqc%KPhOG z&CUL0=3Z}hEaD}3DuR;FP({E757f3kl*t<~A?h;xvONFKlxbyIcj=efla_ZP*t8)q4bjAlRch!-_EiKM1Z zCldkh`q@vNEOjJVK^l0GF?;4R+>q~i^NIF)5S{t5adI_Wf%W!BL-R^Br4UIP#qu_a zq%MYrHfC=EMxw4C9WhA$`DhD_HfC5#mY85ubUEe75kZ0E)`P&uaNZc%QMNp88xqq9nV3LSmY9M%(d8Y(D4Y$SQZHfaXuV@`n)*F#VVkq=)Mtz8$6Q9wDR(B z(BYmljxAo0AhpG!3u_Xi-u%KK*~g77Vw#-LpJ2EK8_A_(&wXMC4U9^SB|fN3sabZU z%7Xj~DBrmtjqwHsMmuB2#^zvjl38a8Q*DVPOF%Ku^J?cwb+OYYp587kLnDf5#mSpw zNXiysm$HW-0=I-N-5C>G+=5jHpl%2dIdN?O{uL&a{hWtkHc-tpDNJH}EZA>GxT2~J zr0C=Ziqm3<9#*S@$-)k!?GB}hujz*^vaA&+KoOuSjuJz!YIqEvAvqhpVT>je*~v>g zGe<<0#Q!Mqmm8|ilrjskD0ZEo5Tf+;k2*w#5BtooN{bI)b<`vV zNso=YN+8(8|39w&0xYWLeE^1$W))acYJml5>26rMQ({3R1nF)N1QzL%RJyxaLIEY0 zkdh8Tx>HgC-^26!f8X_9@0?}f>~d!AnmcChnfZrCPs%R$9M}W*n3}k^w}fHc#MmP# z16P1iIAdcS3%2pxH_(f`_k;TSnhy5+29dBA1uFSJ{-KfG>kzZ);sWu{ioXxR@Zz5!; z6$Pv8D^%I|KW3nz=}@+}2oqEG_6+&taK}8cRADyn$CBk-LK8FQk;P8<%?d=s4&Us z!`zR5M>1d<$H_dCeX{vF4-MVJ!)7o}e${e=Kb{=d$}V28{~bZB3>CE%Cf!8E+;}KD zZo1DY-6I^&j1;^m>ni2%M|CocV;rOX$-sF?Mu-NZhjzeD1Mh5YKgu}X%l_HRn+wII zAD_FGYbMk2ox(B4G#(kM!+h!IY>D}_yX)iDvj|0^2&y>z5A@>`k}fwFFJ53$0e%2o zhUbg^7!ImoqejNGN9Nj)+XOb)s1&mv@A@RnD}w668!Y?fnOEcOiGZLCz*t=RYr?v@ zj6_-9irDwaAx|A5ukE%0Op<;#4`MQT-b|w;neoXwuxue-*q>?kCVC7QVO+wu%Gl>J zd1|3=2JOMDoo3F8)+A9V1#@!T&8EsY_Pp>sQX$lz?nf_7Fsxdq?+{>hRrK!`a>>|@ zbwsl1TYe!9#J&fF6pu=o4IyYd2lP8yYG3Q_>38+T@Rv~*zp0261s{<_G%J7<>zhlF}K2y z)9kU*T&eko=K9WX{c;C?cn+F$Dj)S!UG{P$4FfFtn`X}1*O{q(Xckzs!6jyFX?<^U z=>KK<=RFh?`{mF7%5a^_;=)}=?ZREnU0Atc@9OF1V8+HjG^LRv8Xk+}-0v?bd)1*0 zHlwc=7mgPxFE1~zxad|^mcB^0w0s4w|CO)6AOCx`Ab+kPA8K9+0OoIjAy-}^v_}{i z=vbJKFdt$4H|qKb4V?%~OpgI2;o+6lW{}Y_*TsZcgfNow$+;!f|KAWShBR7^tO8w1 zkj{Anzzyay}91?NuRO(Lrc=SjSk+>`-jGmdqesU zZJ;zr;s5{nl=#z!kANKpeRtM!q}?>diL=kL&vJoF?_M={h#TUgDLJ`b5j-@-NkAaZ zat}Nz{pbJcxmS>gQPH~5y3v%JKB&v?&LV7-IvC%0`-_w%Y0jfa^J%1{9Xlx%`A5*I z;6bZ%|C4a>soi!FXxaGXoe(F1rOF~feUjlXSe95IU`t|F5Ax1adAv;ePyH6E$xcP{);}3j- z%&<_ZDngeDVJUV3@Db%vzUh2F>5pHqFzgQ;*oh7nb>{+M=iEA{eI+oe1@kMz$EvZf zWpz3@g`pu)us8`ujwy`!r9sEQfL;;x~H)xW2s=#kf#xt zwBw4}f!k%*XTp!;O229s!Hbl&T@OM)WS`RG!L%S@)D|)4H8*KA=#+GuA7z7j)E61@Y=?jsVpp5g+ZaPkD*0{^{`% z9GS|3tJ2r(O5>7BDA{rglY_8%b_htpynJrlewXMcQGGusmBMThGWAC4%~YUcETg{@ zNIuqlh`>JF>Iee*=|UQ9%8;as!a>lEucr9r>YSc9*cBgkgTkA1FUbogv6S_U_`(p; zvPEQc>r%lU>qQpW`qcW-nqd8CqkWXWh6OsOKxhHNxwQ&s%sDUxVM1^%LkR)3Re%!n zM!ZX(sw2rokW&kGph;HA2Hw@L*X-_Lg9(tfGhQTp?Lz4f{cwS3SgS7T)a1tpQti0e zLv~k$pfOI__E`MV4edo3Yts^V%9fop_I;t6s+iVu$wUwR=!LLFf#__A%m&RfYn)-{ zz*rinEK(IV=2c7*0-hkL-?|3Igz_kpw#8M8pj{(p39&lMvj;4 zf$`fzs!jb^C9pNS2t)hCS`cPs_&SA2KiJO0k)`BqJMjHLV&P-_a7~_S_RGW;P7cJa zd6(>AkF7#H0j^|z4=Z1hR^rl)u|Y<+Fz7PE8nlX~+|IEGRh&b;U?;6qO=3qG9ffOZ zTMak|BD)oZGPS&*s*8`+^L|yk*^4=s+IJZWv0w<8~1d!rpRq>P_G|V57#)|ExHdFrq5rQT;BFY)_^LBqD zVl?Q>4L*mDthNH**AQJ=m0arr=+b~)2_R?TSU9+HI^i9Y8P@_yMzY{^Y5k_v?kNI20+6DP zVn=b!QNk`VMm6+{E(k%(f`?n*)rIfGvzkIFJAyNR1(NJvwvk`=aFk4U4EUkXC6&Ei zrY&4_Y&I3%5TT2j^CuIPZJF;*r4D%8K3&2i<{vWbH^e6JYmZ{bZV_Fc%Dbpp2OGAw z8@9qQ$$mN3818!c*RSS!rTD9MvtBHj0M#FPAKbdGe$sF(<(CT218KuG4L(ceWBFVz z`jul^ITuHKWj7==SRLOCu#hdTB@OSL#9`&DabYK9`J6<%=pszOh>nV2Lkn+VnC0RM zi7#XgdMZF=w6DK86=1}B=>6OEz-1g~J(*cQl6}PRi4$LuhII-jAK3`O5Z%yXDwd1X zti{%y(P(Do?b+d-?2u=d$q%@LcLt?gXwrdqk*L3{Nq|N~=7rT46w9QR$;*m6#o zvBj`g3rFB(X?bv*)1eTp%XDn|nRm&dGqtWj#GQe_{*I_~hZM@*e>VT&YiCopIN>iF z<;jEduWIQi9E-Z&KQc0}vWqS5avEGrLb7OA7cLw~OmSVGG@+Te%TbuUIO38#{i+Qb zG|^S(pu#q^$7*45)*N~%wP>*g9B4yJ)%-5c-RTFFTsg|C?d|Ikmnph_ceOS!Y4v(C zK09XhUCpvXv!t29Z6anWYMSd1fyLx{{;e7)$t&U}G*Q~5A2*hEWUDWileWw?`5Wr< z+^ej^%1z2e%>E3P2ZZTAsSRc}1X?7`b=swUV_O6oK9X#c&1=0>(%IZfGB)7T^8Z%# zc+|Tk`H@PFmdBA0t&PEXGH&*`6=N!}sM$_@H6Y)cLPkmFBu~-sYbvuSJ=+yEA#amK zd)X+vfQjUEpK6FQY5fQPENi1@7o(y=v0LxhuEhPKs>+tiK$^Pxm{fS|SH#6GApu3_ zL+fs%+wL;*ABTt_$ZnygHuV zs`uG%<*JMgGhe42zT`*vLe>~_rh!7shIT`k+mBp5#|HIOx`PJ}YWO^I)DI-2mUX@L zQZhy{3oC#_D(X1;0=;Dmu=y+$wMBU(l#2X(tI+*um|YjA3f#DO-eo7N{LA{)f3No)ZWPUIEA=@MW!SbB{>ipH z>M6Et$sDt$7}OR$3pDFN4ZSP&G2wuPkUlayIC%3YTg%j(vEpPrjEaiyIO~kXg%XLj zyWT9H2u5cMC|#8)u8u9nCx^(*i@)eQ+OuQl=&?qX52>>biGrotrI!o zi5%o{FGglMJB(I`*s9ZMWF<0he{=I#RCK?rp0_!WyMIKheEA^QU~g zKrgEE#j(2I{7!NUN9PNniTbkvGX2FyU9w6{hYGr_2wg$ zE4IRxO)-;^!-jM{8>**T^f9{% zq<&k##=I#||8*!8X^k(*w>}SW6QZQQCn3CvErkA|rQ}-0Al97iFW1zu)&fuKY7?tr z4u-!^b)V5PbWa~woBuc^V+d#N^$+2fWB%Vl-l2!dDYsTe0ed=n(NahwF_M@`ttiLl zuA;vg(mWgAw}*>?u1q;aB~?Rc;cw&JM5jk>Q+mqcP#S$GH3JPn9 zZDJGg(Xdkc`2f<>+`Sgce`vkZT1C`L7us{${2{T9da%XEq@Hb1u4f;Tw*nnF|XY&VjXc5)+);pk75OC{hfc#^S z(ieec3xU|yJg3JLn-Hume^qJPdeyyY)!}4fFfG6T!iCc;nA~Ep=Q}*TCn+WC=qXFo zEBTRldk0_(qu_~|&ofBA+?OHnwPFq#v~qQQR05cGns*!l#q~s^nu&hh@Jrg+%ZBToBAKJ6qkBJU&Lx`QSez@u+ghN#i z?CDKbY>O!d#RVoEJzFhUGEfrg7YZdb~kATsX|DEio{ z<2g^pPk7c5=dK}vx-t6+|1{O8;nU1+@k&D})&T1w=nS%UHh4VfITDmoEyJdb)~Bj} z0cFz#18Bm)2qp_OG^w__jbc;dCn;Z7AUj>fqty~uV7HZs6#EkoWPkF;GBy4O{i$KC zz}A0gK<<*=1YwUl(m^*|1}#M0GhcW|RsX-5pd7fW2y`?%iF7KfdS@=Dwc+TsuCBz7 z<+<4EFI+eJl7oa(r#WlWeFOc#xal<=pO)*+gIlkl6Z5;4Q`IVY=p+z3y(vVo13@GJ z7f>Z}9Rf;#^gpXJ(6M>a9@RIjmW^j=bVCTvIP4jCerj4tilhxDOz%aRGraX!ohLMH zoea3IzAvpOsD6$erkzsEMhL@#K@$Im=mU%)m4=!9sWwkOt=W{oUoW8?xmgG~uyzfx zRZW8U(<#*^Zd?$>U$>sp&>lwPMhk`h>@sxB=hKiD!_mTs{P-a41?*m zd4ZZ?L~d?OR4(Lnfds3?|K^^OjpsF|gfQQ))sBRu>nsku>J_R02QKM1=PP^u;0Sq1 z%}6yhG%%a$Yykv}XCw>7m7R;iL=aIG>Z=%e&n8DzlcJJJ*kZV-r^8T#1Eu`YslKz! zx39SRO2l=S9r}Q6!DooVhPoLWoJlyrhqpdQUSGeRLkS}N!8?0D#@`t~+RPF@dtG#rxi&M26ZjV@RuF{F}}dz0HB{++pU^l+)={FC#-KObQmqk%aj>pBvhUa)Jc85_;WId2uK@K*tFJgn42p z1B0NvVp$q(D8}i}huah#^!mll^MPt2E!}g=!15S{Cd}7I_vHQc1c^0B;zC7QrY0ai|lA z&W(&jM#laRaofmbdFwIgdtjd^zTc;Ad=u-|lrhhWe&4daU!O(!&5}S)7l&L;rS0J@ zMJyk_G02Kh=F+Ud>u*u{JFq8WVq#6R0Oo{F=W-2>^6~&RsgU;5#CW*H-_%owWo9_utFCua{~CN6lbWLxkxa|s)?i@tigKib`SDC(W}mK3QE|Ed z7=Jerk@yVUpRYf6O;U5fAADgoPjJ<7ghw#o=~cgc$-vl=h^VSm1bREJqUp9}|7J1s zldN_lAg8DGxMGp4bWkFw{uSBg?yvUnn3;I$(!utZoQA%iTKb08@h~;dCM1dI<_;p1 zUQ1&XHcKY@w6%J|z{(m&E|v^1-1y#92V7OvZZLv*?RAN%*K;eR$t0xyRh&Bx)$fm} zjbDZRg9aCauM&Qr=~{NYl3b_y)r4|XKg;5U;`+Zq3IE`|OK=CethnS{PseeH98phbBk2;beAN-z1&P1vIPf+CM1vR~ zjzm;d0oB7uRMKh$kUR^8v924do7FARlbjOi1o2N&z5D~MazA{jjK5vxX2j+&nEPm$ z-rIpIE6F#x&~w;v?&;~D7?Hmt*I2@J)p0y&H6aWjAwCy{jfV>Z)_^ft0BRz_AWhV_ zVx!oaR#D>JsmI!YKr{75Y346{8sW-}u7R#k=Y`SJL3V59_N|BUw~zg3^= zu+|y!%ORsOOPk(3t$Ev9T>pxT4*CscFH&r+YPIDCB{X?jTlic$Em97sz75x(C~e=N zt#p zucX&@esyrhRTce~64{9;j%_-(sS0Ar$MuJR4=$CIs%BI_ zq^(;6sy`}Z+wFGtiJhZ&rT_JjIbaBVa(PZgYQvalG>8LZLd+sz5V&=1O@raoB}sMS z!OjB$0DG@G(pKa;j;%0v03`#Er>N4{pzH&HjU>fIT9xYO0e9P1*y^IKH+T_T{(w&+ z_=fgErxtZ{6=s-_oZGYE#nJ=c9O3A?6QN?cUCHH7m_IRrE7v%8`FZj1L4+

    Z5M|6x#7MQng?fvKfbsaRE2X(h=_{c9NT1&(8aya~B`tC(q0-3`eDMGq{M zsLzhc;^(;4ESm*#Sx!&F2r`Cqs^o2cb?syVe$xb@Ug6B8%jMsAz8TpaOO7?_dL^5QVo8dbl1RS$TNfb@IIEdwoeuDCS!ddrPRn9LAK2$ zeL0>@vr}o^+JYb>wr#K9bjPRT009*OTJg`h;l6aa;xah^bTftc@+#1uL!Uu8I5_Z( zjbOOb6@tp*%a^hqX*bG+zWXG{q%qG%N`kL zt^0zwr>(8yi0=YHt=>8qx3XhPA_eR-k z_$5$bidoJ#d^t>uZIfED{0Ww~zy);o4nnfQ_)GBD<@D-`c$6h${StlDG`tJI3eO18 z?5f=_h=}N#?-&2N1pMrU;*L5~iExLnzarsTk(AiR(a$)3QA;OkK_i^Yd72fNQQOx+ zO&X-Jj=39SGm%+I(a-zwHfp1OyMjTMc^?<(E9cO|Pa}(OV|1t73IVmwd}&%2*;7%V z3OG542jzb6Fj zF)H+$JNn#fVC}4Rof9aO^%VWgdfbu2>vkgda1n`~#xT zUZ|QoOla@d=fE%hmH<4V*Nz$6!|gAPhSk*6I83aX6!|8ZIjly)l6uz9cs45ld0~-< zP7qpE&8)~*RjQ@UB`T|40t81?(LbouYMlxgIIQC?=0R**mf9?cC^}rcKe|n$fNb{_ zY*l#Lu&$pbZT&(N)wTK+?}B+}pqWy5?;z0SkueSTnP!<&wN-odS@MHe^F z=MGMdc%ck~K){#ZdkTP_M%-J$0CU^{NIQXDhp03L68<9aHjvS5lm;Ai?js1;eF2fYh~D_)n&_lqlw!7lZd z)Ag2%baIuWW?~}M@z*Y4Tr?S`({#Lj8B410P7=-`5f|fRy3|$k;rB}c>niC_xnr9j zn%!|=A68TCXZB~2eo8G!KVyIg7(D0%u74xPPxw$#6*{;aPg}gq(-Veo!NER5+)!-} z*mnTg`xU1s%Wk9QDT|+ZRvFdrulX!GAFI*6LMOp6{?N&F!(rAsQ-5|(K$GEuYG&~a za_C(Ih|5j+S;Pp{Y+d1AK2VFp3v>tKh7RzBq=zSuEzlRC?4D>a5?LUABCfWEcU3Uz zD+Mh70krl(z1wr6=9x4i#326+aNP4X_xoGNjHPL$AH^1SGMiE-eknJGrsRnUq>}X( z75luYslDCubV=QcLQPFQ)Pwi>Ng=={Fkl96tf4de9BdqD2*7(61GFk8f(q%t9yv|K z*>N1~^uWe?E+hG%xd~zdzoAsyiSPZELv!nd>~a*zo(ukiaNKVvplZU`ZyUAB-wh|KRsk*U7V@b z4|lucq)_A+Xgc%gTBwtEz%!C7EPz0gK59HtovM~W1Jt*tH}HZHf2c#yM|Sy;>i%ZLYmgtXPFYmG@ z?k72`sy4YwsPw10jrav3y5N+|^@i|nXVhThde)mKDBdw>vZHlz@n-QdJ;bE2QawrH z_Ilc3+S=kj9eFP44$uvhTCMsH`yD#?6EhMG5XuLl5<&iB(K!W!`0_q>wawY9B>%3W z^(=m1-fCmBW8YN2+S&DFU%^3mU@Wk8o7jSlcP!O?`JnOl zKa;gN5cmTM^kN9h91GZ372hEb9lRqp^A5l@!czP{!cn$$L>>neq1a~#OxEHm@r+Sf zR*zMbM%`6Vs2GTY|8=bNOWiMj1BWvsdtEC-b**xRwj|-kjeg##v$XYT2+Iv8K9lcn zR?VS!Du4tcB$fTG(UI(EX!?R>XlNw+g?S-p5%TmG4}I!t8RcQg*l|o#R8-liab}vz z#+#-3E8`RAO<;lB$$IGz6h=Z(S>ahNquirD-d44ZZFfLLQ~LS!qAH$P7yFww=jf%c zU7sMzRc8RkKp=_d1KL0Ey6#)j6NOEDiBN*H5I zoyB$UwK6nmpL?P7`ywbUCz@}!6H&b1S!gQzTZRJ@)SG}lWlLd4X}#0$RJF_XlEXonK0B|!uKAun(Dgv{r4Y0A_{qDkhrKy_zh<=m-8F$zUvEm{r_SJ z2oMNN551F}(8kNd%iF<#zw^mE7pG0=@px0y-|(UF&@n9MtRb25UH7`$nV-pNyT2jC ziifH8!|Y1VS(Dp$8}@bEz?f`;L(b=$d^6sv+8dgv&M1mMVi0 z_>X2jKcHnUv#+Og?&4*~J~KObSuvN&`(2L)#d_8zkQHd;rk~f;{H$5+uqE>>rABOx zjhE>*U3?<#Q%b3$^$N@8@82gDtG?4!9Pp_!K*RtV?RlB+?4S|CNZ>m=I|y-Uy)$u} zD}%J^;bx`-n1QZUMlns>yk7rlrKwj|`!)RaKQzUuT%O+)m2#Bvx)wRX*^LtkGDN$v zV+kzpP`_f~;V>i!LH{tKcI0KN0fwR-!s;synCKEXSi^Bs6`zW9_pz z398}h^R8Q{$H95OZ{|I$Qh0|{6>oFY#r^$@{r#<;*E${jtJyhD_m2O-YfM z6`npSEquyUND1WNqXSRl20asNdhkTR2)r_x19Wi2T0m~e;+p|$_cc5ASSYT5+IlBD zPTaaay`PykV~lR!zKisR9lLf>zVX1O*?sM=mWD?7?9_t}0Qdq7L_pyBOcsEdz?&yP zR(q8Nv2^}JV={TgYzWPaf+Hi8OgK&6UT5s-ub%F++6;f+a&ub?RlL{BHdcW(($GPN zEcVW6V@;}NN|1Rok+4VegmNcM6)?QVfcpS6;ZQh!1-;JB8ES8@F`d7Ciz~3RA8f(> zKEqavtiP)KtMo>_-Xk@G=^&+zNYa$l6u;ZtH+dH(wZHtqxN>LWV(r!Y7WCc3brDMP zl3H?0fUgupZg91^HJtS|VLi%GUhEapLc|DzOr$kZi+h9J0tIVm{5aGJM^sfX-BA9K zr1Lf#gP+fYy?nF>oFEioOjKMEnHUCW4`AdCNbi=^(knKR_&(47dStck#WLed_T=NP z9wR9ZY`#Wj=QkW=yi=*Ef!j$?JY#*okAKCjFlL6Xs_ktB1W{ zxy}F3o;P=-4{mS1L1~hM)LunIb2yk?{yjNa%@>)oHRntobU&HIXM2g0y_Fd8dN_Dt z>=z`WZ5{xuu;k5i7`{%We!XR1MHFV(4vZGH7DU-VlAfEC%k>JQw|LQwSK&p+{e`b* zq3WrfO1xjZmtB0u9_GgOa7skp^8I#0ZD$AJx1ET5z(NpxwB8p2PWz&oQ!I;&>=}<( z3u-czp8Ec2i$ioYj_Z6?K9w=-G=+BfGNV4K_Rt3r<$Pr)Ix={$xF14qmROr zSC-7J-)|fEVsr2EF_(oJ-vKe0+~-zYvzV0D$kZyrqerurQNo`)^yEd4YHH@0>45*j z@^?Z5j$4${FS$JR=?)z+U3^`9YaL?T$ixV_TW*6EMy8xsEXf0OME%(J+zHJyPLA^} zJ$=!w(G+aaEuHF3yoMBH631fTWAC>;(}vf;;9F@Pj^lT;vbeW^k4!vW7iWPBqeVz! z{9a*UV!pkSX1W$(*Lg+KXJXvKFUWM*-4k21rbiihCh@t|A+}$C^UX+ZN8id$?RxD% zMEQ}-l$ed~G!kCGoCt(7(?nDSFkndHSJ2~ukq=AvHl~QvK!5egKDQSx4jY|1r*p0u zBPY9&TkdLWyrjHCw87c?$h%iB9WJ2<{)y*MPQGDsUVuOhG$U1fpg2V zM%}J$ze`_Vc1vU~bzeI2cw_{Yy1v>69~J215Dknrgt(^EkPNvm(pLU;xz>_91>#q5 z>>wvm17f_%=n&mcJuVzw~(%qB_j;?F)D{Sg5I7(c_!hU9)aYc!i16CZs=7dilU z6{)TbFiFp7iC?!wJ$B3Cd~7}ZzNwf4QS_VUAKGScog~_YnDzPsbJKL~lwkFPV@3=p zTe-$!WaFmGmS{`+FSmN~uOVy3g8>^GZ;)lK*B5vrW8eBvS@#NWXj7`6=&y*U?%h*e zSp5Y++Itv#`&oQPi>ziw=FI|T9tfHvl=2TMzmFtUZu%wnyB$r_c*?cX#jigYIebRqNefVb@FV;3yf;Q$W-e3+RgOdu$j$GlwOU^?{qel|X*fMOX|2nu(ZnHLTdy^GB1pY4_`xN3A();-JK_zp zL=hZOQ_|%1z`euX%&94S2RH!D*o%&{4S;Jm#%~A{j2(P~I5St0l2cQ^ z#;sbQI)1n5i(H&uTi`_-%<~DImmdTVK==Gxl>o)H>O!j zRZIRSC*z3n&&~eEs(*4vs)H$Ku67%%|G>?F&Om@97`+e#cs&cZDM8xV%#H=7ok{fl zIjwsOzdqv39ByxKt3Lfo;T7<^jjRUbdNRcXQK$;!^qFMO99^jIE&3%acfgzpa%fEN&z%0AaLuNBN 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%0DTKmp`mNz#)GL*(0YgdgQ?f>9e>+F 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 RMDPg_O>{Rz{6Px=y+p-Hwahp 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

    (93pKBG9wJfK2 z9O3h%Q(fR6iOqXreLZQK&(^%p)E{+zkG7497u91ieb){rt4`WEd&Wfbz3mcm4{HB7 zS<>u0T*Z`5Y!c{H_wdI*3}URf^^}m>tx0h=smxcyCp*ojgP4Qj9#@8gf~9SRT9s+_ zHI_q zbeSitp*7x(E18W8yGZTd)&A-Z1Smu|@Ve zTMO5z!MEL8%mtz^*3$W+`qIDt;ZBv;2e-7iiJ8hVz!rm9)`UOJTe*$f(U&On3QA|8 zVIDf<9ycrsePV>Q`c(Xe$FeRMxqgh0pr#9J&pOqx1rv-Hsv1$;P_E3WLbN<7&%ff) zpwb_mTePkPi0$nBm1n^*ouq=kwm+WrQ_U(pTEcfun3oaw%;;3x2M<1*(*Bt5DBtjd zRX)&aFA(0Zh7XJ-QqQ23a`>2za^j^=monOf8zXA}92)cdEwDYm$F#&KqV*thA`5~K zlU~v>Y)zGS0mPm$6A@u{pPiTtG&yRfGI6f=mf6dOZ1Gyu#UJ=n1MS4LAP)|1Ak&F` z)=T*CB2Yrz{|0>?v0jcV0(Ck4Su=Q}-l$bQT_WxMebzPRh~y+_7G7#tv2o_5<~%b} zIehuH&4xPqocmK4|B(Bi992k-@{rG__%F&BYxSZ3e!sdh9>55e*Ymlvk=mWPnZ(vx zrnB%mWXA?NxG58<`<bZB17@GD$ZQCbjto zYUac`xcsX@7v4#I9@b|GcKVbIU8f@Ab&gaCSU$vj>(#i9r)$?ChzaeS$m#@mQ^*55Xej$BQoN~$8t@^1i@5$la zS*bD`Mc>iGC3X9d%Dilr3eV!bwf9frZ51%+St8|a_PNz_=}N69&~BX)PmAHIBZ((B*yceSPO2S)qX-rxKN|GxTG@lSH)gZsZ#{9s`38~)og zCGR);lO zrgmSRUGexyqx@8ejc3uou#$q%V5>N#yXBiVYCBd`w|!-CzR0kzTeQvd(} literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/images/cover_5.jpg b/apps/admin/src/assets/images/cover_5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1657d6c7a12534eb0f7bf89c66009c6f4f561ae3 GIT binary patch literal 158208 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ÐHFTdHhJdjTBJ@+l?Yy=DpFuT^0pMT*wj) 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�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 vIEN}}QAKkq3kNAAJ8h14w_6i9#@;T=t;uS9 { '.user-info': { backgroundColor: token.colorPrimaryBg, }, + '.slick': { + height: '100%', + overflow: 'hidden', + div: { + height: '100%', + }, + '.img-info': { + position: 'absolute', + bottom: '0', + left: '0', + right: '0', + height: 'auto', + zIndex: 2, + padding: token.paddingLG, + overflow: 'hidden', + div: { + height: 'auto', + }, + }, + '.image-box': { + position: 'relative', + '&:before': { + content: "''", + top: '0px', + left: '0px', + width: '100%', + height: '100%', + zIndex: 1, + position: 'absolute', + background: 'linear-gradient(rgba(22, 28, 36, 0) 0%, rgb(22, 28, 36) 75%)', + }, + }, + '&-dots': { + position: 'absolute', + top: '8px', + left: '8px', + bottom: 'auto', + width: 'auto', + li: { + margin: 0, + 'button:before': { + color: token.colorPrimary, + fontSize: '10px', + width: 'auto', + height: 'auto', + }, + }, + }, + }, }, }; }); diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index 6cef4ab9..79de8162 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -1,15 +1,23 @@ import { Button, Col, Divider, Row, Typography } from 'antd'; -import { AnimatePanel } from 'ui'; +import { useTheme } from 'antd-style'; +import { type FC, useState } from 'react'; +import { AnimatePanel, BaseSlick, Translatex } from 'ui'; import SvgIcon from '@/components/SvgIcon'; -import useStyles from './index.style'; +import cover_1 from '@/assets/images/cover_1.jpg'; +import cover_2 from '@/assets/images/cover_2.jpg'; +import cover_3 from '@/assets/images/cover_3.jpg'; +import cover_4 from '@/assets/images/cover_4.jpg'; +import cover_5 from '@/assets/images/cover_5.jpg'; -import type { FC } from 'react'; +import useStyles from './index.style'; const { Title, Text } = Typography; const HomePage: FC = () => { const { styles } = useStyles(); + const token = useTheme(); + const [current, setCurrent] = useState(1); return (

    @@ -49,7 +57,123 @@ const HomePage: FC = () => {
- col-6 +
+ { + setCurrent(index + 1); + }, + }} + > +
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+
diff --git a/packages/ui/modules/AnimatePanel/Translatex.tsx b/packages/ui/modules/AnimatePanel/Translatex.tsx new file mode 100644 index 00000000..d8040cf4 --- /dev/null +++ b/packages/ui/modules/AnimatePanel/Translatex.tsx @@ -0,0 +1,44 @@ +import { type AnimationConfig, animated, useSpring } from '@react-spring/web'; +import React from 'react'; + +type Props = { + children: React.ReactNode | string; + direction?: string; + delay?: number; + run?: boolean; + config?: Partial; + className?: string; +}; +export default function Translatex(props: Props) { + const { + children, + direction = 'left', + delay = 3000, + run = false, + config = { + tension: 100, + friction: 26, + }, + } = props; + const [animate, setAnimate] = React.useState(false); + React.useEffect(() => { + setAnimate(run); + }, [run]); + const animateStyles = useSpring({ + opacity: animate ? 1 : 0, + transform: animate + ? `${direction === 'left' ? 'translateX(0px) scale(1) rotateY(0deg)' : 'translateY(0px) scale(1) rotateY(0deg)'}` + : `${ + direction === 'left' + ? 'translateX(80px) scale(0.9) rotateY(10deg)' + : 'translateY(200px) scale(0.9) rotateY(10deg)' + }`, + delay, + config: { ...config }, + }); + return ( + + {children} + + ); +} diff --git a/packages/ui/modules/AnimatePanel/index.tsx b/packages/ui/modules/AnimatePanel/index.tsx index bdaa479a..6ab6faf7 100644 --- a/packages/ui/modules/AnimatePanel/index.tsx +++ b/packages/ui/modules/AnimatePanel/index.tsx @@ -1,7 +1,12 @@ -import { animated, useSpring } from '@react-spring/web'; +import { type AnimationConfig, animated, useSpring } from '@react-spring/web'; import { useRef } from 'react'; -export default function Card(props: { title?: string; children: React.ReactNode; right?: React.ReactNode }) { +export default function Card(props: { + title?: string; + children: React.ReactNode; + right?: React.ReactNode; + panelConfig?: Partial; +}) { const cardRef = useRef(null); const config = { mass: 1, @@ -10,6 +15,7 @@ export default function Card(props: { title?: string; children: React.ReactNode; clamp: false, precision: 0.01, velocity: 0, + ...props.panelConfig, }; const [{ xys }, api] = useSpring(() => ({ xys: [0, 0, 1], config }), [config]); @@ -46,9 +52,9 @@ export default function Card(props: { title?: string; children: React.ReactNode; } const calc = (x: number, y: number, rect: DOMRect | undefined) => [ - -(y - rect!.top - rect!.height / 2) / 50, - (x - rect!.left - rect!.width / 2) / 50, - 1.01, + -(y - rect!.top - rect!.height / 2) / 150, + (x - rect!.left - rect!.width / 2) / 150, + 1, ]; const trans = (x: number, y: number, s: number) => `perspective(600px) rotateX(${x}deg) rotateY(${y}deg) scale(${s})`; diff --git a/packages/ui/modules/Slick/BaseSlick.tsx b/packages/ui/modules/Slick/BaseSlick.tsx new file mode 100644 index 00000000..f05e9fca --- /dev/null +++ b/packages/ui/modules/Slick/BaseSlick.tsx @@ -0,0 +1,10 @@ +import Slider, { type Settings } from 'react-slick'; + +type Props = { + sliderConfig: Settings; + children: React.ReactNode; +}; +export default function BaseSlick(props: Props) { + const { sliderConfig, children } = props; + return {children}; +} diff --git a/packages/ui/modules/index.ts b/packages/ui/modules/index.ts index e72e905e..c01a9fb3 100644 --- a/packages/ui/modules/index.ts +++ b/packages/ui/modules/index.ts @@ -1,3 +1,5 @@ import AnimatePanel from './AnimatePanel/index'; +import Translatex from './AnimatePanel/Translatex'; +import BaseSlick from './Slick/BaseSlick'; -export { AnimatePanel }; +export { AnimatePanel, BaseSlick, Translatex }; diff --git a/packages/ui/package.json b/packages/ui/package.json index 017fec3e..5169fdbc 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -18,6 +18,7 @@ }, "devDependencies": { "@types/react": "^18.2.45", + "@types/react-slick": "^0.23.13", "eslint-config-gbeata-eslint": "workspace:^", "prettier": "^3.1.0", "typescript": "^5.2.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a89a78c6..1f65eee3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -410,6 +410,9 @@ importers: '@types/react': specifier: ^18.2.45 version: registry.npmmirror.com/@types/react@18.2.45 + '@types/react-slick': + specifier: ^0.23.13 + version: registry.npmmirror.com/@types/react-slick@0.23.13 eslint-config-gbeata-eslint: specifier: workspace:^ version: link:../config-eslint @@ -5510,6 +5513,14 @@ packages: dependencies: '@types/react': registry.npmmirror.com/@types/react@18.2.45 + registry.npmmirror.com/@types/react-slick@0.23.13: + resolution: {integrity: sha512-bNZfDhe/L8t5OQzIyhrRhBr/61pfBcWaYJoq6UDqFtv5LMwfg4NsVDD2J8N01JqdAdxLjOt66OZEp6PX+dGs/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-slick/-/react-slick-0.23.13.tgz} + name: '@types/react-slick' + version: 0.23.13 + dependencies: + '@types/react': registry.npmmirror.com/@types/react@18.2.45 + dev: true + registry.npmmirror.com/@types/react@18.2.45: resolution: {integrity: sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react/-/react-18.2.45.tgz} name: '@types/react' From 046cc3a0b7f868730becfd587a332005f08c6aec Mon Sep 17 00:00:00 2001 From: G Date: Wed, 20 Dec 2023 00:33:20 +0800 Subject: [PATCH 033/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?apis=E6=A8=A1=E5=9D=97=EF=BC=8C=E9=A6=96=E9=A1=B5=E6=96=B0?= =?UTF-8?q?=E5=A2=9Egithub=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 3 +- .../src/views/home/components/CommitTable.tsx | 61 ++++++++ apps/admin/src/views/home/index.tsx | 9 +- apps/admin/vite.config.ts | 8 + packages/apis/.eslintrc.js | 12 ++ packages/apis/index.ts | 2 + packages/apis/modules/github/index.ts | 15 ++ packages/apis/modules/index.ts | 1 + packages/apis/package.json | 23 +++ packages/apis/prettier.config.mjs | 27 ++++ packages/apis/request.ts | 74 +++++++++ packages/apis/tsconfig.json | 27 ++++ packages/apis/type.d.ts | 5 + .../gbeata/docs/components/DateShortcut.md | 1 - packages/gbeata/src/GFields/convertFields.tsx | 1 - pnpm-lock.yaml | 142 ++++++++++++++++++ 16 files changed, 406 insertions(+), 5 deletions(-) create mode 100644 apps/admin/src/views/home/components/CommitTable.tsx create mode 100644 packages/apis/.eslintrc.js create mode 100644 packages/apis/index.ts create mode 100644 packages/apis/modules/github/index.ts create mode 100644 packages/apis/modules/index.ts create mode 100644 packages/apis/package.json create mode 100644 packages/apis/prettier.config.mjs create mode 100644 packages/apis/request.ts create mode 100644 packages/apis/tsconfig.json create mode 100644 packages/apis/type.d.ts diff --git a/apps/admin/package.json b/apps/admin/package.json index d389c919..77dc766f 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -46,7 +46,8 @@ "video-react": "^0.16.0", "xlsx": "^0.18.5", "store": "workspace:^", - "ui": "workspace:^" + "ui": "workspace:^", + "apis": "workspace:*" }, "devDependencies": { "@babel/core": "^7.23.3", diff --git a/apps/admin/src/views/home/components/CommitTable.tsx b/apps/admin/src/views/home/components/CommitTable.tsx new file mode 100644 index 00000000..fda421f0 --- /dev/null +++ b/apps/admin/src/views/home/components/CommitTable.tsx @@ -0,0 +1,61 @@ +/* eslint-disable import/no-extraneous-dependencies */ +/* eslint-disable no-unused-vars */ +/* eslint-disable @typescript-eslint/no-unused-vars */ +// 晚点处理吧,类型导出有问题i +import { type GSearchTableField, GSearchTable } from 'gbeata'; +import { useMemo, useState } from 'react'; + +export default function Demo() { + const [data, setData] = useState([]); + + const fields: Array = [ + { + title: '作者', + key: 'author', + }, + { + title: '提交信息', + key: 'message', + }, + { + title: '时间', + key: 'time', + }, + ]; + const apiUrl = 'https://api.github.com/repos/anyone-yuren/react-antd-admin-pnpm/commits?per_page=10'; + const accessToken = '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'; + + fetch(apiUrl, { + method: 'GET', + headers: { + Authorization: `token ${accessToken}`, + }, + }) + .then((response) => { + // 如果响应状态码不是 200 OK,则可能有错误 + if (!response.ok) { + throw new Error(`GitHub API请求失败:${response.statusText}`); + } + + // 将响应的JSON数据解析为 JavaScript 对象 + return response.json(); + }) + .then((data) => { + setData( + data.map((item) => ({ + author: item.commit.author.name, + message: item.commit.message, + time: item.commit.author.date, + })), + ); + + // 在这里对数据进行进一步处理 + }) + .catch((error) => { + // 捕获和处理错误 + console.error('发生错误:', error.message); + }); + const renderTable = useMemo(() => () => , [data]); + + return <>{renderTable()}; +} diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index 79de8162..4374dfdc 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -11,16 +11,18 @@ import cover_3 from '@/assets/images/cover_3.jpg'; import cover_4 from '@/assets/images/cover_4.jpg'; import cover_5 from '@/assets/images/cover_5.jpg'; +import CommitTable from './components/CommitTable'; import useStyles from './index.style'; const { Title, Text } = Typography; const HomePage: FC = () => { + debugger; const { styles } = useStyles(); const token = useTheme(); const [current, setCurrent] = useState(1); return (
- +
+ + + ); diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 52b71e4d..bc94bb89 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -26,6 +26,14 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { // Listening on all local ips host: true, port: VITE_PORT, + proxy: { + '/repos': { + target: 'https://api.github.com', + changeOrigin: true, + secure: true, + rewrite: (path) => path.replace(/^\/repos/, ''), + }, + }, }, plugins: [ react(), diff --git a/packages/apis/.eslintrc.js b/packages/apis/.eslintrc.js new file mode 100644 index 00000000..0c24b4aa --- /dev/null +++ b/packages/apis/.eslintrc.js @@ -0,0 +1,12 @@ +/** @type {import('eslint').Linter.Config} */ +module.exports = { + root: true, + extends: ['gbeata-eslint'], + parserOptions: { + tsconfigRootDir: __dirname, + project: ['./tsconfig.json'], + }, + rules: { + 'implicit-arrow-linebreak': 'off', + }, +}; diff --git a/packages/apis/index.ts b/packages/apis/index.ts new file mode 100644 index 00000000..707f6cb5 --- /dev/null +++ b/packages/apis/index.ts @@ -0,0 +1,2 @@ +// 暴露modules文件夹中的所有模块状态 +export * from './modules'; diff --git a/packages/apis/modules/github/index.ts b/packages/apis/modules/github/index.ts new file mode 100644 index 00000000..188f90df --- /dev/null +++ b/packages/apis/modules/github/index.ts @@ -0,0 +1,15 @@ +import { request } from '../../request'; + +import type { IResponse } from '../../type'; + +const accessToken = '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'; +const repoOwner = 'anyone-yuren'; +const repoName = 'react-antd-admin-pnpm'; +const apiUrl = `/${repoOwner}/${repoName}/commits?per_page=10`; +export const GetGithubCommits = () => + request>(apiUrl, { + method: 'GET', + headers: { + Authorization: `token ${accessToken}`, + }, + }); diff --git a/packages/apis/modules/index.ts b/packages/apis/modules/index.ts new file mode 100644 index 00000000..7302c7ad --- /dev/null +++ b/packages/apis/modules/index.ts @@ -0,0 +1 @@ +export * from './github'; diff --git a/packages/apis/package.json b/packages/apis/package.json new file mode 100644 index 00000000..830a316b --- /dev/null +++ b/packages/apis/package.json @@ -0,0 +1,23 @@ +{ + "name": "apis", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "antd": "^5.12.4", + "qs": "^6.11.2", + "store": "workspace:*", + "umi-request": "^1.4.0" + }, + "devDependencies": { + "eslint-config-gbeata-eslint": "workspace:^", + "prettier": "^3.1.0", + "typescript": "^5.2.2" + } +} diff --git a/packages/apis/prettier.config.mjs b/packages/apis/prettier.config.mjs new file mode 100644 index 00000000..a575ef6b --- /dev/null +++ b/packages/apis/prettier.config.mjs @@ -0,0 +1,27 @@ +// 配置文档: https://prettier.nodejs.cn/ + +/** @type {import('prettier').Config} */ +export default { + // 每行最大宽度,超过换行 + printWidth: 120, + // 缩进级别的空格数 + tabWidth: 2, + // 用制表符而不是空格缩进行 + useTabs: false, + // 使用单引号而不是双引号 + singleQuote: true, + // 在 JSX 中使用单引号而不是双引号 + jsxSingleQuote: true, + // 对象字面量中括号之间有空格 { foo: bar } + bracketSpacing: true, + // 将多行 HTML(HTML、JSX)元素的 > 放在最后一行的末尾,而不是单独放在下一行 + bracketSameLine: false, + // 在唯一的箭头函数参数周围包含括号(avoid:省略括号, always:不省略括号) + arrowParens: 'always', + // 换行符使用 lf 结尾 可选值 auto|lf|crlf|cr + endOfLine: 'lf', + objectCurlyNewline: { + // 对象大括号换行 + multiline: true, + }, +}; diff --git a/packages/apis/request.ts b/packages/apis/request.ts new file mode 100644 index 00000000..40924211 --- /dev/null +++ b/packages/apis/request.ts @@ -0,0 +1,74 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { notification } from 'antd'; +import { type RequestOptionsInit, extend } from 'umi-request'; + +// 全局请求参数设置 +const PREFIX = ''; +export const request = extend({ + timeout: 60000, + // 记得区分开发环境与生产环境 + prefix: PREFIX, +}); + +let isRefreshingToken = false; // 是否正在刷新token +const requestQueue: { + url: string; + options: RequestOptionsInit; + resolve: (value: Response | PromiseLike) => any; + reject: (reason?: any) => void; +}[] = []; // 请求队列 +request.interceptors.request.use((url, options) => { + const { headers } = options; + + return { + url, + options: { + ...options, + headers, + }, + }; +}); + +request.interceptors.response.use(async (response, options) => { + const { status } = response; + if (status === 200) { + const data = await response.clone().json(); + if (data.code !== 0) { + notification.error({ + message: '请求错误', + description: data.msg, + }); + return Promise.reject(data.msg); + } + return data; + } + if (status === 401) { + if (!isRefreshingToken) { + // 重新登录 + const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}'); + isRefreshingToken = true; + // 刷新token + const res = await request('/User/ReLogin', { + method: 'POST', + data: userInfo, + }); + localStorage.setItem('userInfo', JSON.stringify(res.data)); + isRefreshingToken = false; + const response = request(options.url, options); + + // 重新登录后,将队列中的请求重新发出 + requestQueue.forEach((cb) => cb.resolve(request(cb.url, cb.options))); + + return response; + } + // 正在刷新token,将返回一个未执行resolve的promise + return new Promise((resolve, reject) => { + requestQueue.push({ url: options.url, options, resolve, reject }); + }); + } + notification.error({ + message: '请求错误', + description: response.statusText, + }); + return Promise.reject(response.statusText); +}); diff --git a/packages/apis/tsconfig.json b/packages/apis/tsconfig.json new file mode 100644 index 00000000..1b07c652 --- /dev/null +++ b/packages/apis/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "baseUrl": ".", + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "paths": { + "@/*": ["src/*"], + "#/*": ["types/*"] + }, + "types": ["vite/client", "vite-plugin-svg-icons/client"] + }, + "include": ["modules/**/*.ts", "modules/**/*.d.ts", "modules/**/*.tsx", "index.ts", "request.ts", "type.d.ts"], + "exclude": ["node_modules", "dist", "**/*.js"] +} diff --git a/packages/apis/type.d.ts b/packages/apis/type.d.ts new file mode 100644 index 00000000..bbbe80a1 --- /dev/null +++ b/packages/apis/type.d.ts @@ -0,0 +1,5 @@ +export interface IResponse { + code: boolean; + data: T; + msg: string; +} diff --git a/packages/gbeata/docs/components/DateShortcut.md b/packages/gbeata/docs/components/DateShortcut.md index 020ba20f..6dc82bf2 100644 --- a/packages/gbeata/docs/components/DateShortcut.md +++ b/packages/gbeata/docs/components/DateShortcut.md @@ -45,7 +45,6 @@ const fields: Array = [ export default function Demo() { const handleConfirm = (form: any) => { - console.log(form); alert(JSON.stringify(form)); }; return ( diff --git a/packages/gbeata/src/GFields/convertFields.tsx b/packages/gbeata/src/GFields/convertFields.tsx index 44b5f3dd..32f4c65a 100644 --- a/packages/gbeata/src/GFields/convertFields.tsx +++ b/packages/gbeata/src/GFields/convertFields.tsx @@ -6,7 +6,6 @@ const getAyFieldsNode = (children: ReactNode) => { if (!Array.isArray(children)) { children = [children] } - console.log(children) // @ts-ignore return children.find((node: ReactElement) => node?.type?.componentName === 'MwFields') diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f65eee3..e7eb8ea7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -99,6 +99,9 @@ importers: antd-style: specifier: ^3.6.1 version: registry.npmmirror.com/antd-style@3.6.1(@types/react@18.2.45)(antd@5.12.2)(react-dom@18.2.0)(react@18.2.0) + apis: + specifier: workspace:* + version: link:../../packages/apis axios: specifier: ^1.6.2 version: registry.npmmirror.com/axios@1.6.2 @@ -275,6 +278,31 @@ importers: specifier: ^2.0.1 version: registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@4.5.0) + packages/apis: + dependencies: + antd: + specifier: ^5.12.4 + version: registry.npmmirror.com/antd@5.12.4(react-dom@18.2.0)(react@18.2.0) + qs: + specifier: ^6.11.2 + version: registry.npmmirror.com/qs@6.11.2 + store: + specifier: workspace:* + version: link:../store + umi-request: + specifier: ^1.4.0 + version: registry.npmmirror.com/umi-request@1.4.0 + devDependencies: + eslint-config-gbeata-eslint: + specifier: workspace:^ + version: link:../config-eslint + prettier: + specifier: ^3.1.0 + version: registry.npmmirror.com/prettier@3.1.1 + typescript: + specifier: ^5.2.2 + version: registry.npmmirror.com/typescript@5.3.3 + packages/config-eslint: dependencies: '@typescript-eslint/eslint-plugin': @@ -7195,6 +7223,71 @@ packages: - moment dev: false + registry.npmmirror.com/antd@5.12.4(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-myj2qtWJdob2mQKNAac5bt2zBfaspP+ufqq/pgnOqZ4u4NVVEYbILWa3+ihaqXZHIz1krykFrye8BCyelD9TeQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/antd/-/antd-5.12.4.tgz} + id: registry.npmmirror.com/antd/5.12.4 + name: antd + version: 5.12.4 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@ant-design/colors': registry.npmmirror.com/@ant-design/colors@7.0.0 + '@ant-design/cssinjs': registry.npmmirror.com/@ant-design/cssinjs@1.18.1(react-dom@18.2.0)(react@18.2.0) + '@ant-design/icons': registry.npmmirror.com/@ant-design/icons@5.2.6(react-dom@18.2.0)(react@18.2.0) + '@ant-design/react-slick': registry.npmmirror.com/@ant-design/react-slick@1.0.2(react@18.2.0) + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor@3.6.1 + '@rc-component/color-picker': registry.npmmirror.com/@rc-component/color-picker@1.4.1(react-dom@18.2.0)(react@18.2.0) + '@rc-component/mutate-observer': registry.npmmirror.com/@rc-component/mutate-observer@1.1.0(react-dom@18.2.0)(react@18.2.0) + '@rc-component/tour': registry.npmmirror.com/@rc-component/tour@1.11.1(react-dom@18.2.0)(react@18.2.0) + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + copy-to-clipboard: registry.npmmirror.com/copy-to-clipboard@3.3.3 + dayjs: registry.npmmirror.com/dayjs@1.11.10 + qrcode.react: registry.npmmirror.com/qrcode.react@3.1.0(react@18.2.0) + rc-cascader: registry.npmmirror.com/rc-cascader@3.20.0(react-dom@18.2.0)(react@18.2.0) + rc-checkbox: registry.npmmirror.com/rc-checkbox@3.1.0(react-dom@18.2.0)(react@18.2.0) + rc-collapse: registry.npmmirror.com/rc-collapse@3.7.2(react-dom@18.2.0)(react@18.2.0) + rc-dialog: registry.npmmirror.com/rc-dialog@9.3.4(react-dom@18.2.0)(react@18.2.0) + rc-drawer: registry.npmmirror.com/rc-drawer@6.5.2(react-dom@18.2.0)(react@18.2.0) + rc-dropdown: registry.npmmirror.com/rc-dropdown@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-field-form: registry.npmmirror.com/rc-field-form@1.41.0(react-dom@18.2.0)(react@18.2.0) + rc-image: registry.npmmirror.com/rc-image@7.5.1(react-dom@18.2.0)(react@18.2.0) + rc-input: registry.npmmirror.com/rc-input@1.3.11(react-dom@18.2.0)(react@18.2.0) + rc-input-number: registry.npmmirror.com/rc-input-number@8.4.0(react-dom@18.2.0)(react@18.2.0) + rc-mentions: registry.npmmirror.com/rc-mentions@2.9.1(react-dom@18.2.0)(react@18.2.0) + rc-menu: registry.npmmirror.com/rc-menu@9.12.4(react-dom@18.2.0)(react@18.2.0) + rc-motion: registry.npmmirror.com/rc-motion@2.9.0(react-dom@18.2.0)(react@18.2.0) + rc-notification: registry.npmmirror.com/rc-notification@5.3.0(react-dom@18.2.0)(react@18.2.0) + rc-pagination: registry.npmmirror.com/rc-pagination@4.0.3(react-dom@18.2.0)(react@18.2.0) + rc-picker: registry.npmmirror.com/rc-picker@3.14.6(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + rc-progress: registry.npmmirror.com/rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0) + rc-rate: registry.npmmirror.com/rc-rate@2.12.0(react-dom@18.2.0)(react@18.2.0) + rc-resize-observer: registry.npmmirror.com/rc-resize-observer@1.4.0(react-dom@18.2.0)(react@18.2.0) + rc-segmented: registry.npmmirror.com/rc-segmented@2.2.2(react-dom@18.2.0)(react@18.2.0) + rc-select: registry.npmmirror.com/rc-select@14.10.0(react-dom@18.2.0)(react@18.2.0) + rc-slider: registry.npmmirror.com/rc-slider@10.5.0(react-dom@18.2.0)(react@18.2.0) + rc-steps: registry.npmmirror.com/rc-steps@6.0.1(react-dom@18.2.0)(react@18.2.0) + rc-switch: registry.npmmirror.com/rc-switch@4.1.0(react-dom@18.2.0)(react@18.2.0) + rc-table: registry.npmmirror.com/rc-table@7.36.0(react-dom@18.2.0)(react@18.2.0) + rc-tabs: registry.npmmirror.com/rc-tabs@12.14.1(react-dom@18.2.0)(react@18.2.0) + rc-textarea: registry.npmmirror.com/rc-textarea@1.5.3(react-dom@18.2.0)(react@18.2.0) + rc-tooltip: registry.npmmirror.com/rc-tooltip@6.1.3(react-dom@18.2.0)(react@18.2.0) + rc-tree: registry.npmmirror.com/rc-tree@5.8.2(react-dom@18.2.0)(react@18.2.0) + rc-tree-select: registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0) + rc-upload: registry.npmmirror.com/rc-upload@4.3.5(react-dom@18.2.0)(react@18.2.0) + rc-util: registry.npmmirror.com/rc-util@5.38.1(react-dom@18.2.0)(react@18.2.0) + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + scroll-into-view-if-needed: registry.npmmirror.com/scroll-into-view-if-needed@3.1.0 + throttle-debounce: registry.npmmirror.com/throttle-debounce@5.0.0 + transitivePeerDependencies: + - date-fns + - luxon + - moment + dev: false + registry.npmmirror.com/anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz} name: anymatch @@ -14217,6 +14310,15 @@ packages: version: 3.0.1 engines: {node: '>=0.10.0'} + registry.npmmirror.com/isomorphic-fetch@2.2.1: + resolution: {integrity: sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz} + name: isomorphic-fetch + version: 2.2.1 + dependencies: + node-fetch: registry.npmmirror.com/node-fetch@1.7.3 + whatwg-fetch: registry.npmmirror.com/whatwg-fetch@3.6.20 + dev: false + registry.npmmirror.com/isomorphic-unfetch@4.0.2: resolution: {integrity: sha512-1Yd+CF/7al18/N2BDbsLBcp6RO3tucSW+jcLq24dqdX5MNbCNTw1z4BsGsp4zNmjr/Izm2cs/cEqZPp4kvWSCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/isomorphic-unfetch/-/isomorphic-unfetch-4.0.2.tgz} name: isomorphic-unfetch @@ -16387,6 +16489,15 @@ packages: json-parse-better-errors: registry.npmmirror.com/json-parse-better-errors@1.0.2 safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1 + registry.npmmirror.com/node-fetch@1.7.3: + resolution: {integrity: sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch/-/node-fetch-1.7.3.tgz} + name: node-fetch + version: 1.7.3 + dependencies: + encoding: registry.npmmirror.com/encoding@0.1.13 + is-stream: registry.npmmirror.com/is-stream@1.1.0 + dev: false + registry.npmmirror.com/node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-fetch/-/node-fetch-3.3.2.tgz} name: node-fetch @@ -19415,6 +19526,22 @@ packages: react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) dev: false + registry.npmmirror.com/rc-tooltip@6.1.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-HMSbSs5oieZ7XddtINUddBLSVgsnlaSb3bZrzzGWjXa7/B7nNedmsuz72s7EWFEro9mNa7RyF3gOXKYqvJiTcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tooltip/-/rc-tooltip-6.1.3.tgz} + id: registry.npmmirror.com/rc-tooltip/6.1.3 + name: rc-tooltip + version: 6.1.3 + peerDependencies: + react: '>=16.9.0' + react-dom: '>=16.9.0' + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + '@rc-component/trigger': registry.npmmirror.com/@rc-component/trigger@1.18.2(react-dom@18.2.0)(react@18.2.0) + classnames: registry.npmmirror.com/classnames@2.3.2 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + dev: false + registry.npmmirror.com/rc-tree-select@5.15.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-YJHfdO6azFnR0/JuNBZLDptGE4/RGfVeHAafUIYcm2T3RBkL1O8aVqiHvwIyLzdK59ry0NLrByd+3TkfpRM+9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rc-tree-select/-/rc-tree-select-5.15.0.tgz} id: registry.npmmirror.com/rc-tree-select/5.15.0 @@ -22980,6 +23107,15 @@ packages: dev: true optional: true + registry.npmmirror.com/umi-request@1.4.0: + resolution: {integrity: sha512-OknwtQZddZHi0Ggi+Vr/olJ7HNMx4AzlywyK0W3NZBT7B0stjeZ9lcztA85dBgdAj3KVk8uPJPZSnGaDjELhrA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/umi-request/-/umi-request-1.4.0.tgz} + name: umi-request + version: 1.4.0 + dependencies: + isomorphic-fetch: registry.npmmirror.com/isomorphic-fetch@2.2.1 + qs: registry.npmmirror.com/qs@6.11.2 + dev: false + registry.npmmirror.com/umi@4.0.89(@babel/core@7.23.6)(@types/node@20.5.1)(@types/react@18.2.45)(eslint@8.56.0)(prettier@2.8.8)(react-dom@18.2.0)(react@18.2.0)(sass@1.69.5)(stylelint@14.16.1)(typescript@5.3.3)(webpack@5.89.0): resolution: {integrity: sha512-bC62ctJ3wnymADnhE5nU7IZz4+XQ3MPWwoVW150OJazyAqEioZdjIZEBgB9pVfQEM819xMc6+eslnyuCNOQV+g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/umi/-/umi-4.0.89.tgz} id: registry.npmmirror.com/umi/4.0.89 @@ -23777,6 +23913,12 @@ packages: - esbuild - uglify-js + registry.npmmirror.com/whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz} + name: whatwg-fetch + version: 3.6.20 + dev: false + registry.npmmirror.com/which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz} name: which-boxed-primitive From 292dbd85f4e144687de344f3e7a94f0b0d65e06c Mon Sep 17 00:00:00 2001 From: G Date: Wed, 20 Dec 2023 00:44:27 +0800 Subject: [PATCH 034/134] =?UTF-8?q?feat:=20:sparkles:=20=E8=AF=B7=E6=B1=82?= =?UTF-8?q?admin=E5=88=86=E6=94=AF=E6=8F=90=E4=BA=A4=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/views/home/components/CommitTable.tsx | 10 ++++++---- apps/admin/src/views/home/index.tsx | 1 - 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/apps/admin/src/views/home/components/CommitTable.tsx b/apps/admin/src/views/home/components/CommitTable.tsx index fda421f0..6f47eb89 100644 --- a/apps/admin/src/views/home/components/CommitTable.tsx +++ b/apps/admin/src/views/home/components/CommitTable.tsx @@ -3,9 +3,9 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ // 晚点处理吧,类型导出有问题i import { type GSearchTableField, GSearchTable } from 'gbeata'; -import { useMemo, useState } from 'react'; +import { memo, useMemo, useState } from 'react'; -export default function Demo() { +function Demo() { const [data, setData] = useState([]); const fields: Array = [ @@ -22,8 +22,8 @@ export default function Demo() { key: 'time', }, ]; - const apiUrl = 'https://api.github.com/repos/anyone-yuren/react-antd-admin-pnpm/commits?per_page=10'; - const accessToken = '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'; + const apiUrl = 'https://api.github.com/repos/anyone-yuren/react-antd-admin-pnpm/commits?sha=admin&per_page=10'; + const accessToken = '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'; fetch(apiUrl, { method: 'GET', @@ -59,3 +59,5 @@ export default function Demo() { return <>{renderTable()}; } + +export default memo(Demo); diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index 4374dfdc..fa5d6050 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -16,7 +16,6 @@ import useStyles from './index.style'; const { Title, Text } = Typography; const HomePage: FC = () => { - debugger; const { styles } = useStyles(); const token = useTheme(); const [current, setCurrent] = useState(1); From 407c6ed34e15ec7e724dac6e984b2d229f604ea0 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 20 Dec 2023 09:57:01 +0800 Subject: [PATCH 035/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/home/components/CommitTable.tsx | 2 +- apps/admin/src/views/home/index.style.ts | 5 ++++ packages/ui/modules/AnimatePanel/index.tsx | 26 +++++++++---------- packages/ui/modules/Slick/BaseSlick.tsx | 8 ++++-- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/apps/admin/src/views/home/components/CommitTable.tsx b/apps/admin/src/views/home/components/CommitTable.tsx index 6f47eb89..2affc6a5 100644 --- a/apps/admin/src/views/home/components/CommitTable.tsx +++ b/apps/admin/src/views/home/components/CommitTable.tsx @@ -23,7 +23,7 @@ function Demo() { }, ]; const apiUrl = 'https://api.github.com/repos/anyone-yuren/react-antd-admin-pnpm/commits?sha=admin&per_page=10'; - const accessToken = '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'; + const accessToken = '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'; fetch(apiUrl, { method: 'GET', diff --git a/apps/admin/src/views/home/index.style.ts b/apps/admin/src/views/home/index.style.ts index 7bc6b401..6ad6361a 100644 --- a/apps/admin/src/views/home/index.style.ts +++ b/apps/admin/src/views/home/index.style.ts @@ -6,8 +6,13 @@ const useStyles = createStyles(({ token }) => { return { 'home-container': { height: '100vh', + '.gutter-row': { + display: 'flex', + }, '.user-info': { backgroundColor: token.colorPrimaryBg, + display: 'flex', + alignItems: 'center', }, '.slick': { height: '100%', diff --git a/packages/ui/modules/AnimatePanel/index.tsx b/packages/ui/modules/AnimatePanel/index.tsx index 6ab6faf7..7a6cf02d 100644 --- a/packages/ui/modules/AnimatePanel/index.tsx +++ b/packages/ui/modules/AnimatePanel/index.tsx @@ -33,20 +33,18 @@ export default function Card(props: { }; return ( -
-
- -

- {props.title} {props.right} -

- {props.children} -
-
+
+ +

+ {props.title} {props.right} +

+ {props.children} +
); } diff --git a/packages/ui/modules/Slick/BaseSlick.tsx b/packages/ui/modules/Slick/BaseSlick.tsx index f05e9fca..8360cab3 100644 --- a/packages/ui/modules/Slick/BaseSlick.tsx +++ b/packages/ui/modules/Slick/BaseSlick.tsx @@ -5,6 +5,10 @@ type Props = { children: React.ReactNode; }; export default function BaseSlick(props: Props) { - const { sliderConfig, children } = props; - return {children}; + const { sliderConfig, children, ...rest } = props; + return ( + + {children} + + ); } From 9f0b3b0565bd4c6bce84ac89fa4728c2c055fa1b Mon Sep 17 00:00:00 2001 From: G Date: Wed, 20 Dec 2023 10:46:27 +0800 Subject: [PATCH 036/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=A6=96=E9=A1=B5=E8=AF=B7=E6=B1=82=E5=BC=82=E5=B8=B8=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/home/components/CommitTable.tsx | 79 ++++++++++--------- apps/admin/src/views/home/index.style.ts | 4 +- packages/gbeata/src/index.ts | 2 +- 3 files changed, 47 insertions(+), 38 deletions(-) diff --git a/apps/admin/src/views/home/components/CommitTable.tsx b/apps/admin/src/views/home/components/CommitTable.tsx index 2affc6a5..f76d6af0 100644 --- a/apps/admin/src/views/home/components/CommitTable.tsx +++ b/apps/admin/src/views/home/components/CommitTable.tsx @@ -2,10 +2,11 @@ /* eslint-disable no-unused-vars */ /* eslint-disable @typescript-eslint/no-unused-vars */ // 晚点处理吧,类型导出有问题i -import { type GSearchTableField, GSearchTable } from 'gbeata'; -import { memo, useMemo, useState } from 'react'; +import dayjs from 'dayjs'; +import { type GSearchTableField, GSearchTable } from 'gbeata/src/index'; +import { memo, useEffect, useMemo, useState } from 'react'; -function Demo() { +function CommitTable() { const [data, setData] = useState([]); const fields: Array = [ @@ -23,41 +24,47 @@ function Demo() { }, ]; const apiUrl = 'https://api.github.com/repos/anyone-yuren/react-antd-admin-pnpm/commits?sha=admin&per_page=10'; - const accessToken = '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'; + const accessToken = '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'; - fetch(apiUrl, { - method: 'GET', - headers: { - Authorization: `token ${accessToken}`, - }, - }) - .then((response) => { - // 如果响应状态码不是 200 OK,则可能有错误 - if (!response.ok) { - throw new Error(`GitHub API请求失败:${response.statusText}`); - } - - // 将响应的JSON数据解析为 JavaScript 对象 - return response.json(); - }) - .then((data) => { - setData( - data.map((item) => ({ - author: item.commit.author.name, - message: item.commit.message, - time: item.commit.author.date, - })), - ); - - // 在这里对数据进行进一步处理 + useEffect(() => { + fetch(apiUrl, { + method: 'GET', + headers: { + Authorization: `token ${accessToken}`, + }, }) - .catch((error) => { - // 捕获和处理错误 - console.error('发生错误:', error.message); - }); - const renderTable = useMemo(() => () => , [data]); + .then((response) => { + if (!response.ok) { + throw new Error(`GitHub API请求失败:${response.statusText}`); + } + return response.json(); + }) + .then((source) => { + setData( + source.map( + (item: { + commit: { + author: { name: any; date: string | number | Date | dayjs.Dayjs | null | undefined }; + message: any; + }; + }) => ({ + author: item.commit.author.name, + message: item.commit.message, + time: dayjs(item.commit.author.date).format('YYYY-MM-DD HH:mm:ss'), + }), + ), + ); + }) + .catch((error) => { + console.error('发生错误:', error.message); + }); + }, []); // 空数组表示仅在组件挂载时执行一次 - return <>{renderTable()}; + return ( + <> + + + ); } -export default memo(Demo); +export default memo(CommitTable); diff --git a/apps/admin/src/views/home/index.style.ts b/apps/admin/src/views/home/index.style.ts index 6ad6361a..32748d30 100644 --- a/apps/admin/src/views/home/index.style.ts +++ b/apps/admin/src/views/home/index.style.ts @@ -7,7 +7,9 @@ const useStyles = createStyles(({ token }) => { 'home-container': { height: '100vh', '.gutter-row': { - display: 'flex', + '&:first-child': { + display: 'flex', + }, }, '.user-info': { backgroundColor: token.colorPrimaryBg, diff --git a/packages/gbeata/src/index.ts b/packages/gbeata/src/index.ts index 96e0d91a..f03c5076 100644 --- a/packages/gbeata/src/index.ts +++ b/packages/gbeata/src/index.ts @@ -21,7 +21,7 @@ import GTable, { } from './GTable'; import { default as GTagGroup } from './GTagGroup'; -export * from './index.d'; +export type * from './index.d'; export { GAction, GButton, From 0fcd283d1a44ab56d0d526b0a00cd40a956978bc Mon Sep 17 00:00:00 2001 From: G Date: Wed, 20 Dec 2023 13:35:24 +0800 Subject: [PATCH 037/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?ant=20visible=3D>open?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/home/components/CommitTable.tsx | 2 +- packages/gbeata/src/GDialog/g-dialog.d.ts | 2 +- packages/gbeata/src/GDialog/index.tsx | 6 +-- .../gbeata/src/GDialogForm/g-dialog-form.d.ts | 2 +- packages/gbeata/src/GDialogForm/index.md | 48 +++++++++---------- packages/gbeata/src/GDialogForm/index.tsx | 6 +-- packages/gbeata/src/GForm/g-form.d.ts | 2 +- packages/gbeata/src/GForm/index.md | 2 +- packages/gbeata/src/GForm/index.tsx | 13 +++-- packages/gbeata/src/GSearch/g-search.d.ts | 2 +- packages/gbeata/src/GSearch/index.md | 8 ++-- packages/gbeata/src/GSearch/index.tsx | 22 ++++----- .../AySearchListCardDemo/index.tsx | 23 ++++----- .../src/GSearchList/AySearchListDemo.tsx | 17 +++---- .../src/GSearchList/AySearchListDemoTsx.tsx | 11 +---- .../src/GSearchTable/use/useExtraBtn.tsx | 4 +- packages/gbeata/src/GTable/EditableTable.tsx | 6 +-- packages/gbeata/src/api/index.ts | 2 +- packages/gbeata/src/hooks/useOptions.tsx | 2 +- 19 files changed, 85 insertions(+), 95 deletions(-) diff --git a/apps/admin/src/views/home/components/CommitTable.tsx b/apps/admin/src/views/home/components/CommitTable.tsx index f76d6af0..a42c1e6f 100644 --- a/apps/admin/src/views/home/components/CommitTable.tsx +++ b/apps/admin/src/views/home/components/CommitTable.tsx @@ -3,7 +3,7 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ // 晚点处理吧,类型导出有问题i import dayjs from 'dayjs'; -import { type GSearchTableField, GSearchTable } from 'gbeata/src/index'; +import { type GSearchTableField, GSearchTable } from 'gbeata'; import { memo, useEffect, useMemo, useState } from 'react'; function CommitTable() { diff --git a/packages/gbeata/src/GDialog/g-dialog.d.ts b/packages/gbeata/src/GDialog/g-dialog.d.ts index 73b4563b..745cbdcf 100644 --- a/packages/gbeata/src/GDialog/g-dialog.d.ts +++ b/packages/gbeata/src/GDialog/g-dialog.d.ts @@ -8,7 +8,7 @@ export interface GDialogProps extends ModalProps { /** 标题 */ title: ReactNode; /** 显示 */ - visible: boolean; + open: boolean; /** 显示控制 */ setVisible?: Dispatch>; /** 弹窗关闭 */ diff --git a/packages/gbeata/src/GDialog/index.tsx b/packages/gbeata/src/GDialog/index.tsx index f099a3e1..f50af90d 100644 --- a/packages/gbeata/src/GDialog/index.tsx +++ b/packages/gbeata/src/GDialog/index.tsx @@ -75,7 +75,7 @@ export default function GDialog(props: GDialogProps) { titleBefore, titleAfter, children, - visible, + open, setVisible, onConfirm, onOk, @@ -123,7 +123,7 @@ export default function GDialog(props: GDialogProps) { {titleAfter} ), - visible, + open, closable: true, onClose: handleCancel, footer: getDialogFooter(), @@ -138,7 +138,7 @@ export default function GDialog(props: GDialogProps) { {titleAfter} ), - visible, + open, onCancel: handleCancel, footer: getDialogFooter(), ...omitObj(extraPropsExtend, usedKeys), diff --git a/packages/gbeata/src/GDialogForm/g-dialog-form.d.ts b/packages/gbeata/src/GDialogForm/g-dialog-form.d.ts index 31de8479..4c18c281 100644 --- a/packages/gbeata/src/GDialogForm/g-dialog-form.d.ts +++ b/packages/gbeata/src/GDialogForm/g-dialog-form.d.ts @@ -32,7 +32,7 @@ export interface GDialogFormProps extends ModalProps { /** 是否只使用申明了 dialog 的 Field */ dialogOnly?: boolean; /** 是否可见 */ - visible?: boolean; + open?: boolean; /** 打开弹窗后的默认值 */ initialValues?: AnyKeyProps; /** 关闭弹窗监听 */ diff --git a/packages/gbeata/src/GDialogForm/index.md b/packages/gbeata/src/GDialogForm/index.md index 9712c0fc..5969c3d0 100644 --- a/packages/gbeata/src/GDialogForm/index.md +++ b/packages/gbeata/src/GDialogForm/index.md @@ -21,7 +21,7 @@ import { professionOptions } from '../api'; export default function AyDialogFormDemo() { const formRef = useRef(); // 弹窗是否可见 - const [visible, setVisible] = useState(false); + const [open, setVisible] = useState(false); const fields: Array = [ { @@ -53,7 +53,7 @@ export default function AyDialogFormDemo() { new Promise((resolve) => resolve({}))} onClose={() => setVisible(false)} @@ -77,7 +77,7 @@ import { professionOptions } from '../api'; export default function AyDialogFormDemo() { const formRef = useRef(); // 弹窗是否可见 - const [visible, setVisible] = useState(false); + const [open, setVisible] = useState(false); const fields: Array = [ { @@ -109,7 +109,7 @@ export default function AyDialogFormDemo() { = [ { @@ -427,7 +427,7 @@ export default function AyDialogFormDemo() { 新增 = [ { @@ -480,7 +480,7 @@ export default function AyDialogFormDemo() { @@ -593,7 +593,7 @@ export default function AyDialogFormDemo() { | formExtend | [GForm](../form#props-参数) 的扩展值。 | object | - | - | | autoClose | 成功后是否自动关闭弹窗。 | boolean | true | - | | drawer | 是否用 Drawer 替换 Modal。 | boolean | false | - | -| visible | 弹窗是否可见。 | boolean | false | 0.1.0 | +| open | 弹窗是否可见。 | boolean | false | 0.1.0 | | defaultValue | 弹窗打开后,表单的默认值 | object | {} | 0.1.0 | | mode | 打开的模式,会影响标题和只读,设置 'view'后表单只读。 | 'add'\| 'update' \| 'view' | 'add' | 0.1.0 | | spinning | 打开弹窗后,表单是否处于正在加载数据的阶段。 | boolean | false | 0.1.0 | diff --git a/packages/gbeata/src/GDialogForm/index.tsx b/packages/gbeata/src/GDialogForm/index.tsx index de34cecb..0f76ee53 100644 --- a/packages/gbeata/src/GDialogForm/index.tsx +++ b/packages/gbeata/src/GDialogForm/index.tsx @@ -129,7 +129,7 @@ const GDialogForm = forwardRef(function GDialogForm( drawer, dialogOnly, autoClose = true, - visible: defaultVisible, + open: defaultVisible, mode: defaultMode, spinning = false, onClose, @@ -146,7 +146,7 @@ const GDialogForm = forwardRef(function GDialogForm( }, [originFields, children]); /** 弹窗是否可见 */ - const [visible, setVisible] = useState(false); + const [open, setVisible] = useState(false); /** 当前所处于的模式 */ let [mode, setMode] = useState(MODE_ADD); /** 表单是否可以编辑 */ @@ -437,7 +437,7 @@ const GDialogForm = forwardRef(function GDialogForm( { !loading && onConfirm(); diff --git a/packages/gbeata/src/GForm/g-form.d.ts b/packages/gbeata/src/GForm/g-form.d.ts index 10dcb5ab..68b256a5 100644 --- a/packages/gbeata/src/GForm/g-form.d.ts +++ b/packages/gbeata/src/GForm/g-form.d.ts @@ -168,7 +168,7 @@ export interface GFormField extends Field { rules?: Array; /** 是否展示,保留占位; 保留默认值 */ // eslint-disable-next-line @typescript-eslint/ban-types - visible?: boolean | Function | string; + open?: boolean | Function | string; /** 是否展示,不会占位; 保留默认值 */ // eslint-disable-next-line @typescript-eslint/ban-types hidden?: boolean | Function | string; diff --git a/packages/gbeata/src/GForm/index.md b/packages/gbeata/src/GForm/index.md index 6149148b..65e995b5 100644 --- a/packages/gbeata/src/GForm/index.md +++ b/packages/gbeata/src/GForm/index.md @@ -1372,7 +1372,7 @@ const layout = { | defaultValue | 默认值 | any | - | - | | required | 是否必填 | boolean | - | - | | rules | 自定义权限 | Array<[Rules](https://ant-design.gitee.io/components/form-cn/#Rule)> | - | - | -| visible | 是否展示,保留占位; 保留默认值 | boolean | - | - | +| open | 是否展示,保留占位; 保留默认值 | boolean | - | - | | hidden | 是否展示,不会占位; 保留默认值 | boolean \| Function | - | - | | props | 原生的属性 | Object | - | - | | formItemProps | FormItem 层原生的属性 | Object | - | - | diff --git a/packages/gbeata/src/GForm/index.tsx b/packages/gbeata/src/GForm/index.tsx index 60e57dc0..40f7c19b 100644 --- a/packages/gbeata/src/GForm/index.tsx +++ b/packages/gbeata/src/GForm/index.tsx @@ -238,7 +238,7 @@ const fieldKeys = [ 'order', 'required', 'rules', - 'visible', + 'open', 'hidden', 'formItemProps', 'renderContent', @@ -360,12 +360,11 @@ const getFormItem = ( ); } - let visible = true; + let open = true; // 隐藏该项目,保留占位,但是保留值 - if (field.visible !== undefined) { - visible = - typeof field.visible === 'function' ? field.visible() : field.visible; + if (field.open !== undefined) { + open = typeof field.open === 'function' ? field.open() : field.open; } let hidden = false; @@ -377,7 +376,7 @@ const getFormItem = ( } // 隐藏该项,只显示占位,保留 form 值 - if (!visible || hidden) { + if (!open || hidden) { field = getNoVisibleField(field); } @@ -452,7 +451,7 @@ const getFormItem = ( } // 不显示状态下 rule 无效 - if (hidden || !visible) { + if (hidden || !open) { formItemProps.rules = []; } diff --git a/packages/gbeata/src/GSearch/g-search.d.ts b/packages/gbeata/src/GSearch/g-search.d.ts index f9a5aee8..c92f17c8 100644 --- a/packages/gbeata/src/GSearch/g-search.d.ts +++ b/packages/gbeata/src/GSearch/g-search.d.ts @@ -14,7 +14,7 @@ export interface GSearchProps { /** 查询占用的格数 */ actionSpan?: number; /** mini 状态展示 n 行 */ - visibleRow?: number; + openRow?: number; /** 查询、展示、展开按钮是否可见 */ actionVisible?: boolean; /** 是否平铺展示 */ diff --git a/packages/gbeata/src/GSearch/index.md b/packages/gbeata/src/GSearch/index.md index 41695c51..eb5fbd99 100644 --- a/packages/gbeata/src/GSearch/index.md +++ b/packages/gbeata/src/GSearch/index.md @@ -119,7 +119,7 @@ export default function Demo() { setWidth(e)} />
- +
); @@ -127,11 +127,11 @@ export default function Demo() { ``` ```js -// visibleRow 可以设置折叠行数 - +// openRow 可以设置折叠行数 + ``` -全局默认折叠行数设置,看 [这里](../global/set-search-default-visible-row) +全局默认折叠行数设置,看 [这里](../global/set-search-default-open-row) ## 不同的个数 diff --git a/packages/gbeata/src/GSearch/index.tsx b/packages/gbeata/src/GSearch/index.tsx index 5c7db01e..aa98b664 100644 --- a/packages/gbeata/src/GSearch/index.tsx +++ b/packages/gbeata/src/GSearch/index.tsx @@ -70,7 +70,7 @@ const getSearchFields = ( /** 每个项所占用的 span */ calcSpan: number, /** 默认展开 n 行 */ - visibleRow: number, + openRow: number, /** 是否平铺展示 */ inline: boolean, ): { searchFields: Array; span: number } => { @@ -137,7 +137,7 @@ const getSearchFields = ( if (mini) { // 如果超过多行,直接隐藏 - if (spanSum > visibleRow * 24 - calcSpan && index !== 0) { + if (spanSum > openRow * 24 - calcSpan && index !== 0) { newField.hidden = true; } } @@ -184,7 +184,7 @@ const GSearch = forwardRef(function GSearch(props: GSearchProps, ref) { formExtend, defaultOpen, toggleVisible, - visibleRow = defaultVisibleRow, + openRow = defaultVisibleRow, actionVisible, inline, ...otherProps @@ -201,12 +201,12 @@ const GSearch = forwardRef(function GSearch(props: GSearchProps, ref) { return SizeMap[size]; }, [size]); // 显示的 fields - const { searchFields, span: visibleSpan } = getSearchFields( + const { searchFields, span: openSpan } = getSearchFields( fields, mini, size, calcSpan, - visibleRow, + openRow, inline || false, ); @@ -215,7 +215,7 @@ const GSearch = forwardRef(function GSearch(props: GSearchProps, ref) { if (inline) { return undefined; } - if (visibleSpan <= 18) { + if (openSpan <= 18) { return 6; } // 累计的 span @@ -245,7 +245,7 @@ const GSearch = forwardRef(function GSearch(props: GSearchProps, ref) { // 如果超过指定行数,直接隐藏 if ( - spanSum + newSpan + calcSpan > visibleRow * 24 && + spanSum + newSpan + calcSpan > openRow * 24 && !miniSpanSum && index !== 0 ) { @@ -262,12 +262,12 @@ const GSearch = forwardRef(function GSearch(props: GSearchProps, ref) { let span: number = 24 - ((mini ? miniSpanSum : spanSum) % 24); return span; - }, [searchFields, calcSpan, mini, visibleSpan, inline]); + }, [searchFields, calcSpan, mini, openSpan, inline]); // 是否应该右侧 const actionRight: boolean = useMemo(() => { - return visibleSpan >= 24 - calcSpan; - }, [visibleSpan]); + return openSpan >= 24 - calcSpan; + }, [openSpan]); // 查询区域样式 const actionStyle = useMemo(() => { @@ -414,7 +414,7 @@ const GSearch = forwardRef(function GSearch(props: GSearchProps, ref) { {locale.search.reset} {toggleVisible !== false && !inline - ? visibleSpan > visibleRow * 24 - (actionSpan || 0) && + ? openSpan > openRow * 24 - (actionSpan || 0) && searchFields.length > 1 && : null} diff --git a/packages/gbeata/src/GSearchList/AySearchListCardDemo/index.tsx b/packages/gbeata/src/GSearchList/AySearchListCardDemo/index.tsx index 9efeb341..1bf5bfd0 100644 --- a/packages/gbeata/src/GSearchList/AySearchListCardDemo/index.tsx +++ b/packages/gbeata/src/GSearchList/AySearchListCardDemo/index.tsx @@ -1,12 +1,5 @@ +/* eslint-disable react/jsx-key */ import { Card, Image, List, Space, Tag } from 'antd'; -import { - AnyKeyProps, - GAction, - GCtrl, - GSearchList, - GSearchTableField, - GTableCtrlField, -} from 'gbeata'; import React, { useEffect, useRef, useState } from 'react'; import { addApi, @@ -15,11 +8,19 @@ import { professionOptions, updateApi, } from '../../api'; +import { + AnyKeyProps, + GAction, + GCtrl, + GSearchList, + GSearchTableField, + GTableCtrlField, +} from '../../index.d'; import './index.less'; const ctrl: GTableCtrlField = { width: 200, - render: (value, record) => { + render: (_, record) => { return ( @@ -157,7 +158,7 @@ export default function AySearchDemo() { extendSearchParams={{ class: tag, rarity }} searchExtend={{ actionVisible: false, - visibleRow: 99, + openRow: 99, colon: false, labelAlign: 'left', }} @@ -167,7 +168,7 @@ export default function AySearchDemo() { pagination={{ pageSize: 20, }} - renderItem={(record: AnyKeyProps, index: number) => { + renderItem={(record: AnyKeyProps) => { return ( >, defaultExtra: string[], ) => { - const [visible, setVisible] = useState(false); + const [open, setVisible] = useState(false); let [normalFields, setNormalFields] = useState>( // @ts-ignore tableFields @@ -179,7 +179,7 @@ const useFieldsEdit = ( <> diff --git a/packages/gbeata/src/GTable/EditableTable.tsx b/packages/gbeata/src/GTable/EditableTable.tsx index 680fd152..e18c2784 100644 --- a/packages/gbeata/src/GTable/EditableTable.tsx +++ b/packages/gbeata/src/GTable/EditableTable.tsx @@ -45,7 +45,7 @@ const RuleFormItem = ({ extra, popoverProps, }: RuleFormItemProps) => { - const [visible, setVisible] = useState(false); + const [open, setVisible] = useState(false); const [errorStringList, setErrorList] = useState([]); useEffect(() => { @@ -59,9 +59,9 @@ const RuleFormItem = ({ key="popover" trigger="focus" placement="topRight" - visible={errorStringList.length < 1 ? false : visible} + open={errorStringList.length < 1 ? false : open} onVisibleChange={(value) => { - if (value !== visible) { + if (value !== open) { setVisible(value); } }} diff --git a/packages/gbeata/src/api/index.ts b/packages/gbeata/src/api/index.ts index 8be61ef6..783fa9ba 100644 --- a/packages/gbeata/src/api/index.ts +++ b/packages/gbeata/src/api/index.ts @@ -1,7 +1,7 @@ /** * 此文件为模拟模拟接口的文件,不要复制,仅供参考 */ -import { AnyKeyProps, Record } from 'gbeata'; +import { AnyKeyProps, Record } from '../index.d'; export const professionOptions = [ { label: '近卫干员', value: '近卫' }, diff --git a/packages/gbeata/src/hooks/useOptions.tsx b/packages/gbeata/src/hooks/useOptions.tsx index 56e13509..df301da0 100644 --- a/packages/gbeata/src/hooks/useOptions.tsx +++ b/packages/gbeata/src/hooks/useOptions.tsx @@ -1,6 +1,6 @@ -import { AnyKeyProps } from 'gbeata'; import { useEffect, useState } from 'react'; import { Option } from '../GForm/g-form'; +import { AnyKeyProps } from '../index.d'; import { listToTree } from '../utils'; import { IConfig, Transform } from './use-options'; From 3b42a9867ab15809fc7c94e7ff582ffc2ef153fe Mon Sep 17 00:00:00 2001 From: G Date: Wed, 20 Dec 2023 23:58:26 +0800 Subject: [PATCH 038/134] =?UTF-8?q?feat:=20:sparkles:=20=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 9 +- apps/admin/src/assets/icons/solar.svg | 1 + apps/admin/src/components/BaseChart/index.tsx | 12 + .../src/components/LazyLoad/src/LazyLoad.tsx | 3 +- apps/admin/src/design/public.style.ts | 32 ++- apps/admin/src/router/routes/home.tsx | 6 +- .../src/views/home/components/AnalyzeCard.tsx | 212 ++++++++++++++++++ .../src/views/home/components/ChartsCard.tsx | 31 +-- .../src/views/home/components/CommitTable.tsx | 4 +- .../src/views/home/components/CountUpCard.tsx | 30 +-- .../src/views/home/components/SlickBox.tsx | 136 +++++++++++ .../admin/src/views/home/components/styles.ts | 22 ++ apps/admin/src/views/home/index.tsx | 141 ++---------- .../ui/modules/AnimatePanel/Translatex.tsx | 8 +- packages/ui/modules/Card/index.tsx | 23 ++ packages/ui/modules/index.ts | 3 +- pnpm-lock.yaml | 24 ++ 17 files changed, 505 insertions(+), 192 deletions(-) create mode 100644 apps/admin/src/assets/icons/solar.svg create mode 100644 apps/admin/src/components/BaseChart/index.tsx create mode 100644 apps/admin/src/views/home/components/AnalyzeCard.tsx create mode 100644 apps/admin/src/views/home/components/SlickBox.tsx create mode 100644 apps/admin/src/views/home/components/styles.ts create mode 100644 packages/ui/modules/Card/index.tsx diff --git a/apps/admin/package.json b/apps/admin/package.json index 77dc766f..7e1f2238 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -19,12 +19,14 @@ "ahooks": "^3.7.8", "antd": "^5.11.2", "antd-style": "^3.6.1", + "apis": "workspace:*", "axios": "^1.6.2", "classnames": "^2.3.2", "cropperjs": "^1.6.1", "crypto-js": "^4.2.0", "dayjs": "^1.11.10", "echarts": "^5.4.3", + "echarts-for-react": "^3.0.2", "file-saver": "^2.0.5", "gbeata": "workspace:*", "immer": "^10.0.3", @@ -42,12 +44,11 @@ "redux": "^4.2.1", "redux-persist": "^6.0.0", "sortablejs": "^1.15.0", - "use-immer": "^0.9.0", - "video-react": "^0.16.0", - "xlsx": "^0.18.5", "store": "workspace:^", "ui": "workspace:^", - "apis": "workspace:*" + "use-immer": "^0.9.0", + "video-react": "^0.16.0", + "xlsx": "^0.18.5" }, "devDependencies": { "@babel/core": "^7.23.3", diff --git a/apps/admin/src/assets/icons/solar.svg b/apps/admin/src/assets/icons/solar.svg new file mode 100644 index 00000000..1cdc7f3c --- /dev/null +++ b/apps/admin/src/assets/icons/solar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/components/BaseChart/index.tsx b/apps/admin/src/components/BaseChart/index.tsx new file mode 100644 index 00000000..40530300 --- /dev/null +++ b/apps/admin/src/components/BaseChart/index.tsx @@ -0,0 +1,12 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import ReactECharts from 'echarts-for-react'; + +export interface ChartsProp { + option: any; +} + +const BaseCharts = (prop: ChartsProp) => ( + +); + +export default BaseCharts; diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index 12e23af2..96f04fe5 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -1,4 +1,3 @@ -import { Spin } from 'antd'; import { type LazyExoticComponent, type ReactNode, Suspense } from 'react'; import Loading from './Loading'; @@ -8,7 +7,7 @@ import Loading from './Loading'; * @param {Element} Component 需要访问的组件 * @returns element */ -const LazyLoad = (Component: LazyExoticComponent): ReactNode => ( +const LazyLoad = (Component: LazyExoticComponent>): ReactNode => ( }> diff --git a/apps/admin/src/design/public.style.ts b/apps/admin/src/design/public.style.ts index 63d25884..7bc3859b 100644 --- a/apps/admin/src/design/public.style.ts +++ b/apps/admin/src/design/public.style.ts @@ -1,20 +1,18 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles(() => { - return { - 'span.icon-btn': { - display: 'flex', - alignItems: 'center', - cursor: 'pointer', - marginLeft: '10px', - }, - '.ant-upload-drag': { - height: 'auto', - }, - 'list-upload': { - '.ant-upload': { width: '100%' }, - '.ant-btn': { display: 'block', margin: '0 auto 8px' }, - }, - }; -}); +const useStyles = createStyles(() => ({ + 'span.icon-btn': { + display: 'flex', + alignItems: 'center', + cursor: 'pointer', + marginLeft: '10px', + }, + '.ant-upload-drag': { + height: 'auto', + }, + 'list-upload': { + '.ant-upload': { width: '100%' }, + '.ant-btn': { display: 'block', margin: '0 auto 8px' }, + }, +})); export default useStyles; diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index 48a78eb0..d7868dea 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -1,4 +1,6 @@ -import Home from '@/views/home'; +import { lazy } from 'react'; + +import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; @@ -18,7 +20,7 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: , + element: LazyLoad(lazy(() => import('@/views/home'))), meta: { title: '首页', key: 'home', diff --git a/apps/admin/src/views/home/components/AnalyzeCard.tsx b/apps/admin/src/views/home/components/AnalyzeCard.tsx new file mode 100644 index 00000000..cefd7e63 --- /dev/null +++ b/apps/admin/src/views/home/components/AnalyzeCard.tsx @@ -0,0 +1,212 @@ +import { Col, Typography } from 'antd'; +import { useTheme } from 'antd-style'; +import classNames from 'classnames'; +import { useEffect, useState } from 'react'; +import CountUp from 'react-countup'; +import { BaseCard } from 'ui'; + +import SvgIcon from '@/components/SvgIcon'; + +import ChartsCard from './ChartsCard'; +import useStyles from './styles'; + +const { Text, Title } = Typography; + +export const AnalyzeCard = () => { + const { styles } = useStyles(); + const token = useTheme(); + const [loading, setLoading] = useState(true); + useEffect(() => { + setTimeout(() => { + setLoading(false); + }, 1500); + }, []); + return ( + <> +
+ +
+
+ 活跃用户数量 + + <SvgIcon size={20} style={{ marginRight: '4px', color: token.colorPrimary }} name='solar'></SvgIcon> + +2.6% + + + <CountUp start={0} end={122} duration={3} /> + +
+
+ +
+
+
+ +
+ +
+
+ 总下载量 + + <SvgIcon + size={20} + style={{ marginRight: '4px', color: token.colorError, transform: 'rotate(180deg)' }} + name='solar' + ></SvgIcon> + -2.6% + + + <CountUp start={0} end={1322} duration={3} /> + +
+
+ +
+
+
+ +
+ +
+
+ 总安装数量 + + <SvgIcon size={20} style={{ marginRight: '4px', color: token.colorPrimary }} name='solar'></SvgIcon> + +5.6% + + + <CountUp start={0} end={12322} duration={3} /> + +
+
+ +
+
+
+ + + ); +}; diff --git a/apps/admin/src/views/home/components/ChartsCard.tsx b/apps/admin/src/views/home/components/ChartsCard.tsx index fe1e0338..f5f40a6b 100644 --- a/apps/admin/src/views/home/components/ChartsCard.tsx +++ b/apps/admin/src/views/home/components/ChartsCard.tsx @@ -1,32 +1,25 @@ -import { Card } from 'antd'; - import { useECharts } from '@/hooks/web/useECharts'; import type { EChartsOption } from 'echarts'; import type { FC } from 'react'; -interface propState { - loading: boolean - options: EChartsOption - height: number +interface PropState { + loading: boolean; + options: EChartsOption; + height?: number; } -const ChartsCard: FC = ({ loading, options, height }) => { +const ChartsCard: FC = ({ loading, options, height = '100%' }) => { const { chartRef } = useECharts(options, loading); return ( - -
- +
); }; diff --git a/apps/admin/src/views/home/components/CommitTable.tsx b/apps/admin/src/views/home/components/CommitTable.tsx index a42c1e6f..f6225fc1 100644 --- a/apps/admin/src/views/home/components/CommitTable.tsx +++ b/apps/admin/src/views/home/components/CommitTable.tsx @@ -3,9 +3,11 @@ /* eslint-disable @typescript-eslint/no-unused-vars */ // 晚点处理吧,类型导出有问题i import dayjs from 'dayjs'; -import { type GSearchTableField, GSearchTable } from 'gbeata'; +import { GSearchTable } from 'gbeata'; import { memo, useEffect, useMemo, useState } from 'react'; +import type { GSearchTableField } from 'gbeata/lib/GSearchTable/g-search-table'; + function CommitTable() { const [data, setData] = useState([]); diff --git a/apps/admin/src/views/home/components/CountUpCard.tsx b/apps/admin/src/views/home/components/CountUpCard.tsx index 4aa44bb1..30bb33a3 100644 --- a/apps/admin/src/views/home/components/CountUpCard.tsx +++ b/apps/admin/src/views/home/components/CountUpCard.tsx @@ -1,19 +1,19 @@ -import { Card } from 'antd' -import CountUp from 'react-countup' +import { Card } from 'antd'; +import CountUp from 'react-countup'; -import SvgIcon from '@/components/SvgIcon' +import SvgIcon from '@/components/SvgIcon'; -import type { FC } from 'react' +import type { FC } from 'react'; -interface propState { - loading: boolean - title: string - color: string - iconName: string - countNum: number +interface PropState { + loading: boolean; + title: string; + color: string; + iconName: string; + countNum: number; } -const CountUpCard: FC = props => ( +const CountUpCard: FC = (props) => (
= props => ( width: '120px', height: '120px', borderRadius: '8px 0 0 8px', - background: props.color + background: props.color, }} > @@ -34,13 +34,13 @@ const CountUpCard: FC = props => ( duration={3} style={{ fontSize: '32px', - color: '#515a6e' + color: '#515a6e', }} />

{props.title}

-) +); -export default CountUpCard +export default CountUpCard; diff --git a/apps/admin/src/views/home/components/SlickBox.tsx b/apps/admin/src/views/home/components/SlickBox.tsx new file mode 100644 index 00000000..43aa4302 --- /dev/null +++ b/apps/admin/src/views/home/components/SlickBox.tsx @@ -0,0 +1,136 @@ +import { Typography } from 'antd'; +import { useTheme } from 'antd-style'; +import { useState } from 'react'; +import { BaseSlick, Translatex } from 'ui'; + +import cover_1 from '@/assets/images/cover_1.jpg'; +import cover_2 from '@/assets/images/cover_2.jpg'; +import cover_3 from '@/assets/images/cover_3.jpg'; +import cover_4 from '@/assets/images/cover_4.jpg'; +import cover_5 from '@/assets/images/cover_5.jpg'; + +const { Title, Text } = Typography; + +const SlickBox = () => { + const [current, setCurrent] = useState(1); + const token = useTheme(); + return ( + { + setCurrent(index + 1); + }, + }} + > +
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+ +
+ + + 作者:Gbeata + + + + + 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ + + + + + 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 + + +
+
+
+ ); +}; + +export default SlickBox; diff --git a/apps/admin/src/views/home/components/styles.ts b/apps/admin/src/views/home/components/styles.ts new file mode 100644 index 00000000..ddddbaeb --- /dev/null +++ b/apps/admin/src/views/home/components/styles.ts @@ -0,0 +1,22 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(({ token }) => ({ + flex: { + display: 'flex', + '.flex-title': { + color: token.colorPrimary, + }, + '.card-left': { + flex: 1, + '.card-count': { + display: 'flex', + alignItems: 'center', + }, + }, + '.card-right': { + width: '40%', + }, + }, +})); + +export default useStyles; diff --git a/apps/admin/src/views/home/index.tsx b/apps/admin/src/views/home/index.tsx index fa5d6050..96f969de 100644 --- a/apps/admin/src/views/home/index.tsx +++ b/apps/admin/src/views/home/index.tsx @@ -1,24 +1,18 @@ import { Button, Col, Divider, Row, Typography } from 'antd'; -import { useTheme } from 'antd-style'; -import { type FC, useState } from 'react'; -import { AnimatePanel, BaseSlick, Translatex } from 'ui'; +import { AnimatePanel } from 'ui'; import SvgIcon from '@/components/SvgIcon'; -import cover_1 from '@/assets/images/cover_1.jpg'; -import cover_2 from '@/assets/images/cover_2.jpg'; -import cover_3 from '@/assets/images/cover_3.jpg'; -import cover_4 from '@/assets/images/cover_4.jpg'; -import cover_5 from '@/assets/images/cover_5.jpg'; - +import { AnalyzeCard } from './components/AnalyzeCard'; import CommitTable from './components/CommitTable'; +import SlickBox from './components/SlickBox'; import useStyles from './index.style'; +import type { FC } from 'react'; + const { Title, Text } = Typography; const HomePage: FC = () => { const { styles } = useStyles(); - const token = useTheme(); - const [current, setCurrent] = useState(1); return (
@@ -59,126 +53,19 @@ const HomePage: FC = () => {
- { - setCurrent(index + 1); - }, - }} - > -
- -
- - - 作者:Gbeata - - - - - 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ - - - - - 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 - - -
-
-
- -
- - - 作者:Gbeata - - - - - 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ - - - - - 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 - - -
-
-
- -
- - - 作者:Gbeata - - - - - 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ - - - - - 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 - - -
-
-
- -
- - - 作者:Gbeata - - - - - 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ - - - - - 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 - - -
-
-
- -
- - - 作者:Gbeata - - - - - 还没有想清楚如何介绍自己和系统之前,就请允许我使用这些文字占位吧~ - - - - - 详细介绍下自己吧:我是一个小前端呀小前端,小前端啊小前端 - - -
-
-
+
- + + + + + 其实呢,大部分普通人的生活,就是在做那些零零碎碎的小事,工作也好,生活也好,哪有那么多惊天动地的大事呢,只不过我们很多时候并没有用心,又或者我们太忙碌,大焦虑,无法从这些小事中品出温情,获得满足。 + 借此记录自己每天的点点滴滴,充实自己。 + + ); diff --git a/packages/ui/modules/AnimatePanel/Translatex.tsx b/packages/ui/modules/AnimatePanel/Translatex.tsx index d8040cf4..928f8a33 100644 --- a/packages/ui/modules/AnimatePanel/Translatex.tsx +++ b/packages/ui/modules/AnimatePanel/Translatex.tsx @@ -1,15 +1,15 @@ import { type AnimationConfig, animated, useSpring } from '@react-spring/web'; import React from 'react'; -type Props = { - children: React.ReactNode | string; +export type TranslateProps = { + children?: React.ReactNode; direction?: string; delay?: number; run?: boolean; config?: Partial; className?: string; }; -export default function Translatex(props: Props) { +export default function Translatex(props: TranslateProps) { const { children, direction = 'left', @@ -31,7 +31,7 @@ export default function Translatex(props: Props) { : `${ direction === 'left' ? 'translateX(80px) scale(0.9) rotateY(10deg)' - : 'translateY(200px) scale(0.9) rotateY(10deg)' + : 'translateY(80px) scale(0.9) rotateY(10deg)' }`, delay, config: { ...config }, diff --git a/packages/ui/modules/Card/index.tsx b/packages/ui/modules/Card/index.tsx new file mode 100644 index 00000000..f262bb16 --- /dev/null +++ b/packages/ui/modules/Card/index.tsx @@ -0,0 +1,23 @@ +import { Card } from 'antd'; + +import Translatex from '../AnimatePanel/Translatex'; + +import type { TranslateProps } from '../AnimatePanel/Translatex'; +import type { CardProps } from 'antd/lib/card'; + +export interface SkeletonCardProps extends CardProps, TranslateProps { + loading?: boolean; +} + +const SkeletonCard = (props: SkeletonCardProps) => { + const { loading = true, delay = 200, ...rest } = props; + return ( + + + {props.children} + + + ); +}; + +export default SkeletonCard; diff --git a/packages/ui/modules/index.ts b/packages/ui/modules/index.ts index c01a9fb3..3561cb34 100644 --- a/packages/ui/modules/index.ts +++ b/packages/ui/modules/index.ts @@ -1,5 +1,6 @@ import AnimatePanel from './AnimatePanel/index'; import Translatex from './AnimatePanel/Translatex'; +import BaseCard from './Card'; import BaseSlick from './Slick/BaseSlick'; -export { AnimatePanel, BaseSlick, Translatex }; +export { AnimatePanel, BaseCard, BaseSlick, Translatex }; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e7eb8ea7..1bc183da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -120,6 +120,9 @@ importers: echarts: specifier: ^5.4.3 version: registry.npmmirror.com/echarts@5.4.3 + echarts-for-react: + specifier: ^3.0.2 + version: registry.npmmirror.com/echarts-for-react@3.0.2(echarts@5.4.3)(react@18.2.0) file-saver: specifier: ^2.0.5 version: registry.npmmirror.com/file-saver@2.0.5 @@ -10371,6 +10374,21 @@ packages: version: 0.2.0 dev: true + registry.npmmirror.com/echarts-for-react@3.0.2(echarts@5.4.3)(react@18.2.0): + resolution: {integrity: sha512-DRwIiTzx8JfwPOVgGttDytBqdp5VzCSyMRIxubgU/g2n9y3VLUmF2FK7Icmg/sNVkv4+rktmrLN9w22U2yy3fA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/echarts-for-react/-/echarts-for-react-3.0.2.tgz} + id: registry.npmmirror.com/echarts-for-react/3.0.2 + name: echarts-for-react + version: 3.0.2 + peerDependencies: + echarts: ^3.0.0 || ^4.0.0 || ^5.0.0 + react: ^15.0.0 || >=16.0.0 + dependencies: + echarts: registry.npmmirror.com/echarts@5.4.3 + fast-deep-equal: registry.npmmirror.com/fast-deep-equal@3.1.3 + react: registry.npmmirror.com/react@18.2.0 + size-sensor: registry.npmmirror.com/size-sensor@1.0.2 + dev: false + registry.npmmirror.com/echarts@5.4.3: resolution: {integrity: sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/echarts/-/echarts-5.4.3.tgz} name: echarts @@ -21353,6 +21371,12 @@ packages: arg: registry.npmmirror.com/arg@5.0.2 sax: registry.npmmirror.com/sax@1.3.0 + registry.npmmirror.com/size-sensor@1.0.2: + resolution: {integrity: sha512-2NCmWxY7A9pYKGXNBfteo4hy14gWu47rg5692peVMst6lQLPKrVjhY+UTEsPI5ceFRJSl3gVgMYaUi/hKuaiKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/size-sensor/-/size-sensor-1.0.2.tgz} + name: size-sensor + version: 1.0.2 + dev: false + registry.npmmirror.com/skin-tone@2.0.0: resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/skin-tone/-/skin-tone-2.0.0.tgz} name: skin-tone From 0f975886c64c49cea25f6914f00a9c94cdd98748 Mon Sep 17 00:00:00 2001 From: G Date: Thu, 21 Dec 2023 01:52:42 +0800 Subject: [PATCH 039/134] =?UTF-8?q?feat:=20:sparkles:=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E7=94=A8=E6=88=B7Card?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/assets/icons/wave.svg | 1 + apps/admin/src/assets/images/avatar_2.jpg | Bin 0 -> 4728 bytes apps/admin/src/components/SvgIcon/index.tsx | 8 +- apps/admin/src/components/SvgIcon/types.ts | 9 ++- apps/admin/src/components/UserCard/index.tsx | 75 +++++++++++++++++++ apps/admin/src/components/UserCard/styles.ts | 59 +++++++++++++++ apps/admin/src/views/home/index.tsx | 4 + 7 files changed, 150 insertions(+), 6 deletions(-) create mode 100644 apps/admin/src/assets/icons/wave.svg create mode 100644 apps/admin/src/assets/images/avatar_2.jpg create mode 100644 apps/admin/src/components/UserCard/index.tsx create mode 100644 apps/admin/src/components/UserCard/styles.ts diff --git a/apps/admin/src/assets/icons/wave.svg b/apps/admin/src/assets/icons/wave.svg new file mode 100644 index 00000000..bedceedd --- /dev/null +++ b/apps/admin/src/assets/icons/wave.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/images/avatar_2.jpg b/apps/admin/src/assets/images/avatar_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0ffd3e5d7c350dc415936a13d064911bc1140dd3 GIT binary patch literal 4728 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 + + 1212 + 其实呢,大部分普通人的生活,就是在做那些零零碎碎的小事,工作也好,生活也好,哪有那么多惊天动地的大事呢,只不过我们很多时候并没有用心,又或者我们太忙碌,大焦虑,无法从这些小事中品出温情,获得满足。 From 7a1aa84322fb6f867da77bdadc02be1b3b15965a Mon Sep 17 00:00:00 2001 From: G Date: Thu, 21 Dec 2023 21:27:06 +0800 Subject: [PATCH 040/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?userCard=E5=9C=86=E8=A7=92=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 2 +- .../src/components/LoadingPage/index.tsx | 7 ++++++ .../admin/src/components/LoadingPage/style.ts | 11 ++++++++++ apps/admin/src/components/UserCard/index.tsx | 22 ++++++++++++++++--- apps/admin/src/components/UserCard/styles.ts | 1 + apps/admin/src/views/home/index.tsx | 4 ++-- 6 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 apps/admin/src/components/LoadingPage/index.tsx create mode 100644 apps/admin/src/components/LoadingPage/style.ts diff --git a/apps/admin/package.json b/apps/admin/package.json index 7e1f2238..b2956776 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -3,7 +3,7 @@ "version": "0.0.0", "scripts": { "dev": "vite", - "build:pro": "rimraf dist && tsc && vite build", + "build": "rimraf dist && vite build", "preview": "vite preview", "clean:cache": "rimraf .eslintcache && rimraf node_modules && pnpm install", "lint": "eslint --cache --fix \"{src,mock,build}/**/*.{js,ts,tsx}\"", diff --git a/apps/admin/src/components/LoadingPage/index.tsx b/apps/admin/src/components/LoadingPage/index.tsx new file mode 100644 index 00000000..f9537d21 --- /dev/null +++ b/apps/admin/src/components/LoadingPage/index.tsx @@ -0,0 +1,7 @@ +import useStyles from './style'; + +const LoadingPage = () => { + const { styles } = useStyles(); + return
Loading...
; +}; +export default LoadingPage; diff --git a/apps/admin/src/components/LoadingPage/style.ts b/apps/admin/src/components/LoadingPage/style.ts new file mode 100644 index 00000000..7d8ceaeb --- /dev/null +++ b/apps/admin/src/components/LoadingPage/style.ts @@ -0,0 +1,11 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(() => ({ + 'loading-page': { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + }, +})); + +export default useStyles; diff --git a/apps/admin/src/components/UserCard/index.tsx b/apps/admin/src/components/UserCard/index.tsx index c6e99c42..39ccad98 100644 --- a/apps/admin/src/components/UserCard/index.tsx +++ b/apps/admin/src/components/UserCard/index.tsx @@ -15,6 +15,16 @@ const { Text, Title } = Typography; export interface UserCardProp extends CardProps { children?: React.ReactNode; } + +const UserFooter: React.FC<{ name: string; count: number }> = ({ name, count }) => ( +
+ {name} + + {count}K + +
+); + const UserCard: React.FC = (prop) => { const { children, ...rest } = prop; const [loading, setLoading] = React.useState(true); @@ -47,7 +57,11 @@ const UserCard: React.FC = (prop) => { example } - actions={[]} + actions={[ + , + , + , + ]} >
@@ -55,9 +69,11 @@ const UserCard: React.FC = (prop) => {
- Gbeata + + Gbeata + 来历不明 - +
- + 1212 - 1212 + From 0035bb0aac676a6db0dec14adeeeb11563bc4514 Mon Sep 17 00:00:00 2001 From: G Date: Thu, 21 Dec 2023 22:54:13 +0800 Subject: [PATCH 041/134] =?UTF-8?q?feat:=20:sparkles:=20=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E9=A1=B5=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/App.tsx | 20 +++++- .../src/components/LoadingPage/index.tsx | 14 +++- .../admin/src/components/LoadingPage/style.ts | 67 ++++++++++++++++++- 3 files changed, 98 insertions(+), 3 deletions(-) diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 39a66bfe..bb05ef81 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -1,4 +1,5 @@ import { ThemeProvider } from 'antd-style'; +import { useEffect, useState } from 'react'; import { RouterProvider } from 'react-router-dom'; import { useGlobalStore } from 'store'; @@ -7,8 +8,25 @@ import redImg from '@/assets/images/red-blur.png'; import router from '@/router'; import CustomGlobal from '@/styles/GlobalPager'; +import LoadingPage from './components/LoadingPage'; + function App() { const preset = useGlobalStore((state) => state.preset); + const [loading, setLoading] = useState(true); + + useEffect(() => { + // 异步操作模拟(例如数据加载、初始化等) + const asyncOperation = async () => { + // 模拟异步操作 + await new Promise((resolve) => { + setTimeout(resolve, 2000); + }); + // 完成异步操作后,切换到主应用 + setLoading(false); + }; + + asyncOperation(); + }, []); // 仅在组件挂载时执行 return ( - + {loading ? : } ); } diff --git a/apps/admin/src/components/LoadingPage/index.tsx b/apps/admin/src/components/LoadingPage/index.tsx index f9537d21..3f9d7aa8 100644 --- a/apps/admin/src/components/LoadingPage/index.tsx +++ b/apps/admin/src/components/LoadingPage/index.tsx @@ -1,7 +1,19 @@ +import SvgIcon from '../SvgIcon'; import useStyles from './style'; const LoadingPage = () => { const { styles } = useStyles(); - return
Loading...
; + return ( +
+
+ +
+
+ ); }; export default LoadingPage; diff --git a/apps/admin/src/components/LoadingPage/style.ts b/apps/admin/src/components/LoadingPage/style.ts index 7d8ceaeb..24746427 100644 --- a/apps/admin/src/components/LoadingPage/style.ts +++ b/apps/admin/src/components/LoadingPage/style.ts @@ -1,10 +1,75 @@ import { createStyles } from 'antd-style'; -const useStyles = createStyles(() => ({ +const useStyles = createStyles(({ token }) => ({ 'loading-page': { display: 'flex', alignItems: 'center', justifyContent: 'center', + width: '100%', + height: '100vh', + '.loading-logo': { + position: 'absolute', + color: token.colorPrimary, + left: '50%', + marginLeft: '-16px', + animation: 'loading3 2s linear forwards', + }, + '@keyframes loading3': { + '50%': { + transform: 'scale(0.8)', + opacity: 0.6, + }, + }, + '.loading-side': { + width: '80px', + height: '80px', + border: `2px solid ${token.colorPrimaryBorder}`, + animation: 'loading 2s linear forwards', + }, + '@keyframes loading': { + '25%': { + transform: 'rotate(120deg)', + }, + '50%': { + opacity: 0.5, + borderRadius: '50%', + transform: 'scale(0.85) rotate(360deg)', + }, + '100%': { + transform: 'scale(1.15)', + opacity: 1, + borderRadius: '40%', + borderColor: token.colorPrimaryBorderHover, + }, + }, + '.loading-in': { + width: '68px', + height: '68px', + position: 'absolute', + left: '50%', + marginLeft: '-38px', + border: `4px solid ${token.colorPrimaryBorderHover}`, + animation: 'loading1 2s linear forwards', + }, + '@keyframes loading1': { + '0%': { + transform: 'rotate(45deg)', + }, + '25%': { + transform: 'rotate(180deg) ', + }, + '50%': { + opacity: 0.5, + borderRadius: '50%', + transform: 'rotate(380deg) scale(1.4)', + }, + '100%': { + transform: 'scale(0.98)', + opacity: 1, + borderRadius: '40%', + borderColor: token.colorPrimaryBorder, + }, + }, }, })); From 4ed0a1af1c3289f44c7fc12cacdb1fdf5f93fa85 Mon Sep 17 00:00:00 2001 From: G Date: Fri, 22 Dec 2023 17:09:50 +0800 Subject: [PATCH 042/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E9=A1=B5=E5=8A=A8=E7=94=BB=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/App.tsx | 2 +- .../admin/src/components/LoadingPage/style.ts | 21 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index bb05ef81..463684ba 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -19,7 +19,7 @@ function App() { const asyncOperation = async () => { // 模拟异步操作 await new Promise((resolve) => { - setTimeout(resolve, 2000); + setTimeout(resolve, 3000); }); // 完成异步操作后,切换到主应用 setLoading(false); diff --git a/apps/admin/src/components/LoadingPage/style.ts b/apps/admin/src/components/LoadingPage/style.ts index 24746427..fb264224 100644 --- a/apps/admin/src/components/LoadingPage/style.ts +++ b/apps/admin/src/components/LoadingPage/style.ts @@ -12,11 +12,12 @@ const useStyles = createStyles(({ token }) => ({ color: token.colorPrimary, left: '50%', marginLeft: '-16px', - animation: 'loading3 2s linear forwards', + animation: 'loading3 3s linear forwards', + transformOrigin: 'center center', }, '@keyframes loading3': { '50%': { - transform: 'scale(0.8)', + transform: 'perspective(100px) rotateY(360deg) scale(0.8)', opacity: 0.6, }, }, @@ -24,21 +25,21 @@ const useStyles = createStyles(({ token }) => ({ width: '80px', height: '80px', border: `2px solid ${token.colorPrimaryBorder}`, - animation: 'loading 2s linear forwards', + animation: 'loading 3s linear forwards', }, '@keyframes loading': { '25%': { - transform: 'rotate(120deg)', + transform: 'rotate(180deg)', }, '50%': { opacity: 0.5, borderRadius: '50%', - transform: 'scale(0.85) rotate(360deg)', + transform: 'scale(0.85)', }, '100%': { transform: 'scale(1.15)', opacity: 1, - borderRadius: '40%', + borderRadius: '30%', borderColor: token.colorPrimaryBorderHover, }, }, @@ -49,24 +50,24 @@ const useStyles = createStyles(({ token }) => ({ left: '50%', marginLeft: '-38px', border: `4px solid ${token.colorPrimaryBorderHover}`, - animation: 'loading1 2s linear forwards', + animation: 'loading1 3s linear forwards', }, '@keyframes loading1': { '0%': { transform: 'rotate(45deg)', }, '25%': { - transform: 'rotate(180deg) ', + transform: 'rotate(270deg) ', }, '50%': { opacity: 0.5, borderRadius: '50%', - transform: 'rotate(380deg) scale(1.4)', + transform: 'scale(1.4)', }, '100%': { transform: 'scale(0.98)', opacity: 1, - borderRadius: '40%', + borderRadius: '30%', borderColor: token.colorPrimaryBorder, }, }, From 9494594683e1d0d12b64793ac7c9b10b56cfd1e1 Mon Sep 17 00:00:00 2001 From: G Date: Fri, 22 Dec 2023 18:07:48 +0800 Subject: [PATCH 043/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=BC=B9=E7=AA=97comfirm=E6=A0=B7=E5=BC=8F=E4=B8=BB=E9=A2=98?= =?UTF-8?q?=E4=B8=8D=E7=94=9F=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/README.en-US.md | 90 ------------------- apps/admin/src/App.tsx | 1 - apps/admin/src/hooks/web/useMessage.tsx | 45 +--------- .../feature/components/UserDropdown.tsx | 35 ++++---- 4 files changed, 23 insertions(+), 148 deletions(-) diff --git a/apps/admin/README.en-US.md b/apps/admin/README.en-US.md index b151048e..e69de29b 100644 --- a/apps/admin/README.en-US.md +++ b/apps/admin/README.en-US.md @@ -1,90 +0,0 @@ -

- -

-
- -**English** | [中文](./README.md) - -## Introduction - -#### React-admin-design is a back-end management system solution based on React18 + ant-design5, it uses the latest front-end technology stack, and provides a wealth of functional components modules, can help you quickly build enterprise-level back-end front-end architecture. - -## Feature - -- **The Technology Stack**:Use React18, Vite4, TSX and other front-end technology development -- **Theming**: Configurable themes -- **International**:Built-in complete internationalization program -- **Mock Server** Built-in mock data scheme - -## Preview - -> ##### Preview Site:[https://baimingxuan.github.io/react-admin-design/](https://baimingxuan.github.io/react-admin-design/) -> -> ##### Github Site:[https://github.com/baimingxuan/react-admin-design](https://github.com/baimingxuan/react-admin-design) -> - -![](https://cdn.jsdelivr.net/gh/baimingxuan/media-store/images/home-vue3.png) - -## Development - -```bash -// clone -git clone https://github.com/baimingxuan/react-admin-design.git - -// install -pnpm install - -// dev -pnpm run dev -``` - -## Build - -```bash -// build -pnpm run build -``` - -## Browser support - -The `Chrome 80+` browser is recommended for local development - -Support modern browsers, not IE - -| [ Edge](http://godban.github.io/browsers-support-badges/)
IE | [ Edge](http://godban.github.io/browsers-support-badges/)
Edge | [Firefox](http://godban.github.io/browsers-support-badges/)
Firefox | [Chrome](http://godban.github.io/browsers-support-badges/)
Chrome | [Safari](http://godban.github.io/browsers-support-badges/)
Safari | -| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | -| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions | - -## Git Contribution submission specification - -- `feat` Add new features -- `fix` Fix the problem/BUG -- `style` The code style is related and does not affect the running result -- `perf` Optimization/performance improvement -- `refactor` Refactor -- `revert` Undo edit -- `test` Test related -- `docs` Documentation/notes -- `chore` Dependency update/scaffolding configuration modification etc. \ No newline at end of file diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 463684ba..4df41c27 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -13,7 +13,6 @@ import LoadingPage from './components/LoadingPage'; function App() { const preset = useGlobalStore((state) => state.preset); const [loading, setLoading] = useState(true); - useEffect(() => { // 异步操作模拟(例如数据加载、初始化等) const asyncOperation = async () => { diff --git a/apps/admin/src/hooks/web/useMessage.tsx b/apps/admin/src/hooks/web/useMessage.tsx index 1e314989..1596de20 100644 --- a/apps/admin/src/hooks/web/useMessage.tsx +++ b/apps/admin/src/hooks/web/useMessage.tsx @@ -1,53 +1,16 @@ -import { CheckCircleFilled, CloseCircleFilled, InfoCircleFilled } from '@ant-design/icons'; import { message as Message, Modal } from 'antd'; -import { isString } from '@/utils/is'; - import type { ModalFuncProps } from 'antd'; export interface ModalOptionsEx extends Omit { - iconType: 'success' | 'info' | 'warning' | 'error' -} - -function getIcon(iconType: string) { - if (iconType === 'warning') { - return ; - } if (iconType === 'success') { - return ; - } if (iconType === 'info') { - return ; - } - return ; -} - -function renderContent({ content }: Pick) { - if (isString(content)) { - // @ts-ignore - return
${content as string}
`}>; - } - return content; -} - -// Create confirmation box -function createConfirm(options: ModalOptionsEx) { - const iconType = options.iconType || 'warning'; - Reflect.deleteProperty(options, 'iconType'); - - const opt: ModalFuncProps = { - centered: true, - icon: getIcon(iconType), - content: renderContent(options), - okText: '确定', - cancelText: '取消', - ...options, - }; - - return Modal.confirm(opt); + iconType: 'success' | 'info' | 'warning' | 'error'; } export function useMessage() { + const [modal, contextHolder] = Modal.useModal(); return { createMessage: Message, - createConfirm, + createConfirm: modal.confirm, + contextHolder, }; } diff --git a/apps/admin/src/layout/feature/components/UserDropdown.tsx b/apps/admin/src/layout/feature/components/UserDropdown.tsx index 2079f75f..4b218b77 100644 --- a/apps/admin/src/layout/feature/components/UserDropdown.tsx +++ b/apps/admin/src/layout/feature/components/UserDropdown.tsx @@ -15,6 +15,7 @@ import { resetState } from '@/stores/modules/user'; import type { MenuProps } from 'antd'; export default function UserDropdown() { + const { createConfirm, contextHolder } = useMessage(); const items: MenuProps['items'] = [ { key: 'lock', @@ -44,6 +45,8 @@ export default function UserDropdown() { case 'logout': handleLogout(); break; + default: + break; } }; @@ -56,10 +59,7 @@ export default function UserDropdown() { const handleLock = () => {}; const handleLogout = () => { - const { createConfirm } = useMessage(); - createConfirm({ - iconType: 'warning', title: 温馨提醒, content: 是否确认退出系统?, onOk: async () => { @@ -83,18 +83,21 @@ export default function UserDropdown() { }; return ( - - - - - + <> + {contextHolder} + + + + + + ); } From 72e3aefe922d01b3360cd56a2d38c5d34ddd0034 Mon Sep 17 00:00:00 2001 From: G Date: Fri, 22 Dec 2023 18:08:40 +0800 Subject: [PATCH 044/134] =?UTF-8?q?feat:=20:sparkles:=20=E5=8E=BB=E9=99=A4?= =?UTF-8?q?admin=E7=9F=AD=E8=B7=AF=E8=BF=90=E7=AE=97=E7=AC=A6=E9=99=90?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/.eslintrc.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/admin/.eslintrc.js b/apps/admin/.eslintrc.js index 2dcbb68f..a70a4716 100644 --- a/apps/admin/.eslintrc.js +++ b/apps/admin/.eslintrc.js @@ -4,6 +4,9 @@ module.exports = { extends: ['gbeata-eslint'], parserOptions: { tsconfigRootDir: __dirname, - project: ['./tsconfig.json'] - } -} + project: ['./tsconfig.json'], + }, + rules: { + '@typescript-eslint/no-unused-expressions': 'off', + }, +}; From 67d356cbdd0aa0bcd588022055f7a643691f1adb Mon Sep 17 00:00:00 2001 From: G Date: Sat, 23 Dec 2023 00:59:14 +0800 Subject: [PATCH 045/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E6=A0=87=E9=A2=98,=20=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E9=A1=B5=E9=9D=A2icon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../public/{ => characters}/character_3.png | Bin apps/admin/public/characters/character_4.png | Bin 0 -> 11957 bytes apps/admin/public/characters/character_6.png | Bin 0 -> 12247 bytes apps/admin/public/characters/character_8.png | Bin 0 -> 11326 bytes apps/admin/src/assets/icons/403.svg | 1 + apps/admin/src/assets/icons/404.svg | 1 + apps/admin/src/assets/icons/500.svg | 1 + apps/admin/src/assets/icons/homeinfo.svg | 2 +- apps/admin/src/views/exception/index.tsx | 11 +++++++---- apps/admin/src/views/login/index.style.ts | 3 +++ apps/admin/src/views/login/index.tsx | 1 + 11 files changed, 15 insertions(+), 5 deletions(-) rename apps/admin/public/{ => characters}/character_3.png (100%) create mode 100644 apps/admin/public/characters/character_4.png create mode 100644 apps/admin/public/characters/character_6.png create mode 100644 apps/admin/public/characters/character_8.png create mode 100644 apps/admin/src/assets/icons/403.svg create mode 100644 apps/admin/src/assets/icons/404.svg create mode 100644 apps/admin/src/assets/icons/500.svg diff --git a/apps/admin/public/character_3.png b/apps/admin/public/characters/character_3.png similarity index 100% rename from apps/admin/public/character_3.png rename to apps/admin/public/characters/character_3.png diff --git a/apps/admin/public/characters/character_4.png b/apps/admin/public/characters/character_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce49ffe4fff5b5e0d68204b34443445597e03c8 GIT binary patch literal 11957 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 Hu0mjf`DqwK literal 0 HcmV?d00001 diff --git a/apps/admin/public/characters/character_6.png b/apps/admin/public/characters/character_6.png new file mode 100644 index 0000000000000000000000000000000000000000..f59a84417a1376bfaebb2935836b5ae8d156bb9c GIT binary patch literal 12247 zcmV;|FDTH7P)r(00093P)t-s0002Z zuBiI?`Tv=Le{5;ZaZaqPtkb@^CRI}!O->m@MAp>QwK+hTVqe;NRJyvlAwojz$tYI97#&|sDu2Dd9SIdV7j&X`1ktw_{GG;s)~U7`T5y%WhGi#V7aue zsHpdbbI*5nucxM6w6L(OtM>EqsCID`LPO5Z&Ge?8tXx?YK|;pG#rL+8n|5%*x3tmF z(5Y>1T(hs)*x25Ui1e(LV_RD5V_Aw{T&!4I{L8vqudB~mv@~#UHgs|@X=p8FWdE|KWV^N}TwGtZ zuqt6;pb;wkpqNvoqW`L(|D~K(siyzDulSsl|B-%Kt*W;mHUH0z|H_L0x2v=iG5?Br zT(PbHqHzDlx&OI;|HFp=uB89KgzlA&|Hg>whlBH&k^ilC|D0?8mT2aUhySQ^|72eO zy@A_>fa#Ho|FwMod2j!~wC|6J`dU~2Z)fCxegCm~|I?BG*p>2%U#l4};fRC(%)kDT zW&YgH|AKe_pojR5Vjxyl)JR7E)yKd;KjC(E(a+ESfpX_iP3whR@$c{4+1biMLehbJ z;oslxe|x@kaoBBd@KjQ=va;%Tc;8G)|KFM9fLYmmdC7Zs&Sh!o=H}RSbjQTQ|N8H` zsHy*_kmzu4|M2AXhK2f%ion0WyFgF=n3B$MZ@^w+|K{1RYG=$>V82jT%1Kt=XlmDA zW!}NR`*~N6Syru2SHiEbsVzY_L_NeTJ1H?QxS5UP&Cl9AMTrq9>et!CrJ4SOU*5d2 zn;$mTRAA4zx${I&(6FWLw0l)OJ88zj?VW7iq@5WU7<77fb^*4>0001GbW%=J01N#7 z5&r%e{{9&L{v-bVFezsKEJ^$RJ^tt9Tq#}t{(t`chk8Uos5+JC-@=@j{nJ$P!GCe4 zs+z^L&cv?$Vd8OF`qa*ya^TLb{`}F#vP|II{{7UO+0J|X(EY-U&&a%-&t)0!Hvj-E zAxT6*RCwCdn6YZ(KoEv^heImFA%s#1*`P+oHj>dn%wa(a!v#`Y>+9U@o22tAqzPPl zmm65YHY$Zmzs{{B%Xh3~JC|US`5G5)^zqM(Mnh0x`av8;NtDKc@0bKPrk{Gi4uF>i z4kc&_6JR;&*IB&Y}lI|;}IrlNB^b_U3Pj0hIY zh@ArjpP~^8*m*#d#tlJ%1MCe5nJ>N&1kjYRHwN^bARvU!lNW^$&D)=bWEB?Y5_F$3M=%nWmK3^qkw6qJU4F1XNL~&Em^=}5vaqN znbkju=40g;3Xagx9nbddQpj3|)Wlt%DUQvQE}M`*N~Lp0dwnEVJ}6#66*secS=8~k z?Np9>d_Mm`__yw|I-Yj&Y4ad+mCsj#2{jxz-$y{Tc)%(#)mw|R-2ZmovzBcb3xX8i zW31agDCYHvYl2>G2D0z&1}6sAL2?_{cx#~nur7j^Iga%}vuPVguQpf3gJ2!iaH1pU z5O-%IjHe2xKb_Lf^C_mAm4e2s7r~W|onspYM|40cot87!N8=KIa>+KZFH`Y z4js=YtJQ1G^YeN#AJdQCMRc1g9Hnzh$)y=6mrcd%rZswbS^pZ7cR`aLn~bY)%H0)e zjm{gF1Fg{0)A}2I&uHsyoXTcrFE1U=V6u8_*gQ5m+s$^{3jO{$|Npfb zmxH;jojkC%K`r-=vqiO%tzEPRLecMg9*<3@=5q5_Y*1e8v){{kp65Kl=BGE<4wKM(&rx)kmhv_-pMs^ zoG5b81bhy_{*DBA)`O(y=XX}_xicEY8N60)Sgu{!?x_ZjNE~ST2m=p^7$+}307>1l zd~7p^J4Av>&-QM$SgxJq#CIYk2O1XZhg?2LP>hl!Kickdh_;XWwuavo?L+WH{p5y+!p$c4jCc2=+yJ#gkoo=LZF+tY*Q;fMnb zf;`~lRUGqxBg-*rA4*U-{J6r0DKph7bZDL?j{;2|r-^Aa4>+WelyCG!AW$sa@!(#A zp~8phIlA|@qZVB?K2lj6F$sy9iAw2<6 z%yL9xxu4x);EoU zAN=#|tC?Z1*V_>nJTgEs3T|p}qBO{$FWC7^ZvG@xx99kg`ueNtHCkN-ALlq4Zn7+j zd7RviR7THGUS7Q+ODAy%M6CmlB2d8@;}g?X0@(oi$4+|`2k)C&i|#pCzwYX({@js& zPRIrk<+kjDhs`!<7)AglMK#v%?d)ttbW(Ub?ju3;U$RV|g#(hZ0bFa z?%;-tr}_i+{}A0%r@K>7#Nmvuf!-}nmGz^2pw7T3pZ>8XQ-aV0^SvMZ<=n&Wk6xKjl zkc|hZ%*jEt4vSGkH5!1T<*uBb6gk@U2%hXRlr%Za$Z)5Nx7zJ?o1KD4)1YDrH$E<) zuc+Xp7&TA=plSM;`;x9)`{1==W$mLo0!>NKOOvkT+CWsNwJ)pj1q5MD0%lCb*t7r$ z`w0qxVhzt$t$_vsLWZoaOZn{+E!b+4=RzgPL7kQXjrLwKl$_Qat*qBVXq=GGLzomY z)8gW(Bb*lcgJ7V5Agdt=@|vJ}BzTg81Y$#hZ#%aBH)p!@a$uC1a?|=mh3~z}Uuc{x zb)oSQ^E7dez5roXlgXi;LHgNjPK(9TXkkGhh!P(b7Lu#0ih^N{hZ1>|ZsUA>5F&u= z{Ly3idpOhWI?WVSUz6&#;?C*l((cQp#sMdir?1Z=E2-pAd@w}ER1_1=MlCdu-O9V# zTRXjDBdKsKEN4A2<5WBzXCTUx&bn=_NkhKh^|b&K3sgU15e-DGCeYf zTC8?ao7uk53yMbitBO<)f!wY(5)HqaT~Odr;4#J#SrG4TMadO};qW!eQ$_7_u%aup zE4{CaX8I&?M2Bzj`(m=);`amN2w`B$i5Gr9NB|*0$WPWopy4q^f=3;2Jq*;6n6}bq z+-;XO);98V!*m+$Q|0}0t>C`AJzUh|pvRBz$9H4=MKIDxc|p_PA0Ol!{Rn_^9(&Hy z-#<)kgnEN#C?4;S3M#oA=+Ktk2*xeV(ddSeO`c*;=8NRv zntaB^Rd~80!Jz-9+5D>+0ZlLxi4X`LH9!5C^g}N^{bR|TCkYM%xq0#cw0~=E1dsOi z*3}V6U&MogE8+PzmGwj-XU*o!L!<=}?3$a4_z9D(H@DfG{{6`d&zq5OI4lb?dFGLy z4-mDqYoMd&x8Od#er0J%y+d0!y211D?b{1QJdT{lA5p_>Hh)cD*EsLV%%RI-Sn2`~-tt6pgK8!|hf(n{OHNJk&g?Wm;z|7;xZ>P^ch23u?vOuBO~p zRE|kkY^h$>6IdpXC8&D*pVAqxC7Yi}&~It$pP6an?RIc54>E7Eo|)NL){`Vkl7c`i zLlgkr-BrztWBtks-JrduD@y(N1^rXfV_Y4#F;B4hIt}b*1Wo^YJcSPfd zPBvC!)PzoeD9d488%n==*S7gsbz2zti0skwvlWZw7S>n1&E>w9i21PYEoLlAOA zr?sGJe0HKvuIUc2i_}H8^xHL$<;hOT+oM7Ljw*tvk9Z;4Zu6i#ZvJgc8inDpn z|L}N@eqofYJZAXVJ&!2Q%=}0`$3HbvAMxZDR!<}+PgEF>)Mp%?-|zBVL_AD<9$QX^ zP(`ppjaiXbM?8K`2k`Jr-gr2O2=Z%CAqP>|pzUWLN6wnOnVWXMZlfp7wVvmUul+B0 z7DkGSvEmpFH`t}G73tF*aEwO{pBuMr9%h3Ds?s2QXSjQxofZSEH*unN1@!`E@1D4#Kn{zVF zwM|I3{d)cS&%8zM>|w(d77K_N;n+On$OSi7)4M^B*#^ioH#av+Pz6Edg#`6%bA^>m zN=zKO&Dq0->%Wp;41{>ra0>0^@n6L1WB2H|1tgPPk-8Ej$Q}KY8>QQ>V<+n5X@Lg~ zH?ufZR0@!ebrw<%j~PCuJTt32_BAv8DkeDr@gz@y8uOxmDy?(3iRUwV_Osy@My?d% zgo+f#994zR2E%j4bB-QcvI*+%Xycp!5K074dbIC1V7krOb6j~?pn^gev;`PyWStj| z@^p+3U!0%8@CkadUG}6XkaS#Oz5+Ex3<}+c%G~B~tKRZ-qv1G$rV9#zurTJB%Es{z z&!ap}9xg-xb!bqj0u81_%1N-7=Q=zI;dxk~k!en`JcvhvE018PA*Z8%cyWFKp8fkB zJXnZi*5;*CxdK(!?cLyt>IzS9bR0cCdiG0!0z*7PD`F@yjixk6mF9T5_Zts3q@jry zkSY*B`Gp15Jv-u~Xg66(<=D;H^W#B0I2LF=z(Yag07DBR6k@8#nG7u6LwWW)dSoFY zNOxRmInGlCBb?;6I9z2rdk_|AKERXpsWu%_G)8eoCIf+c3k#lZ*5`P;gGWI90HNRj z6qm-NR6P0>?l3)jvkrc#3LoT zb`7GyB^CQ*dXwQy^^~8ODho_nU%R6&W9*3j`J>8)odiwDp9&n(L@`y`&&aLB#-^M$3+;1S@ zusnkoc16-}8x`i#C7vqe?o8v@3CnZN;+S|a(cy-HWY|_64Qp}or0i9kqE(!p!HMLE zR@5Y7Seo3;nQ|_l5T>VFi*8%f0%mSp!;ItBuirmB%q@X&sDHW-20fnpOik(7yNL%N zbw$|p+~C9ov|A*}*na-}W4Sp=@+OQgJ$2{LS27(vhqcGvahMb6LEyQFEt^L$2Ib&E zafE|*W8@H_5uEghuYfXmD&kJsxaldLnPLa$P@)9ObE`W90;VLkce&@4>_!l@fZ>6v+QfJJZl&2 z4cmB=p-pq3Q5CeBd!2)P}jGJ$_b#o-eH z!GXrciQd0?TYLUW=xehYU1y`ViB zq~l?`@uAfLG>#Q@kpqY#sSb1RO#6?kJ?`wi{XtH3@Rm_s4>ZDw_JBt`uR3`SE6=h9 znc*XxwmO2iMY!kb=AIfHo!voCitKOv7N@BK9z^c1usC{Vi+%uMLU6bS+G;$O$g~?h zxa6+GWi~)45Ha*n6zY-UAWcp5;6rJiQ=B}v>*10FgKYrePOyW=hxt0hW6IOi)+C_G zz`cW(M`zM_Qd3lMRD(hzX=(yzaFDwKa2_u1r$RhV1L%2Qi%&cf<-xRIm8Y%^pf(G% zIKzemN2kSyY?cu#kf9y5fb+jP5C7|`O3 z!O+vr<%gazdY~akSr92sa&|NrbA-*xJa+ld%j%s5oVKJN^A(GKEo)FW`UxDhHBdk9 z3V@iYAc$YfEaP-krh~qL+FtSzv7k1MO0y%?6>T=jamZOvfPv0)3f}| zC||d<>=BOTfkZr2Q$q^WcW!BAX*aU8beyxB@^san?ogQLl%|myaM){6=cTwy=rR>z zUX}}0$7FqXYj@Y_(<>`Wqr55wNA29$aN=R6rj#g9d#skhmoLd|jr7)@9wNuWSgpoh zi#{743sz=x+7scuH_h8+^~dlC`518qf~fM)qchz$J%t>8q`toX3kF}m!UFMp=No+I zkW|LfOhA*zc`f=Rup@C(Q9b*Nx+M~bHaYz>g)STyp>*WLs@5ykkCp?U;yE( z0%~eHn;C#0ssRa}-Ix&Y1m6LELx*UrR@;%{ia}7D6NgH?-pZ0n@6obmCDLJ2)z{a+ zK}eY-D8iT4!h;t+U3)aKs}~sG;-L>wNB#)zgtVu6e&k({xvuHG)hFLU%& zj+_|eqbHxVJjjWYCl#nciL^yyOa!Dnm=Ls^l;{=6_2v; zlf*}_Ud@Y1aop%N3CklMekLF(#A=Gy>$Q0}5z<46U=lHwp3Qc}A_**x={AJ*kWJLJRjt!7DEJt|04(@kaUcQ9vMHnJiXv(4fB4gD+Wo> z8Yu^V_9apv4WfuBe2`{9^hkNg5l?J2oY+p8+Q{f{@K)*q5hNms5lMaU)wc4)R71{J z-yQ)+G_u+>mmMuJ9VZ}&49WDHDGxYZLC%LU*$|NP0bbH`s#Mk**|1@wR?{pXcnpZq zB7#i2aWW8&E{@w3nsEd;v@*?NO95E zM;n?u)#F-0dTVPMRu{-F(jIa;4QEU^G3qr|M>ws;ChqPTXI@k@ub~?wjnj;uFykJjTu3QB=-6=*vb?8>X5_gZ3VjhNH`q z{@^#9*}ml|WXtwvHfALJ_hYA6I2Cmr{^7uq;>i1nzCaHXI>D{x&|^5x6SX^ozlGBF zYbgJ#nN7wHIDF;_?wRqHPJo=PZrRnrBOuK&-3E(*|Qqn>PM86SbYg zJ34z)K4x(w`%2(29Aeh?n&z0fEhXYN^QUObM)&_v9dP*LHGlQn+-FN{7;4N#g4r0n zAK@?6G&Ra_N4IB_sX%dX_q?uW9Gqd>YjR$vM{CR)YOb&i2OiUH5&vR99ADWCM`x@EzCHqd6>`Qi8M#&O0W{jEp=WolNq?BZN@PH`sAW!0fY!OMG5c23j zym(ZK-}fx@yK|0v=iX~ZbBglh|LM2fd(Qml{HC;v&S_wBE)nPHQ}YWf1K|-GV0iZi z4PivCX^!wri^>70ZS-r&4GzA|M;z-=DRGWKs2i=}!#1f=9C(m!YZ^ozqzBNO@ex65 z-JG-F+y%$}A=arbKpIzMM500C;t0>k=y%Ql^!ok8NT31= zPDTeD#%K*V+Jo>!9oxuL8>2*MU=KIvvg9nYIcRVw9uXeJ(Hf*0bA-pMdU*U&fQ)-K zCPJrX4r)h6r&G+=L&;_YhdJYU2;Bpe@AM@4dp@kaClTNfCn7e4}8jJlEHZ(=QiGJcK-J8`}iy(i!rENjOnFl5n?+5n<^gk0(xg7&l5z)C*J^)0n#4s2OJ<@4+rT1jiHoNDBB`B z?BV)p8RjnewW@ejrv?W_>>HmOeg&jKC?I&s-BUYk-lNyTGfa0rdn{mZPXgJ-#e*9d z`o_w7#HYjh0R)c%nE^umlwFB_Q_u|BCjS23@H&)dt;{yTxhObuVr4uxZ(0e*0n#9l zDB;*sF7Jxr>1mHS3{gKzM0ixTfwQK0D37inGvkye__166gp^rV?>%@!p8i3b_3Ar1 zJnF)NX=R_jHvxi2C!Em|WRDX&x)vkA@!t93TTE zL4amDopR(^6+)B1b-Z?XkZ!@-^#a_Q zfzv}e(fRQ1?ek?_%U0YAPB;q$j|L$?YyNd^qa53q2>vcg9C*Z)3?DwcdtCO*`s-f2 zkRE{K0U|(_NCc=wJX+y!w!IHCnFR@_@0$@J0x0gE6)$M%gmWKM*&rlbr+}%}(1R0t zY~xzG3gl=BXq+!-AUM*aL07y%Xb2I51CAKmh-MukK+8`aRUUvo0Mx+G&+)-7)jF`E z#ZAE|pl~~H4Ap#3;prCgDCCR+afJH%m5=feh!3so2&n*}fFf~l9XB{M=rHuj8{ceF z9@O9kdk`RB5CSwZ%GgG{RYxDHxgZ2+hVpR2F^E&nD)r0+mGFn^#?XlpkQ|Ni~Q&%du<#idT; zKX>o7c%=D)YtP2uqg}k;RA{JXR}G@S#cgQVMNo*0IIh^+xJk#ae(PJwn%>m6TR-42 zlo<6EEd0IzG61D#QxB53#F-s8IRe?NNPsZ*!$=lGF>2e)k7wl$SX z<#L5B#4K#zwUd0L+f`q`fB)XS5;q{w7|KT!r$=HiQw4v~eBkl}0I^3V-Gxho^s`{8 z&%@LjLy3P>90ZRBAx3C)XD?lxKXPd?Jg49x4${r`ltie$ zsqe#-OhetKN`vO(W~`%nsf@!lOs_sKnxHux9&l2^lhqy#f(QX>6X0PwVkqXuRbwUQ zPd(!X!6VPJdQTowQa$WRktYXFT6=b2se~I4>=K5~^Tt$V=4pJv)H5dy4m@<#&pspIq$LL%->G2xpA{D@7dKSh81YcVXQi9BtRlS#6fTl95|a?nQ;Wi zNVk;mq;lCh)DI_|0(o}qNyfW%MW3ejlNAw?Z#)znT#l3Mu+8D{98nzhWJ*2U67nb@ zzk?7Sb6CB3^<4o1N40`vGCA|e9>=I2?K!w5Men0|56`al-sef82xPML~tSd(cP3MZ^XyH zfN*l)KjyIFph1V!{h7TlC6iAUZ8O7TdsKMb0fMJK?r~5RX((-U(2S`#M>uf#VFy|Z zk5hb{ARfDbTG{3E+SqENd}7sJ%@<5PeE34|0*HR70xIia}4EcE}!bJ2Gb_bTom7QTs=(f@==~$@R$iFJ@rNbSz{=hwd7Cb ztH0u%n#VWnL-|P0LDREMdeRv?K=4?vr1luf@qIDlT6)~O9ca(abjD6Nc<@B6u{C#}{cg>kt=f~-9QP@LYzVcrCW!Em=eX4lv?os< zyMUyJPT^{6jdt`-TeO2xPGReoTsAGXb6MMi2DiUWtfp3cNYP`5r%*^~k6KoIs3FwU zYG-UsnL`@#Y|CZ0OAp5fqN1n98p2Y&HFY2Js^Da^+1$2*@T7%Cc{o7i=@P4{HP>;B zlMpv2Q`nl#?4bTeOM0+MJo}r*YH3Y?$8jH9GlvA(R5ne=JKKpvAls9#-(On|ZnWB) z8sQNf{NRQ3j=K7t@E9Fi#i!O9+z>~V4||wHKXPVAUEaq-4ZF4)+z{+db@{09FsClR zlYZj;b<)Ekw`V}ChE{x^!`)g}4?Kc{a;Fa%;mLS9lGUh^jLX`@<>siNLj4W=~T@f`onj3JTjhN zw5L4{1V?zXcflD~RaJ=lPa;1FvOKIdxVb2{i}Ik{>T08Hrttl-U!BMUkpRJy|KK#R zw;xvf5Jy!T#Zy$lWb_#1Z;99yAQB!d2+y26uNV5zKJZXHdEu`;Zx$5fq3@Qb;B)}N zL+w)!>m-TaME8iZvI@jBUVK-_BuxR*1y_3(9-r^UZXdJUeEJp0^xJ<=Qu+XDdpI4a z(sO}F4{M4?dKO})e+Q=|jUojafCu^La*L1T`4k>%j!keC9({%AcsMNxE5X5dL%AtW z<;!1Dt%WBF350-J9!?7aJTwlh=|&z;c@9xXSP5e6c~}|a8u^fiPM8U+~AS3YoOq8&XMQpAiT>sZF%aNk z^yGWPli+G9JaX5ZDh~qU?rDzG6nDA%J&Z04TjMxIKAHARYtJFt?+g#-!RMIIg<<<4 zJpyEoH`6oONYBpj#FP&^5Ax|AKeS#?Pg;-U3G_Rre0Jz?#URXK!w4sm=``M|U6dSd3D-OfHv-JS#L zjnRXM?Mcmb$6q=<$BeND>yFEV1C>1N@>$*MiG@cGY}6aOe5B{=A3RCZKUa1hM?UrB zdQ|mB1!s6NmL8SQ&gqG@2MZ7CZS8USR(QR}`sVV4>^)^!D$m|n-%L*t->Nt1zH;(B zweyMKIo;`zZblEj!c$rvT6da!X7Gf4^MIL$K=A1HF+H;)PTTWMevP z@oSI$I(AQ?OBL=8-izEI`e_YkM`=kaQ@VusabExk*Vi*tAE~v z=cGLzJVVH5dm|tH>`9&tJP|w*Ur%YzH|fbv@bu)vv);DtANPj%Yu1oGvVW8Z&s78V zSoz?;+3g?wpvd22^iNjjQ~CGi!{rA_G!M#7KF6ki*6>7w@O0|!fahNF3@o2lNB`tS z;SbjH%k-%IV7MMVui;ViKzk;A{c{?q=h-n2a(*7O-tgQDPp95u&iV9tmc5=syWZIR z;IgSVx5uuxGwO|-=MOh$tfMdt1W{diRHu`!x|V{1G7X=>S0qXU3IsXybo>pUM?;nn z40Z-KRI~24d79ZV!RvL9NBRfr<9TW-o`?B^@VewRj}gB?p29p&V^5#On>?5f@D%+u z1SOBd{Uba;AJ%+Z^s8!+J|M4Y{U$s*eF_Wb=_mRW%z4ml;!^2Tn(Uvn{q_s|CfuYv z)gVvpc|g8#ohnDA~{*gLTo)`N30Um07M)Bl{=+o|V5S)bk*7M{^@U-tSEbCK8JZAFE>GUy? z2lF?6`w8;kzM>}qo>-r)d7goB7yCT&^Nm;^2l6fIpGcq8#*97+9;q{<56HK`Z=Cw< zmHlIdXG~rv!~^`cqvO&0tu(bQ884(QX5U*G3<0v;)Qq2#@z$$ip!p@|B&>@qMG;wsC5{CpWvTg=hG4Zr9?FtR%iPcRnFXL~$Iq z5P~46K#~41(_bP8ECMS63yPwawqPY9WXWx#zY9^YTQO-nbPz%i!GnhxFz}>!3Xh@- z9-3wGpuw7+WcTDnya*B7@Auw}Z>?swLxhHn(yzl${=E=Ny4|skoER65xv+O|$ zp67GG1Nv=w&Fy(d<%F@b3qP0`(&)S=mh5<{KkoOpc%Hr=KTn#Mw^y__h+zJ3ZQAt@ z_lG~Rj_129%G;w4AFb;H#WD^9>EsW-E)n~8MhUcO-E7u3x3xSFDB?vCA)f2vG)RFX z)-j?EKXCZ_gK?K>Y{0(r_ATOArw#H%7yCy=TAX+>2j%T=%NNev%uU|eMFK=T!WDe|fpMU=WwE61=VbA`(;z_ml*_=3FS=hsE+)tyrG3}h;{p2)a zvOPHJ0ds_Q&pdlM2jWKwZKgiqq4G5#*S4LWhZ`FkQzK1GOn7#>|MYUVXJ%$<3h(`4 zj~yPln-&b$OR%ew5|aW@2NeH)TyGpCK6Si#dtEN>fEA^6VH{ZQ7)Ga11Be% zNt7qcfKnqMTOO}b)<6)4fn<3S02BqFJOVlMXqk+D1mjr!pvnV4^HC+8(V(A>JmpL( zmC`fZA<{hYWYjXqo~NqmX^@_0KxBCeBZIJ;4m|hsDOFL_6dGg@<|!n2N#I3W^4aoa z(n>6*fK{(;SpKCUe$L?oT;8E1i`L7Io&F7-0L-qC-^am$g{%fo1^0J?)zX)fKIfaLD5N2GK%oY1sQ^rhuewgIxz ztqb-L25lyx&87cG^9wk{uwsG;Hjw}T002ovPDHLkV1fuW9!dZJ literal 0 HcmV?d00001 diff --git a/apps/admin/public/characters/character_8.png b/apps/admin/public/characters/character_8.png new file mode 100644 index 0000000000000000000000000000000000000000..44f1708755ff0b9b0d7b81bad9e116066b792084 GIT binary patch literal 11326 zcmV-EEWy)>P)M;uE^zEVvaO->z6P3`XOJ&TI)oQ3ql zr@MN0w^vU5qJw}vJsnI;V6m&3NJ+;yKXzneqq+rx^Qmq$G-fgfcN3Y@J>oYl#xV#^%|MRkB#=!I3t@iQkvXYL!f`6)~rugyiTDP!JrlMZDv^I8iKZu4@uc|nDc}10z zO{1VMY-&iFmqCn*N}rrFa&b?nq%m)9JcEHlk&aTUr#gRqENN&iW@Z0cR{zb4WyioP zVqhsx^jCg0s!vA4h|H8HZv3LKSYX56u|KOSHj)#R>n z|8r;?R#*S)rTLeT|G$9#oRt5gZr_H0|BGP%qniKW)Blua|CxaQfp!0?pZ}kQ;YLOO zd~N^e+5fnFXm@wmeR%FpOP`*e*+fL=hl2M|PVReojEjr^e_H>ws{gR1=t)Tb?%@Bt zueKO9|NQUJfqeh1gyM{a|EG!nwTR^%Jm++E(0X>$LPGM9ivOm8$9Z%Ax0C;_kI)%6 z;%#pKK1`%!VE>44!X!HX|N8&+=kb=0vukF{KtRD5HS}(8|DSvPY*Nv0ZvBsm-(qP0 zy_wusVQS6AVsCKvg@Ep3XVy$v&p}hYac$y&dBEa&!O4sdQ3Lsi~;txpF&q6l>dq4f~3CI7r{|om968+@%J7jO(8p!2@C|$qb4K!M~^KR7k-hm7!$F83|4ymSj zr}G_%ec7?N? zH0@5?|05|l(UtubCS^fX~G zadi|M%jEv)={~?oi*qB~j}k@H3O&whnt{K#GJ4Ar8Ki3NP>vT@-MQExXl#Ru9~v5? znx6cu{VIn^3gK%p|LM+^j>1~i%OaXwihU!JZ$WYLWqm!nW#U&};roDG9F2q@q< zrt5fTnViHqnr_}*q}61UOtHDzdI1xro_bQFqTLS7Pie6GRMHck2Z&WVeUk|irbjEA z8`1>oyeJlE1*G2{_2gCH*aXo+wO>%_O!c(&M-$k)}CM;>(vWnY3D} zo=mc7B+HuVVUy6frl;>YT3Xa3(qp0|M368Qi3BIvEK1V^22?W_ z$%upD-o(@R&~4T-AWszuQGxI{eqnM;BU$rEQ}#^j>7_Q?W-nfrp>Qp%YVuK9qy!-< z(twsunrsrvJtN6@qRYY7u1>m*#yp#fRHF1C3R3QByk?L|e<(AJ19foKKJKMsJdGz86Gy}4bMFz>BpURk290=n+qW_DT;i9n0O9x z%3CUcLTG7)Nky0JUVnWUtyZVcw5yzEQGrngyuJCdp z3vf9AZh|9JYASo8C@>=9NnRp0yB(PF3_S)yUUs?!5MGKR(IBH3t}rVNok`1ly!5ec z(_Al?!FdWuwp`9mOK*n5sxphk64t9wn66A!@@XPr>X+t6_RWRY=Z!+RR4f(@&>k~f zoB%dU5vnX2@Qe2uy|oLK%0ZmSblfug?VGjNbB$nXCRGf{OUUgW8=^33nSM8c20~|E zi6zn?$<&4UxTDRc={M^zQ-gyu0R0ryF^N>DG>dfL;*QmEH^pMdku=h5w%awM>lbs4 z8J};69~3mf@|v?QmqL{pDAOqUwT0hDvDjiYf+&;FPDf_SH||S?ag;?`&*03EWnM0k zH@3Tb%&AtlpN_;9cMn_4j>ld0&AGY8m~VW1+&3uVLST~0J=G3*y$?o57Qb1HEg~=% zkB?e>3`LKR5^1`Kq}grP z4C`wbjpE?=_?P43e|_-FAHOzr9rXDIhi2481oYb%&rVLRk08RVo<*)?Y6};&u#0Q{ z_{VoIp8c-O!SVa|#|MXKw#p>(O!1xn(T7NnxvWNr&{k?~Jv({roppgEbnyOtSFlv6c((xZY`xp>zrP(D1seMgv)`_Xo;#NZ>Kpp`=hTo( z216dhO%U^L1=z$AjV>;JO{6f7VJ6v(u-R_M%%G=defafRd1BB964!$C_|Y5-l(M_K zm1Vp+L6YeOsLWku>e4*7YvQH7fCCM<*n~9tZ%A`)j)yBkr0h8{7FhPu zSqcy1sU7W=3nJxm8GC~q zK8N=2o=(jTlT7BAR48&(F2lo*bQ_JMGiBmeOHXylJ2w?7%(DY?2u(HwDjDOW+93n1SFZ8(!{xno(4=c+mGy<`kQ(l0-eSWk}u=FJ0cS( zOj0+S&4f*}7qfMnhW_uKmPw?zd)Pc@lSP0nCN4i)9~46VX0xT}FqwP#ERtvQkWI{- zO$21C+0kal35ne8@S+7DaI`a;d>X_ow%F zG$t%+9x^%IjG`!ix9#k?cXkGMiF+!u+vb1SWD_L*J>7S^d)lwvPE*&j=c=ZK9tc!k zacx~a-Q7K==$Wv6;r1%?uJvTWzI*T9J&fFkYP_B5TKSuC`+I3B4C4S^NnHt1S@e?vrHdk|Zi;?G zT|`Cw7j?1QF*jG_mJ?i|a~>Tnb2v43stFd6g#~4llE(_tVs#O_DN1t`8({@~pXYsF zUys8)&!%PQK7OC~J?CtD-yEBI;=;T#W0r2-cI3!|%F4=P?`hIXGb2q#m0GzAb?n&s z^;is*^VacOezVLKhhnCMSCg2qiiF8xk&1)nUDCoUl_Zy1iCvR!1lN{ZTx|b+{5nA(1l2dam~1$=~20s327|icc}aw4H{W zZW!2iiOzklT7MuKggR&#>6H% z!bQ$e9bUpFKBK#YLgkifFfw1kL{LodWU`!VnjZBxw$LQV=)IokF$wRVqYDCPbSZ1zo8~ zfs#q+Ld7J9q(h5L`kI4cM4iNB$2AM(0rfZo@MVf{iB%5MH%S#=_j3h87=U^&Ss~Xgz zjWkWSpTC7qVmyl$IyNPVV=UsDgWBA=DMcoOuI+9y02Fk==IWUEdBX^DP>nLFRU1h$ zC7FbYZ>69MH+Qdyi4!~jdZrn4*-=)ts8BV3V)Qdsvds#(@SV<@t7i~eiwCeQ|I7i? zphTr=QIRrcSC^T9DVt0Gj^;X;LG<(h=6M6AMkQMmQx7I$-gwq!M#xk-|J&TdvrRs0 zoj(txNR+DWC=r9nt$o&J_+7O!WzZ;p_wC!a^3C&J#JIJ}q~{n{lbjFjIpUi;*=-~q9)mF+kM1{V8*(Q+r!Jg;UzLw z(blb-$J{a!ymJquWHYT=Stq#ceN`7sP2!nQ+onBcAmKKct9Myy;GPew)bvsXqVCaFm6(f)Cy8lj0*Uw)M~=+Rd7pYcYt*q|vH?+1^g5YVKkix)x+kk%TIfD<|4M z`SIh&Ts~Ljo16-ec(1y>wYoRnqSg)Lmvv551vVOx8CK0*HRtSi3Rq5>tm>E?G>dwR zHSCFOzRu^{Fa+{VYr4JqX3MSWFfYi`VrwbJ2;@^QJ_3vbl+g z$pX++7Txt#EsX{qrNd$DBl5O~YpUD5aaw?F!p4Q38FR%=GF8wf>`FPxl&+16#0QJE zpoK|fe48yyPuJzCyFZ8ApQ?MYA+|RiuDR7(9migb5Vl7&KJ3l_E#nw*m}y&cOXi^4 z=g*1CVJxS!osg&Vg;bUAY5kp+#t$DxyBQD^Aw!$|1_tWyhF*l4JFHFO zT_$CQ#msFkJ{7IClejB1g?oXgQQ_@`FPruFFpZwN`E3$xamLH<3q7M`_5;PwKuHsSdsfpkk;dM*BOO5wyEc9c zgDG5TDz(ZtHAE-(@4Z;}ee8|D8q18r>}v*kw_c#D*-Y!1TXeMSOg}H!PPM8S)20rZ zaYqB;_}JC4mX_`emhb;@azCL-hH)Ig8=Le$C~Gxl1QirXw~7w^fucIp=#S>wY|Ujm zY|x0BS)N=V!!EJj{=g2BL{J;a-n>Y72oKX!r(LWqk+6d();tVWjlRF%`#wIt8npcS zQr$lNe!u5=echfd7US-s(6G9L2I^x|uH0bFt!NVt?!85K4a=5Eeo2y4lQ&>EB0Rx;y+JjH5kVDQZ-L0wo^@_;KO~&kOo0 zdjHDM+~d=lxxZp&snB_e(j+CxsHdcAU&#!AW)>?bh(x0SJ_pA?X2Pdn@_zlzC2Tdc zb_%V<|K^(zvy}OH6jxuQNPDUB_0xC?ES3-#iYOGIoLAB0el9e4q`A7aQz(<}7bx`Q z-R#S(W|qtM%dg9tCsnV;dc4@ALggM~hce1}RSEIYJhscLs;8pE(^F*9>PiC5W^=h* z)@(K>+KW(ePbaBP^k5k&BRUH8Q#u`wt7;vp5E@j2$wz^h)!5o+Xf4iNeSP^dhp6UM z!c;1iNG*G-MIssXc(9B{M%W}2YTQgJqmosyqLDC~An)_dZ>O|zPK@K7_FFEuu%M)p*>zxw^F>8Yj*c`|=AQQ>Icb z5-{PUbfG}1#|w-_ea-4W5E2-JU`wD(3xqb95Bl zO%V!_x~rRScAR7sEM9tu6z19K5U6K5Nx|b>G`zGFjf@B4g}GUni)7Y`oMPdzXs$H( zt+1L^QbkmR%#>!He@i`Ol1(h8r_sGjZF&EAAly337sb={}mm*1}ZRz6#lda)+X>sO-AdR3XG;TDxx!Cq6xm1`cE;iF?tXnow zq44;a_+;SAm%KkR7X7@Gm>gFUC{mEP1Sx}iy`i^Sa}f)n3_?_C)tc8yQ-Bct{>ia% z{E<}lF2y4gNi_kIOvY-+7yMc@NfRVYYA&*l`^zRsm=^JoH$)^rah7;;631+#vDVhS zA7lzQ1oC8CnPd?cg6;-&5&=o(cI~!`r6dBBYS298aM?#aj2+VBa=Gk?v%9m;X?OJZI@~Td;&9k(j50X@ zbY+9)35S~qr?U^~?Ck8*;zX{(bU6lKG6_>J6eKryZDVB9X}4wqbxIDg+q*lRc9#vN zgGfeiPkOhMw}xUp*8wk|SlI@trXtE$eHm5q$^>ecRUas?`Cq%A2;4qBU$y&Yt; zfq^z%ymEzADpp5Dl`zp-m^XSD&1hvB>s;NyI4@tn#%etZ6XT>h`!&gojg|2y=;&6}55)hd;$TthHnktn7q&4vbg>Go}?0_FZ9 zqPxsILz=zhrV#{T z0M00uARyS9EsH2ZLh>T=f(u0Qnx`@5Wg?l#GM;454LF@Il&YF8etMdYtI1>;Wj21(V9u+>J-A9ZFuEke%3 z2K7j)ldqcjV;?A1_p+m<{m$l#Unfkrwm*N02~<0(W;1CDz3=zbQLPiEkT4f)1~J0o zW=RoZ^X<(Ize(9#vf1B?3DrZzObPDIJCViG`sPaK?RY?DuBNImlY^VRv-#}WDQk-| zNfh(xkxdjTk3<)XTTh5BoBNlNi7M%CG9HW`w_CYuLUkxo^d%{_M-xjcq==)@a<%L) zeu){Nnj$h2g4->dGhD=&q!p#5-TcZoMMIzDkG517H|=8Gaa#rFXJINyuccdG{>s56 zv3Ojm93!NtYCk;1#7Iz6NqXhtKHna8`F&qVs3??8dvHI0FH9m~63LO3DmVFdN6+DP zw_%fVtSB$9q{uBU%=Fl5nXbw$d5vbJ@w(}gNRP58v@mP-*kUB0om8f*>_W(^T9$qK za+QykOWg0pWK;%y(kK2cnPEGLbYt=pJrL=k zVit2AgUArua3aV?k#34vcjk^v`fD5jSX?&Ezrl6U&ULAs@+NI3JC*ll!o<>2glO0v&E+^W5nSuQZAT}pyJ}+EqMbj*ygoG_0+Z`ZGdo2)rOv?2#jFSBI&NAn zVK-!IY_UCQ3Sq099K+RnXU+q2VK!TPL`dqCU~oHORy>nN!kSH;%;|NusZ7LH%vCA2 zjcUZ4hNkJ_cMH>R=ZTq}n2WGZyNSuiB(_Rv@*%b`*Yv>T&5~yJxSe5aPup4d%++kp zCW4EB3)43F)SQN9%{QgaQgD;Z)@eJ{90ak2`9teGe!nHJZClDb7u$u7ghth3;&M{4 z{Pcg;6* zTi@A4Y}Jg!7ADp<)x_k(7;>@2sZxoUVVw)p+IF>_*q(uzdFEF!hoNciXQyQ1@Kn=X z5@3%1*K`rW>4_<%=5^VeU~MnS(C0n2XUQb8Fzca-I+OPbBBUn01P8XOvlg1eh-s>` z3)7G7V>oTmPiM|k*A@{fpPmmeF>S*-)7KXN0r{eJ`mx1?&tj$?X7)NUg>($fKaMTT z;idg-YizMSg9z0>HXnSmo)n>TW-Vd{88VukbEe$+aH>@PQRgI>w=m-eS=k(qiwME2 zhUS{hNQPj>BBZfZ6A@xlW9yq!GGn<#o$&~ro$y{en+7u_L)}YC$@hlXPQ%!m&A!FFV-nvgm_j&Jbi&6>{wGQO zG(?DEYst{Sx<5aEFHKvRh|qP!yl@V+hz!0PiU>vS@M_M*jNeVZ#AEABL`Y(bc4ETY zXTs*+W*2pei76D{DyTCw`-VDuT*jc*m0VLuJ#U)If^r(qa~qpCXaXF%P;$`}c$ z1M0xYz|grWilBhnE1?!niKDl|q42>2{(|VG8Xp2HR?AB{2GPfyhyTP79G$toAZxn6S zo{v{K8nc2a-`lIqT040wt?k5)QPqVQ`QO7mbNgvVKgQ|=IR6{Z*p`d zS#qBBoE@hY=1^Pi?9y}lmS&F1{nV1SY}hcbGnp?@X4$|bZGCO|9_K7|-tC%(UMQHh z{2;`#o*Y+T%8!bh9~VNpw*1&euaj0&)>#C8HnOWb;vP9v=+iOzS3}IFYO@j7CNM*j zG_PAn?X49@l|8dina}HrqkVX8h4hb|K@Qvg)pquvO+`^0_aVWrR%x3?OWV|;L#YO& z)FM)mR*HjyIuySb$3XFGDFGpiL%W0`5zG+m5CRDakqnmNR7evL%#@)ND&>(31rgez z#8mNr?!C`z@ZIFy2ma@t_sjpBb66z&}XuPH$%Hnf6IL0(1cWW}6a!f2ebNkc=!;&rqtZ04mzzyQkJG3$zGQ>tz)Ob(?BZK6)SGM9z#q^ z88g#UckeczMzW52ojlPx`YdMOVutpo(%!dzF>~z1@gv-0JM57eq-jDNmHrAL_{Wd& zqwS)5F>tu}df@{`V3yWM9>3Nwi^&qj{3QqRSF&k9^9w72>Ct6wY*>+8-<>d1v1nv9 z52M28fEM#Q8xv|J$&pVZ5YDCneJzY4%B#nunZ+wab)2WeU}CB!vJ0aedQ^{zq0o6? z|4`dAyTf72C^1WjF?5)RuNNc5B2l?lM@&9JlqHwPT+?F?N0uCu zh~$nR(ql%WboD);%LK&(+A`11lTl(Os3dNfF$kTXSP)Qu+ZG}wTP}$O&g|FBZHz9d zL3)|dPY#&3!VqVopcLWh_i8fJkTlwsc_~*|kB8urHN6`H4FW^t{F#iZHsT8(=p&Xa`l#4rLiU?N%PTGTQgf)+!dro(R+4;rRB zCaVs}aXjN^qi)u&87gF9oo4(37{V;XEc4TCA6V3JLH=G7ek6IvuJwbdR^A0fvz=New#Att3)KG3Y% zGJDgDRC8go+OyUNX%nH*&nZIY#Ih6bmR-Lcvs_+^;-$Qw|FBUS85vo& z8TD=GcT(@LKr*IY`@8pw`|w96Cnv|o{Dbzy-@Hz=%Al29)c^nh07*qoM6N<$g20R literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/icons/403.svg b/apps/admin/src/assets/icons/403.svg new file mode 100644 index 00000000..e67ecdff --- /dev/null +++ b/apps/admin/src/assets/icons/403.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/404.svg b/apps/admin/src/assets/icons/404.svg new file mode 100644 index 00000000..1676c855 --- /dev/null +++ b/apps/admin/src/assets/icons/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/500.svg b/apps/admin/src/assets/icons/500.svg new file mode 100644 index 00000000..082c6a39 --- /dev/null +++ b/apps/admin/src/assets/icons/500.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/homeinfo.svg b/apps/admin/src/assets/icons/homeinfo.svg index 707bd1eb..47b08d42 100644 --- a/apps/admin/src/assets/icons/homeinfo.svg +++ b/apps/admin/src/assets/icons/homeinfo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/views/exception/index.tsx b/apps/admin/src/views/exception/index.tsx index bcf8e7f1..641c53f2 100644 --- a/apps/admin/src/views/exception/index.tsx +++ b/apps/admin/src/views/exception/index.tsx @@ -1,6 +1,8 @@ import { Button, Card, Result } from 'antd'; import { useLoaderData, useNavigate } from 'react-router-dom'; +import SvgIcon from '@/components/SvgIcon'; + import type { FC, ReactNode } from 'react'; const subTitleMap = new Map([ @@ -23,17 +25,18 @@ const PageException: FC = () => { return {children}; } return ( -
- {children} -
+
+ {children} +
); }; return ( } subTitle={subTitleMap.get(status)} extra={ - K + + K + } /> @@ -145,6 +166,11 @@ const ProFile: FC = () => { + {messageList.map((item) => ( + + ))} + {/* 发送消息 */} + diff --git a/apps/admin/src/views/user/components/sendBox/index.tsx b/apps/admin/src/views/user/components/sendBox/index.tsx new file mode 100644 index 00000000..dbb964a4 --- /dev/null +++ b/apps/admin/src/views/user/components/sendBox/index.tsx @@ -0,0 +1,36 @@ +import { Avatar, Button, Flex, Input, Typography } from 'antd'; +import { SvgIcon } from 'ui'; + +import avatarUser from '@/assets/images/avatar_6.jpg'; + +import useStyles from './styles'; + +import type { FC } from 'react'; + +const { Title, Text } = Typography; +export interface PSendBox { + avatar?: string | JSX.Element; + time?: string; + content?: string | JSX.Element; + user?: string; +} +const SendBox: FC = ({ avatar = avatarUser, time, content, user }) => { + const { styles } = useStyles(); + return ( + + +
+ + + + + } + /> +
+
+ ); +}; +export default SendBox; diff --git a/apps/admin/src/views/user/components/sendBox/styles.ts b/apps/admin/src/views/user/components/sendBox/styles.ts new file mode 100644 index 00000000..3178181a --- /dev/null +++ b/apps/admin/src/views/user/components/sendBox/styles.ts @@ -0,0 +1,11 @@ +import { createStyles } from 'antd-style'; + +const useStyles = createStyles(({ token }) => ({ + 'send-box': { + '.send-content': { + flex: 1, + borderRadius: token.borderRadiusLG, + }, + }, +})); +export default useStyles; diff --git a/apps/admin/src/views/user/components/userCard/index.tsx b/apps/admin/src/views/user/components/userCard/index.tsx index ae3099d8..2de9899c 100644 --- a/apps/admin/src/views/user/components/userCard/index.tsx +++ b/apps/admin/src/views/user/components/userCard/index.tsx @@ -1,11 +1,8 @@ -import { AppstoreOutlined, BarsOutlined } from '@ant-design/icons'; -import { Button, Card, Flex, Segmented, Skeleton, Typography } from 'antd'; -import { useTheme } from 'antd-style'; +import { Card, Segmented, Typography } from 'antd'; import React from 'react'; import { SvgIcon, Translatex } from 'ui'; import avatar from '@/assets/images/avatar_2.jpg'; -import cover_5 from '@/assets/images/cover_5.jpg'; import Followers from '../followers'; import Friends from '../friends'; @@ -23,7 +20,6 @@ export interface UserCardProp extends CardProps { const UserCard: React.FC = (prop) => { const { children, ...rest } = prop; - const token = useTheme(); const [tabActive, setTabActive] = React.useState('Profile'); const [loading, setLoading] = React.useState(true); const { styles } = useStyles(); @@ -34,20 +30,6 @@ const UserCard: React.FC = (prop) => { }, []); return (
- {/* {loading && ( - , - , - , - ]} - cover={} - > - - - )} */} = (prop) => { 来历不明
- {/* - example - */} } > From f2990dd5ecb9c5b3e8e9e78fcd83f5b4fee0d755 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 11:02:39 +0800 Subject: [PATCH 059/134] =?UTF-8?q?build:=20:package:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?mock=E7=94=9F=E4=BA=A7=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/mock/_createProductionServer.ts | 20 +++++++++++++++++++ apps/admin/src/App.tsx | 7 +++++++ .../views/user/components/userCard/styles.ts | 4 +--- apps/admin/src/views/user/profile/index.tsx | 3 ++- apps/admin/vite.config.ts | 7 +++++++ 5 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 apps/admin/mock/_createProductionServer.ts diff --git a/apps/admin/mock/_createProductionServer.ts b/apps/admin/mock/_createProductionServer.ts new file mode 100644 index 00000000..d11dd4fd --- /dev/null +++ b/apps/admin/mock/_createProductionServer.ts @@ -0,0 +1,20 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; + +const modules = import.meta.glob('./**/*.ts', { eager: true }) as Recordable; + +const mockModules: any[] = []; +Object.keys(modules).forEach((key) => { + if (key.includes('/_')) return; + + const module = modules[key].default || {}; + const moduleList = Array.isArray(module) ? [...module] : [module]; + mockModules.push(...moduleList); +}); + +/** + * Used in a production environment, need to manually import all modules. + */ +export function setupProdMockServer() { + createProdMockServer(mockModules); +} diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index a0236c52..bdf06c07 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -9,11 +9,18 @@ import redImg from '@/assets/images/red-blur.png'; import router from '@/router'; import CustomGlobal from '@/styles/GlobalPager'; +import { setupProdMockServer } from '../mock/_createProductionServer'; import LoadingPage from './components/LoadingPage'; function App() { const preset = useGlobalStore((state) => state.preset); const [loading, setLoading] = useState(true); + + // 模拟环境 + const isBuild = import.meta.env.MODE === 'production'; + if (!isBuild) { + setupProdMockServer(); + } useEffect(() => { // 异步操作模拟(例如数据加载、初始化等) const asyncOperation = async () => { diff --git a/apps/admin/src/views/user/components/userCard/styles.ts b/apps/admin/src/views/user/components/userCard/styles.ts index 14ca7c0e..7bcaca9b 100644 --- a/apps/admin/src/views/user/components/userCard/styles.ts +++ b/apps/admin/src/views/user/components/userCard/styles.ts @@ -67,12 +67,10 @@ const useStyles = createStyles(({ token }) => ({ }, translatex: { margin: `${token.marginSM}px 0`, - position: 'absolute', - width: '100%', - left: 0, }, content: { position: 'relative', + // marginBottom: token.margin, }, })); diff --git a/apps/admin/src/views/user/profile/index.tsx b/apps/admin/src/views/user/profile/index.tsx index 23b21ac3..522a8bf7 100644 --- a/apps/admin/src/views/user/profile/index.tsx +++ b/apps/admin/src/views/user/profile/index.tsx @@ -5,7 +5,8 @@ import type { FC } from 'react'; interface PProFile {} const User: FC = () => { - debugger; + console.log(''); + return ; }; diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index af49655f..bbc19809 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -45,6 +45,13 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { viteMockServe({ mockPath: 'mock', ignore: /^_/, + localEnabled: !isBuild, + prodEnabled: isBuild, + injectCode: ` + import { setupProdMockServer } from 'mock/_createProductionServer'; + + setupProdMockServer() + `, }), ], From 76df4c8dcd28ae8a08c6a7bcb08364449feb407d Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 13:53:40 +0800 Subject: [PATCH 060/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=8E=AF=E5=A2=83mock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/.env.development | 1 + apps/admin/.env.production | 1 + apps/admin/src/App.tsx | 8 ++++---- apps/admin/src/utils/axios.ts | 3 ++- apps/admin/vite.config.ts | 7 ------- 5 files changed, 8 insertions(+), 12 deletions(-) diff --git a/apps/admin/.env.development b/apps/admin/.env.development index e69de29b..f548de65 100644 --- a/apps/admin/.env.development +++ b/apps/admin/.env.development @@ -0,0 +1 @@ +VITE_APP_BASE_API: '/api' \ No newline at end of file diff --git a/apps/admin/.env.production b/apps/admin/.env.production index e69de29b..62a0fbc4 100644 --- a/apps/admin/.env.production +++ b/apps/admin/.env.production @@ -0,0 +1 @@ +VITE_APP_BASE_API: '/react-antd-admin-pnpm/api' \ No newline at end of file diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index bdf06c07..7cc3e079 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -17,10 +17,10 @@ function App() { const [loading, setLoading] = useState(true); // 模拟环境 - const isBuild = import.meta.env.MODE === 'production'; - if (!isBuild) { - setupProdMockServer(); - } + // const isBuild = import.meta.env.MODE === 'production'; + // if (!isBuild) { + // setupProdMockServer(); + // } useEffect(() => { // 异步操作模拟(例如数据加载、初始化等) const asyncOperation = async () => { diff --git a/apps/admin/src/utils/axios.ts b/apps/admin/src/utils/axios.ts index 8d3f35c8..ec2b0dbe 100644 --- a/apps/admin/src/utils/axios.ts +++ b/apps/admin/src/utils/axios.ts @@ -7,7 +7,8 @@ import type { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axio // Create axios instance const service = axios.create({ - baseURL: '/api', + // 获取环境变量 + baseURL: import.meta.env.VITE_APP_BASE_API, timeout: 10 * 1000, }); diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index bbc19809..af49655f 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -45,13 +45,6 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { viteMockServe({ mockPath: 'mock', ignore: /^_/, - localEnabled: !isBuild, - prodEnabled: isBuild, - injectCode: ` - import { setupProdMockServer } from 'mock/_createProductionServer'; - - setupProdMockServer() - `, }), ], From 25dfb6046250f208ddc45f4fdc731b957bedae35 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 14:23:51 +0800 Subject: [PATCH 061/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=89=93=E5=8C=85mock?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/mock/_createProductionServer.ts | 19 +++++++++---------- apps/admin/vite.config.ts | 9 ++++++++- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/apps/admin/mock/_createProductionServer.ts b/apps/admin/mock/_createProductionServer.ts index d11dd4fd..48d1cf80 100644 --- a/apps/admin/mock/_createProductionServer.ts +++ b/apps/admin/mock/_createProductionServer.ts @@ -1,20 +1,19 @@ // eslint-disable-next-line import/no-extraneous-dependencies import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; -const modules = import.meta.glob('./**/*.ts', { eager: true }) as Recordable; +const modules = import.meta.glob('./**/*.ts', { + import: 'default', + eager: true, +}); const mockModules: any[] = []; -Object.keys(modules).forEach((key) => { - if (key.includes('/_')) return; - - const module = modules[key].default || {}; - const moduleList = Array.isArray(module) ? [...module] : [module]; - mockModules.push(...moduleList); +Object.keys(modules).forEach(async (key) => { + if (key.includes('_')) { + return; + } + mockModules.push(...(modules[key] as any)); }); -/** - * Used in a production environment, need to manually import all modules. - */ export function setupProdMockServer() { createProdMockServer(mockModules); } diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index af49655f..f1654ba4 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -43,8 +43,15 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { symbolId: 'icon-[dir]-[name]', }), viteMockServe({ + ignore: /^\_/, mockPath: 'mock', - ignore: /^_/, + localEnabled: !isBuild, + prodEnabled: isBuild, + injectCode: ` + import { setupProdMockServer } from '../mock/_createProductionServer' + + setupProdMockServer() + `, }), ], From 5f2ce67fe3c56ee932de3db3a237c7775639c3b0 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 14:38:41 +0800 Subject: [PATCH 062/134] test: :white_check_mark: mock --- apps/admin/vite.config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index f1654ba4..8eb7a83f 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-useless-escape */ /* eslint-disable import/no-extraneous-dependencies */ import react from '@vitejs/plugin-react'; // 需要安装 @typings/node 插件 @@ -48,7 +49,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { localEnabled: !isBuild, prodEnabled: isBuild, injectCode: ` - import { setupProdMockServer } from '../mock/_createProductionServer' + import { setupProdMockServer } from 'mock/_createProductionServer' setupProdMockServer() `, From 31eb4460e729a65a7c5e56c4ba8d354f4442f6ba Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 14:42:17 +0800 Subject: [PATCH 063/134] test: :white_check_mark: mock --- apps/admin/vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 8eb7a83f..dd65cbc3 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -44,7 +44,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { symbolId: 'icon-[dir]-[name]', }), viteMockServe({ - ignore: /^\_/, + ignore: /^_/, mockPath: 'mock', localEnabled: !isBuild, prodEnabled: isBuild, From 602d62d9fe0559e2171589efe2a336cd15121d88 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 14:45:13 +0800 Subject: [PATCH 064/134] test: :white_check_mark: test mock --- apps/admin/mock/_createProductionServer.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/apps/admin/mock/_createProductionServer.ts b/apps/admin/mock/_createProductionServer.ts index 48d1cf80..d11dd4fd 100644 --- a/apps/admin/mock/_createProductionServer.ts +++ b/apps/admin/mock/_createProductionServer.ts @@ -1,19 +1,20 @@ // eslint-disable-next-line import/no-extraneous-dependencies import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; -const modules = import.meta.glob('./**/*.ts', { - import: 'default', - eager: true, -}); +const modules = import.meta.glob('./**/*.ts', { eager: true }) as Recordable; const mockModules: any[] = []; -Object.keys(modules).forEach(async (key) => { - if (key.includes('_')) { - return; - } - mockModules.push(...(modules[key] as any)); +Object.keys(modules).forEach((key) => { + if (key.includes('/_')) return; + + const module = modules[key].default || {}; + const moduleList = Array.isArray(module) ? [...module] : [module]; + mockModules.push(...moduleList); }); +/** + * Used in a production environment, need to manually import all modules. + */ export function setupProdMockServer() { createProdMockServer(mockModules); } From 8a341677fc480bff55ec4b9c8ba8d1a6eaa1bedc Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 15:17:58 +0800 Subject: [PATCH 065/134] test: :white_check_mark: test --- apps/admin/mock/_createProductionServer.ts | 1 + apps/admin/package.json | 2 +- apps/admin/src/App.tsx | 10 +- apps/admin/vite.config.ts | 2 +- pnpm-lock.yaml | 399 ++++++--------------- 5 files changed, 112 insertions(+), 302 deletions(-) diff --git a/apps/admin/mock/_createProductionServer.ts b/apps/admin/mock/_createProductionServer.ts index d11dd4fd..83c6ea65 100644 --- a/apps/admin/mock/_createProductionServer.ts +++ b/apps/admin/mock/_createProductionServer.ts @@ -11,6 +11,7 @@ Object.keys(modules).forEach((key) => { const moduleList = Array.isArray(module) ? [...module] : [module]; mockModules.push(...moduleList); }); +console.log('mockModules', mockModules); /** * Used in a production environment, need to manually import all modules. diff --git a/apps/admin/package.json b/apps/admin/package.json index 96ac80ee..72236f8d 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -49,6 +49,7 @@ "ui": "workspace:^", "use-immer": "^0.9.0", "video-react": "^0.16.0", + "vite-plugin-mock": "2.9.6", "xlsx": "^0.18.5" }, "devDependencies": { @@ -80,7 +81,6 @@ "typescript": "^5.2.2", "vite": "4.5.0", "vite-plugin-eslint": "^1.8.1", - "vite-plugin-mock": "2.9.8", "vite-plugin-svg-icons": "^2.0.1" }, "lint-staged": { diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 7cc3e079..49a790e8 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -17,10 +17,12 @@ function App() { const [loading, setLoading] = useState(true); // 模拟环境 - // const isBuild = import.meta.env.MODE === 'production'; - // if (!isBuild) { - // setupProdMockServer(); - // } + const isBuild = import.meta.env.MODE === 'production'; + console.log(isBuild, import.meta.env); + + if (!isBuild) { + setupProdMockServer(); + } useEffect(() => { // 异步操作模拟(例如数据加载、初始化等) const asyncOperation = async () => { diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index dd65cbc3..c2016aa2 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -49,7 +49,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { localEnabled: !isBuild, prodEnabled: isBuild, injectCode: ` - import { setupProdMockServer } from 'mock/_createProductionServer' + import { setupProdMockServer } from '../mock/_createProductionServer' setupProdMockServer() `, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5bef1d24..5fd1c9d8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -189,6 +189,9 @@ importers: video-react: specifier: ^0.16.0 version: registry.npmmirror.com/video-react@0.16.0(react-dom@18.2.0)(react@18.2.0) + vite-plugin-mock: + specifier: 2.9.6 + version: registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@4.9.0)(vite@4.5.0) xlsx: specifier: ^0.18.5 version: registry.npmmirror.com/xlsx@0.18.5 @@ -277,9 +280,6 @@ importers: vite-plugin-eslint: specifier: ^1.8.1 version: registry.npmmirror.com/vite-plugin-eslint@1.8.1(eslint@8.56.0)(vite@4.5.0) - vite-plugin-mock: - specifier: 2.9.8 - version: registry.npmmirror.com/vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.0) vite-plugin-svg-icons: specifier: ^2.0.1 version: registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@4.5.0) @@ -3318,17 +3318,6 @@ packages: requiresBuild: true optional: true - registry.npmmirror.com/@esbuild/linux-loong64@0.14.54: - resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz} - name: '@esbuild/linux-loong64' - version: 0.14.54 - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - registry.npmmirror.com/@esbuild/linux-loong64@0.17.19: resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz} name: '@esbuild/linux-loong64' @@ -4528,6 +4517,39 @@ packages: engines: {node: '>=14.0.0'} dev: false + registry.npmmirror.com/@rollup/plugin-node-resolve@13.3.0(rollup@4.9.0): + resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz} + id: registry.npmmirror.com/@rollup/plugin-node-resolve/13.3.0 + name: '@rollup/plugin-node-resolve' + version: 13.3.0 + engines: {node: '>= 10.0.0'} + peerDependencies: + rollup: ^2.42.0 + dependencies: + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@4.9.0) + '@types/resolve': registry.npmmirror.com/@types/resolve@1.17.1 + deepmerge: registry.npmmirror.com/deepmerge@4.3.1 + is-builtin-module: registry.npmmirror.com/is-builtin-module@3.2.1 + is-module: registry.npmmirror.com/is-module@1.0.0 + resolve: registry.npmmirror.com/resolve@1.22.8 + rollup: registry.npmmirror.com/rollup@4.9.0 + dev: false + + registry.npmmirror.com/@rollup/pluginutils@3.1.0(rollup@4.9.0): + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz} + id: registry.npmmirror.com/@rollup/pluginutils/3.1.0 + name: '@rollup/pluginutils' + version: 3.1.0 + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + '@types/estree': registry.npmmirror.com/@types/estree@0.0.39 + estree-walker: registry.npmmirror.com/estree-walker@1.0.1 + picomatch: registry.npmmirror.com/picomatch@2.3.1 + rollup: registry.npmmirror.com/rollup@4.9.0 + dev: false + registry.npmmirror.com/@rollup/pluginutils@4.2.1: resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz} name: '@rollup/pluginutils' @@ -4545,7 +4567,6 @@ packages: cpu: [arm] os: [android] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-android-arm64@4.9.0: @@ -4555,7 +4576,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-darwin-arm64@4.9.0: @@ -4565,7 +4585,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-darwin-x64@4.9.0: @@ -4575,7 +4594,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf@4.9.0: @@ -4585,7 +4603,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu@4.9.0: @@ -4596,7 +4613,6 @@ packages: os: [linux] libc: [glibc] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-linux-arm64-musl@4.9.0: @@ -4607,7 +4623,6 @@ packages: os: [linux] libc: [musl] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu@4.9.0: @@ -4618,7 +4633,6 @@ packages: os: [linux] libc: [glibc] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-linux-x64-gnu@4.9.0: @@ -4629,7 +4643,6 @@ packages: os: [linux] libc: [glibc] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-linux-x64-musl@4.9.0: @@ -4640,7 +4653,6 @@ packages: os: [linux] libc: [musl] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc@4.9.0: @@ -4650,7 +4662,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.9.0: @@ -4660,7 +4671,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.9.0: @@ -4670,7 +4680,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true registry.npmmirror.com/@rushstack/node-core-library@3.59.6(@types/node@20.5.1): @@ -5327,6 +5336,12 @@ packages: dependencies: '@types/estree': registry.npmmirror.com/@types/estree@1.0.5 + registry.npmmirror.com/@types/estree@0.0.39: + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/-/estree-0.0.39.tgz} + name: '@types/estree' + version: 0.0.39 + dev: false + registry.npmmirror.com/@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/-/estree-1.0.5.tgz} name: '@types/estree' @@ -5464,7 +5479,7 @@ packages: resolution: {integrity: sha512-SXgrhajHG7boLv6oU93CcmdDm0HYRiceuz6b+7z+/2lCJPTWDv0V5YiwFHT2ejE4bQqgSXQiVPQYPWv7LGsK1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/mockjs/-/mockjs-1.0.10.tgz} name: '@types/mockjs' version: 1.0.10 - dev: true + dev: false registry.npmmirror.com/@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/ms/-/ms-0.7.34.tgz} @@ -5564,6 +5579,14 @@ packages: '@types/scheduler': registry.npmmirror.com/@types/scheduler@0.16.8 csstype: registry.npmmirror.com/csstype@3.1.3 + registry.npmmirror.com/@types/resolve@1.17.1: + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/resolve/-/resolve-1.17.1.tgz} + name: '@types/resolve' + version: 1.17.1 + dependencies: + '@types/node': registry.npmmirror.com/@types/node@20.10.4 + dev: false + registry.npmmirror.com/@types/responselike@1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/responselike/-/responselike-1.0.3.tgz} name: '@types/responselike' @@ -8127,6 +8150,13 @@ packages: ieee754: registry.npmmirror.com/ieee754@1.2.1 dev: true + registry.npmmirror.com/builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtin-modules/-/builtin-modules-3.3.0.tgz} + name: builtin-modules + version: 3.3.0 + engines: {node: '>=6'} + dev: false + registry.npmmirror.com/builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz} name: builtin-status-codes @@ -8967,7 +8997,7 @@ packages: utils-merge: registry.npmmirror.com/utils-merge@1.0.1 transitivePeerDependencies: - supports-color - dev: true + dev: false registry.npmmirror.com/console-browserify@1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/console-browserify/-/console-browserify-1.2.0.tgz} @@ -9748,7 +9778,6 @@ packages: optional: true dependencies: ms: registry.npmmirror.com/ms@2.0.0 - dev: true registry.npmmirror.com/debug@3.1.0: resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-3.1.0.tgz} @@ -10414,7 +10443,7 @@ packages: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz} name: ee-first version: 1.1.1 - dev: true + dev: false registry.npmmirror.com/electron-to-chromium@1.4.614: resolution: {integrity: sha512-X4ze/9Sc3QWs6h92yerwqv7aB/uU8vCjZcrMjA8N9R1pjMFRe44dLsck5FzLilOYvcXuDn93B+bpGYyufc70gQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.614.tgz} @@ -10468,7 +10497,7 @@ packages: name: encodeurl version: 1.0.2 engines: {node: '>= 0.8'} - dev: true + dev: false registry.npmmirror.com/encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/encoding/-/encoding-0.1.13.tgz} @@ -10746,256 +10775,13 @@ packages: ext: registry.npmmirror.com/ext@1.7.0 dev: false - registry.npmmirror.com/esbuild-android-64@0.14.54: - resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz} - name: esbuild-android-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-android-arm64@0.14.54: - resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz} - name: esbuild-android-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-darwin-64@0.14.54: - resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz} - name: esbuild-darwin-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-darwin-arm64@0.14.54: - resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz} - name: esbuild-darwin-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-freebsd-64@0.14.54: - resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz} - name: esbuild-freebsd-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54: - resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz} - name: esbuild-freebsd-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-32@0.14.54: - resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz} - name: esbuild-linux-32 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-64@0.14.54: - resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz} - name: esbuild-linux-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-arm64@0.14.54: - resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz} - name: esbuild-linux-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-arm@0.14.54: - resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz} - name: esbuild-linux-arm - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-mips64le@0.14.54: - resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz} - name: esbuild-linux-mips64le - version: 0.14.54 - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54: - resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz} - name: esbuild-linux-ppc64le - version: 0.14.54 - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-riscv64@0.14.54: - resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz} - name: esbuild-linux-riscv64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-linux-s390x@0.14.54: - resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz} - name: esbuild-linux-s390x - version: 0.14.54 - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-netbsd-64@0.14.54: - resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz} - name: esbuild-netbsd-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-openbsd-64@0.14.54: - resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz} - name: esbuild-openbsd-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-sunos-64@0.14.54: - resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz} - name: esbuild-sunos-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-windows-32@0.14.54: - resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz} - name: esbuild-windows-32 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-windows-64@0.14.54: - resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz} - name: esbuild-windows-64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild-windows-arm64@0.14.54: - resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz} - name: esbuild-windows-arm64 - version: 0.14.54 - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - registry.npmmirror.com/esbuild@0.14.54: - resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.14.54.tgz} + registry.npmmirror.com/esbuild@0.11.3: + resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.11.3.tgz} name: esbuild - version: 0.14.54 - engines: {node: '>=12'} + version: 0.11.3 hasBin: true requiresBuild: true - optionalDependencies: - '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64@0.14.54 - esbuild-android-64: registry.npmmirror.com/esbuild-android-64@0.14.54 - esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64@0.14.54 - esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64@0.14.54 - esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64@0.14.54 - esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64@0.14.54 - esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64@0.14.54 - esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32@0.14.54 - esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64@0.14.54 - esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm@0.14.54 - esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64@0.14.54 - esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le@0.14.54 - esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le@0.14.54 - esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64@0.14.54 - esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x@0.14.54 - esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64@0.14.54 - esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64@0.14.54 - esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64@0.14.54 - esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32@0.14.54 - esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64@0.14.54 - esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64@0.14.54 - dev: true + dev: false registry.npmmirror.com/esbuild@0.17.19: resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.17.19.tgz} @@ -11069,7 +10855,7 @@ packages: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz} name: escape-html version: 1.0.3 - dev: true + dev: false registry.npmmirror.com/escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} @@ -11431,6 +11217,12 @@ packages: '@types/estree-jsx': registry.npmmirror.com/@types/estree-jsx@1.0.3 '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + registry.npmmirror.com/estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-1.0.1.tgz} + name: estree-walker + version: 1.0.1 + dev: false + registry.npmmirror.com/estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} name: estree-walker @@ -11892,7 +11684,7 @@ packages: unpipe: registry.npmmirror.com/unpipe@1.0.0 transitivePeerDependencies: - supports-color - dev: true + dev: false registry.npmmirror.com/find-babel-config@1.2.0: resolution: {integrity: sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-babel-config/-/find-babel-config-1.2.0.tgz} @@ -13805,6 +13597,15 @@ packages: version: 2.0.5 engines: {node: '>=4'} + registry.npmmirror.com/is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz} + name: is-builtin-module + version: 3.2.1 + engines: {node: '>=6'} + dependencies: + builtin-modules: registry.npmmirror.com/builtin-modules@3.3.0 + dev: false + registry.npmmirror.com/is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz} name: is-callable @@ -14036,6 +13837,12 @@ packages: name: is-map version: 2.0.2 + registry.npmmirror.com/is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-module/-/is-module-1.0.0.tgz} + name: is-module + version: 1.0.0 + dev: false + registry.npmmirror.com/is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz} name: is-negative-zero @@ -14783,7 +14590,6 @@ packages: mime: registry.npmmirror.com/mime@1.6.0 needle: registry.npmmirror.com/needle@3.3.1 source-map: registry.npmmirror.com/source-map@0.6.1 - dev: true registry.npmmirror.com/levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz} @@ -16343,6 +16149,7 @@ packages: hasBin: true dependencies: commander: registry.npmmirror.com/commander@11.1.0 + dev: false registry.npmmirror.com/move-concurrently@1.0.1: resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/move-concurrently/-/move-concurrently-1.0.1.tgz} @@ -16935,7 +16742,7 @@ packages: engines: {node: '>= 0.8'} dependencies: ee-first: registry.npmmirror.com/ee-first@1.1.1 - dev: true + dev: false registry.npmmirror.com/once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/once/-/once-1.4.0.tgz} @@ -17411,7 +17218,7 @@ packages: name: parseurl version: 1.3.3 engines: {node: '>= 0.8'} - dev: true + dev: false registry.npmmirror.com/pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz} @@ -17501,7 +17308,7 @@ packages: resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz} name: path-to-regexp version: 6.2.1 - dev: true + dev: false registry.npmmirror.com/path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz} @@ -20953,7 +20760,6 @@ packages: '@rollup/rollup-win32-ia32-msvc': registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc@4.9.0 '@rollup/rollup-win32-x64-msvc': registry.npmmirror.com/@rollup/rollup-win32-x64-msvc@4.9.0 fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: true registry.npmmirror.com/run-applescript@5.0.0: resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/run-applescript/-/run-applescript-5.0.0.tgz} @@ -21835,7 +21641,7 @@ packages: name: statuses version: 1.5.0 engines: {node: '>= 0.6'} - dev: true + dev: false registry.npmmirror.com/stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz} @@ -23398,7 +23204,7 @@ packages: name: unpipe version: 1.0.0 engines: {node: '>= 0.8'} - dev: true + dev: false registry.npmmirror.com/unquote@1.1.1: resolution: {integrity: sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unquote/-/unquote-1.1.1.tgz} @@ -23599,7 +23405,7 @@ packages: name: utils-merge version: 1.0.1 engines: {node: '>= 0.4.0'} - dev: true + dev: false registry.npmmirror.com/uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz} @@ -23723,29 +23529,31 @@ packages: vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) dev: true - registry.npmmirror.com/vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.0): - resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.8.tgz} - id: registry.npmmirror.com/vite-plugin-mock/2.9.8 + registry.npmmirror.com/vite-plugin-mock@2.9.6(mockjs@1.1.0)(rollup@4.9.0)(vite@4.5.0): + resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz} + id: registry.npmmirror.com/vite-plugin-mock/2.9.6 name: vite-plugin-mock - version: 2.9.8 + version: 2.9.6 engines: {node: '>=12.0.0'} peerDependencies: mockjs: '>=1.1.0' vite: '>=2.0.0' dependencies: + '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve@13.3.0(rollup@4.9.0) '@types/mockjs': registry.npmmirror.com/@types/mockjs@1.0.10 chalk: registry.npmmirror.com/chalk@4.1.2 chokidar: registry.npmmirror.com/chokidar@3.5.3 connect: registry.npmmirror.com/connect@3.7.0 debug: registry.npmmirror.com/debug@4.3.4 - esbuild: registry.npmmirror.com/esbuild@0.14.54 + esbuild: registry.npmmirror.com/esbuild@0.11.3 fast-glob: registry.npmmirror.com/fast-glob@3.3.2 mockjs: registry.npmmirror.com/mockjs@1.1.0 path-to-regexp: registry.npmmirror.com/path-to-regexp@6.2.1 vite: registry.npmmirror.com/vite@4.5.0(@types/node@20.10.4)(less@4.2.0)(terser@5.26.0) transitivePeerDependencies: + - rollup - supports-color - dev: true + dev: false registry.npmmirror.com/vite-plugin-svg-icons@2.0.1(vite@4.5.0): resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-svg-icons/-/vite-plugin-svg-icons-2.0.1.tgz} @@ -23844,7 +23652,6 @@ packages: terser: registry.npmmirror.com/terser@5.26.0 optionalDependencies: fsevents: registry.npmmirror.com/fsevents@2.3.3 - dev: true registry.npmmirror.com/vm-browserify@1.1.2: resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vm-browserify/-/vm-browserify-1.1.2.tgz} From dd91d8cdfcec144f2569279aed531aa4bf6f1644 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 15:32:35 +0800 Subject: [PATCH 066/134] test: :white_check_mark: test --- apps/admin/.env.development | 2 +- apps/admin/.env.production | 2 +- apps/admin/src/App.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/admin/.env.development b/apps/admin/.env.development index f548de65..8fb7b2e4 100644 --- a/apps/admin/.env.development +++ b/apps/admin/.env.development @@ -1 +1 @@ -VITE_APP_BASE_API: '/api' \ No newline at end of file +VITE_APP_BASE_API: \ No newline at end of file diff --git a/apps/admin/.env.production b/apps/admin/.env.production index 62a0fbc4..1c407f5d 100644 --- a/apps/admin/.env.production +++ b/apps/admin/.env.production @@ -1 +1 @@ -VITE_APP_BASE_API: '/react-antd-admin-pnpm/api' \ No newline at end of file +VITE_APP_BASE_API: \ No newline at end of file diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 49a790e8..57c71e0b 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -20,7 +20,7 @@ function App() { const isBuild = import.meta.env.MODE === 'production'; console.log(isBuild, import.meta.env); - if (!isBuild) { + if (isBuild) { setupProdMockServer(); } useEffect(() => { From 79e57ec37b0e18cc3cc4dc8829a3270a94e2ff1d Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 15:40:51 +0800 Subject: [PATCH 067/134] test: :white_check_mark: test --- apps/admin/src/App.tsx | 5 ----- apps/admin/vite.config.ts | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 57c71e0b..370af901 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -9,7 +9,6 @@ import redImg from '@/assets/images/red-blur.png'; import router from '@/router'; import CustomGlobal from '@/styles/GlobalPager'; -import { setupProdMockServer } from '../mock/_createProductionServer'; import LoadingPage from './components/LoadingPage'; function App() { @@ -19,10 +18,6 @@ function App() { // 模拟环境 const isBuild = import.meta.env.MODE === 'production'; console.log(isBuild, import.meta.env); - - if (isBuild) { - setupProdMockServer(); - } useEffect(() => { // 异步操作模拟(例如数据加载、初始化等) const asyncOperation = async () => { diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index c2016aa2..8a8d3ea2 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -44,15 +44,15 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { symbolId: 'icon-[dir]-[name]', }), viteMockServe({ - ignore: /^_/, mockPath: 'mock', localEnabled: !isBuild, prodEnabled: isBuild, injectCode: ` - import { setupProdMockServer } from '../mock/_createProductionServer' + import { setupProdMockServer } from './mock/_createProductionServer' setupProdMockServer() `, + injectFile: resolve(__dirname, 'src/main.tsx'), }), ], From f96afcbd2470c2e211922c639f63492a54d7327b Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 15:58:48 +0800 Subject: [PATCH 068/134] test: :white_check_mark: test --- apps/admin/mock/_createProductionServer.ts | 1 - apps/admin/vite.config.ts | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/admin/mock/_createProductionServer.ts b/apps/admin/mock/_createProductionServer.ts index 83c6ea65..d11dd4fd 100644 --- a/apps/admin/mock/_createProductionServer.ts +++ b/apps/admin/mock/_createProductionServer.ts @@ -11,7 +11,6 @@ Object.keys(modules).forEach((key) => { const moduleList = Array.isArray(module) ? [...module] : [module]; mockModules.push(...moduleList); }); -console.log('mockModules', mockModules); /** * Used in a production environment, need to manually import all modules. diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 8a8d3ea2..8713237d 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -45,14 +45,14 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { }), viteMockServe({ mockPath: 'mock', + ignore: /^_/, localEnabled: !isBuild, prodEnabled: isBuild, injectCode: ` - import { setupProdMockServer } from './mock/_createProductionServer' + import { setupProdMockServer } from 'mock/_createProductionServer'; - setupProdMockServer() - `, - injectFile: resolve(__dirname, 'src/main.tsx'), + setupProdMockServer() + `, }), ], From a4e97eb47b26c9edf2c909cb69c4a353692439a8 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 16:04:37 +0800 Subject: [PATCH 069/134] test: :white_check_mark: test --- apps/admin/src/App.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 370af901..f7094ae6 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -1,4 +1,5 @@ import { ThemeProvider } from 'antd-style'; +import { setupProdMockServer } from 'mock/_createProductionServer'; import { useEffect, useState } from 'react'; import { RouterProvider } from 'react-router-dom'; import { useGlobalStore } from 'store'; @@ -17,7 +18,11 @@ function App() { // 模拟环境 const isBuild = import.meta.env.MODE === 'production'; - console.log(isBuild, import.meta.env); + if (isBuild) { + console.log('mock server is running'); + + setupProdMockServer(); + } useEffect(() => { // 异步操作模拟(例如数据加载、初始化等) const asyncOperation = async () => { From ebe84fccc62b4e7e4e00f313028fb6354cdeb9a6 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 16:11:34 +0800 Subject: [PATCH 070/134] test: :white_check_mark: test --- apps/admin/src/App.tsx | 2 +- apps/admin/src/utils/axios.ts | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index f7094ae6..c2045aab 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -1,5 +1,4 @@ import { ThemeProvider } from 'antd-style'; -import { setupProdMockServer } from 'mock/_createProductionServer'; import { useEffect, useState } from 'react'; import { RouterProvider } from 'react-router-dom'; import { useGlobalStore } from 'store'; @@ -10,6 +9,7 @@ import redImg from '@/assets/images/red-blur.png'; import router from '@/router'; import CustomGlobal from '@/styles/GlobalPager'; +import { setupProdMockServer } from '../mock/_createProductionServer'; import LoadingPage from './components/LoadingPage'; function App() { diff --git a/apps/admin/src/utils/axios.ts b/apps/admin/src/utils/axios.ts index ec2b0dbe..8d3f35c8 100644 --- a/apps/admin/src/utils/axios.ts +++ b/apps/admin/src/utils/axios.ts @@ -7,8 +7,7 @@ import type { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axio // Create axios instance const service = axios.create({ - // 获取环境变量 - baseURL: import.meta.env.VITE_APP_BASE_API, + baseURL: '/api', timeout: 10 * 1000, }); From ec9f0e68b7876dd644f6a554e2f5459ebd5fc6f1 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 17:00:58 +0800 Subject: [PATCH 071/134] test: :white_check_mark: test --- apps/admin/src/views/login/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx index 795dd5c9..c4a08dd0 100644 --- a/apps/admin/src/views/login/index.tsx +++ b/apps/admin/src/views/login/index.tsx @@ -47,6 +47,7 @@ const LoginPage: FC = () => { message.success('登陆成功!'); } } catch (error) { + debugger; message.error((error as unknown as Error).message); } finally { setLoading(false); From 47d4b754f7b68f85c810b89c5408e01ae1e9c403 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 17:08:13 +0800 Subject: [PATCH 072/134] feat: :sparkles: test --- apps/admin/src/views/login/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx index c4a08dd0..1b89affb 100644 --- a/apps/admin/src/views/login/index.tsx +++ b/apps/admin/src/views/login/index.tsx @@ -37,6 +37,7 @@ const LoginPage: FC = () => { const [searchParams] = useSearchParams(); const handleLogin = async (values: any) => { + debugger; try { setLoading(true); const userInfo = await loginAction({ From b33c88d82fde9b426793c82bf0b695f838e04752 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 17:26:25 +0800 Subject: [PATCH 073/134] test: :white_check_mark: test --- apps/admin/src/App.tsx | 11 ++++------- apps/admin/src/views/login/index.tsx | 3 ++- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index c2045aab..a02ac747 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -13,16 +13,13 @@ import { setupProdMockServer } from '../mock/_createProductionServer'; import LoadingPage from './components/LoadingPage'; function App() { - const preset = useGlobalStore((state) => state.preset); - const [loading, setLoading] = useState(true); - - // 模拟环境 - const isBuild = import.meta.env.MODE === 'production'; + const isBuild = process.env.NODE_ENV === 'production'; if (isBuild) { - console.log('mock server is running'); - setupProdMockServer(); } + const preset = useGlobalStore((state) => state.preset); + const [loading, setLoading] = useState(true); + useEffect(() => { // 异步操作模拟(例如数据加载、初始化等) const asyncOperation = async () => { diff --git a/apps/admin/src/views/login/index.tsx b/apps/admin/src/views/login/index.tsx index 1b89affb..9de63482 100644 --- a/apps/admin/src/views/login/index.tsx +++ b/apps/admin/src/views/login/index.tsx @@ -48,7 +48,8 @@ const LoginPage: FC = () => { message.success('登陆成功!'); } } catch (error) { - debugger; + console.log(error); + message.error((error as unknown as Error).message); } finally { setLoading(false); From a43e2c20c696332d31873122c3dc42bbdca2c645 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 17:33:33 +0800 Subject: [PATCH 074/134] =?UTF-8?q?test:=20:white=5Fcheck=5Fmark:=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9lock=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/admin/pnpm-lock.yaml b/apps/admin/pnpm-lock.yaml index 754be048..43fc6da0 100644 --- a/apps/admin/pnpm-lock.yaml +++ b/apps/admin/pnpm-lock.yaml @@ -8567,7 +8567,7 @@ packages: vite: 4.5.0(@types/node@20.10.0)(less@4.2.0)(terser@5.24.0) dev: true - /vite-plugin-mock@2.9.8(mockjs@1.1.0)(vite@4.5.0): + /vite-plugin-mock@2.9.6(mockjs@1.1.0)(vite@4.5.0): resolution: {integrity: sha512-YTQM5Sn7t+/DNOwTkr+W26QGTCk1PrDkhGHslTJ90lIPJhJtDTwuSkEYMAuLP9TcVQ/qExTFx/x/GE3kxJ05sw==} engines: {node: '>=12.0.0'} peerDependencies: From 90dbed89f436c592a9528e98dbb91afc06c4675a Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 17:34:18 +0800 Subject: [PATCH 075/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?lock=20mock=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/pnpm-lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/admin/pnpm-lock.yaml b/apps/admin/pnpm-lock.yaml index 43fc6da0..12dee015 100644 --- a/apps/admin/pnpm-lock.yaml +++ b/apps/admin/pnpm-lock.yaml @@ -218,7 +218,7 @@ devDependencies: specifier: ^1.8.1 version: 1.8.1(eslint@8.54.0)(vite@4.5.0) vite-plugin-mock: - specifier: 2.9.8 + specifier: 2.9.6 version: 2.9.8(mockjs@1.1.0)(vite@4.5.0) vite-plugin-svg-icons: specifier: ^2.0.1 From 5ed2cf01e3bfe442f5f60a284a8ce774e6f84768 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 17:38:46 +0800 Subject: [PATCH 076/134] =?UTF-8?q?ci:=20:ferris=5Fwheel:=20=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E7=89=88=E6=9C=AC=E9=94=81=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gh-page.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gh-page.yml b/.github/workflows/gh-page.yml index 3ff17606..505e085c 100644 --- a/.github/workflows/gh-page.yml +++ b/.github/workflows/gh-page.yml @@ -29,7 +29,7 @@ jobs: - name: Install dependencies shell: bash - run: pnpm install --no-frozen-lockfile + run: pnpm install # step 3. 安装依赖并打包 - name: Install and Build 🔧 From bff44ee677dcac37b01048d62a94bc8a3c5e0364 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 17:42:10 +0800 Subject: [PATCH 077/134] =?UTF-8?q?feat:=20:sparkles:=20=E5=8E=BB=E9=99=A4?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/App.tsx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index a02ac747..6f1265a5 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -9,14 +9,9 @@ import redImg from '@/assets/images/red-blur.png'; import router from '@/router'; import CustomGlobal from '@/styles/GlobalPager'; -import { setupProdMockServer } from '../mock/_createProductionServer'; import LoadingPage from './components/LoadingPage'; function App() { - const isBuild = process.env.NODE_ENV === 'production'; - if (isBuild) { - setupProdMockServer(); - } const preset = useGlobalStore((state) => state.preset); const [loading, setLoading] = useState(true); From ca9713b646865d9381010ce15ad1f70d73782ee6 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 17:48:56 +0800 Subject: [PATCH 078/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/admin/package.json b/apps/admin/package.json index 72236f8d..8eb9fa31 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -1,6 +1,7 @@ { "name": "react-admin-design", "version": "0.0.0", + "type": "module", "scripts": { "dev": "vite", "build": "rimraf dist && vite build", From c11bed3715805395810b8a8c192ede3684b986bb Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 18:03:03 +0800 Subject: [PATCH 079/134] feat: :sparkles: test --- apps/admin/{mock => src}/_createProductionServer.ts | 4 +++- apps/admin/vite.config.ts | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) rename apps/admin/{mock => src}/_createProductionServer.ts (82%) diff --git a/apps/admin/mock/_createProductionServer.ts b/apps/admin/src/_createProductionServer.ts similarity index 82% rename from apps/admin/mock/_createProductionServer.ts rename to apps/admin/src/_createProductionServer.ts index d11dd4fd..0b2ca997 100644 --- a/apps/admin/mock/_createProductionServer.ts +++ b/apps/admin/src/_createProductionServer.ts @@ -1,7 +1,9 @@ // eslint-disable-next-line import/no-extraneous-dependencies import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'; -const modules = import.meta.glob('./**/*.ts', { eager: true }) as Recordable; +// 获取mock目录data的数据 + +const modules = import.meta.glob('../mock/data/*.ts', { eager: true }) as Recordable; const mockModules: any[] = []; Object.keys(modules).forEach((key) => { diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 8713237d..27a0a63b 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -49,7 +49,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { localEnabled: !isBuild, prodEnabled: isBuild, injectCode: ` - import { setupProdMockServer } from 'mock/_createProductionServer'; + import { setupProdMockServer } from './_createProductionServer'; setupProdMockServer() `, From 253a176c1a3921db207ff092a6cf5b5ea221f7c6 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 18:06:42 +0800 Subject: [PATCH 080/134] feat: :sparkles: test --- apps/admin/src/_createProductionServer.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/admin/src/_createProductionServer.ts b/apps/admin/src/_createProductionServer.ts index 0b2ca997..c0d25aa9 100644 --- a/apps/admin/src/_createProductionServer.ts +++ b/apps/admin/src/_createProductionServer.ts @@ -18,5 +18,6 @@ Object.keys(modules).forEach((key) => { * Used in a production environment, need to manually import all modules. */ export function setupProdMockServer() { + console.log(mockModules); createProdMockServer(mockModules); } From 777d68f2a80c08a3f1d7ed92d7026503971bb77a Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 18:15:18 +0800 Subject: [PATCH 081/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/vite.config.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 27a0a63b..4256a19a 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -53,6 +53,8 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { setupProdMockServer() `, + // 当前文件夹下的src/main.ts + injectFile: './src/main.ts', }), ], From 433ad9ddbd79a90e0328dcae75b7929bdd085c17 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 18:23:45 +0800 Subject: [PATCH 082/134] feat: :sparkles: ceshi --- apps/admin/vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 4256a19a..a2209e44 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -54,7 +54,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { setupProdMockServer() `, // 当前文件夹下的src/main.ts - injectFile: './src/main.ts', + injectFile: './src/main.tsx', }), ], From 6275dd01868531f4e55d98c21a515a0b64e3a71b Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 18:31:01 +0800 Subject: [PATCH 083/134] feat: :sparkles: testtest --- apps/admin/src/{main.tsx => main.ts} | 0 apps/admin/typings/global.d.ts | 6 +++--- apps/admin/typings/index.d.ts | 8 ++++---- apps/admin/vite.config.ts | 5 ++--- 4 files changed, 9 insertions(+), 10 deletions(-) rename apps/admin/src/{main.tsx => main.ts} (100%) diff --git a/apps/admin/src/main.tsx b/apps/admin/src/main.ts similarity index 100% rename from apps/admin/src/main.tsx rename to apps/admin/src/main.ts diff --git a/apps/admin/typings/global.d.ts b/apps/admin/typings/global.d.ts index 44afcf90..0b9ffb7d 100644 --- a/apps/admin/typings/global.d.ts +++ b/apps/admin/typings/global.d.ts @@ -1,3 +1,3 @@ -declare type Nullable = T | null -declare type Recordable = Record -declare type ElRef = Nullable +declare type Nullable = T | null; +declare type Recordable = Record; +declare type ElRef = Nullable; diff --git a/apps/admin/typings/index.d.ts b/apps/admin/typings/index.d.ts index 69f39d3b..96d5be24 100644 --- a/apps/admin/typings/index.d.ts +++ b/apps/admin/typings/index.d.ts @@ -1,9 +1,9 @@ declare interface Fn { - (...arg: T[]): R + (...arg: T[]): R; } -declare type AnyFn = (...args: any[]) => any +declare type AnyFn = (...args: any[]) => any; -declare type TargetContext = '_self' | '_blank' +declare type TargetContext = '_self' | '_blank'; -declare module 'react-org-tree' \ No newline at end of file +declare module 'react-org-tree'; diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index a2209e44..05792ec7 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -50,11 +50,10 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { prodEnabled: isBuild, injectCode: ` import { setupProdMockServer } from './_createProductionServer'; - + console.log(10086); setupProdMockServer() `, - // 当前文件夹下的src/main.ts - injectFile: './src/main.tsx', + // 当前文件夹下的src/main.tsx }), ], From 78ae6cf56dcc0466af7207968bc2fed05ba70fcb Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 18:36:19 +0800 Subject: [PATCH 084/134] feat: :sparkles: test --- apps/admin/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/admin/index.html b/apps/admin/index.html index 7466b91d..f7040c4c 100644 --- a/apps/admin/index.html +++ b/apps/admin/index.html @@ -19,6 +19,6 @@
- + From d6761fb71b04cba4cdeb95f08baeb40e3cf6a086 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 18:55:08 +0800 Subject: [PATCH 085/134] feat: :sparkles: test --- apps/admin/index.html | 2 +- apps/admin/src/{main.ts => main.tsx} | 0 apps/admin/vite.config.ts | 4 +++- 3 files changed, 4 insertions(+), 2 deletions(-) rename apps/admin/src/{main.ts => main.tsx} (100%) diff --git a/apps/admin/index.html b/apps/admin/index.html index f7040c4c..7466b91d 100644 --- a/apps/admin/index.html +++ b/apps/admin/index.html @@ -19,6 +19,6 @@
- + diff --git a/apps/admin/src/main.ts b/apps/admin/src/main.tsx similarity index 100% rename from apps/admin/src/main.ts rename to apps/admin/src/main.tsx diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 05792ec7..d3fb05f4 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -6,6 +6,7 @@ import { resolve } from 'path'; import { loadEnv } from 'vite'; import { viteMockServe } from 'vite-plugin-mock'; import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; +import path from 'path'; import { wrapperEnv } from './build/utils'; @@ -53,7 +54,8 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { console.log(10086); setupProdMockServer() `, - // 当前文件夹下的src/main.tsx + // 当前文件夹下的src/main.ts + injectFile: './src/main.tsx', }), ], From d3f7563e24cafc54496458fb5041c4c1d74b5327 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 19:05:28 +0800 Subject: [PATCH 086/134] feat: :sparkles: te ttet --- .gitignore | 3 ++- apps/admin/vite.config.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 671b4fac..43e92717 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ dist-ssr server/dist public/dist es -lib \ No newline at end of file +lib +gbeata-dist \ No newline at end of file diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index d3fb05f4..8cfbfe93 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -55,7 +55,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { setupProdMockServer() `, // 当前文件夹下的src/main.ts - injectFile: './src/main.tsx', + injectFile: path.join(__dirname, '/src/main.tsx'), }), ], From f389274f32c6184c30135c030ebfc7f278b37355 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 22:05:05 +0800 Subject: [PATCH 087/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=B7=AF=E7=94=B1bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 1 - apps/admin/src/views/user/components/proFile/index.tsx | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/admin/package.json b/apps/admin/package.json index 8eb9fa31..72236f8d 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -1,7 +1,6 @@ { "name": "react-admin-design", "version": "0.0.0", - "type": "module", "scripts": { "dev": "vite", "build": "rimraf dist && vite build", diff --git a/apps/admin/src/views/user/components/proFile/index.tsx b/apps/admin/src/views/user/components/proFile/index.tsx index e0e339b0..89ebaf69 100644 --- a/apps/admin/src/views/user/components/proFile/index.tsx +++ b/apps/admin/src/views/user/components/proFile/index.tsx @@ -98,8 +98,8 @@ const ProFile: FC = () => { ( - + renderItem={(item, index) => ( + )} @@ -109,8 +109,8 @@ const ProFile: FC = () => { ( - + renderItem={(item, index) => ( + )} @@ -132,7 +132,7 @@ const ProFile: FC = () => { title={ - + } title='Gbeata' From bd18dda1ddcc0224f02dc2781e097b667a52ce71 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 22:10:49 +0800 Subject: [PATCH 088/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/router/routes/home.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index d7868dea..52669dd6 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -20,7 +20,7 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: LazyLoad(lazy(() => import('@/views/home'))), + element: LazyLoad(lazy(async () => await import('@/views/home'))), meta: { title: '首页', key: 'home', From 956b104c6d5f09f021890a3050c21b5c2f4fc917 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 22:26:26 +0800 Subject: [PATCH 089/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/src/components/LazyLoad/src/LazyLoad.tsx | 14 +++++++++----- apps/admin/src/router/routes/home.tsx | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index 96f04fe5..2d9127f8 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -7,10 +7,14 @@ import Loading from './Loading'; * @param {Element} Component 需要访问的组件 * @returns element */ -const LazyLoad = (Component: LazyExoticComponent>): ReactNode => ( - }> - - -); +const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { + console.log(Component); + + return ( + }> + + + ); +}; export default LazyLoad; diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index 52669dd6..d7868dea 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -20,7 +20,7 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: LazyLoad(lazy(async () => await import('@/views/home'))), + element: LazyLoad(lazy(() => import('@/views/home'))), meta: { title: '首页', key: 'home', From fb6c1b07475b1a4cc7b08b4834002a7ed6416bf5 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 22:34:50 +0800 Subject: [PATCH 090/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/components/LazyLoad/src/LazyLoad.tsx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index 2d9127f8..269a5a96 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -8,12 +8,10 @@ import Loading from './Loading'; * @returns element */ const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { - console.log(Component); - return ( - }> - - + // }> + + // ); }; From 46583e94a4f4601c053084d62ee57b6e936a888e Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 22:41:52 +0800 Subject: [PATCH 091/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/components/LazyLoad/src/LazyLoad.tsx | 6 +++--- apps/admin/src/router/routes/home.tsx | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index 269a5a96..c25fa9fd 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -9,9 +9,9 @@ import Loading from './Loading'; */ const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { return ( - // }> - - // + }> + + ); }; diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index d7868dea..2f4be088 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -6,6 +6,8 @@ import { LayoutGuard } from '../guard'; import type { RouteObject } from '../types'; +import HomePage from '@/views/home/index'; + // Home route const HomeRoute: RouteObject = { path: '/home', @@ -20,7 +22,7 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: LazyLoad(lazy(() => import('@/views/home'))), + element: , meta: { title: '首页', key: 'home', From 16a5f531aa47af4e565ceb3c6368dbf200941203 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 22:58:13 +0800 Subject: [PATCH 092/134] feat: :sparkles: ceshi --- apps/admin/src/router/routes/home.tsx | 3 ++- apps/admin/src/router/utils/delayPromise.ts | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 apps/admin/src/router/utils/delayPromise.ts diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index 2f4be088..f56855ab 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -7,6 +7,7 @@ import { LayoutGuard } from '../guard'; import type { RouteObject } from '../types'; import HomePage from '@/views/home/index'; +import { delayForComponent } from '../utils/delayPromise'; // Home route const HomeRoute: RouteObject = { @@ -22,7 +23,7 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: , + element: LazyLoad(lazy(() => delayForComponent(import('@/views/home/index')))), meta: { title: '首页', key: 'home', diff --git a/apps/admin/src/router/utils/delayPromise.ts b/apps/admin/src/router/utils/delayPromise.ts new file mode 100644 index 00000000..f05a3f7c --- /dev/null +++ b/apps/admin/src/router/utils/delayPromise.ts @@ -0,0 +1,7 @@ +import { FC } from 'react'; + +export function delayForComponent(promise: any) { + return new Promise((resolve) => { + setTimeout(resolve, 2000); + }).then(() => promise); +} From b5b4454e4512517c220f406a9a95063e4b6edbb8 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 23:05:01 +0800 Subject: [PATCH 093/134] feat: :sparkles: ceshi --- apps/admin/src/router/routes/home.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index f56855ab..c77b58d8 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -6,9 +6,6 @@ import { LayoutGuard } from '../guard'; import type { RouteObject } from '../types'; -import HomePage from '@/views/home/index'; -import { delayForComponent } from '../utils/delayPromise'; - // Home route const HomeRoute: RouteObject = { path: '/home', @@ -23,7 +20,7 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: LazyLoad(lazy(() => delayForComponent(import('@/views/home/index')))), + element: LazyLoad(lazy(() => import('@/views/home/index'))), meta: { title: '首页', key: 'home', From 0d4e8f3267141042f247a2759353f8642d43bbf9 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 23:19:08 +0800 Subject: [PATCH 094/134] feat: :sparkles: ceshi --- apps/admin/src/vite-env.d.ts | 1 + apps/admin/vite.config.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 apps/admin/src/vite-env.d.ts diff --git a/apps/admin/src/vite-env.d.ts b/apps/admin/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/apps/admin/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 8cfbfe93..86c7f08b 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -62,7 +62,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { build: { target: 'es2015', cssTarget: 'chrome86', - minify: 'terser', + minify: 'esbuild', outDir: '../../gbeata-dist', terserOptions: { compress: { From 00541173dabd7faa5db3843a84e55f73d1a96b78 Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 23:31:39 +0800 Subject: [PATCH 095/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/router/routes/home.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index c77b58d8..0dc751bb 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -20,7 +20,11 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: LazyLoad(lazy(() => import('@/views/home/index'))), + element: LazyLoad( + lazy(() => { + return import('@/views/home/index'); + }), + ), meta: { title: '首页', key: 'home', From e11cd31a86606a98b36c2cd34afe82aca33e2edc Mon Sep 17 00:00:00 2001 From: G Date: Wed, 27 Dec 2023 23:35:22 +0800 Subject: [PATCH 096/134] feat: :sparkles: ceshi --- apps/admin/src/components/LazyLoad/src/LazyLoad.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index c25fa9fd..083a2b43 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -9,9 +9,12 @@ import Loading from './Loading'; */ const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { return ( - }> - - + <> + 123123 + }> + + + ); }; From 4295d28af36c4b8a4e178229305abafc65f5a6db Mon Sep 17 00:00:00 2001 From: G Date: Thu, 28 Dec 2023 10:49:56 +0800 Subject: [PATCH 097/134] feat: :sparkles: ceshi --- apps/admin/src/components/LazyLoad/src/LazyLoad.tsx | 6 ++++-- apps/admin/src/router/routes/home.tsx | 8 ++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index 083a2b43..b63e9111 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -1,4 +1,4 @@ -import { type LazyExoticComponent, type ReactNode, Suspense } from 'react'; +import { type LazyExoticComponent, type ReactNode, Suspense, FC } from 'react'; import Loading from './Loading'; @@ -7,7 +7,9 @@ import Loading from './Loading'; * @param {Element} Component 需要访问的组件 * @returns element */ -const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { +const LazyLoad: FC<{ Component: LazyExoticComponent> }> = ({ Component }) => { + console.log(Component); + return ( <> 123123 diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index 0dc751bb..24d800c7 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -5,7 +5,7 @@ import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; import type { RouteObject } from '../types'; - +import HomePage from '@/views/home/index'; // Home route const HomeRoute: RouteObject = { path: '/home', @@ -20,11 +20,7 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: LazyLoad( - lazy(() => { - return import('@/views/home/index'); - }), - ), + element: import('@/views/home/index'))} />, meta: { title: '首页', key: 'home', From 433111a3953ce4694814c2be83e3e6c0a56b7249 Mon Sep 17 00:00:00 2001 From: G Date: Thu, 28 Dec 2023 11:07:15 +0800 Subject: [PATCH 098/134] =?UTF-8?q?feat:=20:sparkles:=20=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/components/LazyLoad/src/LazyLoad.tsx | 4 ++-- apps/admin/src/router/routes/home.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index b63e9111..dc4c6d7f 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -1,4 +1,4 @@ -import { type LazyExoticComponent, type ReactNode, Suspense, FC } from 'react'; +import { type LazyExoticComponent, type ReactNode, Suspense } from 'react'; import Loading from './Loading'; @@ -7,7 +7,7 @@ import Loading from './Loading'; * @param {Element} Component 需要访问的组件 * @returns element */ -const LazyLoad: FC<{ Component: LazyExoticComponent> }> = ({ Component }) => { +const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { console.log(Component); return ( diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index 24d800c7..191779ca 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -20,7 +20,7 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: import('@/views/home/index'))} />, + element: LazyLoad(lazy(() => import('@/views/home/index'))), meta: { title: '首页', key: 'home', From f5360d4723b6b1c68a02149560bde32ef11c5414 Mon Sep 17 00:00:00 2001 From: G Date: Thu, 28 Dec 2023 11:12:07 +0800 Subject: [PATCH 099/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=8F=90=E5=89=8D=E5=8A=A0=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/components/LazyLoad/src/LazyLoad.tsx | 1 - apps/admin/src/router/routes/home.tsx | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index dc4c6d7f..5f727580 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -12,7 +12,6 @@ const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { return ( <> - 123123 }> diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index 191779ca..c0a1d765 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -5,7 +5,7 @@ import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; import type { RouteObject } from '../types'; -import HomePage from '@/views/home/index'; +const HomePage = lazy(() => import('@/views/home/index')); // Home route const HomeRoute: RouteObject = { path: '/home', @@ -20,7 +20,7 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: LazyLoad(lazy(() => import('@/views/home/index'))), + element: LazyLoad(HomePage), meta: { title: '首页', key: 'home', From dfe84fdec7950460572a8f6368d8de913f132774 Mon Sep 17 00:00:00 2001 From: G Date: Thu, 28 Dec 2023 11:23:47 +0800 Subject: [PATCH 100/134] feat: :sparkles: test --- apps/admin/src/components/LazyLoad/src/LazyLoad.tsx | 2 -- apps/admin/src/router/routes/home.tsx | 9 +++++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index 5f727580..a48102ba 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -8,8 +8,6 @@ import Loading from './Loading'; * @returns element */ const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { - console.log(Component); - return ( <> }> diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index c0a1d765..c9b57f34 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -1,10 +1,11 @@ -import { lazy } from 'react'; +import { lazy, Suspense } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; import type { RouteObject } from '../types'; +import Loading from '@/components/LazyLoad/src/Loading'; const HomePage = lazy(() => import('@/views/home/index')); // Home route const HomeRoute: RouteObject = { @@ -20,7 +21,11 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: LazyLoad(HomePage), + element: ( + }> + + + ), meta: { title: '首页', key: 'home', From b8e234f4044389f9293ea0c7b3a15330c669704b Mon Sep 17 00:00:00 2001 From: G Date: Thu, 28 Dec 2023 14:13:27 +0800 Subject: [PATCH 101/134] =?UTF-8?q?feat:=20:sparkles:=20=E9=99=8D=E4=BD=8E?= =?UTF-8?q?react-router-dom=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 5 +- .../src/components/ErrorBoundary/index.tsx | 14 ++++ apps/admin/src/router/routes/home.tsx | 12 ++-- apps/admin/src/router/types.ts | 4 +- pnpm-lock.yaml | 68 ++++++++----------- 5 files changed, 54 insertions(+), 49 deletions(-) create mode 100644 apps/admin/src/components/ErrorBoundary/index.tsx diff --git a/apps/admin/package.json b/apps/admin/package.json index 72236f8d..fabad99e 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -40,7 +40,6 @@ "react-org-tree": "^1.0.1", "react-redux": "^8.1.3", "react-rnd": "^10.4.1", - "react-router-dom": "^6.19.0", "react-sortablejs": "^6.1.4", "redux": "^4.2.1", "redux-persist": "^6.0.0", @@ -50,7 +49,8 @@ "use-immer": "^0.9.0", "video-react": "^0.16.0", "vite-plugin-mock": "2.9.6", - "xlsx": "^0.18.5" + "xlsx": "^0.18.5", + "react-router-dom": "^6.3.0" }, "devDependencies": { "@babel/core": "^7.23.3", @@ -62,6 +62,7 @@ "@types/node": "^20.9.2", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", + "@types/react-router-dom": "^5.3.3", "@types/sortablejs": "^1.15.5", "@types/video-react": "^0.15.4", "@vitejs/plugin-react": "^4.2.0", diff --git a/apps/admin/src/components/ErrorBoundary/index.tsx b/apps/admin/src/components/ErrorBoundary/index.tsx new file mode 100644 index 00000000..73749aa5 --- /dev/null +++ b/apps/admin/src/components/ErrorBoundary/index.tsx @@ -0,0 +1,14 @@ +import { useRouteError } from 'react-router-dom'; + +const ErrorBoundary = () => { + const error = useRouteError(); + console.log(error); + + return ( +
+

Oops!

+

Sorry, an unexpected error has occurred.

+
+ ); +}; +export default ErrorBoundary; diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index c9b57f34..8d8162ab 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -1,16 +1,17 @@ -import { lazy, Suspense } from 'react'; +import { lazy } from 'react'; import { LazyLoad } from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; import type { RouteObject } from '../types'; -import Loading from '@/components/LazyLoad/src/Loading'; +import ErrorBoundary from '@/components/ErrorBoundary'; const HomePage = lazy(() => import('@/views/home/index')); // Home route const HomeRoute: RouteObject = { path: '/home', element: , + errorElement: , meta: { title: '首页', icon: 'home', @@ -21,11 +22,8 @@ const HomeRoute: RouteObject = { children: [ { path: '', - element: ( - }> - - - ), + element: LazyLoad(HomePage), + errorElement: , meta: { title: '首页', key: 'home', diff --git a/apps/admin/src/router/types.ts b/apps/admin/src/router/types.ts index da4b5d61..4981fa0f 100644 --- a/apps/admin/src/router/types.ts +++ b/apps/admin/src/router/types.ts @@ -1,5 +1,5 @@ import type { ReactNode } from 'react'; -import type { LoaderFunction } from 'react-router-dom'; +import type { NonIndexRouteObject, LoaderFunction } from 'react-router-dom'; export interface MetaProps { title: string; @@ -13,7 +13,7 @@ export interface MetaProps { hideChildrenInMenu?: boolean; } -export interface RouteObject { +export interface RouteObject extends NonIndexRouteObject { id?: string; loader?: LoaderFunction; element?: ReactNode; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5fd1c9d8..d34951d3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -163,8 +163,8 @@ importers: specifier: ^10.4.1 version: registry.npmmirror.com/react-rnd@10.4.1(react-dom@18.2.0)(react@18.2.0) react-router-dom: - specifier: ^6.19.0 - version: registry.npmmirror.com/react-router-dom@6.21.0(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.3.0 + version: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.2.0)(react@18.2.0) react-sortablejs: specifier: ^6.1.4 version: registry.npmmirror.com/react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.1) @@ -223,6 +223,9 @@ importers: '@types/react-dom': specifier: ^18.2.15 version: registry.npmmirror.com/@types/react-dom@18.2.18 + '@types/react-router-dom': + specifier: ^5.3.3 + version: registry.npmmirror.com/@types/react-router-dom@5.3.3 '@types/sortablejs': specifier: ^1.15.5 version: registry.npmmirror.com/@types/sortablejs@1.15.7 @@ -4510,13 +4513,6 @@ packages: reselect: registry.npmmirror.com/reselect@5.0.1 dev: false - registry.npmmirror.com/@remix-run/router@1.14.0: - resolution: {integrity: sha512-WOHih+ClN7N8oHk9N4JUiMxQJmRVaOxcg8w7F/oHUXzJt920ekASLI/7cYX8XkntDWRhLZtsk6LbGrkgOAvi5A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@remix-run/router/-/router-1.14.0.tgz} - name: '@remix-run/router' - version: 1.14.0 - engines: {node: '>=14.0.0'} - dev: false - registry.npmmirror.com/@rollup/plugin-node-resolve@13.3.0(rollup@4.9.0): resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz} id: registry.npmmirror.com/@rollup/plugin-node-resolve/13.3.0 @@ -5386,6 +5382,12 @@ packages: dependencies: '@types/unist': registry.npmmirror.com/@types/unist@2.0.10 + registry.npmmirror.com/@types/history@4.7.11: + resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/history/-/history-4.7.11.tgz} + name: '@types/history' + version: 4.7.11 + dev: true + registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5: resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz} name: '@types/hoist-non-react-statics' @@ -5562,6 +5564,25 @@ packages: dependencies: '@types/react': registry.npmmirror.com/@types/react@18.2.45 + registry.npmmirror.com/@types/react-router-dom@5.3.3: + resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz} + name: '@types/react-router-dom' + version: 5.3.3 + dependencies: + '@types/history': registry.npmmirror.com/@types/history@4.7.11 + '@types/react': registry.npmmirror.com/@types/react@18.2.45 + '@types/react-router': registry.npmmirror.com/@types/react-router@5.1.20 + dev: true + + registry.npmmirror.com/@types/react-router@5.1.20: + resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-router/-/react-router-5.1.20.tgz} + name: '@types/react-router' + version: 5.1.20 + dependencies: + '@types/history': registry.npmmirror.com/@types/history@4.7.11 + '@types/react': registry.npmmirror.com/@types/react@18.2.45 + dev: true + registry.npmmirror.com/@types/react-slick@0.23.13: resolution: {integrity: sha512-bNZfDhe/L8t5OQzIyhrRhBr/61pfBcWaYJoq6UDqFtv5LMwfg4NsVDD2J8N01JqdAdxLjOt66OZEp6PX+dGs/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-slick/-/react-slick-0.23.13.tgz} name: '@types/react-slick' @@ -19824,22 +19845,6 @@ packages: tslib: registry.npmmirror.com/tslib@2.3.1 dev: false - registry.npmmirror.com/react-router-dom@6.21.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1dUdVj3cwc1npzJaf23gulB562ESNvxf7E4x8upNJycqyUm5BRRZ6dd3LrlzhtLaMrwOCO8R0zoiYxdaJx4LlQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.21.0.tgz} - id: registry.npmmirror.com/react-router-dom/6.21.0 - name: react-router-dom - version: 6.21.0 - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' - dependencies: - '@remix-run/router': registry.npmmirror.com/@remix-run/router@1.14.0 - react: registry.npmmirror.com/react@18.2.0 - react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) - react-router: registry.npmmirror.com/react-router@6.21.0(react@18.2.0) - dev: false - registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz} id: registry.npmmirror.com/react-router-dom/6.3.0 @@ -19868,19 +19873,6 @@ packages: react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) react-router: registry.npmmirror.com/react-router@6.3.0(react@18.2.0) - registry.npmmirror.com/react-router@6.21.0(react@18.2.0): - resolution: {integrity: sha512-hGZ0HXbwz3zw52pLZV3j3+ec+m/PQ9cTpBvqjFQmy2XVUWGn5MD+31oXHb6dVTxYzmAeaiUBYjkoNz66n3RGCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.21.0.tgz} - id: registry.npmmirror.com/react-router/6.21.0 - name: react-router - version: 6.21.0 - engines: {node: '>=14.0.0'} - peerDependencies: - react: '>=16.8' - dependencies: - '@remix-run/router': registry.npmmirror.com/@remix-run/router@1.14.0 - react: registry.npmmirror.com/react@18.2.0 - dev: false - registry.npmmirror.com/react-router@6.3.0(react@18.1.0): resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz} id: registry.npmmirror.com/react-router/6.3.0 From 9557c1007e51d0a1b600e4b57d02eb16f137db4d Mon Sep 17 00:00:00 2001 From: G Date: Thu, 28 Dec 2023 14:23:53 +0800 Subject: [PATCH 102/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 6 ++--- pnpm-lock.yaml | 52 ++++++++++++++++++++++++++++++++++------- 2 files changed, 47 insertions(+), 11 deletions(-) diff --git a/apps/admin/package.json b/apps/admin/package.json index fabad99e..c49bfec7 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -13,6 +13,7 @@ "@ant-design/icons": "^5.2.6", "@codemirror/view": "^6.22.0", "@reduxjs/toolkit": "^2.0.1", + "@types/react-router-dom": "^5.3.3", "@uiw/react-codemirror": "^4.21.20", "@uiw/react-md-editor": "^3.25.6", "@wangeditor/editor": "^5.1.23", @@ -40,6 +41,7 @@ "react-org-tree": "^1.0.1", "react-redux": "^8.1.3", "react-rnd": "^10.4.1", + "react-router-dom": "^6.21.1", "react-sortablejs": "^6.1.4", "redux": "^4.2.1", "redux-persist": "^6.0.0", @@ -49,8 +51,7 @@ "use-immer": "^0.9.0", "video-react": "^0.16.0", "vite-plugin-mock": "2.9.6", - "xlsx": "^0.18.5", - "react-router-dom": "^6.3.0" + "xlsx": "^0.18.5" }, "devDependencies": { "@babel/core": "^7.23.3", @@ -62,7 +63,6 @@ "@types/node": "^20.9.2", "@types/react": "^18.2.37", "@types/react-dom": "^18.2.15", - "@types/react-router-dom": "^5.3.3", "@types/sortablejs": "^1.15.5", "@types/video-react": "^0.15.4", "@vitejs/plugin-react": "^4.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d34951d3..de840a87 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -81,6 +81,9 @@ importers: '@reduxjs/toolkit': specifier: ^2.0.1 version: registry.npmmirror.com/@reduxjs/toolkit@2.0.1(react-redux@8.1.3)(react@18.2.0) + '@types/react-router-dom': + specifier: ^5.3.3 + version: registry.npmmirror.com/@types/react-router-dom@5.3.3 '@uiw/react-codemirror': specifier: ^4.21.20 version: registry.npmmirror.com/@uiw/react-codemirror@4.21.21(@babel/runtime@7.23.6)(@codemirror/autocomplete@6.11.1)(@codemirror/language@6.9.3)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.3.3)(@codemirror/theme-one-dark@6.1.2)(@codemirror/view@6.22.3)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0) @@ -163,8 +166,8 @@ importers: specifier: ^10.4.1 version: registry.npmmirror.com/react-rnd@10.4.1(react-dom@18.2.0)(react@18.2.0) react-router-dom: - specifier: ^6.3.0 - version: registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.2.0)(react@18.2.0) + specifier: ^6.21.1 + version: registry.npmmirror.com/react-router-dom@6.21.1(react-dom@18.2.0)(react@18.2.0) react-sortablejs: specifier: ^6.1.4 version: registry.npmmirror.com/react-sortablejs@6.1.4(@types/sortablejs@1.15.7)(react-dom@18.2.0)(react@18.2.0)(sortablejs@1.15.1) @@ -223,9 +226,6 @@ importers: '@types/react-dom': specifier: ^18.2.15 version: registry.npmmirror.com/@types/react-dom@18.2.18 - '@types/react-router-dom': - specifier: ^5.3.3 - version: registry.npmmirror.com/@types/react-router-dom@5.3.3 '@types/sortablejs': specifier: ^1.15.5 version: registry.npmmirror.com/@types/sortablejs@1.15.7 @@ -4513,6 +4513,13 @@ packages: reselect: registry.npmmirror.com/reselect@5.0.1 dev: false + registry.npmmirror.com/@remix-run/router@1.14.1: + resolution: {integrity: sha512-Qg4DMQsfPNAs88rb2xkdk03N3bjK4jgX5fR24eHCTR9q6PrhZQZ4UJBPzCHJkIpTRN1UKxx2DzjZmnC+7Lj0Ow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@remix-run/router/-/router-1.14.1.tgz} + name: '@remix-run/router' + version: 1.14.1 + engines: {node: '>=14.0.0'} + dev: false + registry.npmmirror.com/@rollup/plugin-node-resolve@13.3.0(rollup@4.9.0): resolution: {integrity: sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz} id: registry.npmmirror.com/@rollup/plugin-node-resolve/13.3.0 @@ -5386,7 +5393,7 @@ packages: resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/history/-/history-4.7.11.tgz} name: '@types/history' version: 4.7.11 - dev: true + dev: false registry.npmmirror.com/@types/hoist-non-react-statics@3.3.5: resolution: {integrity: sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz} @@ -5572,7 +5579,7 @@ packages: '@types/history': registry.npmmirror.com/@types/history@4.7.11 '@types/react': registry.npmmirror.com/@types/react@18.2.45 '@types/react-router': registry.npmmirror.com/@types/react-router@5.1.20 - dev: true + dev: false registry.npmmirror.com/@types/react-router@5.1.20: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-router/-/react-router-5.1.20.tgz} @@ -5581,7 +5588,7 @@ packages: dependencies: '@types/history': registry.npmmirror.com/@types/history@4.7.11 '@types/react': registry.npmmirror.com/@types/react@18.2.45 - dev: true + dev: false registry.npmmirror.com/@types/react-slick@0.23.13: resolution: {integrity: sha512-bNZfDhe/L8t5OQzIyhrRhBr/61pfBcWaYJoq6UDqFtv5LMwfg4NsVDD2J8N01JqdAdxLjOt66OZEp6PX+dGs/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-slick/-/react-slick-0.23.13.tgz} @@ -19845,6 +19852,22 @@ packages: tslib: registry.npmmirror.com/tslib@2.3.1 dev: false + registry.npmmirror.com/react-router-dom@6.21.1(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-QCNrtjtDPwHDO+AO21MJd7yIcr41UetYt5jzaB9Y1UYaPTCnVuJq6S748g1dE11OQlCFIQg+RtAA1SEZIyiBeA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.21.1.tgz} + id: registry.npmmirror.com/react-router-dom/6.21.1 + name: react-router-dom + version: 6.21.1 + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + dependencies: + '@remix-run/router': registry.npmmirror.com/@remix-run/router@1.14.1 + react: registry.npmmirror.com/react@18.2.0 + react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) + react-router: registry.npmmirror.com/react-router@6.21.1(react@18.2.0) + dev: false + registry.npmmirror.com/react-router-dom@6.3.0(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-uaJj7LKytRxZNQV8+RbzJWnJ8K2nPsOOEuX7aQstlMZKQT0164C+X2w6bnkqU3sjtLvpd5ojrezAyfZ1+0sStw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.3.0.tgz} id: registry.npmmirror.com/react-router-dom/6.3.0 @@ -19873,6 +19896,19 @@ packages: react-dom: registry.npmmirror.com/react-dom@18.2.0(react@18.2.0) react-router: registry.npmmirror.com/react-router@6.3.0(react@18.2.0) + registry.npmmirror.com/react-router@6.21.1(react@18.2.0): + resolution: {integrity: sha512-W0l13YlMTm1YrpVIOpjCADJqEUpz1vm+CMo47RuFX4Ftegwm6KOYsL5G3eiE52jnJpKvzm6uB/vTKTPKM8dmkA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.21.1.tgz} + id: registry.npmmirror.com/react-router/6.21.1 + name: react-router + version: 6.21.1 + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + dependencies: + '@remix-run/router': registry.npmmirror.com/@remix-run/router@1.14.1 + react: registry.npmmirror.com/react@18.2.0 + dev: false + registry.npmmirror.com/react-router@6.3.0(react@18.1.0): resolution: {integrity: sha512-7Wh1DzVQ+tlFjkeo+ujvjSqSJmkt1+8JO+T5xklPlgrh70y7ogx75ODRW0ThWhY7S+6yEDks8TYrtQe/aoboBQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-router/-/react-router-6.3.0.tgz} id: registry.npmmirror.com/react-router/6.3.0 From d2fa236445a76481f208b621254caff1b4b1b2bd Mon Sep 17 00:00:00 2001 From: G Date: Thu, 28 Dec 2023 14:53:47 +0800 Subject: [PATCH 103/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?lazyload=E9=BB=98=E8=AE=A4=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/components/LazyLoad/index.ts | 2 +- apps/admin/src/router/routes/compo.tsx | 2 +- apps/admin/src/router/routes/excel.tsx | 2 +- apps/admin/src/router/routes/exception.tsx | 2 +- apps/admin/src/router/routes/form.tsx | 2 +- apps/admin/src/router/routes/graph-editor.tsx | 2 +- apps/admin/src/router/routes/home.tsx | 2 +- apps/admin/src/router/routes/images.tsx | 2 +- apps/admin/src/router/routes/table.tsx | 2 +- apps/admin/src/router/routes/text-editor.tsx | 2 +- apps/admin/src/router/routes/tree.tsx | 2 +- apps/admin/src/router/routes/user.tsx | 2 +- apps/admin/src/router/routes/video.tsx | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/apps/admin/src/components/LazyLoad/index.ts b/apps/admin/src/components/LazyLoad/index.ts index 9509fbf0..24f41249 100644 --- a/apps/admin/src/components/LazyLoad/index.ts +++ b/apps/admin/src/components/LazyLoad/index.ts @@ -1,3 +1,3 @@ import LazyLoad from './src/LazyLoad'; -export { LazyLoad }; +export default LazyLoad; diff --git a/apps/admin/src/router/routes/compo.tsx b/apps/admin/src/router/routes/compo.tsx index 789918d4..44c60aee 100644 --- a/apps/admin/src/router/routes/compo.tsx +++ b/apps/admin/src/router/routes/compo.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/routes/excel.tsx index 7b3be70a..8cdb8725 100644 --- a/apps/admin/src/router/routes/excel.tsx +++ b/apps/admin/src/router/routes/excel.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/exception.tsx b/apps/admin/src/router/routes/exception.tsx index 478f97e9..ddf866aa 100644 --- a/apps/admin/src/router/routes/exception.tsx +++ b/apps/admin/src/router/routes/exception.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { ExceptionEnum } from '@/enums/exceptionEnum'; diff --git a/apps/admin/src/router/routes/form.tsx b/apps/admin/src/router/routes/form.tsx index 43b486bb..461e80e9 100644 --- a/apps/admin/src/router/routes/form.tsx +++ b/apps/admin/src/router/routes/form.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/graph-editor.tsx b/apps/admin/src/router/routes/graph-editor.tsx index 3ade6dde..11647db8 100644 --- a/apps/admin/src/router/routes/graph-editor.tsx +++ b/apps/admin/src/router/routes/graph-editor.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index 8d8162ab..0c03b6d2 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/routes/images.tsx index 0bf3cb57..1385640f 100644 --- a/apps/admin/src/router/routes/images.tsx +++ b/apps/admin/src/router/routes/images.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/routes/table.tsx index f191a7f5..6d89a997 100644 --- a/apps/admin/src/router/routes/table.tsx +++ b/apps/admin/src/router/routes/table.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/routes/text-editor.tsx index 70683c1c..753b10da 100644 --- a/apps/admin/src/router/routes/text-editor.tsx +++ b/apps/admin/src/router/routes/text-editor.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/routes/tree.tsx index e86ee037..c28cb750 100644 --- a/apps/admin/src/router/routes/tree.tsx +++ b/apps/admin/src/router/routes/tree.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/user.tsx b/apps/admin/src/router/routes/user.tsx index 162c5bab..92a30c46 100644 --- a/apps/admin/src/router/routes/user.tsx +++ b/apps/admin/src/router/routes/user.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/routes/video.tsx index e51b1ae6..4a34bd1e 100644 --- a/apps/admin/src/router/routes/video.tsx +++ b/apps/admin/src/router/routes/video.tsx @@ -1,6 +1,6 @@ import { lazy } from 'react'; -import { LazyLoad } from '@/components/LazyLoad'; +import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; From a1cf56c8c4d2fe8bc021e2216f46b3b5d1aca41c Mon Sep 17 00:00:00 2001 From: G Date: Thu, 28 Dec 2023 15:05:26 +0800 Subject: [PATCH 104/134] feat: :sparkles: tesst --- apps/admin/src/router/index.tsx | 44 ++++++++++-- apps/admin/src/router/routes/compo.tsx | 69 ------------------- apps/admin/src/router/routes/excel.tsx | 38 ---------- apps/admin/src/router/routes/exception.tsx | 51 -------------- apps/admin/src/router/routes/graph-editor.tsx | 38 ---------- apps/admin/src/router/routes/images.tsx | 46 ------------- apps/admin/src/router/routes/table.tsx | 38 ---------- apps/admin/src/router/routes/text-editor.tsx | 46 ------------- apps/admin/src/router/routes/tree.tsx | 38 ---------- apps/admin/src/router/routes/video.tsx | 38 ---------- 10 files changed, 37 insertions(+), 409 deletions(-) delete mode 100644 apps/admin/src/router/routes/compo.tsx delete mode 100644 apps/admin/src/router/routes/excel.tsx delete mode 100644 apps/admin/src/router/routes/exception.tsx delete mode 100644 apps/admin/src/router/routes/graph-editor.tsx delete mode 100644 apps/admin/src/router/routes/images.tsx delete mode 100644 apps/admin/src/router/routes/table.tsx delete mode 100644 apps/admin/src/router/routes/text-editor.tsx delete mode 100644 apps/admin/src/router/routes/tree.tsx delete mode 100644 apps/admin/src/router/routes/video.tsx diff --git a/apps/admin/src/router/index.tsx b/apps/admin/src/router/index.tsx index 2b58e59d..dd28aae6 100644 --- a/apps/admin/src/router/index.tsx +++ b/apps/admin/src/router/index.tsx @@ -10,17 +10,22 @@ import LoginPage from '@/views/login'; import { genFullPath } from './helpers'; import type { RouteObject } from './types'; +import LazyLoad from '@/components/LazyLoad'; +import { LayoutGuard } from './guard'; +import React from 'react'; + +const HomePage = React.lazy(() => import('@/views/home')); const metaRoutes = import.meta.glob('./routes/*.tsx', { eager: true }) as Recordable; const routeList: RouteObject[] = []; -Object.keys(metaRoutes).forEach((key) => { - const module = metaRoutes[key].default || {}; - const moduleList = Array.isArray(module) ? [...module] : [module]; - genFullPath(moduleList); - routeList.push(...moduleList); -}); +// Object.keys(metaRoutes).forEach((key) => { +// const module = metaRoutes[key].default || {}; +// const moduleList = Array.isArray(module) ? [...module] : [module]; +// genFullPath(moduleList); +// routeList.push(...moduleList); +// }); const rootRoutes: RouteObject[] = [ { @@ -41,7 +46,32 @@ const rootRoutes: RouteObject[] = [ return null; }, }, - ...routeList, + { + path: '/home', + element: , + meta: { + title: '首页', + icon: 'home', + affix: true, + orderNo: 1, + hideChildrenInMenu: true, + }, + children: [ + { + path: '', + element: LazyLoad(HomePage), + // errorElement: , + meta: { + title: '首页', + key: 'home', + icon: 'home', + orderNo: 1, + hideMenu: true, + }, + }, + ], + }, + // ...routeList, { path: '*', element: , diff --git a/apps/admin/src/router/routes/compo.tsx b/apps/admin/src/router/routes/compo.tsx deleted file mode 100644 index 44c60aee..00000000 --- a/apps/admin/src/router/routes/compo.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// component module page -const CompoRoute: RouteObject = { - path: '/compo', - element: , - meta: { - title: '组件', - icon: 'compo', - orderNo: 6, - }, - children: [ - { - path: 'image-upload', - element: LazyLoad(lazy(() => import('@/views/compo/image-upload'))), - meta: { - title: '图片上传', - key: 'imageUpload', - }, - }, - { - path: 'drag', - meta: { - title: '拖拽', - }, - children: [ - { - path: 'drag-list', - element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-list'))), - meta: { - title: '列表拖拽', - key: 'dragList', - }, - }, - { - path: 'drag-resize', - element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-resize'))), - meta: { - title: '组件拖拽', - key: 'dragResize', - }, - }, - ], - }, - { - path: 'transfer', - element: LazyLoad(lazy(() => import('@/views/compo/transfer'))), - meta: { - title: '穿梭框', - }, - }, - { - path: 'count-up', - element: LazyLoad(lazy(() => import('@/views/compo/count-up'))), - meta: { - title: '数字滚动', - key: 'countUp', - }, - }, - ], -}; - -export default CompoRoute; diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/routes/excel.tsx deleted file mode 100644 index 8cdb8725..00000000 --- a/apps/admin/src/router/routes/excel.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// excel module page -const ExcelRoute: RouteObject = { - path: '/excel', - element: , - meta: { - title: 'Excel', - icon: 'excel', - orderNo: 10, - }, - children: [ - { - path: 'export-excel', - element: LazyLoad(lazy(() => import('@/views/excel/export-excel'))), - meta: { - title: '导出Excel', - key: 'exportExcel', - }, - }, - { - path: 'import-excel', - element: LazyLoad(lazy(() => import('@/views/excel/import-excel'))), - meta: { - title: '导入Excel', - key: 'importExcel', - }, - }, - ], -}; - -export default ExcelRoute; diff --git a/apps/admin/src/router/routes/exception.tsx b/apps/admin/src/router/routes/exception.tsx deleted file mode 100644 index ddf866aa..00000000 --- a/apps/admin/src/router/routes/exception.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { ExceptionEnum } from '@/enums/exceptionEnum'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// exception module page -const ExceptionRoute: RouteObject = { - path: '/exception', - element: , - meta: { - title: '异常页面', - icon: 'bug', - orderNo: 11, - }, - children: [ - { - path: 'page-403', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '403页面', - key: 'page403', - }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }), - }, - { - path: 'page-404', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '404页面', - key: 'page404', - }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }), - }, - { - path: 'page-500', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '500页面', - key: 'page500', - }, - loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }), - }, - ], -}; - -export default ExceptionRoute; diff --git a/apps/admin/src/router/routes/graph-editor.tsx b/apps/admin/src/router/routes/graph-editor.tsx deleted file mode 100644 index 11647db8..00000000 --- a/apps/admin/src/router/routes/graph-editor.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// graph-editor module page -const GraphEditorRoute: RouteObject = { - path: '/graph-editor', - element: , - meta: { - title: '图形编辑器', - icon: 'flow', - orderNo: 8, - }, - children: [ - { - path: 'flow-chart', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '流程图', - key: 'flowChart', - }, - }, - { - path: 'mind-chart', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '思维导图', - key: 'mindChart', - }, - }, - ], -}; - -export default GraphEditorRoute; diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/routes/images.tsx deleted file mode 100644 index 1385640f..00000000 --- a/apps/admin/src/router/routes/images.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// image module page -const ImageRoute: RouteObject = { - path: '/image', - element: , - meta: { - title: '图片处理', - icon: 'image', - orderNo: 4, - }, - children: [ - { - path: 'image-cropper', - element: LazyLoad(lazy(() => import('@/views/image/image-cropper'))), - meta: { - title: '图片裁剪', - key: 'imageCropper', - }, - }, - { - path: 'image-compress', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '图片压缩', - key: 'imageCompress', - }, - }, - { - path: 'image-composition', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '图片合成', - key: 'imageComposition', - }, - }, - ], -}; - -export default ImageRoute; diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/routes/table.tsx deleted file mode 100644 index 6d89a997..00000000 --- a/apps/admin/src/router/routes/table.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// table module page -const TableRoute: RouteObject = { - path: '/table', - element: , - meta: { - title: '表格', - icon: 'table', - orderNo: 3, - }, - children: [ - { - path: 'table-basic', - element: LazyLoad(lazy(() => import('@/views/table/table-basic'))), - meta: { - title: '基础表格', - key: 'tableBasic', - }, - }, - { - path: 'table-edit-row', - element: LazyLoad(lazy(() => import('@/views/table/table-edit-row'))), - meta: { - title: '可编辑行表格', - key: 'tableEditRow', - }, - }, - ], -}; - -export default TableRoute; diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/routes/text-editor.tsx deleted file mode 100644 index 753b10da..00000000 --- a/apps/admin/src/router/routes/text-editor.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// text-editor module page -const TextEditorRoute: RouteObject = { - path: '/editor', - element: , - meta: { - title: '文本编辑器', - icon: 'editor', - orderNo: 7, - }, - children: [ - { - path: 'markdown', - element: LazyLoad(lazy(() => import('@/views/editor/markdown'))), - meta: { - title: 'Markdown编辑器', - key: 'markdown', - }, - }, - { - path: 'rich-text', - element: LazyLoad(lazy(() => import('@/views/editor/rich-text'))), - meta: { - title: '富文本编辑器', - key: 'richText', - }, - }, - { - path: 'code-editor', - element: LazyLoad(lazy(() => import('@/views/editor/code-mirror'))), - meta: { - title: '代码编辑器', - key: 'codeEditor', - }, - }, - ], -}; - -export default TextEditorRoute; diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/routes/tree.tsx deleted file mode 100644 index c28cb750..00000000 --- a/apps/admin/src/router/routes/tree.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// tree module page -const TreeRoute: RouteObject = { - path: '/tree', - element: , - meta: { - title: '树形结构', - icon: 'tree', - orderNo: 9, - }, - children: [ - { - path: 'org-tree', - element: LazyLoad(lazy(() => import('@/views/tree/org-tree'))), - meta: { - title: '组织树', - key: 'orgTree', - }, - }, - { - path: 'antd-tree', - element: LazyLoad(lazy(() => import('@/views/tree/antd-tree'))), - meta: { - title: '控件树', - key: 'antdTree', - }, - }, - ], -}; - -export default TreeRoute; diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/routes/video.tsx deleted file mode 100644 index 4a34bd1e..00000000 --- a/apps/admin/src/router/routes/video.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// video module page -const VideoRoute: RouteObject = { - path: '/video', - element: , - meta: { - title: '视频处理', - icon: 'video', - orderNo: 5, - }, - children: [ - { - path: 'video-player', - element: LazyLoad(lazy(() => import('@/views/video/video-player'))), - meta: { - title: '视频播放器', - key: 'videoPlayer', - }, - }, - { - path: 'video-mark', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '视频水印', - key: 'videoMark', - }, - }, - ], -}; - -export default VideoRoute; From a0efb2e2d791cac6d6d9586a68a95e44fc20f8ab Mon Sep 17 00:00:00 2001 From: G Date: Thu, 28 Dec 2023 23:08:01 +0800 Subject: [PATCH 105/134] =?UTF-8?q?feat:=20=E8=BF=98=E5=8E=9F=E8=B7=AF?= =?UTF-8?q?=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/router/routes/compo.tsx | 69 +++++++++++++++++++ apps/admin/src/router/routes/excel.tsx | 38 ++++++++++ apps/admin/src/router/routes/exception.tsx | 51 ++++++++++++++ apps/admin/src/router/routes/graph-editor.tsx | 38 ++++++++++ apps/admin/src/router/routes/images.tsx | 46 +++++++++++++ apps/admin/src/router/routes/table.tsx | 38 ++++++++++ apps/admin/src/router/routes/text-editor.tsx | 46 +++++++++++++ apps/admin/src/router/routes/tree.tsx | 38 ++++++++++ apps/admin/src/router/routes/video.tsx | 38 ++++++++++ 9 files changed, 402 insertions(+) create mode 100644 apps/admin/src/router/routes/compo.tsx create mode 100644 apps/admin/src/router/routes/excel.tsx create mode 100644 apps/admin/src/router/routes/exception.tsx create mode 100644 apps/admin/src/router/routes/graph-editor.tsx create mode 100644 apps/admin/src/router/routes/images.tsx create mode 100644 apps/admin/src/router/routes/table.tsx create mode 100644 apps/admin/src/router/routes/text-editor.tsx create mode 100644 apps/admin/src/router/routes/tree.tsx create mode 100644 apps/admin/src/router/routes/video.tsx diff --git a/apps/admin/src/router/routes/compo.tsx b/apps/admin/src/router/routes/compo.tsx new file mode 100644 index 00000000..44c60aee --- /dev/null +++ b/apps/admin/src/router/routes/compo.tsx @@ -0,0 +1,69 @@ +import { lazy } from 'react'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// component module page +const CompoRoute: RouteObject = { + path: '/compo', + element: , + meta: { + title: '组件', + icon: 'compo', + orderNo: 6, + }, + children: [ + { + path: 'image-upload', + element: LazyLoad(lazy(() => import('@/views/compo/image-upload'))), + meta: { + title: '图片上传', + key: 'imageUpload', + }, + }, + { + path: 'drag', + meta: { + title: '拖拽', + }, + children: [ + { + path: 'drag-list', + element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-list'))), + meta: { + title: '列表拖拽', + key: 'dragList', + }, + }, + { + path: 'drag-resize', + element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-resize'))), + meta: { + title: '组件拖拽', + key: 'dragResize', + }, + }, + ], + }, + { + path: 'transfer', + element: LazyLoad(lazy(() => import('@/views/compo/transfer'))), + meta: { + title: '穿梭框', + }, + }, + { + path: 'count-up', + element: LazyLoad(lazy(() => import('@/views/compo/count-up'))), + meta: { + title: '数字滚动', + key: 'countUp', + }, + }, + ], +}; + +export default CompoRoute; diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/routes/excel.tsx new file mode 100644 index 00000000..8cdb8725 --- /dev/null +++ b/apps/admin/src/router/routes/excel.tsx @@ -0,0 +1,38 @@ +import { lazy } from 'react'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// excel module page +const ExcelRoute: RouteObject = { + path: '/excel', + element: , + meta: { + title: 'Excel', + icon: 'excel', + orderNo: 10, + }, + children: [ + { + path: 'export-excel', + element: LazyLoad(lazy(() => import('@/views/excel/export-excel'))), + meta: { + title: '导出Excel', + key: 'exportExcel', + }, + }, + { + path: 'import-excel', + element: LazyLoad(lazy(() => import('@/views/excel/import-excel'))), + meta: { + title: '导入Excel', + key: 'importExcel', + }, + }, + ], +}; + +export default ExcelRoute; diff --git a/apps/admin/src/router/routes/exception.tsx b/apps/admin/src/router/routes/exception.tsx new file mode 100644 index 00000000..ddf866aa --- /dev/null +++ b/apps/admin/src/router/routes/exception.tsx @@ -0,0 +1,51 @@ +import { lazy } from 'react'; + +import LazyLoad from '@/components/LazyLoad'; + +import { ExceptionEnum } from '@/enums/exceptionEnum'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// exception module page +const ExceptionRoute: RouteObject = { + path: '/exception', + element: , + meta: { + title: '异常页面', + icon: 'bug', + orderNo: 11, + }, + children: [ + { + path: 'page-403', + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '403页面', + key: 'page403', + }, + loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }), + }, + { + path: 'page-404', + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '404页面', + key: 'page404', + }, + loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }), + }, + { + path: 'page-500', + element: LazyLoad(lazy(() => import('@/views/exception'))), + meta: { + title: '500页面', + key: 'page500', + }, + loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }), + }, + ], +}; + +export default ExceptionRoute; diff --git a/apps/admin/src/router/routes/graph-editor.tsx b/apps/admin/src/router/routes/graph-editor.tsx new file mode 100644 index 00000000..11647db8 --- /dev/null +++ b/apps/admin/src/router/routes/graph-editor.tsx @@ -0,0 +1,38 @@ +import { lazy } from 'react'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// graph-editor module page +const GraphEditorRoute: RouteObject = { + path: '/graph-editor', + element: , + meta: { + title: '图形编辑器', + icon: 'flow', + orderNo: 8, + }, + children: [ + { + path: 'flow-chart', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '流程图', + key: 'flowChart', + }, + }, + { + path: 'mind-chart', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '思维导图', + key: 'mindChart', + }, + }, + ], +}; + +export default GraphEditorRoute; diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/routes/images.tsx new file mode 100644 index 00000000..1385640f --- /dev/null +++ b/apps/admin/src/router/routes/images.tsx @@ -0,0 +1,46 @@ +import { lazy } from 'react'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// image module page +const ImageRoute: RouteObject = { + path: '/image', + element: , + meta: { + title: '图片处理', + icon: 'image', + orderNo: 4, + }, + children: [ + { + path: 'image-cropper', + element: LazyLoad(lazy(() => import('@/views/image/image-cropper'))), + meta: { + title: '图片裁剪', + key: 'imageCropper', + }, + }, + { + path: 'image-compress', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '图片压缩', + key: 'imageCompress', + }, + }, + { + path: 'image-composition', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '图片合成', + key: 'imageComposition', + }, + }, + ], +}; + +export default ImageRoute; diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/routes/table.tsx new file mode 100644 index 00000000..6d89a997 --- /dev/null +++ b/apps/admin/src/router/routes/table.tsx @@ -0,0 +1,38 @@ +import { lazy } from 'react'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// table module page +const TableRoute: RouteObject = { + path: '/table', + element: , + meta: { + title: '表格', + icon: 'table', + orderNo: 3, + }, + children: [ + { + path: 'table-basic', + element: LazyLoad(lazy(() => import('@/views/table/table-basic'))), + meta: { + title: '基础表格', + key: 'tableBasic', + }, + }, + { + path: 'table-edit-row', + element: LazyLoad(lazy(() => import('@/views/table/table-edit-row'))), + meta: { + title: '可编辑行表格', + key: 'tableEditRow', + }, + }, + ], +}; + +export default TableRoute; diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/routes/text-editor.tsx new file mode 100644 index 00000000..753b10da --- /dev/null +++ b/apps/admin/src/router/routes/text-editor.tsx @@ -0,0 +1,46 @@ +import { lazy } from 'react'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// text-editor module page +const TextEditorRoute: RouteObject = { + path: '/editor', + element: , + meta: { + title: '文本编辑器', + icon: 'editor', + orderNo: 7, + }, + children: [ + { + path: 'markdown', + element: LazyLoad(lazy(() => import('@/views/editor/markdown'))), + meta: { + title: 'Markdown编辑器', + key: 'markdown', + }, + }, + { + path: 'rich-text', + element: LazyLoad(lazy(() => import('@/views/editor/rich-text'))), + meta: { + title: '富文本编辑器', + key: 'richText', + }, + }, + { + path: 'code-editor', + element: LazyLoad(lazy(() => import('@/views/editor/code-mirror'))), + meta: { + title: '代码编辑器', + key: 'codeEditor', + }, + }, + ], +}; + +export default TextEditorRoute; diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/routes/tree.tsx new file mode 100644 index 00000000..c28cb750 --- /dev/null +++ b/apps/admin/src/router/routes/tree.tsx @@ -0,0 +1,38 @@ +import { lazy } from 'react'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// tree module page +const TreeRoute: RouteObject = { + path: '/tree', + element: , + meta: { + title: '树形结构', + icon: 'tree', + orderNo: 9, + }, + children: [ + { + path: 'org-tree', + element: LazyLoad(lazy(() => import('@/views/tree/org-tree'))), + meta: { + title: '组织树', + key: 'orgTree', + }, + }, + { + path: 'antd-tree', + element: LazyLoad(lazy(() => import('@/views/tree/antd-tree'))), + meta: { + title: '控件树', + key: 'antdTree', + }, + }, + ], +}; + +export default TreeRoute; diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/routes/video.tsx new file mode 100644 index 00000000..4a34bd1e --- /dev/null +++ b/apps/admin/src/router/routes/video.tsx @@ -0,0 +1,38 @@ +import { lazy } from 'react'; + +import LazyLoad from '@/components/LazyLoad'; + +import { LayoutGuard } from '../guard'; + +import type { RouteObject } from '../types'; + +// video module page +const VideoRoute: RouteObject = { + path: '/video', + element: , + meta: { + title: '视频处理', + icon: 'video', + orderNo: 5, + }, + children: [ + { + path: 'video-player', + element: LazyLoad(lazy(() => import('@/views/video/video-player'))), + meta: { + title: '视频播放器', + key: 'videoPlayer', + }, + }, + { + path: 'video-mark', + element: LazyLoad(lazy(() => import('@/views/blank'))), + meta: { + title: '视频水印', + key: 'videoMark', + }, + }, + ], +}; + +export default VideoRoute; From 889a971991832bb000853dde85866050cacfc581 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 2 Jan 2024 15:24:31 +0800 Subject: [PATCH 106/134] =?UTF-8?q?feat:=20:sparkles:=20=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/package.json | 2 ++ apps/admin/src/App.tsx | 13 +++++-- apps/admin/src/layout/index.tsx | 5 ++- apps/admin/src/router/index.tsx | 52 ++++++++------------------- apps/admin/src/router/routes/home.tsx | 24 ++++++++++--- apps/admin/src/router/routes/user.tsx | 2 +- apps/admin/vite.config.ts | 2 +- pnpm-lock.yaml | 29 +++++++++++++++ 8 files changed, 81 insertions(+), 48 deletions(-) diff --git a/apps/admin/package.json b/apps/admin/package.json index c49bfec7..c41f4762 100644 --- a/apps/admin/package.json +++ b/apps/admin/package.json @@ -12,7 +12,9 @@ "dependencies": { "@ant-design/icons": "^5.2.6", "@codemirror/view": "^6.22.0", + "@loadable/component": "^5.16.3", "@reduxjs/toolkit": "^2.0.1", + "@types/loadable__component": "^5.13.8", "@types/react-router-dom": "^5.3.3", "@uiw/react-codemirror": "^4.21.20", "@uiw/react-md-editor": "^3.25.6", diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 6f1265a5..89fdaf62 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -1,12 +1,12 @@ import { ThemeProvider } from 'antd-style'; import { useEffect, useState } from 'react'; -import { RouterProvider } from 'react-router-dom'; +import { HashRouter, RouterProvider } from 'react-router-dom'; import { useGlobalStore } from 'store'; import { GlobalConfig } from 'ui'; import cyanImg from '@/assets/images/cyan-blur.png'; import redImg from '@/assets/images/red-blur.png'; -import router from '@/router'; +import router, { Router } from '@/router'; import CustomGlobal from '@/styles/GlobalPager'; import LoadingPage from './components/LoadingPage'; @@ -49,7 +49,14 @@ function App() { }} > - {loading ? : } + {/* {loading ? : } */} + {loading ? ( + + ) : ( + + + + )} ); diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index ed302df8..6a195bbe 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -1,5 +1,6 @@ import { Layout } from 'antd'; import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; +import { Suspense } from 'react'; import { Outlet } from 'react-router-dom'; import { AppLogo } from '@/components/AppLogo'; @@ -29,7 +30,9 @@ export const BasicLayout = (props: any) => { - + + + diff --git a/apps/admin/src/router/index.tsx b/apps/admin/src/router/index.tsx index dd28aae6..fe8d08c8 100644 --- a/apps/admin/src/router/index.tsx +++ b/apps/admin/src/router/index.tsx @@ -1,4 +1,5 @@ -import { createHashRouter, Navigate, redirect } from 'react-router-dom'; +import React from 'react'; +import { createHashRouter, Navigate, redirect, useRoutes } from 'react-router-dom'; import { getAuthCache } from '@/utils/auth'; @@ -10,22 +11,17 @@ import LoginPage from '@/views/login'; import { genFullPath } from './helpers'; import type { RouteObject } from './types'; -import LazyLoad from '@/components/LazyLoad'; -import { LayoutGuard } from './guard'; -import React from 'react'; - -const HomePage = React.lazy(() => import('@/views/home')); const metaRoutes = import.meta.glob('./routes/*.tsx', { eager: true }) as Recordable; const routeList: RouteObject[] = []; -// Object.keys(metaRoutes).forEach((key) => { -// const module = metaRoutes[key].default || {}; -// const moduleList = Array.isArray(module) ? [...module] : [module]; -// genFullPath(moduleList); -// routeList.push(...moduleList); -// }); +Object.keys(metaRoutes).forEach((key) => { + const module = metaRoutes[key].default || {}; + const moduleList = Array.isArray(module) ? [...module] : [module]; + genFullPath(moduleList); + routeList.push(...moduleList); +}); const rootRoutes: RouteObject[] = [ { @@ -46,32 +42,7 @@ const rootRoutes: RouteObject[] = [ return null; }, }, - { - path: '/home', - element: , - meta: { - title: '首页', - icon: 'home', - affix: true, - orderNo: 1, - hideChildrenInMenu: true, - }, - children: [ - { - path: '', - element: LazyLoad(HomePage), - // errorElement: , - meta: { - title: '首页', - key: 'home', - icon: 'home', - orderNo: 1, - hideMenu: true, - }, - }, - ], - }, - // ...routeList, + ...routeList, { path: '*', element: , @@ -90,4 +61,9 @@ const rootRoutes: RouteObject[] = [ export { routeList as basicRoutes }; +export const Router = () => { + const routes = useRoutes(routeList); + return routes; +}; + export default createHashRouter(rootRoutes); diff --git a/apps/admin/src/router/routes/home.tsx b/apps/admin/src/router/routes/home.tsx index 0c03b6d2..8a2568c4 100644 --- a/apps/admin/src/router/routes/home.tsx +++ b/apps/admin/src/router/routes/home.tsx @@ -1,17 +1,21 @@ -import { lazy } from 'react'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { lazy } from '@loadable/component'; import LazyLoad from '@/components/LazyLoad'; import { LayoutGuard } from '../guard'; import type { RouteObject } from '../types'; -import ErrorBoundary from '@/components/ErrorBoundary'; + const HomePage = lazy(() => import('@/views/home/index')); + +// import ErrorBoundary from '@/components/ErrorBoundary'; // Home route const HomeRoute: RouteObject = { path: '/home', element: , - errorElement: , + // errorElement: , + loader: () => null, meta: { title: '首页', icon: 'home', @@ -23,7 +27,6 @@ const HomeRoute: RouteObject = { { path: '', element: LazyLoad(HomePage), - errorElement: , meta: { title: '首页', key: 'home', @@ -31,6 +34,19 @@ const HomeRoute: RouteObject = { orderNo: 1, hideMenu: true, }, + // async lazy() { + // const Home = lazy(() => import('@/views/home/index')); + // return { + // Component: Home, + // meta: { + // title: '首页', + // key: 'home', + // icon: 'home', + // orderNo: 1, + // hideMenu: true, + // }, + // }; + // }, }, ], }; diff --git a/apps/admin/src/router/routes/user.tsx b/apps/admin/src/router/routes/user.tsx index 92a30c46..94465f06 100644 --- a/apps/admin/src/router/routes/user.tsx +++ b/apps/admin/src/router/routes/user.tsx @@ -1,4 +1,4 @@ -import { lazy } from 'react'; +import { lazy } from '@loadable/component'; import LazyLoad from '@/components/LazyLoad'; diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 86c7f08b..10bcdb68 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -3,10 +3,10 @@ import react from '@vitejs/plugin-react'; // 需要安装 @typings/node 插件 import { resolve } from 'path'; +import path from 'path'; import { loadEnv } from 'vite'; import { viteMockServe } from 'vite-plugin-mock'; import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; -import path from 'path'; import { wrapperEnv } from './build/utils'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index de840a87..9b7609c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -78,9 +78,15 @@ importers: '@codemirror/view': specifier: ^6.22.0 version: registry.npmmirror.com/@codemirror/view@6.22.3 + '@loadable/component': + specifier: ^5.16.3 + version: registry.npmmirror.com/@loadable/component@5.16.3(react@18.2.0) '@reduxjs/toolkit': specifier: ^2.0.1 version: registry.npmmirror.com/@reduxjs/toolkit@2.0.1(react-redux@8.1.3)(react@18.2.0) + '@types/loadable__component': + specifier: ^5.13.8 + version: registry.npmmirror.com/@types/loadable__component@5.13.8 '@types/react-router-dom': specifier: ^5.3.3 version: registry.npmmirror.com/@types/react-router-dom@5.3.3 @@ -4010,6 +4016,21 @@ packages: react: registry.npmmirror.com/react@18.2.0 react-is: registry.npmmirror.com/react-is@16.13.1 + registry.npmmirror.com/@loadable/component@5.16.3(react@18.2.0): + resolution: {integrity: sha512-2mVvHs2988oVX2/zM0y6nYhJ4rTVHhkhRnpupBA0Rjl5tS8op9uSR4u5SLVfMLxzpspr2UiIBQD+wEuMsuq4Dg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@loadable/component/-/component-5.16.3.tgz} + id: registry.npmmirror.com/@loadable/component/5.16.3 + name: '@loadable/component' + version: 5.16.3 + engines: {node: '>=8'} + peerDependencies: + react: ^16.3.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': registry.npmmirror.com/@babel/runtime@7.23.6 + hoist-non-react-statics: registry.npmmirror.com/hoist-non-react-statics@3.3.2 + react: registry.npmmirror.com/react@18.2.0 + react-is: registry.npmmirror.com/react-is@16.13.1 + dev: false + registry.npmmirror.com/@makotot/ghostui@2.0.0(react@18.2.0): resolution: {integrity: sha512-LD6OeMv+yGjpYZNjh34yDTCIE1NegqOtJq5gm4wX6op3QL7K5psTVzMjkWzseBoYj0XOD4g+UJVIZTprfoOPGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@makotot/ghostui/-/ghostui-2.0.0.tgz} id: registry.npmmirror.com/@makotot/ghostui/2.0.0 @@ -5458,6 +5479,14 @@ packages: dependencies: '@types/node': registry.npmmirror.com/@types/node@20.10.4 + registry.npmmirror.com/@types/loadable__component@5.13.8: + resolution: {integrity: sha512-0FF/WihuPkR5IFOHiBzC95bSACvgQNUQCuNy1WF8F/lCBBHgS2SxarIk4CTjWM10A72ovpmXZDRcuAXZNS+/kQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/loadable__component/-/loadable__component-5.13.8.tgz} + name: '@types/loadable__component' + version: 5.13.8 + dependencies: + '@types/react': registry.npmmirror.com/@types/react@18.2.45 + dev: false + registry.npmmirror.com/@types/lodash-es@4.17.12: resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz} name: '@types/lodash-es' From 469c401250b1dabab11a732ef50b42034ee3e09e Mon Sep 17 00:00:00 2001 From: G Date: Tue, 2 Jan 2024 15:39:56 +0800 Subject: [PATCH 107/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/assets/characters/character_3.png | Bin 0 -> 12236 bytes .../src/assets/characters/character_4.png | Bin 0 -> 11957 bytes .../src/assets/characters/character_6.png | Bin 0 -> 12247 bytes .../src/assets/characters/character_8.png | Bin 0 -> 11326 bytes apps/admin/src/assets/icons/403.svg | 2 +- apps/admin/src/assets/icons/404.svg | 2 +- apps/admin/src/assets/icons/500.svg | 2 +- apps/admin/src/assets/icons/homeinfo.svg | 2 +- .../src/components/LazyLoad/src/LazyLoad.tsx | 20 ++--- apps/admin/src/router/routes/compo.tsx | 69 ------------------ apps/admin/src/router/routes/excel.tsx | 38 ---------- apps/admin/src/router/routes/exception.tsx | 51 ------------- apps/admin/src/router/routes/form.tsx | 46 ------------ apps/admin/src/router/routes/graph-editor.tsx | 38 ---------- apps/admin/src/router/routes/images.tsx | 46 ------------ apps/admin/src/router/routes/table.tsx | 38 ---------- apps/admin/src/router/routes/text-editor.tsx | 46 ------------ apps/admin/src/router/routes/tree.tsx | 38 ---------- apps/admin/src/router/routes/user.tsx | 1 + apps/admin/src/router/routes/video.tsx | 38 ---------- apps/admin/vite.config.ts | 2 +- 21 files changed, 16 insertions(+), 463 deletions(-) create mode 100644 apps/admin/src/assets/characters/character_3.png create mode 100644 apps/admin/src/assets/characters/character_4.png create mode 100644 apps/admin/src/assets/characters/character_6.png create mode 100644 apps/admin/src/assets/characters/character_8.png delete mode 100644 apps/admin/src/router/routes/compo.tsx delete mode 100644 apps/admin/src/router/routes/excel.tsx delete mode 100644 apps/admin/src/router/routes/exception.tsx delete mode 100644 apps/admin/src/router/routes/form.tsx delete mode 100644 apps/admin/src/router/routes/graph-editor.tsx delete mode 100644 apps/admin/src/router/routes/images.tsx delete mode 100644 apps/admin/src/router/routes/table.tsx delete mode 100644 apps/admin/src/router/routes/text-editor.tsx delete mode 100644 apps/admin/src/router/routes/tree.tsx delete mode 100644 apps/admin/src/router/routes/video.tsx diff --git a/apps/admin/src/assets/characters/character_3.png b/apps/admin/src/assets/characters/character_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2d639ccde3c165991eebd0c29af084ff569575bb GIT binary patch literal 12236 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/characters/character_4.png b/apps/admin/src/assets/characters/character_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce49ffe4fff5b5e0d68204b34443445597e03c8 GIT binary patch literal 11957 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 Hu0mjf`DqwK literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/characters/character_6.png b/apps/admin/src/assets/characters/character_6.png new file mode 100644 index 0000000000000000000000000000000000000000..f59a84417a1376bfaebb2935836b5ae8d156bb9c GIT binary patch literal 12247 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/characters/character_8.png b/apps/admin/src/assets/characters/character_8.png new file mode 100644 index 0000000000000000000000000000000000000000..44f1708755ff0b9b0d7b81bad9e116066b792084 GIT binary patch literal 11326 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 literal 0 HcmV?d00001 diff --git a/apps/admin/src/assets/icons/403.svg b/apps/admin/src/assets/icons/403.svg index e67ecdff..47da8299 100644 --- a/apps/admin/src/assets/icons/403.svg +++ b/apps/admin/src/assets/icons/403.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/404.svg b/apps/admin/src/assets/icons/404.svg index 1676c855..1d127144 100644 --- a/apps/admin/src/assets/icons/404.svg +++ b/apps/admin/src/assets/icons/404.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/500.svg b/apps/admin/src/assets/icons/500.svg index 082c6a39..fbf32ec1 100644 --- a/apps/admin/src/assets/icons/500.svg +++ b/apps/admin/src/assets/icons/500.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/assets/icons/homeinfo.svg b/apps/admin/src/assets/icons/homeinfo.svg index 47b08d42..f1322505 100644 --- a/apps/admin/src/assets/icons/homeinfo.svg +++ b/apps/admin/src/assets/icons/homeinfo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx index a48102ba..e37bbd2a 100644 --- a/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx +++ b/apps/admin/src/components/LazyLoad/src/LazyLoad.tsx @@ -1,20 +1,20 @@ -import { type LazyExoticComponent, type ReactNode, Suspense } from 'react'; +import { type ReactNode, Suspense } from 'react'; import Loading from './Loading'; +import type { LoadableComponent } from '@loadable/component'; + /** * @description 路由懒加载 * @param {Element} Component 需要访问的组件 * @returns element */ -const LazyLoad = (Component: LazyExoticComponent>): ReactNode => { - return ( - <> - }> - - - - ); -}; +const LazyLoad = (Component: LoadableComponent<{}>): ReactNode => ( + <> + }> + + + +); export default LazyLoad; diff --git a/apps/admin/src/router/routes/compo.tsx b/apps/admin/src/router/routes/compo.tsx deleted file mode 100644 index 44c60aee..00000000 --- a/apps/admin/src/router/routes/compo.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// component module page -const CompoRoute: RouteObject = { - path: '/compo', - element: , - meta: { - title: '组件', - icon: 'compo', - orderNo: 6, - }, - children: [ - { - path: 'image-upload', - element: LazyLoad(lazy(() => import('@/views/compo/image-upload'))), - meta: { - title: '图片上传', - key: 'imageUpload', - }, - }, - { - path: 'drag', - meta: { - title: '拖拽', - }, - children: [ - { - path: 'drag-list', - element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-list'))), - meta: { - title: '列表拖拽', - key: 'dragList', - }, - }, - { - path: 'drag-resize', - element: LazyLoad(lazy(() => import('@/views/compo/drag/drag-resize'))), - meta: { - title: '组件拖拽', - key: 'dragResize', - }, - }, - ], - }, - { - path: 'transfer', - element: LazyLoad(lazy(() => import('@/views/compo/transfer'))), - meta: { - title: '穿梭框', - }, - }, - { - path: 'count-up', - element: LazyLoad(lazy(() => import('@/views/compo/count-up'))), - meta: { - title: '数字滚动', - key: 'countUp', - }, - }, - ], -}; - -export default CompoRoute; diff --git a/apps/admin/src/router/routes/excel.tsx b/apps/admin/src/router/routes/excel.tsx deleted file mode 100644 index 8cdb8725..00000000 --- a/apps/admin/src/router/routes/excel.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// excel module page -const ExcelRoute: RouteObject = { - path: '/excel', - element: , - meta: { - title: 'Excel', - icon: 'excel', - orderNo: 10, - }, - children: [ - { - path: 'export-excel', - element: LazyLoad(lazy(() => import('@/views/excel/export-excel'))), - meta: { - title: '导出Excel', - key: 'exportExcel', - }, - }, - { - path: 'import-excel', - element: LazyLoad(lazy(() => import('@/views/excel/import-excel'))), - meta: { - title: '导入Excel', - key: 'importExcel', - }, - }, - ], -}; - -export default ExcelRoute; diff --git a/apps/admin/src/router/routes/exception.tsx b/apps/admin/src/router/routes/exception.tsx deleted file mode 100644 index ddf866aa..00000000 --- a/apps/admin/src/router/routes/exception.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { ExceptionEnum } from '@/enums/exceptionEnum'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// exception module page -const ExceptionRoute: RouteObject = { - path: '/exception', - element: , - meta: { - title: '异常页面', - icon: 'bug', - orderNo: 11, - }, - children: [ - { - path: 'page-403', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '403页面', - key: 'page403', - }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_ACCESS, withCard: true }), - }, - { - path: 'page-404', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '404页面', - key: 'page404', - }, - loader: () => ({ status: ExceptionEnum.PAGE_NOT_FOUND, withCard: true }), - }, - { - path: 'page-500', - element: LazyLoad(lazy(() => import('@/views/exception'))), - meta: { - title: '500页面', - key: 'page500', - }, - loader: () => ({ status: ExceptionEnum.SERVER_ERROR, withCard: true }), - }, - ], -}; - -export default ExceptionRoute; diff --git a/apps/admin/src/router/routes/form.tsx b/apps/admin/src/router/routes/form.tsx deleted file mode 100644 index 461e80e9..00000000 --- a/apps/admin/src/router/routes/form.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// form module page -const FormRoute: RouteObject = { - path: '/form', - element: , - meta: { - title: '表单', - icon: 'form', - orderNo: 2, - }, - children: [ - { - path: 'basic-form', - element: LazyLoad(lazy(() => import('@/views/form/basic-form'))), - meta: { - title: '基础表单', - key: 'basicForm', - }, - }, - { - path: 'form-designer', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '表单设计器', - key: 'formDesigner', - }, - }, - { - path: 'gbeata-form', - element: LazyLoad(lazy(() => import('@/views/form/gbeata-form'))), - meta: { - title: 'gbeata表单', - key: 'gbeataForm', - }, - }, - ], -}; - -export default FormRoute; diff --git a/apps/admin/src/router/routes/graph-editor.tsx b/apps/admin/src/router/routes/graph-editor.tsx deleted file mode 100644 index 11647db8..00000000 --- a/apps/admin/src/router/routes/graph-editor.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// graph-editor module page -const GraphEditorRoute: RouteObject = { - path: '/graph-editor', - element: , - meta: { - title: '图形编辑器', - icon: 'flow', - orderNo: 8, - }, - children: [ - { - path: 'flow-chart', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '流程图', - key: 'flowChart', - }, - }, - { - path: 'mind-chart', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '思维导图', - key: 'mindChart', - }, - }, - ], -}; - -export default GraphEditorRoute; diff --git a/apps/admin/src/router/routes/images.tsx b/apps/admin/src/router/routes/images.tsx deleted file mode 100644 index 1385640f..00000000 --- a/apps/admin/src/router/routes/images.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// image module page -const ImageRoute: RouteObject = { - path: '/image', - element: , - meta: { - title: '图片处理', - icon: 'image', - orderNo: 4, - }, - children: [ - { - path: 'image-cropper', - element: LazyLoad(lazy(() => import('@/views/image/image-cropper'))), - meta: { - title: '图片裁剪', - key: 'imageCropper', - }, - }, - { - path: 'image-compress', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '图片压缩', - key: 'imageCompress', - }, - }, - { - path: 'image-composition', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '图片合成', - key: 'imageComposition', - }, - }, - ], -}; - -export default ImageRoute; diff --git a/apps/admin/src/router/routes/table.tsx b/apps/admin/src/router/routes/table.tsx deleted file mode 100644 index 6d89a997..00000000 --- a/apps/admin/src/router/routes/table.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// table module page -const TableRoute: RouteObject = { - path: '/table', - element: , - meta: { - title: '表格', - icon: 'table', - orderNo: 3, - }, - children: [ - { - path: 'table-basic', - element: LazyLoad(lazy(() => import('@/views/table/table-basic'))), - meta: { - title: '基础表格', - key: 'tableBasic', - }, - }, - { - path: 'table-edit-row', - element: LazyLoad(lazy(() => import('@/views/table/table-edit-row'))), - meta: { - title: '可编辑行表格', - key: 'tableEditRow', - }, - }, - ], -}; - -export default TableRoute; diff --git a/apps/admin/src/router/routes/text-editor.tsx b/apps/admin/src/router/routes/text-editor.tsx deleted file mode 100644 index 753b10da..00000000 --- a/apps/admin/src/router/routes/text-editor.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// text-editor module page -const TextEditorRoute: RouteObject = { - path: '/editor', - element: , - meta: { - title: '文本编辑器', - icon: 'editor', - orderNo: 7, - }, - children: [ - { - path: 'markdown', - element: LazyLoad(lazy(() => import('@/views/editor/markdown'))), - meta: { - title: 'Markdown编辑器', - key: 'markdown', - }, - }, - { - path: 'rich-text', - element: LazyLoad(lazy(() => import('@/views/editor/rich-text'))), - meta: { - title: '富文本编辑器', - key: 'richText', - }, - }, - { - path: 'code-editor', - element: LazyLoad(lazy(() => import('@/views/editor/code-mirror'))), - meta: { - title: '代码编辑器', - key: 'codeEditor', - }, - }, - ], -}; - -export default TextEditorRoute; diff --git a/apps/admin/src/router/routes/tree.tsx b/apps/admin/src/router/routes/tree.tsx deleted file mode 100644 index c28cb750..00000000 --- a/apps/admin/src/router/routes/tree.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// tree module page -const TreeRoute: RouteObject = { - path: '/tree', - element: , - meta: { - title: '树形结构', - icon: 'tree', - orderNo: 9, - }, - children: [ - { - path: 'org-tree', - element: LazyLoad(lazy(() => import('@/views/tree/org-tree'))), - meta: { - title: '组织树', - key: 'orgTree', - }, - }, - { - path: 'antd-tree', - element: LazyLoad(lazy(() => import('@/views/tree/antd-tree'))), - meta: { - title: '控件树', - key: 'antdTree', - }, - }, - ], -}; - -export default TreeRoute; diff --git a/apps/admin/src/router/routes/user.tsx b/apps/admin/src/router/routes/user.tsx index 94465f06..acc1c267 100644 --- a/apps/admin/src/router/routes/user.tsx +++ b/apps/admin/src/router/routes/user.tsx @@ -1,3 +1,4 @@ +// eslint-disable-next-line import/no-extraneous-dependencies import { lazy } from '@loadable/component'; import LazyLoad from '@/components/LazyLoad'; diff --git a/apps/admin/src/router/routes/video.tsx b/apps/admin/src/router/routes/video.tsx deleted file mode 100644 index 4a34bd1e..00000000 --- a/apps/admin/src/router/routes/video.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import { lazy } from 'react'; - -import LazyLoad from '@/components/LazyLoad'; - -import { LayoutGuard } from '../guard'; - -import type { RouteObject } from '../types'; - -// video module page -const VideoRoute: RouteObject = { - path: '/video', - element: , - meta: { - title: '视频处理', - icon: 'video', - orderNo: 5, - }, - children: [ - { - path: 'video-player', - element: LazyLoad(lazy(() => import('@/views/video/video-player'))), - meta: { - title: '视频播放器', - key: 'videoPlayer', - }, - }, - { - path: 'video-mark', - element: LazyLoad(lazy(() => import('@/views/blank'))), - meta: { - title: '视频水印', - key: 'videoMark', - }, - }, - ], -}; - -export default VideoRoute; diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 10bcdb68..469cf395 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -24,7 +24,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { const { VITE_PORT, VITE_DROP_CONSOLE } = viteEnv; return { - base: isBuild ? '/react-antd-admin-pnpm/' : './', + base: './', server: { // Listening on all local ips host: true, From 3bbec41a96462e42bfa5794a768148be3f072ea4 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 2 Jan 2024 15:43:43 +0800 Subject: [PATCH 108/134] feat: :sparkles: test --- apps/admin/vite.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 469cf395..10bcdb68 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -24,7 +24,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { const { VITE_PORT, VITE_DROP_CONSOLE } = viteEnv; return { - base: './', + base: isBuild ? '/react-antd-admin-pnpm/' : './', server: { // Listening on all local ips host: true, From c332d69f87007671df2d04c17ea1ab67ae2a825a Mon Sep 17 00:00:00 2001 From: G Date: Tue, 2 Jan 2024 15:56:17 +0800 Subject: [PATCH 109/134] =?UTF-8?q?feat:=20:sparkles:=20feat:=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=8A=A8=E6=80=81=E8=B7=AF=E7=94=B1=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/src/router/index.tsx | 2 +- apps/admin/vite.config.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/admin/src/router/index.tsx b/apps/admin/src/router/index.tsx index fe8d08c8..e7bab36e 100644 --- a/apps/admin/src/router/index.tsx +++ b/apps/admin/src/router/index.tsx @@ -62,7 +62,7 @@ const rootRoutes: RouteObject[] = [ export { routeList as basicRoutes }; export const Router = () => { - const routes = useRoutes(routeList); + const routes = useRoutes(rootRoutes); return routes; }; diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 10bcdb68..60c6589c 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -2,8 +2,8 @@ /* eslint-disable import/no-extraneous-dependencies */ import react from '@vitejs/plugin-react'; // 需要安装 @typings/node 插件 -import { resolve } from 'path'; -import path from 'path'; +// import { resolve } from 'path'; +import path, { resolve } from 'path'; import { loadEnv } from 'vite'; import { viteMockServe } from 'vite-plugin-mock'; import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; @@ -34,7 +34,7 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { target: 'https://api.github.com', changeOrigin: true, secure: true, - rewrite: (path) => path.replace(/^\/repos/, ''), + rewrite: (pt) => pt.replace(/^\/repos/, ''), }, }, }, From 1b57ebf7bee264c9f39951831a79137e8f20545d Mon Sep 17 00:00:00 2001 From: G Date: Tue, 2 Jan 2024 18:39:16 +0800 Subject: [PATCH 110/134] =?UTF-8?q?feat:=20:sparkles:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?VITE=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 8 ++++++++ apps/admin/.env.development | 6 +++++- apps/admin/.env.production | 4 +++- apps/admin/src/App.tsx | 6 +++--- apps/admin/src/layout/index.tsx | 5 +---- apps/admin/vite.config.ts | 4 ++-- 6 files changed, 22 insertions(+), 11 deletions(-) diff --git a/Readme.md b/Readme.md index 3aece1c6..6d6a83f2 100644 --- a/Readme.md +++ b/Readme.md @@ -69,3 +69,11 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 ```bash npx @chenshuai2144/less2cssinjs less2js -i src ``` + +## + +
+ + + +欢迎 PR,您可以直接找我讨论,QQ: 1003473088,如果这是一个很大的变化! diff --git a/apps/admin/.env.development b/apps/admin/.env.development index 8fb7b2e4..9452b241 100644 --- a/apps/admin/.env.development +++ b/apps/admin/.env.development @@ -1 +1,5 @@ -VITE_APP_BASE_API: \ No newline at end of file +VITE_APP_BASE_API: + +VITE_APP_BASE_URL: './' + +VITE_PORT: 3100 \ No newline at end of file diff --git a/apps/admin/.env.production b/apps/admin/.env.production index 1c407f5d..d4232508 100644 --- a/apps/admin/.env.production +++ b/apps/admin/.env.production @@ -1 +1,3 @@ -VITE_APP_BASE_API: \ No newline at end of file +VITE_APP_BASE_API: + +VITE_APP_BASE_URL: '/react-antd-admin-pnpm/' \ No newline at end of file diff --git a/apps/admin/src/App.tsx b/apps/admin/src/App.tsx index 89fdaf62..b0996062 100644 --- a/apps/admin/src/App.tsx +++ b/apps/admin/src/App.tsx @@ -49,14 +49,14 @@ function App() { }} > - {/* {loading ? : } */} - {loading ? ( + {loading ? : } + {/* {loading ? ( ) : ( - )} + )} */} ); diff --git a/apps/admin/src/layout/index.tsx b/apps/admin/src/layout/index.tsx index 6a195bbe..ed302df8 100644 --- a/apps/admin/src/layout/index.tsx +++ b/apps/admin/src/layout/index.tsx @@ -1,6 +1,5 @@ import { Layout } from 'antd'; import ErrorBoundary from 'antd/es/alert/ErrorBoundary'; -import { Suspense } from 'react'; import { Outlet } from 'react-router-dom'; import { AppLogo } from '@/components/AppLogo'; @@ -30,9 +29,7 @@ export const BasicLayout = (props: any) => { - - - + diff --git a/apps/admin/vite.config.ts b/apps/admin/vite.config.ts index 60c6589c..351ac23b 100644 --- a/apps/admin/vite.config.ts +++ b/apps/admin/vite.config.ts @@ -21,10 +21,10 @@ export default ({ command, mode }: ConfigEnv): UserConfig => { // this function can be converted to different typings const viteEnv: any = wrapperEnv(env); - const { VITE_PORT, VITE_DROP_CONSOLE } = viteEnv; + const { VITE_PORT, VITE_DROP_CONSOLE, VITE_APP_BASE_URL } = viteEnv; return { - base: isBuild ? '/react-antd-admin-pnpm/' : './', + base: VITE_APP_BASE_URL, server: { // Listening on all local ips host: true, From 6775a3d58f8e4412758284cea4e58b3e8c9c8b1a Mon Sep 17 00:00:00 2001 From: G Date: Tue, 2 Jan 2024 18:42:07 +0800 Subject: [PATCH 111/134] =?UTF-8?q?docs:=20:memo:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 6d6a83f2..f2919d08 100644 --- a/Readme.md +++ b/Readme.md @@ -70,7 +70,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 npx @chenshuai2144/less2cssinjs less2js -i src ``` -## +## 贡献 From e348a3d47f6cd7cf7df20167dc65a8c21ced351d Mon Sep 17 00:00:00 2001 From: G Date: Tue, 2 Jan 2024 18:43:51 +0800 Subject: [PATCH 112/134] =?UTF-8?q?docs:=20:memo:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/Readme.md b/Readme.md index f2919d08..296e7adb 100644 --- a/Readme.md +++ b/Readme.md @@ -51,6 +51,7 @@ antd5已经发布很久了,之前一直在维护的一套基于antd4版本的 - [x] 主题设计 - [x] 登录页设计 - [x] 状态管理(zustand) +- [x] 路由设计,使用loadable-compoment替代React.lazy - [x] 主题控制面板 - [ ] 模块高亮搜索 From 5f92ffc1f79a1a73e09e894b0bc44dc421aa78cb Mon Sep 17 00:00:00 2001 From: G Date: Wed, 3 Jan 2024 01:10:31 +0800 Subject: [PATCH 113/134] =?UTF-8?q?feat:=20:sparkles:=20friends=E7=BB=84?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/user/components/friends/index.tsx | 128 ++++++++++++++---- .../views/user/components/proFile/index.tsx | 2 +- .../{proFile/styles.ts => styles/index.ts} | 5 + 3 files changed, 110 insertions(+), 25 deletions(-) rename apps/admin/src/views/user/components/{proFile/styles.ts => styles/index.ts} (64%) diff --git a/apps/admin/src/views/user/components/friends/index.tsx b/apps/admin/src/views/user/components/friends/index.tsx index 3fefb556..ce2bdb70 100644 --- a/apps/admin/src/views/user/components/friends/index.tsx +++ b/apps/admin/src/views/user/components/friends/index.tsx @@ -1,30 +1,110 @@ -import { Card, Checkbox, Col, Row, Select, Switch } from 'antd'; +import { DeleteOutlined, EditOutlined, MoreOutlined } from '@ant-design/icons'; +import { Avatar, Button, Card, Col, Dropdown, Flex, Row, Space, Typography } from 'antd'; +import { SvgIcon } from 'ui'; +import travel_3 from '@/assets/images/travel_3.jpg'; + +import useStyles from '../styles'; + +import type { MenuProps } from 'antd'; import type { FC } from 'react'; +const { Title, Text } = Typography; + +export interface PFriendsItem { + avatar: string; + name: string; + title: string; +} + export interface PFriends {} -const Friends: FC = () => ( - <> - -

- - react - - - react-router - - - redux-toolkit - - - vite - - - antd - - - typescript - - - less - -

- - Checkbox -