From de2057f1412e7f170be3ff9808a4fd7a5aadfd22 Mon Sep 17 00:00:00 2001 From: Soybean Date: Mon, 3 Jan 2022 22:20:10 +0800 Subject: [PATCH] =?UTF-8?q?refactor(projects):=20=E7=B2=BE=E7=AE=80?= =?UTF-8?q?=E7=89=88+=E5=8A=A8=E6=80=81=E8=B7=AF=E7=94=B1=E6=9D=83?= =?UTF-8?q?=E9=99=90=E5=88=9D=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 6 +- .env-config.ts | 21 + .env.development | 5 - .env.production | 5 - .env.staging | 4 - .eslintignore | 1 + .eslintrc.js | 125 +- .gitignore | 20 +- .husky/.gitignore | 1 - .husky/pre-commit | 2 +- .vscode/settings.json | 3 +- CHANGELOG.md | 141 - LICENSE | 21 - README.md | 125 +- build/define/index.ts | 8 - build/env/index.ts | 5 - build/index.ts | 6 +- build/plugins/html.ts | 25 +- build/plugins/index.ts | 13 +- index.html | 23 +- mock/api/auth.ts | 11 +- mock/api/index.ts | 3 +- mock/api/route.ts | 95 + package.json | 58 +- pnpm-lock.yaml | 2228 ++++--------- public/favicon.ico | Bin 16958 -> 4286 bytes public/resource/loading.css | 91 - public/resource/logo.png | Bin 11341 -> 0 bytes src/App.vue | 13 +- src/AppProvider.vue | 33 - src/assets/base.css | 74 + src/assets/img/common/logo-fill.png | Bin 8007 -> 0 bytes src/assets/img/common/logo.png | Bin 11341 -> 0 bytes src/assets/logo.svg | 1 + src/assets/svg/avatar/avatar01.svg | 1 - src/assets/svg/common/logo.svg | 26 - src/components/business/index.ts | 0 .../common/BannerSvg/components/Banner1.vue | 611 ---- .../common/BannerSvg/components/Banner2.vue | 1220 ------- .../common/BannerSvg/components/Banner3.vue | 2868 ----------------- .../common/BannerSvg/components/index.ts | 5 - src/components/common/BannerSvg/index.vue | 24 - .../common/HoverContainer/index.vue | 38 - src/components/common/IconSelect/index.vue | 75 - .../common/LoadingEmptyWrapper/index.vue | 93 - .../LoginBg/components/CornerBottom.vue | 40 - .../common/LoginBg/components/CornerTop.vue | 34 - .../common/LoginBg/components/index.ts | 4 - src/components/common/LoginBg/index.vue | 31 - .../components/NaiveProviderContent.vue | 18 - .../common/NaiveProvider/components/index.ts | 3 - src/components/common/NaiveProvider/index.vue | 18 - .../SystemLogo/components/SvgFillLogo.vue | 31 - .../common/SystemLogo/components/SvgLogo.vue | 32 - .../common/SystemLogo/components/index.ts | 4 - src/components/common/SystemLogo/index.vue | 23 - src/components/common/index.ts | 9 - src/components/custom/BetterScroll/index.vue | 45 - src/components/custom/ButtonTab/index.vue | 66 - .../ChromeTab/components/SvgRadiusBg.vue | 79 - .../custom/ChromeTab/components/index.ts | 3 - src/components/custom/ChromeTab/index.vue | 66 - src/components/custom/CountTo/index.vue | 106 - src/components/custom/GithubLink/index.vue | 15 - src/components/custom/IconClose/index.vue | 35 - src/components/custom/ImageVerify/index.vue | 37 - .../custom/SGraph/components/DragScaleSvg.vue | 290 -- .../custom/SGraph/components/ScaleSlider.vue | 124 - .../custom/SGraph/components/SvgEdge.vue | 80 - .../custom/SGraph/components/SvgNode.vue | 28 - .../custom/SGraph/components/index.ts | 6 - src/components/custom/SGraph/index.vue | 123 - src/components/custom/ThemeSwitch/index.vue | 40 - src/components/custom/WebSiteLink/index.vue | 20 - src/components/custom/index.ts | 11 - src/components/index.ts | 6 +- src/components/svg/SvgEmptyData.vue | 1447 --------- src/components/svg/SvgNetworkError.vue | 408 --- src/components/svg/SvgNoPermission.vue | 897 ------ src/components/svg/SvgNotFound.vue | 504 --- src/components/svg/SvgServiceError.vue | 1337 -------- src/components/svg/index.ts | 7 - src/composables/business/index.ts | 1 - src/composables/business/login.ts | 57 - src/composables/common/index.ts | 5 - src/composables/common/layout.ts | 82 - src/composables/common/route.ts | 94 - src/composables/common/router.ts | 99 - src/composables/common/system.ts | 28 - src/composables/common/theme.ts | 86 - src/composables/events/auth.ts | 31 - src/composables/events/global.ts | 12 - src/composables/events/index.ts | 1 - src/composables/index.ts | 3 - src/config/business/index.ts | 0 src/config/common/index.ts | 2 - src/config/common/map-sdk.ts | 9 - src/config/common/regexp.ts | 16 - src/config/common/service.ts | 10 +- src/directives/index.ts | 8 - src/directives/login.ts | 27 - src/directives/network.ts | 25 - src/enum/business/index.ts | 0 src/enum/common/animate.ts | 9 - src/enum/common/index.ts | 4 +- src/enum/common/service.ts | 6 + src/enum/common/storage.ts | 4 +- src/enum/common/system.ts | 15 - src/enum/common/theme.ts | 27 - src/hooks/business/index.ts | 9 - src/hooks/business/useAgreement.ts | 20 - src/hooks/business/useAntv.ts | 53 - src/hooks/business/useAntvTool.ts | 31 - src/hooks/business/useCountDown.ts | 52 - src/hooks/business/useImageVerify.ts | 85 - src/hooks/business/useSmsCode.ts | 42 - src/hooks/business/useVirtualList.ts | 60 - src/hooks/common/index.ts | 3 +- src/hooks/common/useReload.ts | 29 + src/hooks/index.ts | 1 - src/interface/business/auth.ts | 17 - src/interface/business/demo.ts | 15 - src/interface/business/index.ts | 4 - src/interface/business/s-graph.ts | 53 - src/interface/business/website.ts | 18 - src/interface/common/api.ts | 15 - src/interface/common/expose.ts | 7 - src/interface/common/index.ts | 6 - src/interface/common/route.ts | 44 - src/interface/common/service.ts | 46 - src/interface/common/system.ts | 28 - src/interface/common/theme.ts | 131 - src/interface/index.ts | 5 +- .../components/HorizontalLayout/index.vue | 22 - .../components/HorizontalMixLayout/index.vue | 58 - .../components/VerticalLayout/index.vue | 64 - .../components/VerticalMixLayout/index.vue | 30 - src/layouts/BasicLayout/components/index.ts | 6 - src/layouts/BasicLayout/index.vue | 26 - src/layouts/BlankLayout/index.vue | 14 - src/layouts/Layout/index.vue | 11 + src/layouts/common/GlobalContent/index.vue | 34 - src/layouts/common/GlobalFooter/index.vue | 20 - .../GlobalHeader/components/FullScreen.vue | 14 - .../GlobalHeader/components/GithubSite.vue | 12 - .../components/GlobalBreadcrumb.vue | 91 - .../GlobalHeader/components/HeaderMenu.vue | 27 - .../GlobalHeader/components/MenuCollapse.vue | 15 - .../components/SettingDrawerButton.vue | 13 - .../GlobalHeader/components/ThemeMode.vue | 15 - .../GlobalHeader/components/UserAvatar.vue | 62 - .../common/GlobalHeader/components/index.ts | 19 - src/layouts/common/GlobalHeader/index.vue | 58 - src/layouts/common/GlobalLogo/index.vue | 24 - src/layouts/common/GlobalMenu/index.vue | 71 - .../GlobalSearch/components/SearchFooter.vue | 24 - .../GlobalSearch/components/SearchModal.vue | 132 - .../GlobalSearch/components/SearchResult.vue | 62 - .../common/GlobalSearch/components/index.ts | 3 - src/layouts/common/GlobalSearch/index.vue | 20 - .../MultiTab/components/ContextMenu.vue | 140 - .../components/MultiTab/components/index.ts | 3 - .../GlobalTab/components/MultiTab/index.vue | 113 - .../components/ReloadButton/index.vue | 35 - .../common/GlobalTab/components/index.ts | 4 - src/layouts/common/GlobalTab/index.vue | 59 - .../common/HeaderPlaceholder/index.vue | 21 - .../common/MixSider/components/MixMenu.vue | 44 - .../MixSider/components/MixMenuCollapse.vue | 14 - .../MixSider/components/MixMenuDrawer.vue | 82 - .../common/MixSider/components/index.ts | 5 - src/layouts/common/MixSider/index.vue | 104 - .../components/DarkMode/index.vue | 26 - .../components/DrawerButton/index.vue | 26 - .../components/NavMode/components/NavType.vue | 59 - .../components/NavMode/components/index.ts | 3 - .../components/NavMode/index.vue | 37 - .../components/PageFunc/index.vue | 102 - .../components/PageView/index.vue | 52 - .../components/SystemTheme/index.vue | 18 - .../components/ThemeConfig/index.vue | 65 - .../components/common/ColorBlock.vue | 26 - .../components/common/SettingMenuItem.vue | 16 - .../SettingDrawer/components/common/index.ts | 4 - .../common/SettingDrawer/components/index.ts | 9 - src/layouts/common/SettingDrawer/index.vue | 24 - src/layouts/common/SpacePlaceholder/index.vue | 41 - .../VerticalMixSider/components/MixMenu.vue | 44 - .../components/MixMenuCollapse.vue | 14 - .../components/MixMenuDrawer.vue | 82 - .../VerticalMixSider/components/index.ts | 5 - src/layouts/common/VerticalMixSider/index.vue | 104 - src/layouts/common/index.ts | 25 - src/layouts/index.ts | 5 +- src/main.ts | 17 +- src/plugins/assets.ts | 5 +- src/router/constant/index.ts | 319 -- src/router/guard/index.ts | 20 +- src/router/guard/permission.ts | 57 +- src/router/index.ts | 21 +- src/router/modules/about.ts | 29 - src/router/modules/component.ts | 50 - src/router/modules/dashboard.ts | 40 - src/router/modules/document.ts | 62 - src/router/modules/exception.ts | 51 - src/router/modules/index.ts | 8 - src/router/modules/multi-menu.ts | 41 - src/router/modules/plugin.ts | 118 - src/router/modules/website.ts | 28 - src/router/routes/constant-routes.ts | 85 - src/router/routes/constant.ts | 59 + src/router/routes/index.ts | 11 +- src/router/routes/route-home.ts | 9 - src/router/setup/cache.ts | 7 - src/router/setup/index.ts | 21 - src/router/setup/menus.ts | 9 - src/service/api/auth.ts | 17 +- src/service/api/common.ts | 0 src/service/api/demo.ts | 28 - src/service/api/index.ts | 1 - src/service/middleware/auth.ts | 10 + src/service/middleware/demo.ts | 23 - src/service/middleware/index.ts | 2 +- src/service/request/index.ts | 14 +- src/service/request/instance.ts | 33 +- src/service/request/request.ts | 159 +- src/settings/index.ts | 2 - src/settings/theme.json | 115 - src/settings/theme.ts | 92 - src/settings/website.json | 31 - src/settings/website.ts | 5 - src/store/index.ts | 3 +- src/store/modules/app/helpers.ts | 45 - src/store/modules/app/index.ts | 214 +- src/store/modules/auth/index.ts | 67 +- src/store/modules/index.ts | 9 +- src/store/modules/route/index.ts | 68 + src/store/modules/theme/helpers.ts | 39 - src/store/modules/theme/index.ts | 139 +- src/styles/css/global.css | 18 - src/styles/css/transition.css | 86 - src/styles/scss/global.scss | 21 +- src/styles/scss/naive.scss | 6 - src/styles/scss/scrollbar.scss | 18 + src/typings/amap.d.ts | 1 - src/typings/api/route.d.ts | 10 + src/typings/bmapgl.d.ts | 5 - src/typings/business/auth.d.ts | 21 + src/typings/common/common.d.ts | 8 + src/typings/common/env.d.ts | 25 + src/typings/common/route.d.ts | 89 + src/typings/common/router.d.ts | 7 + src/typings/common/service.d.ts | 54 + src/typings/{ => common}/window.d.ts | 0 src/typings/env.d.ts | 14 - src/typings/global.d.ts | 2 - src/typings/router.d.ts | 22 - src/typings/shims-vue.d.ts | 6 - src/typings/tmap.d.ts | 1 - src/typings/vite-env.d.ts | 1 - src/utils/auth/user.ts | 9 +- src/utils/common/browser.ts | 46 - src/utils/common/color.ts | 38 - src/utils/common/design-pattern.ts | 10 + src/utils/common/icon.ts | 19 - src/utils/common/index.ts | 5 +- src/utils/common/number.ts | 10 - src/utils/form/index.ts | 1 - src/utils/form/rule.ts | 73 - src/utils/index.ts | 4 +- src/utils/package/index.ts | 38 - src/utils/router/cache.ts | 44 - src/utils/router/component.ts | 58 + src/utils/router/helpers.ts | 206 +- src/utils/router/index.ts | 3 - src/utils/router/menus.ts | 70 - src/utils/router/tab.ts | 23 - src/utils/service/error.ts | 53 +- src/utils/service/handler.ts | 34 +- src/utils/service/msg.ts | 11 +- src/utils/service/transform.ts | 2 +- src/utils/storage/index.ts | 4 +- .../about/components/DevDependency/index.vue | 17 - .../about/components/ProDependency/index.vue | 17 - .../about/components/ProjectInfo/index.vue | 27 - .../components/ProjectIntroduction/index.vue | 13 - src/views/about/components/index.ts | 6 - src/views/about/index.ts | 2 +- src/views/about/index.vue | 15 +- src/views/component/button/index.vue | 576 ---- src/views/component/card/index.vue | 43 - src/views/component/index.ts | 5 - src/views/component/table/index.vue | 85 - .../analysis/components/BottomPart/index.vue | 137 - .../DataCard/components/GradientBg.vue | 28 - .../components/DataCard/components/index.ts | 3 - .../analysis/components/DataCard/index.vue | 70 - .../analysis/components/TopChart/data.json | 152 - .../analysis/components/TopChart/index.vue | 129 - .../dashboard/analysis/components/index.ts | 5 - src/views/dashboard/analysis/index.vue | 14 +- src/views/dashboard/index.ts | 4 +- .../components/WorkbenchHeader/index.vue | 48 - .../components/ShortcutsCard.vue | 24 - .../components/TechnologyCard.vue | 41 - .../WorkbenchMain/components/index.ts | 4 - .../components/WorkbenchMain/index.vue | 152 - .../dashboard/workbench/components/index.ts | 4 - src/views/dashboard/workbench/index.vue | 11 +- src/views/document/index.ts | 5 - src/views/document/naive/index.vue | 10 - src/views/document/vite/index.vue | 10 - src/views/document/vue/index.vue | 10 - src/views/index.ts | 6 +- src/views/multi-menu/first/second/index.vue | 8 +- src/views/multi-menu/index.ts | 2 +- src/views/plugin/copy/index.vue | 34 - src/views/plugin/editor/markdown/index.vue | 46 - src/views/plugin/editor/quill/index.vue | 44 - src/views/plugin/icon/icons.ts | 32 - src/views/plugin/icon/index.vue | 31 - src/views/plugin/index.ts | 19 - src/views/plugin/map/components/BaiduMap.vue | 26 - src/views/plugin/map/components/GaodeMap.vue | 29 - .../plugin/map/components/TencentMap.vue | 29 - src/views/plugin/map/components/index.ts | 5 - src/views/plugin/map/index.vue | 29 - src/views/plugin/print/index.vue | 40 - src/views/plugin/swiper/index.vue | 118 - src/views/plugin/video/index.vue | 36 - src/views/system/exception/403.vue | 6 +- src/views/system/exception/404.vue | 6 +- src/views/system/exception/500.vue | 6 +- .../exception/components/ExceptionBase.vue | 26 - .../system/exception/components/index.ts | 3 - src/views/system/index.ts | 8 +- .../login/components/BindWechat/index.vue | 6 - .../login/components/CodeLogin/index.vue | 76 - .../PwdLogin/components/OtherLogin.vue | 13 - .../components/PwdLogin/components/index.ts | 3 - .../login/components/PwdLogin/index.vue | 73 - .../login/components/Register/index.vue | 88 - .../login/components/ResetPwd/index.vue | 86 - .../components/common/LoginAgreement.vue | 41 - .../system/login/components/common/index.ts | 3 - src/views/system/login/components/index.ts | 7 - src/views/system/login/index.vue | 76 +- .../website/components/WebsiteHeader.vue | 19 - src/views/website/components/index.ts | 3 - src/views/website/index.ts | 3 - src/views/website/index.vue | 12 - tsconfig.json | 20 +- vite.config.ts | 22 +- windi.config.ts | 56 +- 354 files changed, 2053 insertions(+), 22117 deletions(-) create mode 100644 .env-config.ts delete mode 100644 .env.development delete mode 100644 .env.production delete mode 100644 .env.staging delete mode 100644 .husky/.gitignore delete mode 100644 CHANGELOG.md delete mode 100644 LICENSE delete mode 100644 build/define/index.ts delete mode 100644 build/env/index.ts create mode 100644 mock/api/route.ts delete mode 100644 public/resource/loading.css delete mode 100644 public/resource/logo.png delete mode 100644 src/AppProvider.vue create mode 100644 src/assets/base.css delete mode 100644 src/assets/img/common/logo-fill.png delete mode 100644 src/assets/img/common/logo.png create mode 100644 src/assets/logo.svg delete mode 100644 src/assets/svg/avatar/avatar01.svg delete mode 100644 src/assets/svg/common/logo.svg delete mode 100644 src/components/business/index.ts delete mode 100644 src/components/common/BannerSvg/components/Banner1.vue delete mode 100644 src/components/common/BannerSvg/components/Banner2.vue delete mode 100644 src/components/common/BannerSvg/components/Banner3.vue delete mode 100644 src/components/common/BannerSvg/components/index.ts delete mode 100644 src/components/common/BannerSvg/index.vue delete mode 100644 src/components/common/HoverContainer/index.vue delete mode 100644 src/components/common/IconSelect/index.vue delete mode 100644 src/components/common/LoadingEmptyWrapper/index.vue delete mode 100644 src/components/common/LoginBg/components/CornerBottom.vue delete mode 100644 src/components/common/LoginBg/components/CornerTop.vue delete mode 100644 src/components/common/LoginBg/components/index.ts delete mode 100644 src/components/common/LoginBg/index.vue delete mode 100644 src/components/common/NaiveProvider/components/NaiveProviderContent.vue delete mode 100644 src/components/common/NaiveProvider/components/index.ts delete mode 100644 src/components/common/NaiveProvider/index.vue delete mode 100644 src/components/common/SystemLogo/components/SvgFillLogo.vue delete mode 100644 src/components/common/SystemLogo/components/SvgLogo.vue delete mode 100644 src/components/common/SystemLogo/components/index.ts delete mode 100644 src/components/common/SystemLogo/index.vue delete mode 100644 src/components/common/index.ts delete mode 100644 src/components/custom/BetterScroll/index.vue delete mode 100644 src/components/custom/ButtonTab/index.vue delete mode 100644 src/components/custom/ChromeTab/components/SvgRadiusBg.vue delete mode 100644 src/components/custom/ChromeTab/components/index.ts delete mode 100644 src/components/custom/ChromeTab/index.vue delete mode 100644 src/components/custom/CountTo/index.vue delete mode 100644 src/components/custom/GithubLink/index.vue delete mode 100644 src/components/custom/IconClose/index.vue delete mode 100644 src/components/custom/ImageVerify/index.vue delete mode 100644 src/components/custom/SGraph/components/DragScaleSvg.vue delete mode 100644 src/components/custom/SGraph/components/ScaleSlider.vue delete mode 100644 src/components/custom/SGraph/components/SvgEdge.vue delete mode 100644 src/components/custom/SGraph/components/SvgNode.vue delete mode 100644 src/components/custom/SGraph/components/index.ts delete mode 100644 src/components/custom/SGraph/index.vue delete mode 100644 src/components/custom/ThemeSwitch/index.vue delete mode 100644 src/components/custom/WebSiteLink/index.vue delete mode 100644 src/components/custom/index.ts delete mode 100644 src/components/svg/SvgEmptyData.vue delete mode 100644 src/components/svg/SvgNetworkError.vue delete mode 100644 src/components/svg/SvgNoPermission.vue delete mode 100644 src/components/svg/SvgNotFound.vue delete mode 100644 src/components/svg/SvgServiceError.vue delete mode 100644 src/components/svg/index.ts delete mode 100644 src/composables/business/index.ts delete mode 100644 src/composables/business/login.ts delete mode 100644 src/composables/common/index.ts delete mode 100644 src/composables/common/layout.ts delete mode 100644 src/composables/common/route.ts delete mode 100644 src/composables/common/router.ts delete mode 100644 src/composables/common/system.ts delete mode 100644 src/composables/common/theme.ts delete mode 100644 src/composables/events/auth.ts delete mode 100644 src/composables/events/global.ts delete mode 100644 src/composables/events/index.ts delete mode 100644 src/composables/index.ts delete mode 100644 src/config/business/index.ts delete mode 100644 src/config/common/map-sdk.ts delete mode 100644 src/config/common/regexp.ts delete mode 100644 src/directives/index.ts delete mode 100644 src/directives/login.ts delete mode 100644 src/directives/network.ts delete mode 100644 src/enum/business/index.ts delete mode 100644 src/enum/common/animate.ts create mode 100644 src/enum/common/service.ts delete mode 100644 src/enum/common/system.ts delete mode 100644 src/enum/common/theme.ts delete mode 100644 src/hooks/business/index.ts delete mode 100644 src/hooks/business/useAgreement.ts delete mode 100644 src/hooks/business/useAntv.ts delete mode 100644 src/hooks/business/useAntvTool.ts delete mode 100644 src/hooks/business/useCountDown.ts delete mode 100644 src/hooks/business/useImageVerify.ts delete mode 100644 src/hooks/business/useSmsCode.ts delete mode 100644 src/hooks/business/useVirtualList.ts create mode 100644 src/hooks/common/useReload.ts delete mode 100644 src/interface/business/auth.ts delete mode 100644 src/interface/business/demo.ts delete mode 100644 src/interface/business/index.ts delete mode 100644 src/interface/business/s-graph.ts delete mode 100644 src/interface/business/website.ts delete mode 100644 src/interface/common/api.ts delete mode 100644 src/interface/common/expose.ts delete mode 100644 src/interface/common/index.ts delete mode 100644 src/interface/common/route.ts delete mode 100644 src/interface/common/service.ts delete mode 100644 src/interface/common/system.ts delete mode 100644 src/interface/common/theme.ts delete mode 100644 src/layouts/BasicLayout/components/HorizontalLayout/index.vue delete mode 100644 src/layouts/BasicLayout/components/HorizontalMixLayout/index.vue delete mode 100644 src/layouts/BasicLayout/components/VerticalLayout/index.vue delete mode 100644 src/layouts/BasicLayout/components/VerticalMixLayout/index.vue delete mode 100644 src/layouts/BasicLayout/components/index.ts delete mode 100644 src/layouts/BasicLayout/index.vue delete mode 100644 src/layouts/BlankLayout/index.vue create mode 100644 src/layouts/Layout/index.vue delete mode 100644 src/layouts/common/GlobalContent/index.vue delete mode 100644 src/layouts/common/GlobalFooter/index.vue delete mode 100644 src/layouts/common/GlobalHeader/components/FullScreen.vue delete mode 100644 src/layouts/common/GlobalHeader/components/GithubSite.vue delete mode 100644 src/layouts/common/GlobalHeader/components/GlobalBreadcrumb.vue delete mode 100644 src/layouts/common/GlobalHeader/components/HeaderMenu.vue delete mode 100644 src/layouts/common/GlobalHeader/components/MenuCollapse.vue delete mode 100644 src/layouts/common/GlobalHeader/components/SettingDrawerButton.vue delete mode 100644 src/layouts/common/GlobalHeader/components/ThemeMode.vue delete mode 100644 src/layouts/common/GlobalHeader/components/UserAvatar.vue delete mode 100644 src/layouts/common/GlobalHeader/components/index.ts delete mode 100644 src/layouts/common/GlobalHeader/index.vue delete mode 100644 src/layouts/common/GlobalLogo/index.vue delete mode 100644 src/layouts/common/GlobalMenu/index.vue delete mode 100644 src/layouts/common/GlobalSearch/components/SearchFooter.vue delete mode 100644 src/layouts/common/GlobalSearch/components/SearchModal.vue delete mode 100644 src/layouts/common/GlobalSearch/components/SearchResult.vue delete mode 100644 src/layouts/common/GlobalSearch/components/index.ts delete mode 100644 src/layouts/common/GlobalSearch/index.vue delete mode 100644 src/layouts/common/GlobalTab/components/MultiTab/components/ContextMenu.vue delete mode 100644 src/layouts/common/GlobalTab/components/MultiTab/components/index.ts delete mode 100644 src/layouts/common/GlobalTab/components/MultiTab/index.vue delete mode 100644 src/layouts/common/GlobalTab/components/ReloadButton/index.vue delete mode 100644 src/layouts/common/GlobalTab/components/index.ts delete mode 100644 src/layouts/common/GlobalTab/index.vue delete mode 100644 src/layouts/common/HeaderPlaceholder/index.vue delete mode 100644 src/layouts/common/MixSider/components/MixMenu.vue delete mode 100644 src/layouts/common/MixSider/components/MixMenuCollapse.vue delete mode 100644 src/layouts/common/MixSider/components/MixMenuDrawer.vue delete mode 100644 src/layouts/common/MixSider/components/index.ts delete mode 100644 src/layouts/common/MixSider/index.vue delete mode 100644 src/layouts/common/SettingDrawer/components/DarkMode/index.vue delete mode 100644 src/layouts/common/SettingDrawer/components/DrawerButton/index.vue delete mode 100644 src/layouts/common/SettingDrawer/components/NavMode/components/NavType.vue delete mode 100644 src/layouts/common/SettingDrawer/components/NavMode/components/index.ts delete mode 100644 src/layouts/common/SettingDrawer/components/NavMode/index.vue delete mode 100644 src/layouts/common/SettingDrawer/components/PageFunc/index.vue delete mode 100644 src/layouts/common/SettingDrawer/components/PageView/index.vue delete mode 100644 src/layouts/common/SettingDrawer/components/SystemTheme/index.vue delete mode 100644 src/layouts/common/SettingDrawer/components/ThemeConfig/index.vue delete mode 100644 src/layouts/common/SettingDrawer/components/common/ColorBlock.vue delete mode 100644 src/layouts/common/SettingDrawer/components/common/SettingMenuItem.vue delete mode 100644 src/layouts/common/SettingDrawer/components/common/index.ts delete mode 100644 src/layouts/common/SettingDrawer/components/index.ts delete mode 100644 src/layouts/common/SettingDrawer/index.vue delete mode 100644 src/layouts/common/SpacePlaceholder/index.vue delete mode 100644 src/layouts/common/VerticalMixSider/components/MixMenu.vue delete mode 100644 src/layouts/common/VerticalMixSider/components/MixMenuCollapse.vue delete mode 100644 src/layouts/common/VerticalMixSider/components/MixMenuDrawer.vue delete mode 100644 src/layouts/common/VerticalMixSider/components/index.ts delete mode 100644 src/layouts/common/VerticalMixSider/index.vue delete mode 100644 src/layouts/common/index.ts delete mode 100644 src/router/constant/index.ts delete mode 100644 src/router/modules/about.ts delete mode 100644 src/router/modules/component.ts delete mode 100644 src/router/modules/dashboard.ts delete mode 100644 src/router/modules/document.ts delete mode 100644 src/router/modules/exception.ts delete mode 100644 src/router/modules/index.ts delete mode 100644 src/router/modules/multi-menu.ts delete mode 100644 src/router/modules/plugin.ts delete mode 100644 src/router/modules/website.ts delete mode 100644 src/router/routes/constant-routes.ts create mode 100644 src/router/routes/constant.ts delete mode 100644 src/router/routes/route-home.ts delete mode 100644 src/router/setup/cache.ts delete mode 100644 src/router/setup/index.ts delete mode 100644 src/router/setup/menus.ts delete mode 100644 src/service/api/common.ts delete mode 100644 src/service/api/demo.ts create mode 100644 src/service/middleware/auth.ts delete mode 100644 src/service/middleware/demo.ts delete mode 100644 src/settings/index.ts delete mode 100644 src/settings/theme.json delete mode 100644 src/settings/theme.ts delete mode 100644 src/settings/website.json delete mode 100644 src/settings/website.ts delete mode 100644 src/store/modules/app/helpers.ts create mode 100644 src/store/modules/route/index.ts delete mode 100644 src/store/modules/theme/helpers.ts delete mode 100644 src/styles/css/transition.css delete mode 100644 src/styles/scss/naive.scss create mode 100644 src/styles/scss/scrollbar.scss delete mode 100644 src/typings/amap.d.ts create mode 100644 src/typings/api/route.d.ts delete mode 100644 src/typings/bmapgl.d.ts create mode 100644 src/typings/business/auth.d.ts create mode 100644 src/typings/common/common.d.ts create mode 100644 src/typings/common/env.d.ts create mode 100644 src/typings/common/route.d.ts create mode 100644 src/typings/common/router.d.ts create mode 100644 src/typings/common/service.d.ts rename src/typings/{ => common}/window.d.ts (100%) delete mode 100644 src/typings/env.d.ts delete mode 100644 src/typings/global.d.ts delete mode 100644 src/typings/router.d.ts delete mode 100644 src/typings/shims-vue.d.ts delete mode 100644 src/typings/tmap.d.ts delete mode 100644 src/typings/vite-env.d.ts delete mode 100644 src/utils/common/browser.ts delete mode 100644 src/utils/common/color.ts create mode 100644 src/utils/common/design-pattern.ts delete mode 100644 src/utils/common/icon.ts delete mode 100644 src/utils/common/number.ts delete mode 100644 src/utils/form/index.ts delete mode 100644 src/utils/form/rule.ts delete mode 100644 src/utils/package/index.ts delete mode 100644 src/utils/router/cache.ts create mode 100644 src/utils/router/component.ts delete mode 100644 src/utils/router/menus.ts delete mode 100644 src/utils/router/tab.ts delete mode 100644 src/views/about/components/DevDependency/index.vue delete mode 100644 src/views/about/components/ProDependency/index.vue delete mode 100644 src/views/about/components/ProjectInfo/index.vue delete mode 100644 src/views/about/components/ProjectIntroduction/index.vue delete mode 100644 src/views/about/components/index.ts delete mode 100644 src/views/component/button/index.vue delete mode 100644 src/views/component/card/index.vue delete mode 100644 src/views/component/index.ts delete mode 100644 src/views/component/table/index.vue delete mode 100644 src/views/dashboard/analysis/components/BottomPart/index.vue delete mode 100644 src/views/dashboard/analysis/components/DataCard/components/GradientBg.vue delete mode 100644 src/views/dashboard/analysis/components/DataCard/components/index.ts delete mode 100644 src/views/dashboard/analysis/components/DataCard/index.vue delete mode 100644 src/views/dashboard/analysis/components/TopChart/data.json delete mode 100644 src/views/dashboard/analysis/components/TopChart/index.vue delete mode 100644 src/views/dashboard/analysis/components/index.ts delete mode 100644 src/views/dashboard/workbench/components/WorkbenchHeader/index.vue delete mode 100644 src/views/dashboard/workbench/components/WorkbenchMain/components/ShortcutsCard.vue delete mode 100644 src/views/dashboard/workbench/components/WorkbenchMain/components/TechnologyCard.vue delete mode 100644 src/views/dashboard/workbench/components/WorkbenchMain/components/index.ts delete mode 100644 src/views/dashboard/workbench/components/WorkbenchMain/index.vue delete mode 100644 src/views/dashboard/workbench/components/index.ts delete mode 100644 src/views/document/index.ts delete mode 100644 src/views/document/naive/index.vue delete mode 100644 src/views/document/vite/index.vue delete mode 100644 src/views/document/vue/index.vue delete mode 100644 src/views/plugin/copy/index.vue delete mode 100644 src/views/plugin/editor/markdown/index.vue delete mode 100644 src/views/plugin/editor/quill/index.vue delete mode 100644 src/views/plugin/icon/icons.ts delete mode 100644 src/views/plugin/icon/index.vue delete mode 100644 src/views/plugin/index.ts delete mode 100644 src/views/plugin/map/components/BaiduMap.vue delete mode 100644 src/views/plugin/map/components/GaodeMap.vue delete mode 100644 src/views/plugin/map/components/TencentMap.vue delete mode 100644 src/views/plugin/map/components/index.ts delete mode 100644 src/views/plugin/map/index.vue delete mode 100644 src/views/plugin/print/index.vue delete mode 100644 src/views/plugin/swiper/index.vue delete mode 100644 src/views/plugin/video/index.vue delete mode 100644 src/views/system/exception/components/ExceptionBase.vue delete mode 100644 src/views/system/exception/components/index.ts delete mode 100644 src/views/system/login/components/BindWechat/index.vue delete mode 100644 src/views/system/login/components/CodeLogin/index.vue delete mode 100644 src/views/system/login/components/PwdLogin/components/OtherLogin.vue delete mode 100644 src/views/system/login/components/PwdLogin/components/index.ts delete mode 100644 src/views/system/login/components/PwdLogin/index.vue delete mode 100644 src/views/system/login/components/Register/index.vue delete mode 100644 src/views/system/login/components/ResetPwd/index.vue delete mode 100644 src/views/system/login/components/common/LoginAgreement.vue delete mode 100644 src/views/system/login/components/common/index.ts delete mode 100644 src/views/system/login/components/index.ts delete mode 100644 src/views/website/components/WebsiteHeader.vue delete mode 100644 src/views/website/components/index.ts delete mode 100644 src/views/website/index.ts delete mode 100644 src/views/website/index.vue diff --git a/.env b/.env index d5c06e4d..043b3342 100644 --- a/.env +++ b/.env @@ -1,9 +1,7 @@ -# 变量需要以VITE开头 - -VITE_BASE_URL=/ +BASE_URL=/ VITE_APP_NAME=SoybeanAdmin -VITE_APP_TITLE=SoybeanAdmin +VITE_APP_TITLE=Soybean管理系统 VITE_APP_DESC=中后台管理系统模版 diff --git a/.env-config.ts b/.env-config.ts new file mode 100644 index 00000000..6a3364f3 --- /dev/null +++ b/.env-config.ts @@ -0,0 +1,21 @@ +/** 请求环境配置 */ +type ServiceEnv = { + [key in Service.HttpEnv]: { + /** 请求环境 */ + env: Service.HttpEnv; + /** 请求地址 */ + url: string; + }; +}; + +/** 请求的环境 */ +export const serviceEnv: ServiceEnv = { + test: { + env: 'test', + url: 'http://120.76.42.91:18888' + }, + prod: { + env: 'prod', + url: 'http://120.76.42.91:18888' + } +}; diff --git a/.env.development b/.env.development deleted file mode 100644 index 94e75b5c..00000000 --- a/.env.development +++ /dev/null @@ -1,5 +0,0 @@ -#请求的环境 -VITE_HTTP_ENV=DEV - -#请求地址 -VITE_HTTP_URL=https://test.aisuit.com.cn diff --git a/.env.production b/.env.production deleted file mode 100644 index 3896cafe..00000000 --- a/.env.production +++ /dev/null @@ -1,5 +0,0 @@ -#请求的环境 正式环境 -VITE_HTTP_ENV=PROD - -#请求地址 -VITE_HTTP_URL=http://192.168.100.43:8201 diff --git a/.env.staging b/.env.staging deleted file mode 100644 index 81d6d0e2..00000000 --- a/.env.staging +++ /dev/null @@ -1,4 +0,0 @@ -VITE_HTTP_ENV=STAGING - -#请求地址 -VITE_HTTP_URL=http://192.168.100.43:8201 diff --git a/.eslintignore b/.eslintignore index cfddc62d..105e5d69 100644 --- a/.eslintignore +++ b/.eslintignore @@ -12,3 +12,4 @@ lib .vscode .local index.html +!.env-config.ts diff --git a/.eslintrc.js b/.eslintrc.js index 3c196bb5..e813bffc 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -22,25 +22,130 @@ module.exports = { plugins: ['vue', '@typescript-eslint'], extends: ['plugin:vue/vue3-recommended', 'airbnb-base', '@vue/typescript/recommended', 'plugin:prettier/recommended'], rules: { - 'no-unused-vars': 'off', 'import/extensions': 'off', 'import/no-extraneous-dependencies': 'off', 'import/no-unresolved': 0, - 'no-shadow': 0, + 'import/order': [ + 'error', + { + 'newlines-between': 'never', + groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'], + pathGroups: [ + { + pattern: 'vue', + group: 'external', + position: 'before' + }, + { + pattern: 'vue-router', + group: 'external', + position: 'before' + }, + { + pattern: 'pinia', + group: 'external', + position: 'before' + }, + { + pattern: 'naive-ui', + group: 'external', + position: 'before' + }, + { + pattern: '@/config', + group: 'internal', + position: 'before' + }, + { + pattern: '@/enum', + group: 'internal', + position: 'before' + }, + { + pattern: '@/plugins', + group: 'internal', + position: 'before' + }, + { + pattern: '@/layouts', + group: 'internal', + position: 'before' + }, + { + pattern: '@/layouts', + group: 'internal', + position: 'before' + }, + { + pattern: '@/views', + group: 'internal', + position: 'before' + }, + { + pattern: '@/components', + group: 'internal', + position: 'before' + }, + { + pattern: '@/router', + group: 'internal', + position: 'before' + }, + { + pattern: '@/store', + group: 'internal', + position: 'before' + }, + { + pattern: '@/composables', + group: 'internal', + position: 'before' + }, + { + pattern: '@/hooks', + group: 'internal', + position: 'before' + }, + { + pattern: '@/service', + group: 'internal', + position: 'before' + }, + { + pattern: '@/utils', + group: 'internal', + position: 'before' + }, + { + pattern: '@/assets', + group: 'internal', + position: 'before' + }, + { + pattern: '@/interface', + group: 'internal', + position: 'before' + } + ], + pathGroupsExcludedImportTypes: ['vue', 'vue-router', 'pinia', 'naive-ui'] + } + ], 'import/prefer-default-export': 0, + 'max-classes-per-file': 0, + 'no-shadow': 0, + 'no-unused-vars': 'off', 'no-use-before-define': 'off', 'vue/multi-word-component-names': 0, - 'max-classes-per-file': 0, + '@typescript-eslint/ban-types': 'off', + '@typescript-eslint/ban-ts-ignore': 'off', + '@typescript-eslint/explicit-function-return-type': 'off', + '@typescript-eslint/explicit-module-boundary-types': 'off', + '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-explicit-any': 0, '@typescript-eslint/no-inferrable-types': 0, - '@typescript-eslint/ban-ts-ignore': 'off', - '@typescript-eslint/ban-types': 'off', - '@typescript-eslint/no-var-requires': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/no-empty-function': 'off', '@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/no-unused-vars': ['warn', { ignoreRestSiblings: true }], - '@typescript-eslint/no-use-before-define': ['error', { classes: true, functions: false, typedefs: false }] + '@typescript-eslint/no-use-before-define': ['error', { classes: true, functions: false, typedefs: false }], + '@typescript-eslint/no-var-requires': 'off' } }; diff --git a/.gitignore b/.gitignore index 4cde3501..b4300fae 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,25 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + node_modules .DS_Store dist dist-ssr *.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files .idea -stats.html +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.husky/.gitignore b/.husky/.gitignore deleted file mode 100644 index 31354ec1..00000000 --- a/.husky/.gitignore +++ /dev/null @@ -1 +0,0 @@ -_ diff --git a/.husky/pre-commit b/.husky/pre-commit index bce41d53..f1b81204 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ #!/bin/sh . "$(dirname "$0")/_/husky.sh" -pnpm lint:fix && pnpm vtsc +pnpm lint && pnpm typecheck diff --git a/.vscode/settings.json b/.vscode/settings.json index f12bc5db..bd18c800 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -54,14 +54,15 @@ "[markdown]": { "editor.defaultFormatter": "yzhang.markdown-all-in-one" }, - "workbench.productIconTheme": "fluent-icons", "vue3snippets.enable-compile-vue-file-on-did-save-code": false, "editor.formatOnSave": false, "material-icon-theme.activeIconPack": "angular", "material-icon-theme.files.associations": {}, "material-icon-theme.folders.associations": { "enum": "typescript", + "enums": "typescript", "store": "context", + "stores": "context", "composable": "hook", "composables": "hook", "directive": "tools", diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index a5589b9e..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,141 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -### [0.0.5](https://github.com/honghuangdc/soybean-admin/compare/v0.0.4...v0.0.5) (2021-11-28) - - -### Features - -* **projects:** 新增组件页面:按钮、卡片示例 ([bdc39af](https://github.com/honghuangdc/soybean-admin/commit/bdc39aff1b05845cbcfcab8d40620d7b8ba52d13)) - - -### Bug Fixes - -* **components:** 修复HorizontalLayout布局 ([9fb641f](https://github.com/honghuangdc/soybean-admin/commit/9fb641f71e74e054c84cda8e18969d1168ef2903)) - -### [0.0.4](https://github.com/honghuangdc/soybean-admin/compare/v0.0.3...v0.0.4) (2021-11-25) - - -### Features - -* **components:** 添加多页签Tab点击后自动往中间滚动 ([8ce627a](https://github.com/honghuangdc/soybean-admin/commit/8ce627a397ee2605d967e7f9c8aa558b99fca22d)) -* **projects:** 新增网址导航页面 ([32aa5ee](https://github.com/honghuangdc/soybean-admin/commit/32aa5ee75af80c2f959b74573d5c44c452d2715c)) -* **storage:** local存储增加有效期 ([e6c9b35](https://github.com/honghuangdc/soybean-admin/commit/e6c9b35ab402df7d9ebb82306131fc30d0a8b893)) - - -### Bug Fixes - -* **components:** 修复多页签按钮风格的tab滚动问题 ([c429cd0](https://github.com/honghuangdc/soybean-admin/commit/c429cd0293dbfbf6b6df539857c276d3218de754)) -* **components:** 修复多页签Tab自动滚动问题 ([20aa39f](https://github.com/honghuangdc/soybean-admin/commit/20aa39f14ed0239f02118b62a6aa4706b1f9dd21)) -* **projects:** 添加西瓜视频实例在onUnMounted的销毁,多页签居中距离精确 ([738964a](https://github.com/honghuangdc/soybean-admin/commit/738964a76975dc3cb1f3206eb13a7612b92f1aed)) -* **projects:** 修复打包构建时图标错误 ([93f9aa9](https://github.com/honghuangdc/soybean-admin/commit/93f9aa9584be803704cf0ff54c8da0f84b71c408)) -* **types:** 添加dotEnv类型的非空判断 ([cff11d9](https://github.com/honghuangdc/soybean-admin/commit/cff11d91758a470ad6ff33888ed24747b2cc0c03)) - -### [0.0.3](https://github.com/honghuangdc/soybean-admin/compare/v0.0.2...v0.0.3) (2021-11-23) - -### 0.0.2 (2021-11-21) - - -### Features - -* **component:** 增加剪贴板示例 ([f1cd995](https://github.com/honghuangdc/soybean-admin/commit/f1cd9955d9ef0dd06e6eb0ab88ab6be80db789a3)) -* **components:** 添加面包屑 ([c1cdc3a](https://github.com/honghuangdc/soybean-admin/commit/c1cdc3a9ed673d0fd84aa1eaa9fc72468bd5aaf9)) -* **components:** 添加图片验证码 ([336c776](https://github.com/honghuangdc/soybean-admin/commit/336c7766f9130619b7076e832d7ade7cbc3049f2)) -* **components:** 添加主题配置抽屉,添加暗黑主题 ([a87593f](https://github.com/honghuangdc/soybean-admin/commit/a87593f58a1185d6360b8e49ffe1c9fff768770e)) -* **components:** 添加vertical-mix的导航模式下的菜单 ([f24ec1c](https://github.com/honghuangdc/soybean-admin/commit/f24ec1c5326c117e618aed8b3e1867c24fcd84f4)) -* **projects:** 布局调整 ([eda87f0](https://github.com/honghuangdc/soybean-admin/commit/eda87f041d5d87ae9612f369608e486a8e563f17)) -* **projects:** 菜单数据及组件接入 ([3226a72](https://github.com/honghuangdc/soybean-admin/commit/3226a724be65935ce89fe6ae67f49a20d255c6ac)) -* **projects:** 导航栏模式配置:界面实现及主题配置布局调整 ([f002124](https://github.com/honghuangdc/soybean-admin/commit/f002124ee11bc93e6b9955549143b695417e7f8d)) -* **projects:** 登录页面实现 ([f1e7cf6](https://github.com/honghuangdc/soybean-admin/commit/f1e7cf608ea7d61dcd24f8780cde9cc4c59658ce)) -* **projects:** 多页签绑定路由 ([f29bc05](https://github.com/honghuangdc/soybean-admin/commit/f29bc05dd9f53144ef56440033a6f747c112e83d)) -* **projects:** 分析页更新,添加关于页面 ([8e18218](https://github.com/honghuangdc/soybean-admin/commit/8e18218196c52e6a34b96bc313044b6e47886f85)) -* **projects:** 工作台页面:添加技术栈官网链接 ([364c64b](https://github.com/honghuangdc/soybean-admin/commit/364c64b4641e48bcf8cc8600680bcaa39a1a9413)) -* **projects:** 工作台页面布局 ([4c85569](https://github.com/honghuangdc/soybean-admin/commit/4c85569b764b176c9c3a7f9ba3092ff3567e5512)) -* **projects:** 首页更新 ([5c01006](https://github.com/honghuangdc/soybean-admin/commit/5c01006306873944671a4f1d863ced6ba23f6245)) -* **projects:** 四种基本布局完成 ([86d4a20](https://github.com/honghuangdc/soybean-admin/commit/86d4a207eef8daf01c6336e8aaedf3aebb90e7a7)) -* **projects:** 添加百度地图插件 ([6abe094](https://github.com/honghuangdc/soybean-admin/commit/6abe094ff23f52fdd62c025bce17debd9ea2f907)) -* **projects:** 添加多级菜单页面 ([3f49d6d](https://github.com/honghuangdc/soybean-admin/commit/3f49d6db30aee0a6c1007cb00069835b102deb70)) -* **projects:** 添加多页签风格:按钮和浏览器两种风格 ([3cfa0f1](https://github.com/honghuangdc/soybean-admin/commit/3cfa0f103cf788e57ee26743e89bf5fe33a09660)) -* **projects:** 添加多页签右键菜单 ([d6f5237](https://github.com/honghuangdc/soybean-admin/commit/d6f5237c8c167314d578312dcad7505737f0b4c8)) -* **projects:** 添加富文本和markdown编辑器插件及示例页面 ([60c2064](https://github.com/honghuangdc/soybean-admin/commit/60c20647a0d8e6d877a0f23a6e7da05ff09d14a0)) -* **projects:** 添加固定路由 ([ff4a09c](https://github.com/honghuangdc/soybean-admin/commit/ff4a09c452c98791f7d67ba5f135e9cf5099c29c)) -* **projects:** 添加环境文件env对应的类型 ([4f05095](https://github.com/honghuangdc/soybean-admin/commit/4f050953363b364815a08103047df3fe377d8f56)) -* **projects:** 添加判断是否是移动端的hooks ([0a9fba9](https://github.com/honghuangdc/soybean-admin/commit/0a9fba90b5e51fd2d39c47490f49dac7599a9742)) -* **projects:** 添加全屏显示 ([0a1711d](https://github.com/honghuangdc/soybean-admin/commit/0a1711d5b1d8e863d24a55690fa8696c79acaaf9)) -* **projects:** 添加项目配置拷贝 ([2d9d5c0](https://github.com/honghuangdc/soybean-admin/commit/2d9d5c0353ca6d2dc86965fe383bf2925a47d239)) -* **projects:** 添加exception页面:403,404,500 ([d012c4e](https://github.com/honghuangdc/soybean-admin/commit/d012c4ecf2cd325567d419684153955560ce90da)) -* **projects:** 添加multiTab标签页 ([eec0b36](https://github.com/honghuangdc/soybean-admin/commit/eec0b36f594e0d337f13d3d0ce30b1f768614f5c)) -* **projects:** 添加reload context ([03ebd49](https://github.com/honghuangdc/soybean-admin/commit/03ebd49c8639bf7f4f88b1a0523d2caec2d248ee)) -* **projects:** 添加svg logo自适应主题颜色 ([e1e5579](https://github.com/honghuangdc/soybean-admin/commit/e1e5579e8fe71ed97e2ce11d907705157874bd71)) -* **projects:** 添加swiper插件 ([27f600c](https://github.com/honghuangdc/soybean-admin/commit/27f600c4677afeacd3e67f189df139db5cde0aa3)) -* **projects:** 头部添加菜单折叠按钮和github地址 ([3ec1fc8](https://github.com/honghuangdc/soybean-admin/commit/3ec1fc8f0c23fcba56d4bffb20028948f985659c)) -* **projects:** 项目初始化搭建,集成eslint规范,集成代码提交规范 ([6754da4](https://github.com/honghuangdc/soybean-admin/commit/6754da4d83976a02eced801220320d8c9aa1da85)) -* **projects:** 新增导航模式配置 ([49c2dc4](https://github.com/honghuangdc/soybean-admin/commit/49c2dc4f23913c9ef86ee046c6ae53d4406cbca7)) -* **projects:** 新增顶部菜单 ([221d2cc](https://github.com/honghuangdc/soybean-admin/commit/221d2cc02dfdf3f78cb415f26c88f1f274942222)) -* **projects:** 新增多页签缓存功能 ([d86f891](https://github.com/honghuangdc/soybean-admin/commit/d86f891c64f802bbca50e31e3e4f7ccdad65eed1)) -* **projects:** 新增高德地图插件 ([ea82edc](https://github.com/honghuangdc/soybean-admin/commit/ea82edc1146fefa208bb9e6f985dfb000d197d16)) -* **projects:** 新增视频插件 ([6a692d4](https://github.com/honghuangdc/soybean-admin/commit/6a692d4f99942389cd2a5e72ebc852a92e80f742)) -* **projects:** 新增腾讯地图插件 ([3f02c21](https://github.com/honghuangdc/soybean-admin/commit/3f02c215c54fde4c85bf13e92c2620553d5a1840)) -* **projects:** 新增文档页面 ([7654b2a](https://github.com/honghuangdc/soybean-admin/commit/7654b2adf3d0bf051d13b401dfa3534ca7ee3e0c)) -* **projects:** 新增主题配置 ([ed67b79](https://github.com/honghuangdc/soybean-admin/commit/ed67b797c215fe165808505f4b0b9400f3182383)) -* **projects:** 新增主题配置:页面功能 ([8601ce2](https://github.com/honghuangdc/soybean-admin/commit/8601ce2ea184455fcba1d17d759cd4b933b31d96)) -* **projects:** 新增主题颜色配置 ([d93493b](https://github.com/honghuangdc/soybean-admin/commit/d93493b91ca856573c306e890e8c6f6a46b5bda3)) -* **projects:** 增加Icon以及打印功能示例 ([d5bce26](https://github.com/honghuangdc/soybean-admin/commit/d5bce26454c7d7c9da29e01675624f985755779f)) -* **projects:** 主题配置:页面功能和页面显示 ([a0392b3](https://github.com/honghuangdc/soybean-admin/commit/a0392b3d28f89f2b5fcf5b4d2b82ab7a068a23b8)) -* **projects:** vertical-mix的导航模式的二级菜单显示 ([736f314](https://github.com/honghuangdc/soybean-admin/commit/736f3146cb7cb3f56e06a8185ec8532f25c40b13)) -* **route:** 增加功能示例模块 ([efd29bc](https://github.com/honghuangdc/soybean-admin/commit/efd29bc331f630b57eab800bba08b22c53115d76)) - - -### Bug Fixes - -* **多页签:** 在pc模式下右键某个多页签会切换路由 ([a4394dc](https://github.com/honghuangdc/soybean-admin/commit/a4394dc3ee81ea2abc9a9fd243714309a1b4e6ab)) -* **components:** 修复按钮Tab自适应主题颜色 ([3d1f419](https://github.com/honghuangdc/soybean-admin/commit/3d1f41925d54ebe89f1bbbdfe916be59bb97c9cf)) -* **components:** 修复BaseLayout的HorizontalLayout ([0344f46](https://github.com/honghuangdc/soybean-admin/commit/0344f46c9377acfb52c28cf373a5416845d1aa1b)) -* **components:** 修复tab组件适应暗黑主题模式 ([2fe3d27](https://github.com/honghuangdc/soybean-admin/commit/2fe3d27a36b641339fd87eaa7acad8c3424b97b4)) -* **components:** tab组件在黑暗模式下泛白的颜色问题以及chromeTab的重叠问题 ([6797dbf](https://github.com/honghuangdc/soybean-admin/commit/6797dbf1b0617dcca662a25cf663d93dc4ad5807)) -* **deps:** 降低vite版本,新版本有些许问题 ([b429c8b](https://github.com/honghuangdc/soybean-admin/commit/b429c8b8ca61191c6bed1c52742ddd5fcf9ddc3a)) -* **deps:** 去除图片验证码依赖 ([76a1afa](https://github.com/honghuangdc/soybean-admin/commit/76a1afae4e87c3c08f7fd31b20323c0456565f64)) -* **deps:** vite依赖放入devDependencies ([7527b1f](https://github.com/honghuangdc/soybean-admin/commit/7527b1f07cdc2d82ec0104ed7317c7ff731da0b7)) -* **hooks:** 修复登录页切换登录页参数丢失问题 ([789855a](https://github.com/honghuangdc/soybean-admin/commit/789855a3786623893aa55a2f6c977155394a8a44)) -* **hooks:** 修复toLogin函数导致登录重定向地址过多 ([b4adf67](https://github.com/honghuangdc/soybean-admin/commit/b4adf678a4f96f670f9cbdcaebe21378fa94c77c)) -* **projects:** 布局修复:从填充屏幕高的页面切换至滚动页面导致布局坍塌 ([2fdb5f5](https://github.com/honghuangdc/soybean-admin/commit/2fdb5f563f7d9fa00d8e5343d992342ff34e3a5a)) -* **projects:** 更正dashboard的布局文件 ([31fda0c](https://github.com/honghuangdc/soybean-admin/commit/31fda0ce992457972205db3a39e4c7327d21c087)) -* **projects:** 关于页面:开发环境依赖更正 ([3b3baf9](https://github.com/honghuangdc/soybean-admin/commit/3b3baf93ee36423bfe4fc0ab24eda0f99ce92363)) -* **projects:** 腾讯地图容器高自适应 ([d7054c5](https://github.com/honghuangdc/soybean-admin/commit/d7054c599b1ce59a123667443863a8054ba19a90)) -* **projects:** 头部logo链接更正 ([5d8c3f5](https://github.com/honghuangdc/soybean-admin/commit/5d8c3f54a3e414cdeff35bf5ddb2a1e13d7d703a)) -* **projects:** 完善侧边菜单展开逻辑 ([b5f0512](https://github.com/honghuangdc/soybean-admin/commit/b5f05128abcf2403181b7cc7800d9e6593844657)) -* **projects:** 修复百度地图sdk地址 ([9a97d23](https://github.com/honghuangdc/soybean-admin/commit/9a97d23c755b7fa7c3166d783e99cac10a0a9753)) -* **projects:** 修复登录的重定向地址 ([f97f226](https://github.com/honghuangdc/soybean-admin/commit/f97f2266566164cad912e7ffcdebee1c1b2f4324)) -* **projects:** 修复登录页刷新跳404 ([358d4e8](https://github.com/honghuangdc/soybean-admin/commit/358d4e8a1992aa040b909ae580470a0fd2142f5f)) -* **projects:** 修复顶部加载条主题 ([ea5917d](https://github.com/honghuangdc/soybean-admin/commit/ea5917d2258356bbcb296420ea1d017f5ad05b7a)) -* **projects:** 修复多级菜单页面multitab显示问题 ([f0474bd](https://github.com/honghuangdc/soybean-admin/commit/f0474bd96104dcca332d35d8202eedc3df00eb10)) -* **projects:** 修复多页签删除功能 ([99adbc5](https://github.com/honghuangdc/soybean-admin/commit/99adbc5a30c9128d005dc8096d58c5b320f67fef)) -* **projects:** 修复分析页折线图表布局问题 ([43b832b](https://github.com/honghuangdc/soybean-admin/commit/43b832bee0dc1d852f3e435f16eaa37f27b0f66c)) -* **projects:** 修复富文本编辑器在亮色主题下全屏后背景色丢失 ([4ab7702](https://github.com/honghuangdc/soybean-admin/commit/4ab7702186e1121e50f1d4725b73f28498aba312)) -* **projects:** 修复没有子页面的路由写法问题 ([b80c224](https://github.com/honghuangdc/soybean-admin/commit/b80c2246641d44b9ad35dfbfb3d17500cfcb6e43)) -* **projects:** 修复同时显示两种multiTab ([5be2e2a](https://github.com/honghuangdc/soybean-admin/commit/5be2e2a2e5658e09c47a4dc1331129e14ed6d761)) -* **projects:** 修复页面滚动和页面100%视高占比 ([fa2cc78](https://github.com/honghuangdc/soybean-admin/commit/fa2cc789371999de6b2f698ba7ed87a4d740ad37)) -* **projects:** 修复页面滚动行为 ([57e00e6](https://github.com/honghuangdc/soybean-admin/commit/57e00e64177bc9925ca95785335786836571766a)) -* **projects:** 修复页面缓存 ([fa0a907](https://github.com/honghuangdc/soybean-admin/commit/fa0a907941a90ed72288205fef14b0923a0ffd8e)) -* **projects:** 修复页面缓存,添加多页签删除 ([2489374](https://github.com/honghuangdc/soybean-admin/commit/248937479cc9ccb936116300d628dfa734014b37)) -* **projects:** 修复在暗黑模式下第一次进入网页不会触发暗黑模式监听 ([c4a652e](https://github.com/honghuangdc/soybean-admin/commit/c4a652e21e4c3e2ee6e86e04e46d5dccd579d584)) -* **projects:** 修复主题配置 ([ff24fda](https://github.com/honghuangdc/soybean-admin/commit/ff24fda5ee12074e7130122ca311d0ce174cc184)) -* **projects:** 修复主题相关,自适应操作系统暗黑模式 ([bfa42d7](https://github.com/honghuangdc/soybean-admin/commit/bfa42d769d464dbc8d51689c5fc8c59a348941fb)) -* **projects:** 修复globalFooter适应暗黑模式 ([93f08d9](https://github.com/honghuangdc/soybean-admin/commit/93f08d90671b3ddfbdb969d5b13f4a3fa9903a19)) -* **projects:** 修复multiTab关闭逻辑,添加关闭左边和右边的标签右键操作 ([ed90cb8](https://github.com/honghuangdc/soybean-admin/commit/ed90cb8f8e8d3bbf594757caa950f8521869ece4)) -* **projects:** 修复tab过多时样式坍塌,添加tab横向滚动 ([0ec4d21](https://github.com/honghuangdc/soybean-admin/commit/0ec4d218e365f54ab0c138a955dcd990cbf2d9bc)) -* **projects:** 修复tab在移动端无法点击 ([1a76de0](https://github.com/honghuangdc/soybean-admin/commit/1a76de04463b0344b39c09df0e0762825d66653b)) -* **projects:** 修复vertical sider自适应主题 ([9097fa3](https://github.com/honghuangdc/soybean-admin/commit/9097fa386687d077a480033d9978cfbd59e0e3a0)) -* **projects:** 修复vertical-mix导航模式的二级菜单显示问题 ([6f286e6](https://github.com/honghuangdc/soybean-admin/commit/6f286e674724db12d6c5a4339ba6f3db720b781d)) -* **projects:** 页面各部分背景颜色添加自然过渡 ([1c5fdca](https://github.com/honghuangdc/soybean-admin/commit/1c5fdca59637c141ae1f0b47d9bcf05788a631c2)) -* **projects:** wangEditor在暗黑模式下的背景色问题 ([a7de314](https://github.com/honghuangdc/soybean-admin/commit/a7de31404508a2d4436435d06cdb63f851a86029)) -* **types:** 数据类型 EnumDataType.boolean 为 [object Boolean] ([e9b5560](https://github.com/honghuangdc/soybean-admin/commit/e9b55608f960c0d3cdeca91af6f2777a23fd20dd)) -* **types:** 修复naive组件回调函数参数类型错误 ([667282f](https://github.com/honghuangdc/soybean-admin/commit/667282f81a8822006242d612a08ac59571e3508e)) -* **types:** 修复TS类型错误 ([45d31a0](https://github.com/honghuangdc/soybean-admin/commit/45d31a0f5625784423bea463b2373b0cd35b37f5)) -* **utils:** utils函数名称更正 ([68f4d01](https://github.com/honghuangdc/soybean-admin/commit/68f4d012cc3cce1df5cb61dfa0212126ea0b202e)) - - -### Performance Improvements - -* **projects:** 添加windicss指定的扫描目录,提升构建性能 ([8e6b0b2](https://github.com/honghuangdc/soybean-admin/commit/8e6b0b299d2ef50f2b85e67b7a1aa7fd2ac1bce1)) diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 20547de8..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021 Soybean - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index 7764da5b..f2b9819b 100644 --- a/README.md +++ b/README.md @@ -1,124 +1,35 @@ -
- -

Soybean Admin

-
+# soybean-admin-thin -[![license](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE) +This template should help get you started developing with Vue 3 in Vite. -## 简介 +## Recommended IDE Setup -Soybean Admin 是一个基于 Vue3、Vite、Naive UI、TypeScript 的免费中后台模版,它使用了最新的前端技术栈,内置丰富的插件,有着极高的代码规范,开箱即用的中后台前端解决方案,也可用于学习参考。 +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar) (and disable Vetur). -## 特性 +## Type Support for `.vue` Imports in TS -- **最新技术栈**:使用 Vue3/vite2 等前端前沿技术开发, 使用高效率的npm包管理器pnpm -- **TypeScript**: 应用程序级 JavaScript 的语言 -- **主题**:丰富可配置的主题 -- **代码规范**:丰富的规范插件及极高的代码规范 -- **路由配置**:简易的路由配置 +Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. -## 预览 +However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can run `Volar: Switch TS Plugin on/off` from VSCode command palette. -- [soybean-admin](https://soybean.pro/) +## Customize configuration -## 文档 +See [Vite Configuration Reference](https://vitejs.dev/config/). -- [项目文档](https://docs.soybean.pro) +## Project Setup -### 代码仓库 - -- [github](https://github.com/honghuangdc/soybean-admin) - -- [gitee](https://gitee.com/honghuangdc/soybean-admin) - -## 项目示例图 -![](https://i.loli.net/2021/11/24/pIhTKP7fdCqbVHl.png) - -![](https://i.loli.net/2021/11/24/gxRwsLnKi6IVp7C.png) - -![](https://i.loli.net/2021/11/24/UmVfjSJbxH6iYc2.png) - -![](https://i.loli.net/2021/11/24/Uot1bcfGXiF726T.png) - -![](https://i.loli.net/2021/11/24/WzOIvlgJZaUtGm7.png) - -### 使用 Gitpod - -在 Gitpod(适用于 GitHub 的免费在线开发环境)中打开项目,并立即开始编码. - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/honghuangdc/soybean-admin) - -## 安装使用 - -- 克隆代码 - -```bash -git clone https://github.com/honghuangdc/soybean-admin.git +```sh +npm install ``` -- 安装依赖 +### Compile and Hot-Reload for Development -```bash -pnpm i +```sh +npm run dev ``` -- 运行 +### Type-Check, Compile and Minify for Production -```bash -pnpm dev +```sh +npm run build ``` - -- 打包 - -```bash -pnpm build -``` - -## 如何贡献 - -非常欢迎您的加入![提一个 Issue](https://github.com/honghuangdc/soybean-admin/issues/new) 或者提交一个 Pull Request。 - -## Git 贡献提交规范 - -项目已经内置angular提交规范,通过git cz 代替git commit 命令即可。 - -git cz命令需要全局安装 commitizen - -```bash -pnpm i -g commitizen -``` - -## 浏览器支持 - -本地开发推荐使用`Chrome 90+` 浏览器 - -支持现代浏览器, 不支持 IE - -| [IE](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 | - -## 开源作者 - -[@Soybean](https://github.com/honghuangdc) - -## 交流 - -`Soybean Admin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供 QQ 交流群使用问题欢迎在群内提问。 - -- 微信交流群: -
- -
- -- QQ 群 `711301266` - -
- -
- -- 本人微信号:honghuangdc,欢迎来技术交流,业务咨询。 - -## License - -[MIT © Soybean-2021](./LICENSE) diff --git a/build/define/index.ts b/build/define/index.ts deleted file mode 100644 index d370c75c..00000000 --- a/build/define/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import dayjs from 'dayjs'; - -/** 项目构建时间 */ -const PROJECT_BUILD_TIME = JSON.stringify(dayjs().format('YYYY-MM-DD HH:mm:ss')); - -export default { - PROJECT_BUILD_TIME -}; diff --git a/build/env/index.ts b/build/env/index.ts deleted file mode 100644 index 99608204..00000000 --- a/build/env/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import dotenv from 'dotenv'; - -const { parsed: viteEnv } = dotenv.config(); // 加载环境 - -export default viteEnv!; diff --git a/build/index.ts b/build/index.ts index 61c3ae69..460ab6b5 100644 --- a/build/index.ts +++ b/build/index.ts @@ -1,5 +1 @@ -import viteEnv from './env'; -import plugins from './plugins'; -import define from './define'; - -export { viteEnv, plugins, define }; +export * from './plugins'; diff --git a/build/plugins/html.ts b/build/plugins/html.ts index 1f709c5c..ca164500 100644 --- a/build/plugins/html.ts +++ b/build/plugins/html.ts @@ -1,12 +1,17 @@ +import { loadEnv } from 'vite'; +import type { ConfigEnv, PluginOption } from 'vite'; import { minifyHtml, injectHtml } from 'vite-plugin-html'; // html插件(使用变量、压缩) -import viteEnv from '../env'; -export default [ - minifyHtml(), - injectHtml({ - injectData: { - appName: viteEnv.VITE_APP_NAME, - appTitle: viteEnv.VITE_APP_TITLE - } - }) -]; +export default (config: ConfigEnv): PluginOption[] => { + const viteEnv = loadEnv(config.mode, `.env.${config.mode}`); + + return [ + minifyHtml(), + injectHtml({ + injectData: { + appName: viteEnv.VITE_APP_NAME, + appTitle: viteEnv.VITE_APP_TITLE + } + }) + ]; +}; diff --git a/build/plugins/index.ts b/build/plugins/index.ts index 6f5d81d7..9a44e4c8 100644 --- a/build/plugins/index.ts +++ b/build/plugins/index.ts @@ -1,10 +1,17 @@ +import type { ConfigEnv, PluginOption } from 'vite'; import vue from './vue'; import html from './html'; import iconify from './iconify'; import windicss from './windicss'; -import visualizer from './visualizer'; import mock from './mock'; +import visualizer from './visualizer'; -const plugins = [vue, ...html, ...iconify, windicss, visualizer, mock]; +export function setupVitePlugins(configEnv: ConfigEnv): (PluginOption | PluginOption[])[] { + const plugins = [vue, ...html(configEnv), ...iconify, windicss, mock]; -export default plugins; + if (configEnv.command === 'build') { + plugins.push(visualizer); + } + + return plugins; +} diff --git a/index.html b/index.html index 93a9011f..11603f87 100644 --- a/index.html +++ b/index.html @@ -4,29 +4,10 @@ - <%= appName %> + Vite App - -
- -
- -
-
- - - - -
-
-

<%= appTitle %>

- -
- -
+
diff --git a/mock/api/auth.ts b/mock/api/auth.ts index 25eea6b7..870a35b0 100644 --- a/mock/api/auth.ts +++ b/mock/api/auth.ts @@ -1,11 +1,10 @@ import type { MockMethod } from 'vite-plugin-mock'; -import type { BackendServiceResult } from '@/interface'; -export default [ +const apis: MockMethod[] = [ { - url: '/api/getUser', + url: '/mock/getUser', method: 'get', - response: (): BackendServiceResult => { + response: (): Service.BackendServiceResult => { return { code: 200, message: 'ok', @@ -13,4 +12,6 @@ export default [ }; } } -] as MockMethod[]; +]; + +export default apis; diff --git a/mock/api/index.ts b/mock/api/index.ts index c709f0fa..0a5df64a 100644 --- a/mock/api/index.ts +++ b/mock/api/index.ts @@ -1,3 +1,4 @@ import auth from './auth'; +import route from './route'; -export default [...auth]; +export default [...auth, ...route]; diff --git a/mock/api/route.ts b/mock/api/route.ts new file mode 100644 index 00000000..4a332b86 --- /dev/null +++ b/mock/api/route.ts @@ -0,0 +1,95 @@ +import type { MockMethod } from 'vite-plugin-mock'; + +const routes: AuthRoute.Route[] = [ + { + name: 'dashboard', + path: '/dashboard', + component: 'layout', + children: [ + { + name: 'dashboard_analysis', + path: '/dashboard/analysis', + component: 'self', + meta: { + title: '分析页' + } + }, + { + name: 'dashboard_workbench', + path: '/dashboard/workbench', + component: 'self', + meta: { + title: '分析页', + permissions: ['super', 'admin'] + } + } + ], + meta: { + title: '仪表盘', + requiresAuth: true, + icon: 'carbon:dashboard' + } + }, + { + name: 'about', + path: '/about', + component: 'layout', + meta: { + title: '关于', + permissions: ['super', 'admin', 'test'], + icon: 'fluent:book-information-24-regular', + single: true + } + }, + { + name: 'multi-menu', + path: '/multi-menu', + component: 'layout', + children: [ + { + name: 'multi-menu_first', + path: '/multi-menu/first', + component: 'multi', + children: [ + { + name: 'multi-menu_first_second', + path: '/multi-menu/first/second', + component: 'self', + meta: { + title: '二级菜单' + } + } + ], + meta: { + title: '一级菜单' + } + } + ], + meta: { + title: '多级菜单' + } + } +]; + +const routeHome: AuthRoute.RoutePath = '/dashboard/analysis'; + +const data: ApiRoute.ResponseRoute = { + routes, + home: routeHome +}; + +const apis: MockMethod[] = [ + { + url: '/mock/getUserRoutes', + method: 'post', + response: (): Service.BackendServiceResult => { + return { + code: 200, + message: 'ok', + data + }; + } + } +]; + +export default apis; diff --git a/package.json b/package.json index 6eb49f06..cf700b09 100644 --- a/package.json +++ b/package.json @@ -1,24 +1,14 @@ { - "name": "soybean-admin", - "version": "0.0.5", - "author": { - "name": "Soybean", - "email": "honghuangdc@gmail.com", - "url": "https://github.com/honghuangdc" - }, + "name": "soybean-admin-thin", + "version": "0.0.1", "scripts": { - "release": "standard-version", - "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0 && git add CHANGELOG.md", - "dev": "vite", - "dev:prod": "vite --mode production", - "dev:staging": "vite --mode staging", - "vtsc": "vue-tsc --noEmit --skipLibCheck", - "build": "npm run vtsc && vite build", - "build:dev": "npm run vtsc && vite build --mode development", - "build:staging": "npm run vtsc && vite build --mode staging", - "serve": "vite preview", - "lint": "eslint ./src --ext .vue,.js,jsx,.ts,tsx", - "lint:fix": "eslint --fix ./src --ext .vue,.js,jsx,.ts,tsx", + "dev": "cross-env VITE_HTTP_ENV=test vite", + "dev:prod": "cross-env VITE_HTTP_ENV=prod vite", + "typecheck": "vue-tsc --noEmit", + "build": "npm run typecheck && cross-env VITE_HTTP_ENV=prod vite build", + "build:test": "npm run typecheck && cross-env VITE_HTTP_ENV=test vite build", + "preview": "vite preview --port 5050", + "lint": "eslint --fix ./ --ext .vue,.js,jsx,.ts,tsx", "prepare": "husky install", "postinstall": "patch-package" }, @@ -31,46 +21,34 @@ } }, "dependencies": { - "@antv/g2plot": "^2.4.5", - "@better-scroll/core": "^2.4.2", "@vueuse/core": "^7.5.1", "axios": "^0.24.0", - "chroma-js": "^2.1.2", - "clipboard": "^2.0.8", "crypto-js": "^4.1.1", "dayjs": "^1.10.7", "form-data": "^4.0.0", "naive-ui": "^2.23.2", "pinia": "^2.0.9", - "print-js": "^1.6.0", "qs": "^6.10.2", - "swiper": "^7.4.1", - "vditor": "^3.8.10", "vue": "^3.2.26", - "vue-router": "^4.0.12", - "wangeditor": "^4.7.11", - "xgplayer": "^2.31.4" + "vue-router": "^4.0.12" }, "devDependencies": { - "@amap/amap-jsapi-types": "^0.0.8", "@commitlint/cli": "^16.0.1", "@commitlint/config-conventional": "^16.0.0", - "@iconify/json": "^1.1.450", + "@iconify/json": "^1.1.451", "@iconify/vue": "^3.1.1", - "@types/bmapgl": "^0.0.5", - "@types/chroma-js": "^2.1.3", "@types/crypto-js": "^4.1.0", + "@types/node": "^17.0.6", "@types/qs": "^6.9.7", "@typescript-eslint/eslint-plugin": "^5.8.1", "@typescript-eslint/parser": "^5.8.1", "@vitejs/plugin-vue": "^2.0.1", - "@vue/compiler-sfc": "^3.2.26", "@vue/eslint-config-prettier": "^7.0.0", "@vue/eslint-config-typescript": "^10.0.0", "commitizen": "^4.2.4", + "cross-env": "^7.0.3", "cz-conventional-changelog": "^3.3.0", "cz-customizable": "^6.3.0", - "dotenv": "^10.0.0", "eslint": "^8.6.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^8.3.0", @@ -88,20 +66,12 @@ "typescript": "^4.5.4", "unplugin-icons": "^0.13.0", "unplugin-vue-components": "^0.17.11", - "vite": "~2.5.10", + "vite": "^2.7.10", "vite-plugin-html": "^2.1.2", "vite-plugin-mock": "^2.9.6", "vite-plugin-windicss": "^1.6.1", "vue-tsc": "^0.30.1", "vueuc": "^0.4.19", "windicss": "^3.4.2" - }, - "homepage": "https://github.com/honghuangdc/soybean-admin", - "repository": { - "type": "git", - "url": "git+https://github.com/honghuangdc/soybean-admin.git" - }, - "bugs": { - "url": "https://github.com/honghuangdc/soybean-admin/issues" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 25f2972c..f41ca153 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,33 +1,26 @@ lockfileVersion: 5.3 specifiers: - '@amap/amap-jsapi-types': ^0.0.8 - '@antv/g2plot': ^2.4.5 - '@better-scroll/core': ^2.4.2 '@commitlint/cli': ^16.0.1 '@commitlint/config-conventional': ^16.0.0 - '@iconify/json': ^1.1.450 + '@iconify/json': ^1.1.451 '@iconify/vue': ^3.1.1 - '@types/bmapgl': ^0.0.5 - '@types/chroma-js': ^2.1.3 '@types/crypto-js': ^4.1.0 + '@types/node': ^17.0.6 '@types/qs': ^6.9.7 '@typescript-eslint/eslint-plugin': ^5.8.1 '@typescript-eslint/parser': ^5.8.1 '@vitejs/plugin-vue': ^2.0.1 - '@vue/compiler-sfc': ^3.2.26 '@vue/eslint-config-prettier': ^7.0.0 '@vue/eslint-config-typescript': ^10.0.0 '@vueuse/core': ^7.5.1 axios: ^0.24.0 - chroma-js: ^2.1.2 - clipboard: ^2.0.8 commitizen: ^4.2.4 + cross-env: ^7.0.3 crypto-js: ^4.1.1 cz-conventional-changelog: ^3.3.0 cz-customizable: ^6.3.0 dayjs: ^1.10.7 - dotenv: ^10.0.0 eslint: ^8.6.0 eslint-config-airbnb-base: ^15.0.0 eslint-config-prettier: ^8.3.0 @@ -43,16 +36,13 @@ specifiers: pinia: ^2.0.9 postinstall-postinstall: ^2.1.0 prettier: ^2.5.1 - print-js: ^1.6.0 qs: ^6.10.2 rollup-plugin-visualizer: ^5.5.2 sass: ^1.45.2 - swiper: ^7.4.1 typescript: ^4.5.4 unplugin-icons: ^0.13.0 unplugin-vue-components: ^0.17.11 - vditor: ^3.8.10 - vite: ~2.5.10 + vite: ^2.7.10 vite-plugin-html: ^2.1.2 vite-plugin-mock: ^2.9.6 vite-plugin-windicss: ^1.6.1 @@ -60,113 +50,64 @@ specifiers: vue-router: ^4.0.12 vue-tsc: ^0.30.1 vueuc: ^0.4.19 - wangeditor: ^4.7.11 windicss: ^3.4.2 - xgplayer: ^2.31.4 dependencies: - '@antv/g2plot': registry.npmmirror.com/@antv/g2plot/2.4.5 - '@better-scroll/core': registry.npmmirror.com/@better-scroll/core/2.4.2 '@vueuse/core': registry.npmmirror.com/@vueuse/core/7.5.1_vue@3.2.26 axios: registry.npmmirror.com/axios/0.24.0 - chroma-js: registry.npmmirror.com/chroma-js/2.1.2 - clipboard: registry.nlark.com/clipboard/2.0.8 crypto-js: registry.npmmirror.com/crypto-js/4.1.1 - dayjs: registry.nlark.com/dayjs/1.10.7 + dayjs: registry.npmmirror.com/dayjs/1.10.7 form-data: registry.nlark.com/form-data/4.0.0 naive-ui: registry.npmmirror.com/naive-ui/2.23.2_vue@3.2.26 pinia: registry.npmmirror.com/pinia/2.0.9_typescript@4.5.4+vue@3.2.26 - print-js: registry.nlark.com/print-js/1.6.0 qs: registry.npmmirror.com/qs/6.10.2 - swiper: registry.npmmirror.com/swiper/7.4.1 - vditor: registry.npmmirror.com/vditor/3.8.10 vue: registry.npmmirror.com/vue/3.2.26 vue-router: registry.npmmirror.com/vue-router/4.0.12_vue@3.2.26 - wangeditor: registry.npmmirror.com/wangeditor/4.7.11 - xgplayer: registry.npmmirror.com/xgplayer/2.31.4 devDependencies: - '@amap/amap-jsapi-types': registry.npmmirror.com/@amap/amap-jsapi-types/0.0.8 - '@commitlint/cli': registry.npmmirror.com/@commitlint/cli/16.0.1 + '@commitlint/cli': registry.npmmirror.com/@commitlint/cli/16.0.1_@types+node@17.0.6 '@commitlint/config-conventional': registry.npmmirror.com/@commitlint/config-conventional/16.0.0 - '@iconify/json': registry.npmmirror.com/@iconify/json/1.1.450 + '@iconify/json': registry.npmmirror.com/@iconify/json/1.1.451 '@iconify/vue': registry.npmmirror.com/@iconify/vue/3.1.1_vue@3.2.26 - '@types/bmapgl': registry.npmmirror.com/@types/bmapgl/0.0.5 - '@types/chroma-js': registry.npmmirror.com/@types/chroma-js/2.1.3 '@types/crypto-js': registry.npmmirror.com/@types/crypto-js/4.1.0 + '@types/node': registry.npmmirror.com/@types/node/17.0.6 '@types/qs': registry.npmmirror.com/@types/qs/6.9.7 '@typescript-eslint/eslint-plugin': registry.npmmirror.com/@typescript-eslint/eslint-plugin/5.8.1_13039593e64cd539d0b4c5c2da390958 '@typescript-eslint/parser': registry.npmmirror.com/@typescript-eslint/parser/5.8.1_eslint@8.6.0+typescript@4.5.4 - '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/2.0.1_vite@2.5.10+vue@3.2.26 - '@vue/compiler-sfc': registry.npmmirror.com/@vue/compiler-sfc/3.2.26 + '@vitejs/plugin-vue': registry.npmmirror.com/@vitejs/plugin-vue/2.0.1_vite@2.7.10+vue@3.2.26 '@vue/eslint-config-prettier': registry.npmmirror.com/@vue/eslint-config-prettier/7.0.0_eslint@8.6.0+prettier@2.5.1 '@vue/eslint-config-typescript': registry.npmmirror.com/@vue/eslint-config-typescript/10.0.0_57f850728139557a3a27f1248f77f964 - commitizen: registry.npmmirror.com/commitizen/4.2.4 - cz-conventional-changelog: registry.nlark.com/cz-conventional-changelog/3.3.0 + commitizen: registry.npmmirror.com/commitizen/4.2.4_@types+node@17.0.6 + cross-env: registry.nlark.com/cross-env/7.0.3 + cz-conventional-changelog: registry.nlark.com/cz-conventional-changelog/3.3.0_@types+node@17.0.6 cz-customizable: registry.npmmirror.com/cz-customizable/6.3.0 - dotenv: registry.nlark.com/dotenv/10.0.0 eslint: registry.npmmirror.com/eslint/8.6.0 eslint-config-airbnb-base: registry.npmmirror.com/eslint-config-airbnb-base/15.0.0_b54597effeb7d09a84a334cc3c3dadae - eslint-config-prettier: registry.npmmirror.com/eslint-config-prettier/8.3.0_eslint@8.6.0 + eslint-config-prettier: registry.nlark.com/eslint-config-prettier/8.3.0_eslint@8.6.0 eslint-plugin-import: registry.npmmirror.com/eslint-plugin-import/2.25.3_eslint@8.6.0 eslint-plugin-prettier: registry.npmmirror.com/eslint-plugin-prettier/4.0.0_1c588f61426b1faf18812943f1678311 eslint-plugin-vue: registry.npmmirror.com/eslint-plugin-vue/8.2.0_eslint@8.6.0 husky: registry.npmmirror.com/husky/7.0.4 lint-staged: registry.npmmirror.com/lint-staged/12.1.4 mockjs: registry.npmmirror.com/mockjs/1.1.0 - patch-package: registry.npmmirror.com/patch-package/6.4.7 + patch-package: registry.nlark.com/patch-package/6.4.7 postinstall-postinstall: registry.npmmirror.com/postinstall-postinstall/2.1.0 prettier: registry.npmmirror.com/prettier/2.5.1 rollup-plugin-visualizer: registry.nlark.com/rollup-plugin-visualizer/5.5.2 sass: registry.npmmirror.com/sass/1.45.2 typescript: registry.npmmirror.com/typescript/4.5.4 - unplugin-icons: registry.npmmirror.com/unplugin-icons/0.13.0_bf0f6a97e10b237a73e38ba784672bd6 - unplugin-vue-components: registry.npmmirror.com/unplugin-vue-components/0.17.11_vite@2.5.10+vue@3.2.26 - vite: registry.npmmirror.com/vite/2.5.10 - vite-plugin-html: registry.npmmirror.com/vite-plugin-html/2.1.2_vite@2.5.10 - vite-plugin-mock: registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.5.10 - vite-plugin-windicss: registry.npmmirror.com/vite-plugin-windicss/1.6.1_vite@2.5.10 + unplugin-icons: registry.npmmirror.com/unplugin-icons/0.13.0_vite@2.7.10 + unplugin-vue-components: registry.npmmirror.com/unplugin-vue-components/0.17.11_vite@2.7.10+vue@3.2.26 + vite: registry.npmmirror.com/vite/2.7.10_sass@1.45.2 + vite-plugin-html: registry.npmmirror.com/vite-plugin-html/2.1.2_vite@2.7.10 + vite-plugin-mock: registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.7.10 + vite-plugin-windicss: registry.npmmirror.com/vite-plugin-windicss/1.6.1_vite@2.7.10 vue-tsc: registry.npmmirror.com/vue-tsc/0.30.1_typescript@4.5.4 vueuc: registry.npmmirror.com/vueuc/0.4.19_vue@3.2.26 windicss: registry.npmmirror.com/windicss/3.4.2 packages: - registry.nlark.com/@antv/adjust/0.2.3: - resolution: {integrity: sha1-w4hKaAwyZMwSXX8qtTmOihwLlAE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@antv/adjust/download/@antv/adjust-0.2.3.tgz} - name: '@antv/adjust' - version: 0.2.3 - dependencies: - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - tslib: registry.nlark.com/tslib/1.14.1 - dev: false - - registry.nlark.com/@antv/attr/0.3.2: - resolution: {integrity: sha1-5YZrZIcMYvOpwluKYfZUuiv9oFE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@antv/attr/download/@antv/attr-0.3.2.tgz} - name: '@antv/attr' - version: 0.3.2 - dependencies: - '@antv/color-util': registry.npmmirror.com/@antv/color-util/2.0.6 - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - tslib: registry.nlark.com/tslib/1.14.1 - dev: false - - registry.nlark.com/@antv/coord/0.3.1: - resolution: {integrity: sha1-mC4mHYoeBqGY61GOp6zCDth1oBk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@antv/coord/download/@antv/coord-0.3.1.tgz} - name: '@antv/coord' - version: 0.3.1 - dependencies: - '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util/3.1.0-beta.3 - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.nlark.com/@antv/event-emitter/0.1.2: - resolution: {integrity: sha1-oXt8uG5tBxiA3Gv7IydW+IYk7Lw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@antv/event-emitter/download/@antv/event-emitter-0.1.2.tgz} - name: '@antv/event-emitter' - version: 0.1.2 - dev: false - registry.nlark.com/@emmetio/abbreviation/2.2.2: resolution: {integrity: sha1-dGdi/Z56jC6mBPWAxi48/iUOaYk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@emmetio/abbreviation/download/@emmetio/abbreviation-2.2.2.tgz} name: '@emmetio/abbreviation' @@ -246,15 +187,10 @@ packages: version: 0.0.29 dev: true - registry.nlark.com/acorn-jsx/5.3.2_acorn@8.6.0: - resolution: {integrity: sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz} - id: registry.nlark.com/acorn-jsx/5.3.2 - name: acorn-jsx - version: 5.3.2 - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: registry.npmmirror.com/acorn/8.6.0 + registry.nlark.com/@yarnpkg/lockfile/1.1.0: + resolution: {integrity: sha1-53qX+9NFt22DJF7c0X05OxtB+zE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/@yarnpkg/lockfile/download/@yarnpkg/lockfile-1.1.0.tgz} + name: '@yarnpkg/lockfile' + version: 1.1.0 dev: true registry.nlark.com/acorn-jsx/5.3.2_acorn@8.7.0: @@ -281,28 +217,10 @@ packages: version: 3.1.0 engines: {node: '>=8'} dependencies: - clean-stack: registry.npmmirror.com/clean-stack/2.2.0 + clean-stack: registry.nlark.com/clean-stack/2.2.0 indent-string: registry.nlark.com/indent-string/4.0.0 dev: true - registry.nlark.com/align-text/0.1.4: - resolution: {integrity: sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/align-text/download/align-text-0.1.4.tgz} - name: align-text - version: 0.1.4 - engines: {node: '>=0.10.0'} - dependencies: - kind-of: registry.nlark.com/kind-of/3.2.2 - longest: registry.nlark.com/longest/1.0.1 - repeat-string: registry.nlark.com/repeat-string/1.6.1 - dev: false - - registry.nlark.com/amdefine/1.0.1: - resolution: {integrity: sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/amdefine/download/amdefine-1.0.1.tgz} - name: amdefine - version: 1.0.1 - engines: {node: '>=0.4.2'} - dev: false - registry.nlark.com/ansi-colors/4.1.1: resolution: {integrity: sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz} name: ansi-colors @@ -326,13 +244,6 @@ packages: type-fest: registry.npmmirror.com/type-fest/0.21.3 dev: true - registry.nlark.com/ansi-regex/2.1.1: - resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-regex/download/ansi-regex-2.1.1.tgz} - name: ansi-regex - version: 2.1.1 - engines: {node: '>=0.10.0'} - dev: false - registry.nlark.com/ansi-regex/3.0.0: resolution: {integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-regex/download/ansi-regex-3.0.0.tgz} name: ansi-regex @@ -360,13 +271,6 @@ packages: engines: {node: '>=12'} dev: true - registry.nlark.com/ansi-styles/2.2.1: - resolution: {integrity: sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-2.2.1.tgz} - name: ansi-styles - version: 2.2.1 - engines: {node: '>=0.10.0'} - dev: false - registry.nlark.com/ansi-styles/3.2.1: resolution: {integrity: sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-3.2.1.tgz} name: ansi-styles @@ -374,6 +278,7 @@ packages: engines: {node: '>=4'} dependencies: color-convert: registry.npmmirror.com/color-convert/1.9.3 + dev: true registry.nlark.com/ansi-styles/4.3.0: resolution: {integrity: sha1-7dgDYornHATIWuegkG7a00tkiTc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz} @@ -463,13 +368,14 @@ packages: version: 3.0.0-canary-5 engines: {node: '>= 10.0.0'} dependencies: - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + '@babel/types': registry.npmmirror.com/@babel/types/7.16.7 dev: true registry.nlark.com/balanced-match/1.0.2: resolution: {integrity: sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/balanced-match/download/balanced-match-1.0.2.tgz} name: balanced-match version: 1.0.2 + dev: true registry.nlark.com/binary-extensions/2.2.0: resolution: {integrity: sha1-dfUC7q+f/eQvyYgpZFvk6na9ni0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/binary-extensions/download/binary-extensions-2.2.0.tgz} @@ -485,6 +391,7 @@ packages: dependencies: balanced-match: registry.nlark.com/balanced-match/1.0.2 concat-map: registry.nlark.com/concat-map/0.0.1 + dev: true registry.nlark.com/braces/3.0.2: resolution: {integrity: sha1-NFThpGLujVmeI23zNs2epPiv4Qc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/braces/download/braces-3.0.2.tgz} @@ -547,15 +454,12 @@ packages: tslib: registry.nlark.com/tslib/2.3.1 dev: true - registry.nlark.com/center-align/0.1.3: - resolution: {integrity: sha1-qg0yYptu6XIgBBHL1EYckHvCt60=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/center-align/download/center-align-0.1.3.tgz} - name: center-align - version: 0.1.3 - engines: {node: '>=0.10.0'} - dependencies: - align-text: registry.nlark.com/align-text/0.1.4 - lazy-cache: registry.nlark.com/lazy-cache/1.0.4 - dev: false + registry.nlark.com/clean-stack/2.2.0: + resolution: {integrity: sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/clean-stack/download/clean-stack-2.2.0.tgz} + name: clean-stack + version: 2.2.0 + engines: {node: '>=6'} + dev: true registry.nlark.com/cli-cursor/2.1.0: resolution: {integrity: sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cli-cursor/download/cli-cursor-2.1.0.tgz} @@ -581,26 +485,6 @@ packages: version: 2.2.1 dev: true - registry.nlark.com/clipboard/2.0.8: - resolution: {integrity: sha1-/8bBA90pZ6gwBfP2GXaqRlWkzbo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/clipboard/download/clipboard-2.0.8.tgz} - name: clipboard - version: 2.0.8 - dependencies: - good-listener: registry.nlark.com/good-listener/1.2.2 - select: registry.nlark.com/select/1.1.2 - tiny-emitter: registry.nlark.com/tiny-emitter/2.1.0 - dev: false - - registry.nlark.com/cliui/2.1.0: - resolution: {integrity: sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cliui/download/cliui-2.1.0.tgz} - name: cliui - version: 2.1.0 - dependencies: - center-align: registry.nlark.com/center-align/0.1.3 - right-align: registry.nlark.com/right-align/0.1.3 - wordwrap: registry.nlark.com/wordwrap/0.0.2 - dev: false - registry.nlark.com/cliui/7.0.4: resolution: {integrity: sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cliui/download/cliui-7.0.4.tgz} name: cliui @@ -615,6 +499,7 @@ packages: resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/color-name/download/color-name-1.1.3.tgz} name: color-name version: 1.1.3 + dev: true registry.nlark.com/color-name/1.1.4: resolution: {integrity: sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/color-name/download/color-name-1.1.4.tgz} @@ -643,6 +528,7 @@ packages: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/concat-map/download/concat-map-0.0.1.tgz} name: concat-map version: 0.0.1 + dev: true registry.nlark.com/connect/3.7.0: resolution: {integrity: sha1-XUk0iRDKpeB6AYALAw0MNfIEhPg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/connect/download/connect-3.7.0.tgz} @@ -661,16 +547,10 @@ packages: name: constantinople version: 4.0.1 dependencies: - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.7 + '@babel/types': registry.npmmirror.com/@babel/types/7.16.7 dev: true - registry.nlark.com/contour_plot/0.0.1: - resolution: {integrity: sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/contour_plot/download/contour_plot-0.0.1.tgz} - name: contour_plot - version: 0.0.1 - dev: false - registry.nlark.com/conventional-changelog-angular/5.0.13: resolution: {integrity: sha1-iWiF1juRSnDUk0tZ0v573hgysow=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/conventional-changelog-angular/download/conventional-changelog-angular-5.0.13.tgz} name: conventional-changelog-angular @@ -706,15 +586,15 @@ packages: version: 1.1.1 dev: true - registry.nlark.com/cross-env/6.0.3: - resolution: {integrity: sha1-Qla3HkmzpAY3oM5wdopu9ccq6UE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cross-env/download/cross-env-6.0.3.tgz} + registry.nlark.com/cross-env/7.0.3: + resolution: {integrity: sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cross-env/download/cross-env-7.0.3.tgz} name: cross-env - version: 6.0.3 - engines: {node: '>=8.0'} + version: 7.0.3 + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} hasBin: true dependencies: cross-spawn: registry.nlark.com/cross-spawn/7.0.3 - dev: false + dev: true registry.nlark.com/cross-spawn/6.0.5: resolution: {integrity: sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cross-spawn/download/cross-spawn-6.0.5.tgz} @@ -738,9 +618,11 @@ packages: path-key: registry.nlark.com/path-key/3.1.1 shebang-command: registry.nlark.com/shebang-command/2.0.0 which: registry.nlark.com/which/2.0.2 + dev: true - registry.nlark.com/cz-conventional-changelog/3.2.0: + registry.nlark.com/cz-conventional-changelog/3.2.0_@types+node@17.0.6: resolution: {integrity: sha1-au8fiS1kETND1+RVUpCJrJ8g5Hc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cz-conventional-changelog/download/cz-conventional-changelog-3.2.0.tgz} + id: registry.nlark.com/cz-conventional-changelog/3.2.0 name: cz-conventional-changelog version: 3.2.0 engines: {node: '>= 10'} @@ -752,74 +634,34 @@ packages: longest: registry.nlark.com/longest/2.0.1 word-wrap: registry.nlark.com/word-wrap/1.2.3 optionalDependencies: - '@commitlint/load': registry.npmmirror.com/@commitlint/load/16.0.0 + '@commitlint/load': registry.npmmirror.com/@commitlint/load/16.0.0_@types+node@17.0.6 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@types/node' dev: true - registry.nlark.com/cz-conventional-changelog/3.3.0: + registry.nlark.com/cz-conventional-changelog/3.3.0_@types+node@17.0.6: resolution: {integrity: sha1-kkaUfJBAQUmz/iz37pGsrTt9ItI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/cz-conventional-changelog/download/cz-conventional-changelog-3.3.0.tgz} + id: registry.nlark.com/cz-conventional-changelog/3.3.0 name: cz-conventional-changelog version: 3.3.0 engines: {node: '>= 10'} dependencies: chalk: registry.npmmirror.com/chalk/2.4.2 - commitizen: registry.npmmirror.com/commitizen/4.2.4 + commitizen: registry.npmmirror.com/commitizen/4.2.4_@types+node@17.0.6 conventional-commit-types: registry.nlark.com/conventional-commit-types/3.0.0 lodash.map: registry.nlark.com/lodash.map/4.6.0 longest: registry.nlark.com/longest/2.0.1 word-wrap: registry.nlark.com/word-wrap/1.2.3 optionalDependencies: - '@commitlint/load': registry.npmmirror.com/@commitlint/load/16.0.0 + '@commitlint/load': registry.npmmirror.com/@commitlint/load/16.0.0_@types+node@17.0.6 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@types/node' dev: true - registry.nlark.com/d/1.0.1: - resolution: {integrity: sha1-hpgJU3LVjb7jRv/Qxwk/mfj561o=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/d/download/d-1.0.1.tgz} - name: d - version: 1.0.1 - dependencies: - es5-ext: registry.nlark.com/es5-ext/0.10.53 - type: registry.nlark.com/type/1.2.0 - dev: false - - registry.nlark.com/d3-color/1.4.1: - resolution: {integrity: sha1-xSACv4hGraRCTVXZeYL+8m6zvIo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/d3-color/download/d3-color-1.4.1.tgz} - name: d3-color - version: 1.4.1 - dev: false - - registry.nlark.com/d3-interpolate/1.4.0: - resolution: {integrity: sha1-Um554tgNqjg/ngwcHH3MDwWD6Yc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/d3-interpolate/download/d3-interpolate-1.4.0.tgz} - name: d3-interpolate - version: 1.4.0 - dependencies: - d3-color: registry.nlark.com/d3-color/1.4.1 - dev: false - - registry.nlark.com/d3-regression/1.3.9: - resolution: {integrity: sha1-YcNKy5trvZFy7eifBdC3+9V8zcA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/d3-regression/download/d3-regression-1.3.9.tgz} - name: d3-regression - version: 1.3.9 - dev: false - - registry.nlark.com/d3-timer/1.0.10: - resolution: {integrity: sha1-3+dripF0iDGxO22ceT/71QjdneU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/d3-timer/download/d3-timer-1.0.10.tgz} - name: d3-timer - version: 1.0.10 - dev: false - - registry.nlark.com/dayjs/1.10.7: - resolution: {integrity: sha1-LPX5Gt0oEWdIRAhmoKHSbzps5Gg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/dayjs/download/dayjs-1.10.7.tgz} - name: dayjs - version: 1.10.7 - dev: false - registry.nlark.com/decamelize-keys/1.1.0: resolution: {integrity: sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/decamelize-keys/download/decamelize-keys-1.1.0.tgz} name: decamelize-keys @@ -836,19 +678,6 @@ packages: version: 0.7.0 dev: true - registry.nlark.com/deep-equal/1.1.1: - resolution: {integrity: sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/deep-equal/download/deep-equal-1.1.1.tgz} - name: deep-equal - version: 1.1.1 - dependencies: - is-arguments: registry.nlark.com/is-arguments/1.1.1 - is-date-object: registry.nlark.com/is-date-object/1.0.5 - is-regex: registry.nlark.com/is-regex/1.1.4 - object-is: registry.nlark.com/object-is/1.1.5 - object-keys: registry.nlark.com/object-keys/1.1.1 - regexp.prototype.flags: registry.nlark.com/regexp.prototype.flags/1.3.1 - dev: false - registry.nlark.com/deep-is/0.1.4: resolution: {integrity: sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz} name: deep-is @@ -869,12 +698,7 @@ packages: engines: {node: '>= 0.4'} dependencies: object-keys: registry.nlark.com/object-keys/1.1.1 - - registry.nlark.com/defined/1.0.0: - resolution: {integrity: sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/defined/download/defined-1.0.0.tgz} - name: defined - version: 1.0.0 - dev: false + dev: true registry.nlark.com/delayed-stream/1.0.0: resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/delayed-stream/download/delayed-stream-1.0.0.tgz} @@ -883,12 +707,6 @@ packages: engines: {node: '>=0.4.0'} dev: false - registry.nlark.com/delegate/3.2.0: - resolution: {integrity: sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/delegate/download/delegate-3.2.0.tgz} - name: delegate - version: 3.2.0 - dev: false - registry.nlark.com/detect-file/1.0.0: resolution: {integrity: sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/detect-file/download/detect-file-1.0.0.tgz} name: detect-file @@ -903,12 +721,6 @@ packages: engines: {node: '>=8'} dev: true - registry.nlark.com/diff-match-patch/1.0.5: - resolution: {integrity: sha1-q7WE1fEM0Rlt/FWqA3AVkq4/ezc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/diff-match-patch/download/diff-match-patch-1.0.5.tgz} - name: diff-match-patch - version: 1.0.5 - dev: false - registry.nlark.com/diff/4.0.2: resolution: {integrity: sha1-YPOuy4nV+uUgwRqhnvwruYKq3n0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/diff/download/diff-4.0.2.tgz} name: diff @@ -1006,15 +818,6 @@ packages: engines: {node: '>=10'} dev: true - registry.nlark.com/dotignore/0.1.2: - resolution: {integrity: sha1-+ULyIA0ow6dvvdbw7p8yV8ii6QU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/dotignore/download/dotignore-0.1.2.tgz} - name: dotignore - version: 0.1.2 - hasBin: true - dependencies: - minimatch: registry.nlark.com/minimatch/3.0.4 - dev: false - registry.nlark.com/editor/1.0.0: resolution: {integrity: sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/editor/download/editor-1.0.0.tgz} name: editor @@ -1065,38 +868,10 @@ packages: is-callable: registry.nlark.com/is-callable/1.2.4 is-date-object: registry.nlark.com/is-date-object/1.0.5 is-symbol: registry.nlark.com/is-symbol/1.0.4 - - registry.nlark.com/es5-ext/0.10.53: - resolution: {integrity: sha1-k8WjrP2+8nUiCtcmRK0C7hg2jeE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/es5-ext/download/es5-ext-0.10.53.tgz} - name: es5-ext - version: 0.10.53 - dependencies: - es6-iterator: registry.nlark.com/es6-iterator/2.0.3 - es6-symbol: registry.nlark.com/es6-symbol/3.1.3 - next-tick: registry.nlark.com/next-tick/1.0.0 - dev: false - - registry.nlark.com/es6-iterator/2.0.3: - resolution: {integrity: sha1-p96IkUGgWpSwhUQDstCg+/qY87c=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/es6-iterator/download/es6-iterator-2.0.3.tgz} - name: es6-iterator - version: 2.0.3 - dependencies: - d: registry.nlark.com/d/1.0.1 - es5-ext: registry.nlark.com/es5-ext/0.10.53 - es6-symbol: registry.nlark.com/es6-symbol/3.1.3 - dev: false - - registry.nlark.com/es6-symbol/3.1.3: - resolution: {integrity: sha1-utXTwbzawoJp9MszHkMceKxwXRg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/es6-symbol/download/es6-symbol-3.1.3.tgz} - name: es6-symbol - version: 3.1.3 - dependencies: - d: registry.nlark.com/d/1.0.1 - ext: registry.npmmirror.com/ext/1.6.0 - dev: false + dev: true registry.nlark.com/escalade/3.1.1: - resolution: {integrity: sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escalade/download/escalade-3.1.1.tgz?cache=0&sync_timestamp=1631501075828&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fescalade%2Fdownload%2Fescalade-3.1.1.tgz} + resolution: {integrity: sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escalade/download/escalade-3.1.1.tgz} name: escalade version: 3.1.1 engines: {node: '>=6'} @@ -1109,10 +884,11 @@ packages: dev: true registry.nlark.com/escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz} + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1631501921416&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz} name: escape-string-regexp version: 1.0.5 engines: {node: '>=0.8.0'} + dev: true registry.nlark.com/escape-string-regexp/4.0.0: resolution: {integrity: sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz?cache=0&sync_timestamp=1631501921416&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-4.0.0.tgz} @@ -1122,7 +898,7 @@ packages: dev: true registry.nlark.com/eslint-config-prettier/8.3.0_eslint@8.6.0: - resolution: {integrity: sha1-90cbILb+ipqSVMxoRFQgKIai3Xo=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-config-prettier/download/eslint-config-prettier-8.3.0.tgz} + resolution: {integrity: sha1-90cbILb+ipqSVMxoRFQgKIai3Xo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eslint-config-prettier/download/eslint-config-prettier-8.3.0.tgz} id: registry.nlark.com/eslint-config-prettier/8.3.0 name: eslint-config-prettier version: 8.3.0 @@ -1155,14 +931,6 @@ packages: eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/2.1.0 dev: true - registry.nlark.com/esprima/1.2.5: - resolution: {integrity: sha1-CZNQL+r2aBODJXVvMPmlH+7sEek=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esprima/download/esprima-1.2.5.tgz} - name: esprima - version: 1.2.5 - engines: {node: '>=0.4.0'} - hasBin: true - dev: false - registry.nlark.com/esquery/1.4.0: resolution: {integrity: sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz} name: esquery @@ -1181,33 +949,13 @@ packages: estraverse: registry.npmmirror.com/estraverse/5.3.0 dev: true - registry.nlark.com/estree-walker/2.0.2: - resolution: {integrity: sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/estree-walker/download/estree-walker-2.0.2.tgz} - name: estree-walker - version: 2.0.2 - registry.nlark.com/esutils/2.0.3: - resolution: {integrity: sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz} + resolution: {integrity: sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz} name: esutils version: 2.0.3 engines: {node: '>=0.10.0'} dev: true - registry.nlark.com/event-emitter/0.3.5: - resolution: {integrity: sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/event-emitter/download/event-emitter-0.3.5.tgz} - name: event-emitter - version: 0.3.5 - dependencies: - d: registry.nlark.com/d/1.0.1 - es5-ext: registry.nlark.com/es5-ext/0.10.53 - dev: false - - registry.nlark.com/eventemitter3/4.0.7: - resolution: {integrity: sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/eventemitter3/download/eventemitter3-4.0.7.tgz} - name: eventemitter3 - version: 4.0.7 - dev: false - registry.nlark.com/expand-tilde/2.0.2: resolution: {integrity: sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/expand-tilde/download/expand-tilde-2.0.2.tgz} name: expand-tilde @@ -1224,7 +972,7 @@ packages: engines: {node: '>=4'} dependencies: chardet: registry.npmmirror.com/chardet/0.7.0 - iconv-lite: registry.nlark.com/iconv-lite/0.4.24 + iconv-lite: registry.npmmirror.com/iconv-lite/0.4.24 tmp: registry.nlark.com/tmp/0.0.33 dev: true @@ -1273,11 +1021,14 @@ packages: reusify: registry.npmmirror.com/reusify/1.0.4 dev: true - registry.nlark.com/fecha/4.2.1: - resolution: {integrity: sha1-CoOtj4bvYqCR4iu1oDnNA9I+7M4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fecha/download/fecha-4.2.1.tgz} - name: fecha - version: 4.2.1 - dev: false + registry.nlark.com/figures/2.0.0: + resolution: {integrity: sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/figures/download/figures-2.0.0.tgz} + name: figures + version: 2.0.0 + engines: {node: '>=4'} + dependencies: + escape-string-regexp: registry.nlark.com/escape-string-regexp/1.0.5 + dev: true registry.nlark.com/file-entry-cache/6.0.1: resolution: {integrity: sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/file-entry-cache/download/file-entry-cache-6.0.1.tgz} @@ -1344,6 +1095,14 @@ packages: version: 1.1.0 dev: true + registry.nlark.com/find-yarn-workspace-root/2.0.0: + resolution: {integrity: sha1-9H+40jnJAOt4F5qoG2ZnPqyI970=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/find-yarn-workspace-root/download/find-yarn-workspace-root-2.0.0.tgz} + name: find-yarn-workspace-root + version: 2.0.0 + dependencies: + micromatch: registry.nlark.com/micromatch/4.0.4 + dev: true + registry.nlark.com/flat-cache/3.0.4: resolution: {integrity: sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/flat-cache/download/flat-cache-3.0.4.tgz} name: flat-cache @@ -1354,26 +1113,6 @@ packages: rimraf: registry.npmmirror.com/rimraf/3.0.2 dev: true - registry.nlark.com/fmin/0.0.2: - resolution: {integrity: sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fmin/download/fmin-0.0.2.tgz} - name: fmin - version: 0.0.2 - dependencies: - contour_plot: registry.nlark.com/contour_plot/0.0.1 - json2module: registry.nlark.com/json2module/0.0.3 - rollup: registry.npmmirror.com/rollup/0.25.8 - tape: registry.npmmirror.com/tape/4.14.0 - uglify-js: registry.npmmirror.com/uglify-js/2.8.29 - dev: false - - registry.nlark.com/for-each/0.3.3: - resolution: {integrity: sha1-abRH6IoKXTLD5whPPxcQA0shN24=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/for-each/download/for-each-0.3.3.tgz} - name: for-each - version: 0.3.3 - dependencies: - is-callable: registry.nlark.com/is-callable/1.2.4 - dev: false - registry.nlark.com/form-data/4.0.0: resolution: {integrity: sha1-k5Gdrq82HuUpWEubMWZNwSyfpFI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/form-data/download/form-data-4.0.0.tgz} name: form-data @@ -1396,18 +1135,8 @@ packages: universalify: registry.nlark.com/universalify/2.0.0 dev: true - registry.nlark.com/fs-extra/5.0.0: - resolution: {integrity: sha1-QU0BEM3QZwVzTQVWUsVBEmDDGr0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs-extra/download/fs-extra-5.0.0.tgz} - name: fs-extra - version: 5.0.0 - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - jsonfile: registry.nlark.com/jsonfile/4.0.0 - universalify: registry.nlark.com/universalify/0.1.2 - dev: false - registry.nlark.com/fs-extra/7.0.1: - resolution: {integrity: sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs-extra/download/fs-extra-7.0.1.tgz} + resolution: {integrity: sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs-extra/download/fs-extra-7.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffs-extra%2Fdownload%2Ffs-extra-7.0.1.tgz} name: fs-extra version: 7.0.1 engines: {node: '>=6 <7 || >=8'} @@ -1418,7 +1147,7 @@ packages: dev: true registry.nlark.com/fs-extra/8.1.0: - resolution: {integrity: sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs-extra/download/fs-extra-8.1.0.tgz} + resolution: {integrity: sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs-extra/download/fs-extra-8.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ffs-extra%2Fdownload%2Ffs-extra-8.1.0.tgz} name: fs-extra version: 8.1.0 engines: {node: '>=6 <7 || >=8'} @@ -1432,6 +1161,7 @@ packages: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/fs.realpath/download/fs.realpath-1.0.0.tgz} name: fs.realpath version: 1.0.0 + dev: true registry.nlark.com/function-bind/1.1.1: resolution: {integrity: sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/function-bind/download/function-bind-1.1.1.tgz} @@ -1458,7 +1188,7 @@ packages: dependencies: function-bind: registry.nlark.com/function-bind/1.1.1 has: registry.nlark.com/has/1.0.3 - has-symbols: registry.npmmirror.com/has-symbols/1.0.2 + has-symbols: registry.nlark.com/has-symbols/1.0.2 registry.nlark.com/get-stream/6.0.1: resolution: {integrity: sha1-omLY7vZ6ztV8KFKtYWdSakPL97c=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/get-stream/download/get-stream-6.0.1.tgz} @@ -1475,6 +1205,7 @@ packages: dependencies: call-bind: registry.nlark.com/call-bind/1.0.2 get-intrinsic: registry.nlark.com/get-intrinsic/1.1.1 + dev: true registry.nlark.com/global-dirs/0.1.1: resolution: {integrity: sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/global-dirs/download/global-dirs-0.1.1.tgz} @@ -1518,19 +1249,11 @@ packages: array-union: registry.nlark.com/array-union/2.1.0 dir-glob: registry.nlark.com/dir-glob/3.0.1 fast-glob: registry.nlark.com/fast-glob/3.2.7 - ignore: registry.npmmirror.com/ignore/5.1.9 + ignore: registry.npmmirror.com/ignore/5.2.0 merge2: registry.nlark.com/merge2/1.4.1 slash: registry.nlark.com/slash/3.0.0 dev: true - registry.nlark.com/good-listener/1.2.2: - resolution: {integrity: sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/good-listener/download/good-listener-1.2.2.tgz} - name: good-listener - version: 1.2.2 - dependencies: - delegate: registry.nlark.com/delegate/3.2.0 - dev: false - registry.nlark.com/hard-rejection/2.1.0: resolution: {integrity: sha1-HG7aXBaFxjlCdm15u0Cudzzs2IM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/hard-rejection/download/hard-rejection-2.1.0.tgz} name: hard-rejection @@ -1538,25 +1261,18 @@ packages: engines: {node: '>=6'} dev: true - registry.nlark.com/has-ansi/2.0.0: - resolution: {integrity: sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-ansi/download/has-ansi-2.0.0.tgz} - name: has-ansi - version: 2.0.0 - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: registry.nlark.com/ansi-regex/2.1.1 - dev: false - registry.nlark.com/has-bigints/1.0.1: resolution: {integrity: sha1-ZP5qywIGc+O3jbA1pa9pqp0HsRM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-bigints/download/has-bigints-1.0.1.tgz} name: has-bigints version: 1.0.1 + dev: true registry.nlark.com/has-flag/3.0.0: resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-flag/download/has-flag-3.0.0.tgz} name: has-flag version: 3.0.0 engines: {node: '>=4'} + dev: true registry.nlark.com/has-flag/4.0.0: resolution: {integrity: sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz} @@ -1564,13 +1280,20 @@ packages: version: 4.0.0 engines: {node: '>=8'} + registry.nlark.com/has-symbols/1.0.2: + resolution: {integrity: sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz} + name: has-symbols + version: 1.0.2 + engines: {node: '>= 0.4'} + registry.nlark.com/has-tostringtag/1.0.0: resolution: {integrity: sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has-tostringtag/download/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.2 + has-symbols: registry.nlark.com/has-symbols/1.0.2 + dev: true registry.nlark.com/has/1.0.3: resolution: {integrity: sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/has/download/has-1.0.3.tgz} @@ -1603,15 +1326,6 @@ packages: engines: {node: '>=10.17.0'} dev: true - registry.nlark.com/iconv-lite/0.4.24: - resolution: {integrity: sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/iconv-lite/download/iconv-lite-0.4.24.tgz} - name: iconv-lite - version: 0.4.24 - engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: registry.nlark.com/safer-buffer/2.1.2 - dev: true - registry.nlark.com/import-fresh/3.3.0: resolution: {integrity: sha1-NxYsJfy566oublPVtNiM4X2eDCs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/import-fresh/download/import-fresh-3.3.0.tgz} name: import-fresh @@ -1643,11 +1357,13 @@ packages: dependencies: once: registry.nlark.com/once/1.4.0 wrappy: registry.nlark.com/wrappy/1.0.2 + dev: true registry.nlark.com/inherits/2.0.4: resolution: {integrity: sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/inherits/download/inherits-2.0.4.tgz} name: inherits version: 2.0.4 + dev: true registry.nlark.com/ini/1.3.8: resolution: {integrity: sha1-op2kJbSIBvNHZ6Tvzjlyaa8oQyw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/ini/download/ini-1.3.8.tgz} @@ -1664,16 +1380,7 @@ packages: get-intrinsic: registry.nlark.com/get-intrinsic/1.1.1 has: registry.nlark.com/has/1.0.3 side-channel: registry.nlark.com/side-channel/1.0.4 - - registry.nlark.com/is-arguments/1.1.1: - resolution: {integrity: sha1-FbP4j9oB8ql/7ITKdhpWDxI++ps=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-arguments/download/is-arguments-1.1.1.tgz} - name: is-arguments - version: 1.1.1 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.nlark.com/call-bind/1.0.2 - has-tostringtag: registry.nlark.com/has-tostringtag/1.0.0 - dev: false + dev: true registry.nlark.com/is-arrayish/0.2.1: resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-arrayish/download/is-arrayish-0.2.1.tgz} @@ -1687,6 +1394,7 @@ packages: version: 1.0.4 dependencies: has-bigints: registry.nlark.com/has-bigints/1.0.1 + dev: true registry.nlark.com/is-binary-path/2.1.0: resolution: {integrity: sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-binary-path/download/is-binary-path-2.1.0.tgz} @@ -1697,11 +1405,22 @@ packages: binary-extensions: registry.nlark.com/binary-extensions/2.2.0 dev: true + registry.nlark.com/is-boolean-object/1.1.2: + resolution: {integrity: sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz} + name: is-boolean-object + version: 1.1.2 + engines: {node: '>= 0.4'} + dependencies: + call-bind: registry.nlark.com/call-bind/1.0.2 + has-tostringtag: registry.nlark.com/has-tostringtag/1.0.0 + dev: true + registry.nlark.com/is-callable/1.2.4: resolution: {integrity: sha1-RzAdWN0CWUB4ZVR4U99tYf5HGUU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-callable/download/is-callable-1.2.4.tgz} name: is-callable version: 1.2.4 engines: {node: '>= 0.4'} + dev: true registry.nlark.com/is-date-object/1.0.5: resolution: {integrity: sha1-CEHVU25yTCVZe/bqYuG9OCmN8x8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-date-object/download/is-date-object-1.0.5.tgz} @@ -1710,6 +1429,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: registry.nlark.com/has-tostringtag/1.0.0 + dev: true registry.nlark.com/is-docker/2.2.1: resolution: {integrity: sha1-M+6r4jz+hvFL3kQIoCwM+4U6zao=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-docker/download/is-docker-2.2.1.tgz} @@ -1763,6 +1483,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: registry.nlark.com/has-tostringtag/1.0.0 + dev: true registry.nlark.com/is-number/7.0.0: resolution: {integrity: sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-number/download/is-number-7.0.0.tgz} @@ -1799,6 +1520,7 @@ packages: dependencies: call-bind: registry.nlark.com/call-bind/1.0.2 has-tostringtag: registry.nlark.com/has-tostringtag/1.0.0 + dev: true registry.nlark.com/is-stream/2.0.1: resolution: {integrity: sha1-+sHj1TuXrVqdCunO8jifWBClwHc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-stream/download/is-stream-2.0.1.tgz} @@ -1814,6 +1536,7 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: registry.nlark.com/has-tostringtag/1.0.0 + dev: true registry.nlark.com/is-symbol/1.0.4: resolution: {integrity: sha1-ptrJO2NbBjymhyI23oiRClevE5w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-symbol/download/is-symbol-1.0.4.tgz} @@ -1821,7 +1544,8 @@ packages: version: 1.0.4 engines: {node: '>= 0.4'} dependencies: - has-symbols: registry.npmmirror.com/has-symbols/1.0.2 + has-symbols: registry.nlark.com/has-symbols/1.0.2 + dev: true registry.nlark.com/is-text-path/1.0.1: resolution: {integrity: sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/is-text-path/download/is-text-path-1.0.1.tgz} @@ -1858,6 +1582,7 @@ packages: resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/isexe/download/isexe-2.0.0.tgz} name: isexe version: 2.0.0 + dev: true registry.nlark.com/jake/10.8.2: resolution: {integrity: sha1-68nehVgWCmbYLQ6txqLlj7xQCns=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jake/download/jake-10.8.2.tgz} @@ -1901,15 +1626,6 @@ packages: version: 1.0.1 dev: true - registry.nlark.com/json2module/0.0.3: - resolution: {integrity: sha1-APtfSpt638PwZHwpyxe80Zeb6bI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json2module/download/json2module-0.0.3.tgz} - name: json2module - version: 0.0.3 - hasBin: true - dependencies: - rw: registry.npmmirror.com/rw/1.3.3 - dev: false - registry.nlark.com/json5/1.0.1: resolution: {integrity: sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/json5/download/json5-1.0.1.tgz} name: json5 @@ -1937,6 +1653,7 @@ packages: version: 4.0.0 optionalDependencies: graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 + dev: true registry.nlark.com/jsonfile/6.1.0: resolution: {integrity: sha1-vFWyY0eTxnnsZAMJTrE2mKbsCq4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/jsonfile/download/jsonfile-6.1.0.tgz} @@ -1957,15 +1674,6 @@ packages: promise: registry.nlark.com/promise/7.3.1 dev: true - registry.nlark.com/kind-of/3.2.2: - resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/kind-of/download/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.nlark.com/kind-of/6.0.3: resolution: {integrity: sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/kind-of/download/kind-of-6.0.3.tgz} name: kind-of @@ -1973,12 +1681,13 @@ packages: engines: {node: '>=0.10.0'} dev: true - registry.nlark.com/lazy-cache/1.0.4: - resolution: {integrity: sha1-odePw6UEdMuAhF07O24dpJpEbo4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lazy-cache/download/lazy-cache-1.0.4.tgz} - name: lazy-cache - version: 1.0.4 - engines: {node: '>=0.10.0'} - dev: false + registry.nlark.com/klaw-sync/6.0.0: + resolution: {integrity: sha1-H9LP1W67YlAYERTwpYEWcJnCsow=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/klaw-sync/download/klaw-sync-6.0.0.tgz} + name: klaw-sync + version: 6.0.0 + dependencies: + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 + dev: true registry.nlark.com/levn/0.4.1: resolution: {integrity: sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/levn/download/levn-0.4.1.tgz} @@ -2030,19 +1739,6 @@ packages: version: 4.6.2 dev: true - registry.nlark.com/lodash/4.17.21: - resolution: {integrity: sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz} - name: lodash - version: 4.17.21 - dev: true - - registry.nlark.com/longest/1.0.1: - resolution: {integrity: sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/longest/download/longest-1.0.1.tgz} - name: longest - version: 1.0.1 - engines: {node: '>=0.10.0'} - dev: false - registry.nlark.com/longest/2.0.1: resolution: {integrity: sha1-eB4YMpaqlPbU2RbcM10NF676I/g=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/longest/download/longest-2.0.1.tgz} name: longest @@ -2059,7 +1755,7 @@ packages: dev: true registry.nlark.com/lru-cache/6.0.0: - resolution: {integrity: sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lru-cache/download/lru-cache-6.0.0.tgz} + resolution: {integrity: sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/lru-cache/download/lru-cache-6.0.0.tgz} name: lru-cache version: 6.0.0 engines: {node: '>=10'} @@ -2136,6 +1832,7 @@ packages: version: 3.0.4 dependencies: brace-expansion: registry.nlark.com/brace-expansion/1.1.11 + dev: true registry.nlark.com/minimist-options/4.1.0: resolution: {integrity: sha1-wGVXE8U6ii69d/+iR9NCxA8BBhk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/minimist-options/download/minimist-options-4.1.0.tgz} @@ -2152,6 +1849,7 @@ packages: resolution: {integrity: sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/minimist/download/minimist-1.2.5.tgz} name: minimist version: 1.2.5 + dev: true registry.nlark.com/mute-stream/0.0.7: resolution: {integrity: sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/mute-stream/download/mute-stream-0.0.7.tgz} @@ -2165,12 +1863,6 @@ packages: version: 1.4.0 dev: true - registry.nlark.com/next-tick/1.0.0: - resolution: {integrity: sha1-yobR/ogoFpsBICCOPchCS524NCw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/next-tick/download/next-tick-1.0.0.tgz} - name: next-tick - version: 1.0.0 - dev: false - registry.nlark.com/nice-try/1.0.5: resolution: {integrity: sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/nice-try/download/nice-try-1.0.5.tgz} name: nice-try @@ -2210,7 +1902,7 @@ packages: dev: true registry.nlark.com/normalize-path/3.0.0: - resolution: {integrity: sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/normalize-path/download/normalize-path-3.0.0.tgz} + resolution: {integrity: sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/normalize-path/download/normalize-path-3.0.0.tgz?cache=0&sync_timestamp=1631501916645&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fnormalize-path%2Fdownload%2Fnormalize-path-3.0.0.tgz} name: normalize-path version: 3.0.0 engines: {node: '>=0.10.0'} @@ -2223,21 +1915,12 @@ packages: engines: {node: '>=0.10.0'} dev: true - registry.nlark.com/object-is/1.1.5: - resolution: {integrity: sha1-ud7qpfx/GEag+uzc7sE45XePU6w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/object-is/download/object-is-1.1.5.tgz} - name: object-is - version: 1.1.5 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.nlark.com/call-bind/1.0.2 - define-properties: registry.nlark.com/define-properties/1.1.3 - dev: false - registry.nlark.com/object-keys/1.1.1: resolution: {integrity: sha1-HEfyct8nfzsdrwYWd9nILiMixg4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/object-keys/download/object-keys-1.1.1.tgz} name: object-keys version: 1.1.1 engines: {node: '>= 0.4'} + dev: true registry.nlark.com/object.assign/4.1.2: resolution: {integrity: sha1-DtVKNC7Os3s4/3brgxoOeIy2OUA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/object.assign/download/object.assign-4.1.2.tgz} @@ -2247,8 +1930,9 @@ packages: dependencies: call-bind: registry.nlark.com/call-bind/1.0.2 define-properties: registry.nlark.com/define-properties/1.1.3 - has-symbols: registry.npmmirror.com/has-symbols/1.0.2 + has-symbols: registry.nlark.com/has-symbols/1.0.2 object-keys: registry.nlark.com/object-keys/1.1.1 + dev: true registry.nlark.com/on-finished/2.3.0: resolution: {integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/on-finished/download/on-finished-2.3.0.tgz} @@ -2265,6 +1949,7 @@ packages: version: 1.4.0 dependencies: wrappy: registry.nlark.com/wrappy/1.0.2 + dev: true registry.nlark.com/onetime/2.0.1: resolution: {integrity: sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/onetime/download/onetime-2.0.1.tgz} @@ -2313,7 +1998,7 @@ packages: dev: true registry.nlark.com/p-limit/1.3.0: - resolution: {integrity: sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1631506045209&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz} + resolution: {integrity: sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/p-limit/download/p-limit-1.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz} name: p-limit version: 1.3.0 engines: {node: '>=4'} @@ -2398,6 +2083,28 @@ packages: tslib: registry.nlark.com/tslib/2.3.1 dev: true + registry.nlark.com/patch-package/6.4.7: + resolution: {integrity: sha1-IoLVPDl5CaDZ75La4/3rVYOCsUg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/patch-package/download/patch-package-6.4.7.tgz} + name: patch-package + version: 6.4.7 + engines: {npm: '>5'} + hasBin: true + dependencies: + '@yarnpkg/lockfile': registry.nlark.com/@yarnpkg/lockfile/1.1.0 + chalk: registry.npmmirror.com/chalk/2.4.2 + cross-spawn: registry.nlark.com/cross-spawn/6.0.5 + find-yarn-workspace-root: registry.nlark.com/find-yarn-workspace-root/2.0.0 + fs-extra: registry.nlark.com/fs-extra/7.0.1 + is-ci: registry.npmmirror.com/is-ci/2.0.0 + klaw-sync: registry.nlark.com/klaw-sync/6.0.0 + minimist: registry.nlark.com/minimist/1.2.5 + open: registry.npmmirror.com/open/7.4.2 + rimraf: registry.npmmirror.com/rimraf/2.7.1 + semver: registry.nlark.com/semver/5.7.1 + slash: registry.nlark.com/slash/2.0.0 + tmp: registry.nlark.com/tmp/0.0.33 + dev: true + registry.nlark.com/path-exists/3.0.0: resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-exists/download/path-exists-3.0.0.tgz} name: path-exists @@ -2417,6 +2124,7 @@ packages: name: path-is-absolute version: 1.0.1 engines: {node: '>=0.10.0'} + dev: true registry.nlark.com/path-key/2.0.1: resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-key/download/path-key-2.0.1.tgz} @@ -2430,11 +2138,13 @@ packages: name: path-key version: 3.1.1 engines: {node: '>=8'} + dev: true registry.nlark.com/path-parse/1.0.7: resolution: {integrity: sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz} name: path-parse version: 1.0.7 + dev: true registry.nlark.com/path-to-regexp/6.2.0: resolution: {integrity: sha1-97OAMzYQTDRoia3s5hRmkjBkXzg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/path-to-regexp/download/path-to-regexp-6.2.0.tgz} @@ -2449,12 +2159,6 @@ packages: engines: {node: '>=8'} dev: true - registry.nlark.com/pdfast/0.2.0: - resolution: {integrity: sha1-jLxVbhvyUiF3eHwN4uDUNzuohck=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/pdfast/download/pdfast-0.2.0.tgz} - name: pdfast - version: 0.2.0 - dev: false - registry.nlark.com/picomatch/2.3.0: resolution: {integrity: sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz} name: picomatch @@ -2478,12 +2182,6 @@ packages: fast-diff: registry.nlark.com/fast-diff/1.2.0 dev: true - registry.nlark.com/print-js/1.6.0: - resolution: {integrity: sha1-aSsEbPMZkrRq+mxtip2xxp1DHR8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/print-js/download/print-js-1.6.0.tgz} - name: print-js - version: 1.6.0 - dev: false - registry.nlark.com/promise/7.3.1: resolution: {integrity: sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/promise/download/promise-7.3.1.tgz} name: promise @@ -2663,22 +2361,6 @@ packages: strip-indent: registry.nlark.com/strip-indent/3.0.0 dev: true - registry.nlark.com/regenerator-runtime/0.13.9: - resolution: {integrity: sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz} - name: regenerator-runtime - version: 0.13.9 - dev: false - - registry.nlark.com/regexp.prototype.flags/1.3.1: - resolution: {integrity: sha1-fvNSro0VnnWMDq3Kb4/LTu8HviY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regexp.prototype.flags/download/regexp.prototype.flags-1.3.1.tgz} - name: regexp.prototype.flags - version: 1.3.1 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.nlark.com/call-bind/1.0.2 - define-properties: registry.nlark.com/define-properties/1.1.3 - dev: false - registry.nlark.com/regexpp/3.2.0: resolution: {integrity: sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz} name: regexpp @@ -2693,13 +2375,6 @@ packages: engines: {node: '>= 0.10'} dev: true - registry.nlark.com/repeat-string/1.6.1: - resolution: {integrity: sha1-jcrkcOHIirwtYA//Sndihtp15jc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/repeat-string/download/repeat-string-1.6.1.tgz} - name: repeat-string - version: 1.6.1 - engines: {node: '>=0.10'} - dev: false - registry.nlark.com/require-directory/2.1.1: resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/require-directory/download/require-directory-2.1.1.tgz} name: require-directory @@ -2746,12 +2421,13 @@ packages: dev: true registry.nlark.com/resolve/1.20.0: - resolution: {integrity: sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/resolve/download/resolve-1.20.0.tgz} + resolution: {integrity: sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/resolve/download/resolve-1.20.0.tgz?cache=0&sync_timestamp=1631501917799&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fresolve%2Fdownload%2Fresolve-1.20.0.tgz} name: resolve version: 1.20.0 dependencies: is-core-module: registry.npmmirror.com/is-core-module/2.8.0 path-parse: registry.nlark.com/path-parse/1.0.7 + dev: true registry.nlark.com/restore-cursor/2.0.0: resolution: {integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/restore-cursor/download/restore-cursor-2.0.0.tgz} @@ -2773,47 +2449,12 @@ packages: signal-exit: registry.npmmirror.com/signal-exit/3.0.6 dev: true - registry.nlark.com/resumer/0.0.0: - resolution: {integrity: sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/resumer/download/resumer-0.0.0.tgz} - name: resumer - version: 0.0.0 - dependencies: - through: registry.nlark.com/through/2.3.8 - dev: false - registry.nlark.com/rfdc/1.3.0: resolution: {integrity: sha1-0LfEQasnINBdxM8m4ByJYx2doIs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rfdc/download/rfdc-1.3.0.tgz} name: rfdc version: 1.3.0 dev: true - registry.nlark.com/right-align/0.1.3: - resolution: {integrity: sha1-YTObci/mo1FWiSENJOFMlhSGE+8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/right-align/download/right-align-0.1.3.tgz} - name: right-align - version: 0.1.3 - engines: {node: '>=0.10.0'} - dependencies: - align-text: registry.nlark.com/align-text/0.1.4 - dev: false - - registry.nlark.com/rimraf/2.6.3: - resolution: {integrity: sha1-stEE/g2Psnz54KHNqCYt04M8bKs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rimraf/download/rimraf-2.6.3.tgz} - name: rimraf - version: 2.6.3 - hasBin: true - dependencies: - glob: registry.npmmirror.com/glob/7.2.0 - dev: true - - registry.nlark.com/rimraf/2.7.1: - resolution: {integrity: sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rimraf/download/rimraf-2.7.1.tgz} - name: rimraf - version: 2.7.1 - hasBin: true - dependencies: - glob: registry.npmmirror.com/glob/7.2.0 - dev: true - registry.nlark.com/rollup-plugin-visualizer/5.5.2: resolution: {integrity: sha1-riEw7lrkotkB52TkkrcTV8uV7tc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/rollup-plugin-visualizer/download/rollup-plugin-visualizer-5.5.2.tgz} name: rollup-plugin-visualizer @@ -2856,28 +2497,22 @@ packages: version: 2.1.2 dev: true - registry.nlark.com/select/1.1.2: - resolution: {integrity: sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/select/download/select-1.1.2.tgz} - name: select - version: 1.1.2 - dev: false - registry.nlark.com/semver/5.7.1: - resolution: {integrity: sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-5.7.1.tgz} + resolution: {integrity: sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1631500167672&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz} name: semver version: 5.7.1 hasBin: true dev: true registry.nlark.com/semver/6.3.0: - resolution: {integrity: sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-6.3.0.tgz} + resolution: {integrity: sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1631500167672&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz} name: semver version: 6.3.0 hasBin: true dev: true registry.nlark.com/semver/7.3.5: - resolution: {integrity: sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-7.3.5.tgz} + resolution: {integrity: sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/semver/download/semver-7.3.5.tgz?cache=0&sync_timestamp=1631500167672&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-7.3.5.tgz} name: semver version: 7.3.5 engines: {node: '>=10'} @@ -2902,6 +2537,7 @@ packages: engines: {node: '>=8'} dependencies: shebang-regex: registry.nlark.com/shebang-regex/3.0.0 + dev: true registry.nlark.com/shebang-regex/1.0.0: resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/shebang-regex/download/shebang-regex-1.0.0.tgz} @@ -2915,6 +2551,7 @@ packages: name: shebang-regex version: 3.0.0 engines: {node: '>=8'} + dev: true registry.nlark.com/side-channel/1.0.4: resolution: {integrity: sha1-785cj9wQTudRslxY1CkAEfpeos8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/side-channel/download/side-channel-1.0.4.tgz} @@ -2923,13 +2560,7 @@ packages: dependencies: call-bind: registry.nlark.com/call-bind/1.0.2 get-intrinsic: registry.nlark.com/get-intrinsic/1.1.1 - object-inspect: registry.npmmirror.com/object-inspect/1.11.1 - - registry.nlark.com/size-sensor/1.0.1: - resolution: {integrity: sha1-+E5GIG0+JZ+v8dVI5LO+ypMhnbs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/size-sensor/download/size-sensor-1.0.1.tgz} - name: size-sensor - version: 1.0.1 - dev: false + object-inspect: registry.npmmirror.com/object-inspect/1.12.0 registry.nlark.com/slash/2.0.0: resolution: {integrity: sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/slash/download/slash-2.0.0.tgz} @@ -2977,33 +2608,8 @@ packages: is-fullwidth-code-point: registry.nlark.com/is-fullwidth-code-point/4.0.0 dev: true - registry.nlark.com/source-map/0.1.32: - resolution: {integrity: sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map/download/source-map-0.1.32.tgz} - name: source-map - version: 0.1.32 - engines: {node: '>=0.8.0'} - dependencies: - amdefine: registry.nlark.com/amdefine/1.0.1 - dev: false - - registry.nlark.com/source-map/0.1.43: - resolution: {integrity: sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map/download/source-map-0.1.43.tgz} - name: source-map - version: 0.1.43 - engines: {node: '>=0.8.0'} - dependencies: - amdefine: registry.nlark.com/amdefine/1.0.1 - dev: false - - registry.nlark.com/source-map/0.5.7: - resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map/download/source-map-0.5.7.tgz} - name: source-map - version: 0.5.7 - engines: {node: '>=0.10.0'} - dev: false - registry.nlark.com/source-map/0.6.1: - resolution: {integrity: sha1-dHIq8y6WFOnCh6jQu95IteLxomM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map/download/source-map-0.6.1.tgz} + resolution: {integrity: sha1-dHIq8y6WFOnCh6jQu95IteLxomM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/source-map/download/source-map-0.6.1.tgz} name: source-map version: 0.6.1 engines: {node: '>=0.10.0'} @@ -3065,6 +2671,7 @@ packages: dependencies: call-bind: registry.nlark.com/call-bind/1.0.2 define-properties: registry.nlark.com/define-properties/1.1.3 + dev: true registry.nlark.com/string.prototype.trimstart/1.0.4: resolution: {integrity: sha1-s2OZr0qymZtMnGSL16P7K7Jv7u0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/string.prototype.trimstart/download/string.prototype.trimstart-1.0.4.tgz} @@ -3073,6 +2680,7 @@ packages: dependencies: call-bind: registry.nlark.com/call-bind/1.0.2 define-properties: registry.nlark.com/define-properties/1.1.3 + dev: true registry.nlark.com/string_decoder/1.3.0: resolution: {integrity: sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/string_decoder/download/string_decoder-1.3.0.tgz} @@ -3133,7 +2741,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: mkdirp: registry.npmmirror.com/mkdirp/0.5.5 - rimraf: registry.nlark.com/rimraf/2.6.3 + rimraf: registry.npmmirror.com/rimraf/2.6.3 dev: true registry.nlark.com/text-extensions/1.9.0: @@ -3153,6 +2761,7 @@ packages: resolution: {integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/through/download/through-2.3.8.tgz} name: through version: 2.3.8 + dev: true registry.nlark.com/through2/4.0.2: resolution: {integrity: sha1-p846wqeosLlmyA58SfBITDsjl2Q=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/through2/download/through2-4.0.2.tgz} @@ -3162,12 +2771,6 @@ packages: readable-stream: registry.nlark.com/readable-stream/3.6.0 dev: true - registry.nlark.com/tiny-emitter/2.1.0: - resolution: {integrity: sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tiny-emitter/download/tiny-emitter-2.1.0.tgz} - name: tiny-emitter - version: 2.1.0 - dev: false - registry.nlark.com/tmp/0.0.33: resolution: {integrity: sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tmp/download/tmp-0.0.33.tgz} name: tmp @@ -3210,17 +2813,13 @@ packages: resolution: {integrity: sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-1.14.1.tgz} name: tslib version: 1.14.1 - - registry.nlark.com/tslib/2.1.0: - resolution: {integrity: sha1-2mCGDxwuyqVwOrfTm8Bba/mIuXo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-2.1.0.tgz} - name: tslib - version: 2.1.0 dev: true registry.nlark.com/tslib/2.3.1: resolution: {integrity: sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz} name: tslib version: 2.3.1 + dev: true registry.nlark.com/tsutils/3.21.0_typescript@4.5.4: resolution: {integrity: sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/tsutils/download/tsutils-3.21.0.tgz} @@ -3244,26 +2843,6 @@ packages: prelude-ls: registry.nlark.com/prelude-ls/1.2.1 dev: true - registry.nlark.com/type/1.2.0: - resolution: {integrity: sha1-hI3XaY2vo+VKbEeedZxLw/GIR6A=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type/download/type-1.2.0.tgz} - name: type - version: 1.2.0 - dev: false - - registry.nlark.com/type/2.5.0: - resolution: {integrity: sha1-Ci54wud5B7JSq+XymMGwHGPw2z0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/type/download/type-2.5.0.tgz} - name: type - version: 2.5.0 - dev: false - - registry.nlark.com/uglify-to-browserify/1.0.2: - resolution: {integrity: sha1-bgkk1r2mta/jSeOabWMoUKD4grc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz} - name: uglify-to-browserify - version: 1.0.2 - requiresBuild: true - dev: false - optional: true - registry.nlark.com/unbox-primitive/1.0.1: resolution: {integrity: sha1-CF4hViXsMWJXTciFmr7nilmxRHE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/unbox-primitive/download/unbox-primitive-1.0.1.tgz} name: unbox-primitive @@ -3271,14 +2850,16 @@ packages: dependencies: function-bind: registry.nlark.com/function-bind/1.1.1 has-bigints: registry.nlark.com/has-bigints/1.0.1 - has-symbols: registry.npmmirror.com/has-symbols/1.0.2 + has-symbols: registry.nlark.com/has-symbols/1.0.2 which-boxed-primitive: registry.nlark.com/which-boxed-primitive/1.0.2 + dev: true registry.nlark.com/universalify/0.1.2: resolution: {integrity: sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/universalify/download/universalify-0.1.2.tgz} name: universalify version: 0.1.2 engines: {node: '>= 4.0.0'} + dev: true registry.nlark.com/universalify/2.0.0: resolution: {integrity: sha1-daSYTv7cSwiXXFrrc/Uw0C3yVxc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/universalify/download/universalify-2.0.0.tgz} @@ -3337,12 +2918,6 @@ packages: spdx-expression-parse: registry.nlark.com/spdx-expression-parse/3.0.1 dev: true - registry.nlark.com/vfonts/0.1.0: - resolution: {integrity: sha1-wWrzfKBEsnJa5VVTBJKA775iIqk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/vfonts/download/vfonts-0.1.0.tgz} - name: vfonts - version: 0.1.0 - dev: false - registry.nlark.com/void-elements/3.1.0: resolution: {integrity: sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/void-elements/download/void-elements-3.1.0.tgz} name: void-elements @@ -3362,10 +2937,11 @@ packages: version: 1.0.2 dependencies: is-bigint: registry.nlark.com/is-bigint/1.0.4 - is-boolean-object: registry.npmmirror.com/is-boolean-object/1.1.2 + is-boolean-object: registry.nlark.com/is-boolean-object/1.1.2 is-number-object: registry.nlark.com/is-number-object/1.0.6 is-string: registry.nlark.com/is-string/1.0.7 is-symbol: registry.nlark.com/is-symbol/1.0.4 + dev: true registry.nlark.com/which/1.3.1: resolution: {integrity: sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/which/download/which-1.3.1.tgz} @@ -3384,13 +2960,7 @@ packages: hasBin: true dependencies: isexe: registry.nlark.com/isexe/2.0.0 - - registry.nlark.com/window-size/0.1.0: - resolution: {integrity: sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/window-size/download/window-size-0.1.0.tgz} - name: window-size - version: 0.1.0 - engines: {node: '>= 0.8.0'} - dev: false + dev: true registry.nlark.com/with/7.0.2: resolution: {integrity: sha1-zO461ULSVTinp6gKrSErmChJW6w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/with/download/with-7.0.2.tgz} @@ -3398,8 +2968,8 @@ packages: version: 7.0.2 engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 - '@babel/types': registry.npmmirror.com/@babel/types/7.16.0 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.7 + '@babel/types': registry.npmmirror.com/@babel/types/7.16.7 assert-never: registry.nlark.com/assert-never/1.2.1 babel-walk: registry.nlark.com/babel-walk/3.0.0-canary-5 dev: true @@ -3411,15 +2981,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - registry.nlark.com/wordwrap/0.0.2: - resolution: {integrity: sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wordwrap/download/wordwrap-0.0.2.tgz} - name: wordwrap - version: 0.0.2 - engines: {node: '>=0.4.0'} - dev: false - registry.nlark.com/wrap-ansi/6.2.0: - resolution: {integrity: sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz} + resolution: {integrity: sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wrap-ansi/download/wrap-ansi-6.2.0.tgz?cache=0&sync_timestamp=1631584889456&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-6.2.0.tgz} name: wrap-ansi version: 6.2.0 engines: {node: '>=8'} @@ -3430,7 +2993,7 @@ packages: dev: true registry.nlark.com/wrap-ansi/7.0.0: - resolution: {integrity: sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz} + resolution: {integrity: sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wrap-ansi/download/wrap-ansi-7.0.0.tgz?cache=0&sync_timestamp=1631584889456&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fwrap-ansi%2Fdownload%2Fwrap-ansi-7.0.0.tgz} name: wrap-ansi version: 7.0.0 engines: {node: '>=10'} @@ -3444,6 +3007,7 @@ packages: resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz} name: wrappy version: 1.0.2 + dev: true registry.nlark.com/y18n/5.0.8: resolution: {integrity: sha1-f0k00PfKjFb5UxSTndzS3ZHOHVU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/y18n/download/y18n-5.0.8.tgz} @@ -3453,7 +3017,7 @@ packages: dev: true registry.nlark.com/yallist/4.0.0: - resolution: {integrity: sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=, registry: https://registry.npm.taobao.org/, tarball: https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz} + resolution: {integrity: sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.nlark.com/yallist/download/yallist-4.0.0.tgz} name: yallist version: 4.0.0 dev: true @@ -3472,12 +3036,6 @@ packages: engines: {node: '>=10'} dev: true - registry.npmmirror.com/@amap/amap-jsapi-types/0.0.8: - resolution: {integrity: sha1-WoB+J/M/5Am+TI7L3nO4w1wctlA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@amap/amap-jsapi-types/download/@amap/amap-jsapi-types-0.0.8.tgz} - name: '@amap/amap-jsapi-types' - version: 0.0.8 - dev: true - registry.npmmirror.com/@antfu/install-pkg/0.1.0: resolution: {integrity: sha1-jYxhggy8MuXDfYLVFUha0+6b0FI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antfu/install-pkg/download/@antfu/install-pkg-0.1.0.tgz} name: '@antfu/install-pkg' @@ -3503,275 +3061,53 @@ packages: '@types/throttle-debounce': registry.npmmirror.com/@types/throttle-debounce/2.1.0 dev: true - registry.npmmirror.com/@antv/color-util/2.0.6: - resolution: {integrity: sha1-XhKbuc4/K5MJtSECs9ySlDDMwBY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/color-util/download/@antv/color-util-2.0.6.tgz} - name: '@antv/color-util' - version: 2.0.6 - dependencies: - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/component/0.8.20: - resolution: {integrity: sha1-l/Daoi83aKNd4zzQ2cWP8yzspBc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/component/download/@antv/component-0.8.20.tgz} - name: '@antv/component' - version: 0.8.20 - dependencies: - '@antv/color-util': registry.npmmirror.com/@antv/color-util/2.0.6 - '@antv/dom-util': registry.npmmirror.com/@antv/dom-util/2.0.3 - '@antv/g-base': registry.npmmirror.com/@antv/g-base/0.5.6 - '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util/3.1.0-beta.3 - '@antv/path-util': registry.npmmirror.com/@antv/path-util/2.0.15 - '@antv/scale': registry.npmmirror.com/@antv/scale/0.3.14 - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - fecha: registry.nlark.com/fecha/4.2.1 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/dom-util/2.0.3: - resolution: {integrity: sha1-y9FYsciODopNhlhxpZabEZBVT/U=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/dom-util/download/@antv/dom-util-2.0.3.tgz} - name: '@antv/dom-util' - version: 2.0.3 - dependencies: - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/g-base/0.5.6: - resolution: {integrity: sha1-2W2l+/bF+LBzBydR4V5e7HCzk/w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-base/download/@antv/g-base-0.5.6.tgz} - name: '@antv/g-base' - version: 0.5.6 - dependencies: - '@antv/event-emitter': registry.nlark.com/@antv/event-emitter/0.1.2 - '@antv/g-math': registry.npmmirror.com/@antv/g-math/0.1.7 - '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util/3.1.0-beta.3 - '@antv/path-util': registry.npmmirror.com/@antv/path-util/2.0.15 - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - '@types/d3-timer': registry.npmmirror.com/@types/d3-timer/2.0.1 - d3-ease: registry.npmmirror.com/d3-ease/1.0.7 - d3-interpolate: registry.nlark.com/d3-interpolate/1.4.0 - d3-timer: registry.nlark.com/d3-timer/1.0.10 - detect-browser: registry.npmmirror.com/detect-browser/5.3.0 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/g-base/0.5.9: - resolution: {integrity: sha1-WNDhHYUVetoUCPvfJPT0aPQOWc0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-base/download/@antv/g-base-0.5.9.tgz} - name: '@antv/g-base' - version: 0.5.9 - dependencies: - '@antv/event-emitter': registry.nlark.com/@antv/event-emitter/0.1.2 - '@antv/g-math': registry.npmmirror.com/@antv/g-math/0.1.7 - '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util/3.1.0-beta.3 - '@antv/path-util': registry.npmmirror.com/@antv/path-util/2.0.15 - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - '@types/d3-timer': registry.npmmirror.com/@types/d3-timer/2.0.1 - d3-ease: registry.npmmirror.com/d3-ease/1.0.7 - d3-interpolate: registry.nlark.com/d3-interpolate/1.4.0 - d3-timer: registry.nlark.com/d3-timer/1.0.10 - detect-browser: registry.npmmirror.com/detect-browser/5.3.0 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/g-canvas/0.5.12: - resolution: {integrity: sha1-L8QNztaZTwdPIjQeZdVve71Sdfc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-canvas/download/@antv/g-canvas-0.5.12.tgz} - name: '@antv/g-canvas' - version: 0.5.12 - dependencies: - '@antv/g-base': registry.npmmirror.com/@antv/g-base/0.5.9 - '@antv/g-math': registry.npmmirror.com/@antv/g-math/0.1.7 - '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util/3.1.0-beta.3 - '@antv/path-util': registry.npmmirror.com/@antv/path-util/2.0.15 - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - gl-matrix: registry.npmmirror.com/gl-matrix/3.4.3 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/g-math/0.1.7: - resolution: {integrity: sha1-bsJ2kmn3zLZ+WBQNVznfdARswE4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-math/download/@antv/g-math-0.1.7.tgz} - name: '@antv/g-math' - version: 0.1.7 - dependencies: - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - gl-matrix: registry.npmmirror.com/gl-matrix/3.4.3 - dev: false - - registry.npmmirror.com/@antv/g-svg/0.5.6: - resolution: {integrity: sha1-cLL6mAxDGzmtPFtLU+NqHWCVfWU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g-svg/download/@antv/g-svg-0.5.6.tgz} - name: '@antv/g-svg' - version: 0.5.6 - dependencies: - '@antv/g-base': registry.npmmirror.com/@antv/g-base/0.5.9 - '@antv/g-math': registry.npmmirror.com/@antv/g-math/0.1.7 - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - detect-browser: registry.npmmirror.com/detect-browser/5.3.0 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/g2/4.1.34: - resolution: {integrity: sha1-aqcaCcJAuSkUvGZvESMQqrwOPhY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g2/download/@antv/g2-4.1.34.tgz} - name: '@antv/g2' - version: 4.1.34 - dependencies: - '@antv/adjust': registry.nlark.com/@antv/adjust/0.2.3 - '@antv/attr': registry.nlark.com/@antv/attr/0.3.2 - '@antv/color-util': registry.npmmirror.com/@antv/color-util/2.0.6 - '@antv/component': registry.npmmirror.com/@antv/component/0.8.20 - '@antv/coord': registry.nlark.com/@antv/coord/0.3.1 - '@antv/dom-util': registry.npmmirror.com/@antv/dom-util/2.0.3 - '@antv/event-emitter': registry.nlark.com/@antv/event-emitter/0.1.2 - '@antv/g-base': registry.npmmirror.com/@antv/g-base/0.5.9 - '@antv/g-canvas': registry.npmmirror.com/@antv/g-canvas/0.5.12 - '@antv/g-svg': registry.npmmirror.com/@antv/g-svg/0.5.6 - '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util/3.1.0-beta.3 - '@antv/path-util': registry.npmmirror.com/@antv/path-util/2.0.15 - '@antv/scale': registry.npmmirror.com/@antv/scale/0.3.14 - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/g2plot/2.4.5: - resolution: {integrity: sha512-djEmNqpJgDI3d06igBoCEzS8sr/Hp8mII2SXrhHn+Fuo8VtwkVIlDSzqIPbKea6CR5KfAynKYa3FoR9lsdzDSw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/g2plot/download/@antv/g2plot-2.4.5.tgz} - name: '@antv/g2plot' - version: 2.4.5 - dependencies: - '@antv/event-emitter': registry.nlark.com/@antv/event-emitter/0.1.2 - '@antv/g2': registry.npmmirror.com/@antv/g2/4.1.34 - d3-hierarchy: registry.npmmirror.com/d3-hierarchy/2.0.0 - d3-regression: registry.nlark.com/d3-regression/1.3.9 - fmin: registry.nlark.com/fmin/0.0.2 - pdfast: registry.nlark.com/pdfast/0.2.0 - size-sensor: registry.nlark.com/size-sensor/1.0.1 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/matrix-util/3.0.4: - resolution: {integrity: sha1-6hPxWKovtLovuNa2tWHsRn6jrCA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.0.4.tgz} - name: '@antv/matrix-util' - version: 3.0.4 - dependencies: - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - gl-matrix: registry.npmmirror.com/gl-matrix/3.4.3 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/matrix-util/3.1.0-beta.3: - resolution: {integrity: sha1-4GHej6e+BGBaFVxpzFzpCC7t3e4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/matrix-util/download/@antv/matrix-util-3.1.0-beta.3.tgz} - name: '@antv/matrix-util' - version: 3.1.0-beta.3 - dependencies: - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - gl-matrix: registry.npmmirror.com/gl-matrix/3.4.3 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/path-util/2.0.15: - resolution: {integrity: sha1-pvaR38i3vOW+fwqrtb1hSWQyVjE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/path-util/download/@antv/path-util-2.0.15.tgz} - name: '@antv/path-util' - version: 2.0.15 - dependencies: - '@antv/matrix-util': registry.npmmirror.com/@antv/matrix-util/3.0.4 - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/scale/0.3.14: - resolution: {integrity: sha1-Bxj4ZRNo5cmNtWEgZRMqjIu83kg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/scale/download/@antv/scale-0.3.14.tgz} - name: '@antv/scale' - version: 0.3.14 - dependencies: - '@antv/util': registry.npmmirror.com/@antv/util/2.0.17 - fecha: registry.nlark.com/fecha/4.2.1 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@antv/util/2.0.17: - resolution: {integrity: sha1-6O9CrKeJKBWyKSafPdEMazx1l6k=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@antv/util/download/@antv/util-2.0.17.tgz} - name: '@antv/util' - version: 2.0.17 - dependencies: - csstype: registry.npmmirror.com/csstype/3.0.10 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - - registry.npmmirror.com/@babel/code-frame/7.16.0: - resolution: {integrity: sha1-DfyAMJvuyEEeZecGRhxAiwu5tDE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.16.0.tgz} + registry.npmmirror.com/@babel/code-frame/7.16.7: + resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/code-frame/download/@babel/code-frame-7.16.7.tgz} name: '@babel/code-frame' - version: 7.16.0 + version: 7.16.7 engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': registry.npmmirror.com/@babel/highlight/7.16.0 + '@babel/highlight': registry.npmmirror.com/@babel/highlight/7.16.7 dev: true - registry.npmmirror.com/@babel/helper-validator-identifier/7.15.7: - resolution: {integrity: sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz} + registry.npmmirror.com/@babel/helper-validator-identifier/7.16.7: + resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.16.7.tgz} name: '@babel/helper-validator-identifier' - version: 7.15.7 + version: 7.16.7 engines: {node: '>=6.9.0'} dev: true - registry.npmmirror.com/@babel/highlight/7.16.0: - resolution: {integrity: sha1-bOsysspLj182H7f9gh4/3fShclo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/highlight/download/@babel/highlight-7.16.0.tgz} + registry.npmmirror.com/@babel/highlight/7.16.7: + resolution: {integrity: sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/highlight/download/@babel/highlight-7.16.7.tgz} name: '@babel/highlight' - version: 7.16.0 + version: 7.16.7 engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.15.7 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.16.7 chalk: registry.npmmirror.com/chalk/2.4.2 js-tokens: registry.nlark.com/js-tokens/4.0.0 dev: true - registry.npmmirror.com/@babel/parser/7.16.4: - resolution: {integrity: sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.4.tgz} + registry.npmmirror.com/@babel/parser/7.16.7: + resolution: {integrity: sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.7.tgz} name: '@babel/parser' - version: 7.16.4 + version: 7.16.7 engines: {node: '>=6.0.0'} hasBin: true - registry.npmmirror.com/@babel/runtime-corejs3/7.16.3: - resolution: {integrity: sha512-IAdDC7T0+wEB4y2gbIL0uOXEYpiZEeuFUTVbdGq+UwCcF35T/tS8KrmMomEwEc5wBbyfH3PJVpTSUqrhPDXFcQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime-corejs3/download/@babel/runtime-corejs3-7.16.3.tgz} - name: '@babel/runtime-corejs3' - version: 7.16.3 - engines: {node: '>=6.9.0'} - dependencies: - core-js-pure: registry.npmmirror.com/core-js-pure/3.19.3 - regenerator-runtime: registry.nlark.com/regenerator-runtime/0.13.9 - dev: false - - registry.npmmirror.com/@babel/runtime/7.16.3: - resolution: {integrity: sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.16.3.tgz} - name: '@babel/runtime' - version: 7.16.3 - engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: registry.nlark.com/regenerator-runtime/0.13.9 - dev: false - - registry.npmmirror.com/@babel/types/7.16.0: - resolution: {integrity: sha1-2zsxOAT5aq3Qt3bEgj4SetZyibo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/download/@babel/types-7.16.0.tgz} + registry.npmmirror.com/@babel/types/7.16.7: + resolution: {integrity: sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/download/@babel/types-7.16.7.tgz} name: '@babel/types' - version: 7.16.0 + version: 7.16.7 engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.15.7 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.16.7 to-fast-properties: registry.nlark.com/to-fast-properties/2.0.0 dev: true - registry.npmmirror.com/@better-scroll/core/2.4.2: - resolution: {integrity: sha1-5pRwAS15kjoYA0w+STFyD7sG6uU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@better-scroll/core/download/@better-scroll/core-2.4.2.tgz} - name: '@better-scroll/core' - version: 2.4.2 - dependencies: - '@better-scroll/shared-utils': registry.npmmirror.com/@better-scroll/shared-utils/2.4.2 - dev: false - - registry.npmmirror.com/@better-scroll/shared-utils/2.4.2: - resolution: {integrity: sha1-GsXJdJVycJOiKoAJVgeV3V48GNo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@better-scroll/shared-utils/download/@better-scroll/shared-utils-2.4.2.tgz} - name: '@better-scroll/shared-utils' - version: 2.4.2 - dev: false - - registry.npmmirror.com/@commitlint/cli/16.0.1: + registry.npmmirror.com/@commitlint/cli/16.0.1_@types+node@17.0.6: resolution: {integrity: sha512-61gGRy65WiVDRsqP0dAR2fAgE3qrTBW3fgz9MySv32y5Ib3ZXXDDq6bGyQqi2dSaPuDYzNCRwwlC7mmQM73T/g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@commitlint/cli/download/@commitlint/cli-16.0.1.tgz} + id: registry.npmmirror.com/@commitlint/cli/16.0.1 name: '@commitlint/cli' version: 16.0.1 engines: {node: '>=v12'} @@ -3779,13 +3115,13 @@ packages: dependencies: '@commitlint/format': registry.npmmirror.com/@commitlint/format/16.0.0 '@commitlint/lint': registry.npmmirror.com/@commitlint/lint/16.0.0 - '@commitlint/load': registry.npmmirror.com/@commitlint/load/16.0.0 + '@commitlint/load': registry.npmmirror.com/@commitlint/load/16.0.0_@types+node@17.0.6 '@commitlint/read': registry.npmmirror.com/@commitlint/read/16.0.0 '@commitlint/types': registry.npmmirror.com/@commitlint/types/16.0.0 lodash: registry.npmmirror.com/lodash/4.17.21 resolve-from: registry.nlark.com/resolve-from/5.0.0 resolve-global: registry.nlark.com/resolve-global/1.0.0 - yargs: registry.npmmirror.com/yargs/17.3.0 + yargs: registry.npmmirror.com/yargs/17.3.1 transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -3798,7 +3134,7 @@ packages: version: 16.0.0 engines: {node: '>=v12'} dependencies: - conventional-changelog-conventionalcommits: registry.npmmirror.com/conventional-changelog-conventionalcommits/4.6.1 + conventional-changelog-conventionalcommits: registry.npmmirror.com/conventional-changelog-conventionalcommits/4.6.3 dev: true registry.npmmirror.com/@commitlint/config-validator/16.0.0: @@ -3860,8 +3196,9 @@ packages: '@commitlint/types': registry.npmmirror.com/@commitlint/types/16.0.0 dev: true - registry.npmmirror.com/@commitlint/load/16.0.0: + registry.npmmirror.com/@commitlint/load/16.0.0_@types+node@17.0.6: resolution: {integrity: sha512-7WhrGCkP6K/XfjBBguLkkI2XUdiiIyMGlNsSoSqgRNiD352EiffhFEApMy1/XOU+viwBBm/On0n5p0NC7e9/4A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@commitlint/load/download/@commitlint/load-16.0.0.tgz} + id: registry.npmmirror.com/@commitlint/load/16.0.0 name: '@commitlint/load' version: 16.0.0 engines: {node: '>=v12'} @@ -3872,7 +3209,7 @@ packages: '@commitlint/types': registry.npmmirror.com/@commitlint/types/16.0.0 chalk: registry.npmmirror.com/chalk/4.1.2 cosmiconfig: registry.nlark.com/cosmiconfig/7.0.1 - cosmiconfig-typescript-loader: registry.npmmirror.com/cosmiconfig-typescript-loader/1.0.2_typescript@4.5.4 + cosmiconfig-typescript-loader: registry.npmmirror.com/cosmiconfig-typescript-loader/1.0.2_646584a8d620b4d6f5eb4525e8655565 lodash: registry.npmmirror.com/lodash/4.17.21 resolve-from: registry.nlark.com/resolve-from/5.0.0 typescript: registry.npmmirror.com/typescript/4.5.4 @@ -3897,7 +3234,7 @@ packages: dependencies: '@commitlint/types': registry.npmmirror.com/@commitlint/types/16.0.0 conventional-changelog-angular: registry.nlark.com/conventional-changelog-angular/5.0.13 - conventional-commits-parser: registry.npmmirror.com/conventional-commits-parser/3.2.3 + conventional-commits-parser: registry.npmmirror.com/conventional-commits-parser/3.2.4 dev: true registry.npmmirror.com/@commitlint/read/16.0.0: @@ -3909,7 +3246,7 @@ packages: '@commitlint/top-level': registry.npmmirror.com/@commitlint/top-level/16.0.0 '@commitlint/types': registry.npmmirror.com/@commitlint/types/16.0.0 fs-extra: registry.nlark.com/fs-extra/10.0.0 - git-raw-commits: registry.npmmirror.com/git-raw-commits/2.0.10 + git-raw-commits: registry.npmmirror.com/git-raw-commits/2.0.11 dev: true registry.npmmirror.com/@commitlint/resolve-extends/16.0.0: @@ -4045,10 +3382,10 @@ packages: version: 1.2.1 dev: true - registry.npmmirror.com/@iconify/json/1.1.450: - resolution: {integrity: sha512-U8j5E+bqipaXQi2MDma7ayDjOmrK4/1lzvo0FG0z/qpU5oipp/8XRXL6z8K0GR7kQXpv/xR+WOKDhDW4Cb755w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/json/download/@iconify/json-1.1.450.tgz} + registry.npmmirror.com/@iconify/json/1.1.451: + resolution: {integrity: sha512-A+GgU4xetmBfofDQSBNENRsbZo3vMZTF4pkCxFObWs+y9j/C/oGwJwqiV3yrU9jFecF/MkffBbwNFug8j5EAtw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@iconify/json/download/@iconify/json-1.1.451.tgz} name: '@iconify/json' - version: 1.1.450 + version: 1.1.451 dev: true registry.npmmirror.com/@iconify/types/1.0.12: @@ -4083,16 +3420,16 @@ packages: version: 27.4.2 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.3 + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.4 '@types/istanbul-reports': registry.npmmirror.com/@types/istanbul-reports/3.0.1 - '@types/node': registry.npmmirror.com/@types/node/16.11.12 + '@types/node': registry.npmmirror.com/@types/node/17.0.6 '@types/yargs': registry.npmmirror.com/@types/yargs/16.0.4 chalk: registry.npmmirror.com/chalk/4.1.2 - registry.npmmirror.com/@rollup/plugin-node-resolve/13.1.1: - resolution: {integrity: sha512-6QKtRevXLrmEig9UiMYt2fSvee9TyltGRfw+qSs6xjUnxwjOzTOqy+/Lpxsgjb8mJn1EQNbCDAvt89O4uzL5kw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/download/@rollup/plugin-node-resolve-13.1.1.tgz} + registry.npmmirror.com/@rollup/plugin-node-resolve/13.1.2: + resolution: {integrity: sha512-xyqbuf1vyOPC60jEKhx3DBHunymnCJswzjNTKfX4Jz7zCPar1UqbRZCNY1u5QaXh97beaFTWdoUUWiV4qX8o/g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/plugin-node-resolve/download/@rollup/plugin-node-resolve-13.1.2.tgz} name: '@rollup/plugin-node-resolve' - version: 13.1.1 + version: 13.1.2 engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^2.42.0 @@ -4118,16 +3455,6 @@ packages: picomatch: registry.nlark.com/picomatch/2.3.0 dev: true - registry.npmmirror.com/@rollup/pluginutils/4.1.1: - resolution: {integrity: sha1-HU2obdTt7RVlalfZM/2iuaCNR+w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/download/@rollup/pluginutils-4.1.1.tgz} - name: '@rollup/pluginutils' - version: 4.1.1 - engines: {node: '>= 8.0.0'} - dependencies: - estree-walker: registry.npmmirror.com/estree-walker/2.0.2 - picomatch: registry.nlark.com/picomatch/2.3.0 - dev: true - registry.npmmirror.com/@rollup/pluginutils/4.1.2: resolution: {integrity: sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/download/@rollup/pluginutils-4.1.2.tgz} name: '@rollup/pluginutils' @@ -4138,47 +3465,29 @@ packages: picomatch: registry.nlark.com/picomatch/2.3.0 dev: true - registry.npmmirror.com/@types/bmapgl/0.0.5: - resolution: {integrity: sha512-4LVndgKRKLT4OIgUENDb9Uf9CsT2FtIMvpfKxIQVerEYPEXlunof60qDJQb/+1bg78crv7QJiz71tfh6NfpHbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/bmapgl/download/@types/bmapgl-0.0.5.tgz} - name: '@types/bmapgl' - version: 0.0.5 - dev: true - - registry.npmmirror.com/@types/chroma-js/2.1.3: - resolution: {integrity: sha1-CwPXN/8o+tEOuITgxs7dX/3Eugo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/chroma-js/download/@types/chroma-js-2.1.3.tgz} - name: '@types/chroma-js' - version: 2.1.3 - dev: true - registry.npmmirror.com/@types/crypto-js/4.1.0: resolution: {integrity: sha512-DCFfy/vh2lG6qHSGezQ+Sn2Ulf/1Mx51dqOdmOKyW5nMK3maLlxeS3onC7r212OnBM2pBR95HkAmAjjF08YkxQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/crypto-js/download/@types/crypto-js-4.1.0.tgz} name: '@types/crypto-js' version: 4.1.0 dev: true - registry.npmmirror.com/@types/d3-timer/2.0.1: - resolution: {integrity: sha1-/7ZiDSkGJPNyaqNiwMiktEyNcgA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/d3-timer/download/@types/d3-timer-2.0.1.tgz} - name: '@types/d3-timer' - version: 2.0.1 - dev: false - registry.npmmirror.com/@types/estree/0.0.39: resolution: {integrity: sha1-4Xfmme4bjCLSMXTKqnQiZEOJUJ8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/estree/download/@types/estree-0.0.39.tgz} name: '@types/estree' version: 0.0.39 dev: true - registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.3: - resolution: {integrity: sha1-S6jdtyAiH0MuRDvV+RF/0iz9R2I=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-coverage/download/@types/istanbul-lib-coverage-2.0.3.tgz} + registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-coverage/download/@types/istanbul-lib-coverage-2.0.4.tgz} name: '@types/istanbul-lib-coverage' - version: 2.0.3 + version: 2.0.4 registry.npmmirror.com/@types/istanbul-lib-report/3.0.0: resolution: {integrity: sha1-wUwk8Y6oGQwRjudWK3/5mjZVJoY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-lib-report/download/@types/istanbul-lib-report-3.0.0.tgz} name: '@types/istanbul-lib-report' version: 3.0.0 dependencies: - '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.3 + '@types/istanbul-lib-coverage': registry.npmmirror.com/@types/istanbul-lib-coverage/2.0.4 registry.npmmirror.com/@types/istanbul-reports/3.0.1: resolution: {integrity: sha1-kVP+mLuivVZaY63ZQ21vDX+EaP8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/istanbul-reports/download/@types/istanbul-reports-3.0.1.tgz} @@ -4187,10 +3496,10 @@ packages: dependencies: '@types/istanbul-lib-report': registry.npmmirror.com/@types/istanbul-lib-report/3.0.0 - registry.npmmirror.com/@types/jest/27.0.3: - resolution: {integrity: sha512-cmmwv9t7gBYt7hNKH5Spu7Kuu/DotGa+Ff+JGRKZ4db5eh8PnKS4LuebJ3YLUoyOyIHraTGyULn23YtEAm0VSg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/jest/download/@types/jest-27.0.3.tgz} + registry.npmmirror.com/@types/jest/27.4.0: + resolution: {integrity: sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/jest/download/@types/jest-27.4.0.tgz} name: '@types/jest' - version: 27.0.3 + version: 27.4.0 dependencies: jest-diff: registry.npmmirror.com/jest-diff/27.4.2 pretty-format: registry.npmmirror.com/pretty-format/27.4.2 @@ -4232,15 +3541,10 @@ packages: name: '@types/node' version: 14.14.45 - registry.npmmirror.com/@types/node/14.18.0: - resolution: {integrity: sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/download/@types/node-14.18.0.tgz} + registry.npmmirror.com/@types/node/17.0.6: + resolution: {integrity: sha512-+XBAjfZmmivILUzO0HwBJoYkAyyySSLg5KCGBDFLomJo0sV6szvVLAf4ANZZ0pfWzgEds5KmGLG9D5hfEqOhaA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/download/@types/node-17.0.6.tgz} name: '@types/node' - version: 14.18.0 - - registry.npmmirror.com/@types/node/16.11.12: - resolution: {integrity: sha512-+2Iggwg7PxoO5Kyhvsq9VarmPbIelXP070HMImEpbtGCoyWNINQj4wzjbQCXzdHTRXnqufutJb5KAURZANNBAw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/node/download/@types/node-16.11.12.tgz} - name: '@types/node' - version: 16.11.12 + version: 17.0.6 registry.npmmirror.com/@types/normalize-package-data/2.4.1: resolution: {integrity: sha1-0zV0eaD9/dWQf+Z+F+CoXJBuEwE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/normalize-package-data/download/@types/normalize-package-data-2.4.1.tgz} @@ -4265,7 +3569,7 @@ packages: name: '@types/resolve' version: 1.17.1 dependencies: - '@types/node': registry.npmmirror.com/@types/node/16.11.12 + '@types/node': registry.npmmirror.com/@types/node/17.0.6 dev: true registry.npmmirror.com/@types/throttle-debounce/2.1.0: @@ -4306,7 +3610,7 @@ packages: debug: registry.npmmirror.com/debug/4.3.3 eslint: registry.npmmirror.com/eslint/8.6.0 functional-red-black-tree: registry.nlark.com/functional-red-black-tree/1.0.1 - ignore: registry.npmmirror.com/ignore/5.1.9 + ignore: registry.npmmirror.com/ignore/5.2.0 regexpp: registry.nlark.com/regexpp/3.2.0 semver: registry.nlark.com/semver/7.3.5 tsutils: registry.nlark.com/tsutils/3.21.0_typescript@4.5.4 @@ -4410,8 +3714,8 @@ packages: eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.1.0 dev: true - registry.npmmirror.com/@vitejs/plugin-vue/2.0.1_vite@2.5.10+vue@3.2.26: - resolution: {integrity: sha512-wtdMnGVvys9K8tg+DxowU1ytTrdVveXr3LzdhaKakysgGXyrsfaeds2cDywtvujEASjWOwWL/OgWM+qoeM8Plg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue/download/@vitejs/plugin-vue-2.0.1.tgz} + registry.npmmirror.com/@vitejs/plugin-vue/2.0.1_vite@2.7.10+vue@3.2.26: + resolution: {integrity: sha512-wtdMnGVvys9K8tg+DxowU1ytTrdVveXr3LzdhaKakysgGXyrsfaeds2cDywtvujEASjWOwWL/OgWM+qoeM8Plg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-vue/download/@vitejs/plugin-vue-2.0.1.tgz} id: registry.npmmirror.com/@vitejs/plugin-vue/2.0.1 name: '@vitejs/plugin-vue' version: 2.0.1 @@ -4420,7 +3724,7 @@ packages: vite: ^2.5.10 vue: ^3.2.25 dependencies: - vite: registry.npmmirror.com/vite/2.5.10 + vite: registry.npmmirror.com/vite/2.7.10_sass@1.45.2 vue: registry.npmmirror.com/vue/3.2.26 dev: true @@ -4451,7 +3755,7 @@ packages: dependencies: upath: registry.nlark.com/upath/2.0.1 vscode-jsonrpc: registry.npmmirror.com/vscode-jsonrpc/8.0.0-next.4 - vscode-uri: registry.npmmirror.com/vscode-uri/3.0.2 + vscode-uri: registry.npmmirror.com/vscode-uri/3.0.3 dev: true registry.npmmirror.com/@volar/source-map/0.30.1: @@ -4485,12 +3789,12 @@ packages: upath: registry.nlark.com/upath/2.0.1 dev: true - registry.npmmirror.com/@vscode/emmet-helper/2.8.2: - resolution: {integrity: sha1-myzk/dYs8/2kXPivZ8ASz85V7ck=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vscode/emmet-helper/download/@vscode/emmet-helper-2.8.2.tgz} + registry.npmmirror.com/@vscode/emmet-helper/2.8.3: + resolution: {integrity: sha512-dkTSL+BaBBS8gFgPm/GMOU+XfxaMyI+Fl1IUYxEi8Iv24RfHf9/q2eCpV2hs7sncLcoKWEbMYe5gv4Ppmp2Oxw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vscode/emmet-helper/download/@vscode/emmet-helper-2.8.3.tgz} name: '@vscode/emmet-helper' - version: 2.8.2 + version: 2.8.3 dependencies: - emmet: registry.npmmirror.com/emmet/2.3.4 + emmet: registry.npmmirror.com/emmet/2.3.5 jsonc-parser: registry.nlark.com/jsonc-parser/2.3.1 vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.3 vscode-languageserver-types: registry.npmmirror.com/vscode-languageserver-types/3.16.0 @@ -4499,17 +3803,17 @@ packages: dev: true registry.npmmirror.com/@vue/compiler-core/3.2.26: - resolution: {integrity: sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-core/download/@vue/compiler-core-3.2.26.tgz} + resolution: {integrity: sha512-N5XNBobZbaASdzY9Lga2D9Lul5vdCIOXvUMd6ThcN8zgqQhPKfCV+wfAJNNJKQkSHudnYRO2gEB+lp0iN3g2Tw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-core/download/@vue/compiler-core-3.2.26.tgz} name: '@vue/compiler-core' version: 3.2.26 dependencies: - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.7 '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.26 - estree-walker: registry.nlark.com/estree-walker/2.0.2 + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 source-map: registry.nlark.com/source-map/0.6.1 registry.npmmirror.com/@vue/compiler-dom/3.2.26: - resolution: {integrity: sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.26.tgz} + resolution: {integrity: sha512-smBfaOW6mQDxcT3p9TKT6mE22vjxjJL50GFVJiI0chXYGU/xzC05QRGrW3HHVuJrmLTLx5zBhsZ2dIATERbarg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.26.tgz} name: '@vue/compiler-dom' version: 3.2.26 dependencies: @@ -4517,33 +3821,29 @@ packages: '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.26 registry.npmmirror.com/@vue/compiler-sfc/3.2.26: - resolution: {integrity: sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.2.26.tgz} + resolution: {integrity: sha512-ePpnfktV90UcLdsDQUh2JdiTuhV0Skv2iYXxfNMOK/F3Q+2BO0AulcVcfoksOpTJGmhhfosWfMyEaEf0UaWpIw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.2.26.tgz} name: '@vue/compiler-sfc' version: 3.2.26 dependencies: - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.7 '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core/3.2.26 '@vue/compiler-dom': registry.npmmirror.com/@vue/compiler-dom/3.2.26 '@vue/compiler-ssr': registry.npmmirror.com/@vue/compiler-ssr/3.2.26 '@vue/reactivity-transform': registry.npmmirror.com/@vue/reactivity-transform/3.2.26 '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.26 - estree-walker: registry.nlark.com/estree-walker/2.0.2 + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 magic-string: registry.nlark.com/magic-string/0.25.7 - postcss: registry.npmmirror.com/postcss/8.4.4 + postcss: registry.npmmirror.com/postcss/8.4.5 source-map: registry.nlark.com/source-map/0.6.1 + dev: false registry.npmmirror.com/@vue/compiler-ssr/3.2.26: - resolution: {integrity: sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.2.26.tgz} + resolution: {integrity: sha512-2mywLX0ODc4Zn8qBoA2PDCsLEZfpUGZcyoFRLSOjyGGK6wDy2/5kyDOWtf0S0UvtoyVq95OTSGIALjZ4k2q/ag==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.2.26.tgz} name: '@vue/compiler-ssr' version: 3.2.26 dependencies: '@vue/compiler-dom': registry.npmmirror.com/@vue/compiler-dom/3.2.26 '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.26 - - registry.npmmirror.com/@vue/devtools-api/6.0.0-beta.20.1: - resolution: {integrity: sha512-R2rfiRY+kZugzWh9ZyITaovx+jpU4vgivAEAiz80kvh3yviiTU3CBuGuyWpSwGz9/C7TkSWVM/FtQRGlZ16n8Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/devtools-api/download/@vue/devtools-api-6.0.0-beta.20.1.tgz} - name: '@vue/devtools-api' - version: 6.0.0-beta.20.1 dev: false registry.npmmirror.com/@vue/devtools-api/6.0.0-beta.21.1: @@ -4553,7 +3853,7 @@ packages: dev: false registry.npmmirror.com/@vue/eslint-config-prettier/7.0.0_eslint@8.6.0+prettier@2.5.1: - resolution: {integrity: sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/eslint-config-prettier/download/@vue/eslint-config-prettier-7.0.0.tgz} + resolution: {integrity: sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/eslint-config-prettier/download/@vue/eslint-config-prettier-7.0.0.tgz} id: registry.npmmirror.com/@vue/eslint-config-prettier/7.0.0 name: '@vue/eslint-config-prettier' version: 7.0.0 @@ -4568,7 +3868,7 @@ packages: dev: true registry.npmmirror.com/@vue/eslint-config-typescript/10.0.0_57f850728139557a3a27f1248f77f964: - resolution: {integrity: sha512-F94cL8ug3FaYXlCfU5/wiGjk1qeadmoBpRGAOBq+qre3Smdupa59dd6ZJrsfRODpsMPyTG7330juMDsUvpZ3Rw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/eslint-config-typescript/download/@vue/eslint-config-typescript-10.0.0.tgz} + resolution: {integrity: sha512-F94cL8ug3FaYXlCfU5/wiGjk1qeadmoBpRGAOBq+qre3Smdupa59dd6ZJrsfRODpsMPyTG7330juMDsUvpZ3Rw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/eslint-config-typescript/download/@vue/eslint-config-typescript-10.0.0.tgz} id: registry.npmmirror.com/@vue/eslint-config-typescript/10.0.0 name: '@vue/eslint-config-typescript' version: 10.0.0 @@ -4588,25 +3888,26 @@ packages: dev: true registry.npmmirror.com/@vue/reactivity-transform/3.2.26: - resolution: {integrity: sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/reactivity-transform/download/@vue/reactivity-transform-3.2.26.tgz} + resolution: {integrity: sha512-XKMyuCmzNA7nvFlYhdKwD78rcnmPb7q46uoR00zkX6yZrUmcCQ5OikiwUEVbvNhL5hBJuvbSO95jB5zkUon+eQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/reactivity-transform/download/@vue/reactivity-transform-3.2.26.tgz} name: '@vue/reactivity-transform' version: 3.2.26 dependencies: - '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.4 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.16.7 '@vue/compiler-core': registry.npmmirror.com/@vue/compiler-core/3.2.26 '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.26 - estree-walker: registry.nlark.com/estree-walker/2.0.2 + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 magic-string: registry.nlark.com/magic-string/0.25.7 + dev: false registry.npmmirror.com/@vue/reactivity/3.2.26: - resolution: {integrity: sha512-h38bxCZLW6oFJVDlCcAiUKFnXI8xP8d+eO0pcDxx+7dQfSPje2AO6M9S9QO6MrxQB7fGP0DH0dYQ8ksf6hrXKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/reactivity/download/@vue/reactivity-3.2.26.tgz} + resolution: {integrity: sha512-h38bxCZLW6oFJVDlCcAiUKFnXI8xP8d+eO0pcDxx+7dQfSPje2AO6M9S9QO6MrxQB7fGP0DH0dYQ8ksf6hrXKQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/reactivity/download/@vue/reactivity-3.2.26.tgz} name: '@vue/reactivity' version: 3.2.26 dependencies: '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.26 registry.npmmirror.com/@vue/runtime-core/3.2.26: - resolution: {integrity: sha512-BcYi7qZ9Nn+CJDJrHQ6Zsmxei2hDW0L6AB4vPvUQGBm2fZyC0GXd/4nVbyA2ubmuhctD5RbYY8L+5GUJszv9mQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/runtime-core/download/@vue/runtime-core-3.2.26.tgz} + resolution: {integrity: sha512-BcYi7qZ9Nn+CJDJrHQ6Zsmxei2hDW0L6AB4vPvUQGBm2fZyC0GXd/4nVbyA2ubmuhctD5RbYY8L+5GUJszv9mQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/runtime-core/download/@vue/runtime-core-3.2.26.tgz} name: '@vue/runtime-core' version: 3.2.26 dependencies: @@ -4615,7 +3916,7 @@ packages: dev: false registry.npmmirror.com/@vue/runtime-dom/3.2.26: - resolution: {integrity: sha512-dY56UIiZI+gjc4e8JQBwAifljyexfVCkIAu/WX8snh8vSOt/gMSEGwPRcl2UpYpBYeyExV8WCbgvwWRNt9cHhQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/runtime-dom/download/@vue/runtime-dom-3.2.26.tgz} + resolution: {integrity: sha512-dY56UIiZI+gjc4e8JQBwAifljyexfVCkIAu/WX8snh8vSOt/gMSEGwPRcl2UpYpBYeyExV8WCbgvwWRNt9cHhQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/runtime-dom/download/@vue/runtime-dom-3.2.26.tgz} name: '@vue/runtime-dom' version: 3.2.26 dependencies: @@ -4625,7 +3926,7 @@ packages: dev: false registry.npmmirror.com/@vue/server-renderer/3.2.26_vue@3.2.26: - resolution: {integrity: sha512-Jp5SggDUvvUYSBIvYEhy76t4nr1vapY/FIFloWmQzn7UxqaHrrBpbxrqPcTrSgGrcaglj0VBp22BKJNre4aA1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/server-renderer/download/@vue/server-renderer-3.2.26.tgz} + resolution: {integrity: sha512-Jp5SggDUvvUYSBIvYEhy76t4nr1vapY/FIFloWmQzn7UxqaHrrBpbxrqPcTrSgGrcaglj0VBp22BKJNre4aA1w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/server-renderer/download/@vue/server-renderer-3.2.26.tgz} id: registry.npmmirror.com/@vue/server-renderer/3.2.26 name: '@vue/server-renderer' version: 3.2.26 @@ -4638,7 +3939,7 @@ packages: dev: false registry.npmmirror.com/@vue/shared/3.2.26: - resolution: {integrity: sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.26.tgz} + resolution: {integrity: sha512-vPV6Cq+NIWbH5pZu+V+2QHE9y1qfuTq49uNWw4f7FDEeZaDU2H2cx5jcUZOAKW7qTrUS4k6qZPbMy1x4N96nbA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.26.tgz} name: '@vue/shared' version: 3.2.26 @@ -4680,7 +3981,7 @@ packages: dev: false registry.npmmirror.com/@windicss/config/1.6.1: - resolution: {integrity: sha512-E4FKtWdYl5HwFknBQ+Z2JIF58TZiR4/ZiP8B30sfRxNlG6clh4agn5MJqTb4ER0MLkDb30Hugl2tGun0AQNbFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@windicss/config/download/@windicss/config-1.6.1.tgz} + resolution: {integrity: sha512-E4FKtWdYl5HwFknBQ+Z2JIF58TZiR4/ZiP8B30sfRxNlG6clh4agn5MJqTb4ER0MLkDb30Hugl2tGun0AQNbFw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@windicss/config/download/@windicss/config-1.6.1.tgz} name: '@windicss/config' version: 1.6.1 dependencies: @@ -4692,7 +3993,7 @@ packages: dev: true registry.npmmirror.com/@windicss/plugin-utils/1.6.1: - resolution: {integrity: sha512-hFQY27bOr9SSpekIvSwBpIX25nR4cwrU5/1kJFqCwAzqyazvd7U9c/iI1E2sTEQOkPbpTTJkY2Act21Q70oSDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@windicss/plugin-utils/download/@windicss/plugin-utils-1.6.1.tgz} + resolution: {integrity: sha512-hFQY27bOr9SSpekIvSwBpIX25nR4cwrU5/1kJFqCwAzqyazvd7U9c/iI1E2sTEQOkPbpTTJkY2Act21Q70oSDQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@windicss/plugin-utils/download/@windicss/plugin-utils-1.6.1.tgz} name: '@windicss/plugin-utils' version: 1.6.1 dependencies: @@ -4701,18 +4002,12 @@ packages: debug: registry.npmmirror.com/debug/4.3.3 fast-glob: registry.nlark.com/fast-glob/3.2.7 magic-string: registry.nlark.com/magic-string/0.25.7 - micromatch: registry.npmmirror.com/micromatch/4.0.4 + micromatch: registry.nlark.com/micromatch/4.0.4 windicss: registry.npmmirror.com/windicss/3.4.2 transitivePeerDependencies: - supports-color dev: true - registry.npmmirror.com/@yarnpkg/lockfile/1.1.0: - resolution: {integrity: sha1-53qX+9NFt22DJF7c0X05OxtB+zE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@yarnpkg/lockfile/download/@yarnpkg/lockfile-1.1.0.tgz} - name: '@yarnpkg/lockfile' - version: 1.1.0 - dev: true - registry.npmmirror.com/JSONStream/1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/JSONStream/download/JSONStream-1.3.5.tgz} name: JSONStream @@ -4731,14 +4026,6 @@ packages: hasBin: true dev: true - registry.npmmirror.com/acorn/8.6.0: - resolution: {integrity: sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/download/acorn-8.6.0.tgz} - name: acorn - version: 8.6.0 - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - registry.npmmirror.com/acorn/8.7.0: resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/acorn/download/acorn-8.7.0.tgz} name: acorn @@ -4801,7 +4088,7 @@ packages: dev: true registry.npmmirror.com/axios/0.24.0: - resolution: {integrity: sha1-gE5voeS5xSiFAd2d/1anoJQNINY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/download/axios-0.24.0.tgz} + resolution: {integrity: sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/axios/download/axios-0.24.0.tgz} name: axios version: 0.24.0 dependencies: @@ -4821,33 +4108,13 @@ packages: quick-lru: registry.npmmirror.com/quick-lru/4.0.1 dev: true - registry.npmmirror.com/camelcase/1.2.1: - resolution: {integrity: sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/download/camelcase-1.2.1.tgz?cache=0&sync_timestamp=1636945738185&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-1.2.1.tgz} - name: camelcase - version: 1.2.1 - engines: {node: '>=0.10.0'} - dev: false - registry.npmmirror.com/camelcase/5.3.1: - resolution: {integrity: sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz?cache=0&sync_timestamp=1636945738185&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-5.3.1.tgz} + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/camelcase/download/camelcase-5.3.1.tgz} name: camelcase version: 5.3.1 engines: {node: '>=6'} dev: true - registry.npmmirror.com/chalk/1.1.3: - resolution: {integrity: sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/download/chalk-1.1.3.tgz} - name: chalk - version: 1.1.3 - engines: {node: '>=0.10.0'} - dependencies: - ansi-styles: registry.nlark.com/ansi-styles/2.2.1 - escape-string-regexp: registry.nlark.com/escape-string-regexp/1.0.5 - has-ansi: registry.nlark.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: false - registry.npmmirror.com/chalk/2.4.2: resolution: {integrity: sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/download/chalk-2.4.2.tgz} name: chalk @@ -4857,6 +4124,7 @@ packages: ansi-styles: registry.nlark.com/ansi-styles/3.2.1 escape-string-regexp: registry.nlark.com/escape-string-regexp/1.0.5 supports-color: registry.npmmirror.com/supports-color/5.5.0 + dev: true registry.npmmirror.com/chalk/4.1.2: resolution: {integrity: sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/download/chalk-4.1.2.tgz} @@ -4876,7 +4144,7 @@ packages: dev: true registry.npmmirror.com/chardet/0.7.0: - resolution: {integrity: sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chardet/download/chardet-0.7.0.tgz?cache=0&sync_timestamp=1634639270719&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fchardet%2Fdownload%2Fchardet-0.7.0.tgz} + resolution: {integrity: sha1-kAlISfCTfy7twkJdDSip5fDLrZ4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chardet/download/chardet-0.7.0.tgz} name: chardet version: 0.7.0 dev: true @@ -4898,14 +4166,6 @@ packages: fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true - registry.npmmirror.com/chroma-js/2.1.2: - resolution: {integrity: sha1-EHXLmuJbyyAXwQk5QWi1zzqlAOw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chroma-js/download/chroma-js-2.1.2.tgz} - name: chroma-js - version: 2.1.2 - dependencies: - cross-env: registry.nlark.com/cross-env/6.0.3 - dev: false - registry.npmmirror.com/ci-info/2.0.0: resolution: {integrity: sha1-Z6npZL4xpR4V5QENWObxKDQAL0Y=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ci-info/download/ci-info-2.0.0.tgz} name: ci-info @@ -4921,13 +4181,6 @@ packages: source-map: registry.nlark.com/source-map/0.6.1 dev: true - registry.npmmirror.com/clean-stack/2.2.0: - resolution: {integrity: sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/clean-stack/download/clean-stack-2.2.0.tgz} - name: clean-stack - version: 2.2.0 - engines: {node: '>=6'} - dev: true - registry.npmmirror.com/cli-truncate/2.1.0: resolution: {integrity: sha1-w54ovwXtzeW+O5iZKiLe7Vork8c=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cli-truncate/download/cli-truncate-2.1.0.tgz} name: cli-truncate @@ -4954,6 +4207,7 @@ packages: version: 1.9.3 dependencies: color-name: registry.nlark.com/color-name/1.1.3 + dev: true registry.npmmirror.com/color-convert/2.0.1: resolution: {integrity: sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/download/color-convert-2.0.1.tgz} @@ -4964,15 +4218,16 @@ packages: color-name: registry.nlark.com/color-name/1.1.4 registry.npmmirror.com/colorette/2.0.16: - resolution: {integrity: sha1-cTua+E/bAAE58EVGvUqT9ipQhdo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/colorette/download/colorette-2.0.16.tgz} + resolution: {integrity: sha1-cTua+E/bAAE58EVGvUqT9ipQhdo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/colorette/download/colorette-2.0.16.tgz?cache=0&sync_timestamp=1633673609067&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcolorette%2Fdownload%2Fcolorette-2.0.16.tgz} name: colorette version: 2.0.16 dev: true registry.npmmirror.com/commander/2.20.3: - resolution: {integrity: sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/download/commander-2.20.3.tgz} + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/download/commander-2.20.3.tgz} name: commander version: 2.20.3 + dev: true registry.npmmirror.com/commander/8.3.0: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commander/download/commander-8.3.0.tgz} @@ -4982,14 +4237,14 @@ packages: dev: true registry.npmmirror.com/commitizen/4.2.4: - resolution: {integrity: sha1-o+Wza9dXX2v256oZ278GsNjzcWU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commitizen/download/commitizen-4.2.4.tgz} + resolution: {integrity: sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commitizen/download/commitizen-4.2.4.tgz} name: commitizen version: 4.2.4 engines: {node: '>= 10'} hasBin: true dependencies: cachedir: registry.nlark.com/cachedir/2.2.0 - cz-conventional-changelog: registry.nlark.com/cz-conventional-changelog/3.2.0 + cz-conventional-changelog: registry.nlark.com/cz-conventional-changelog/3.2.0_@types+node@17.0.6 dedent: registry.nlark.com/dedent/0.7.0 detect-indent: registry.nlark.com/detect-indent/6.0.0 find-node-modules: registry.nlark.com/find-node-modules/2.1.2 @@ -4998,7 +4253,31 @@ packages: glob: registry.npmmirror.com/glob/7.1.4 inquirer: registry.npmmirror.com/inquirer/6.5.2 is-utf8: registry.nlark.com/is-utf8/0.2.1 - lodash: registry.nlark.com/lodash/4.17.21 + lodash: registry.npmmirror.com/lodash/4.17.21 + minimist: registry.nlark.com/minimist/1.2.5 + strip-bom: registry.nlark.com/strip-bom/4.0.0 + strip-json-comments: registry.nlark.com/strip-json-comments/3.0.1 + dev: true + + registry.npmmirror.com/commitizen/4.2.4_@types+node@17.0.6: + resolution: {integrity: sha512-LlZChbDzg3Ir3O2S7jSo/cgWp5/QwylQVr59K4xayVq8S4/RdKzSyJkghAiZZHfhh5t4pxunUoyeg0ml1q/7aw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/commitizen/download/commitizen-4.2.4.tgz} + id: registry.npmmirror.com/commitizen/4.2.4 + name: commitizen + version: 4.2.4 + engines: {node: '>= 10'} + hasBin: true + dependencies: + cachedir: registry.nlark.com/cachedir/2.2.0 + cz-conventional-changelog: registry.nlark.com/cz-conventional-changelog/3.2.0_@types+node@17.0.6 + dedent: registry.nlark.com/dedent/0.7.0 + detect-indent: registry.nlark.com/detect-indent/6.0.0 + find-node-modules: registry.nlark.com/find-node-modules/2.1.2 + find-root: registry.nlark.com/find-root/1.1.0 + fs-extra: registry.nlark.com/fs-extra/8.1.0 + glob: registry.npmmirror.com/glob/7.1.4 + inquirer: registry.npmmirror.com/inquirer/6.5.2 + is-utf8: registry.nlark.com/is-utf8/0.2.1 + lodash: registry.npmmirror.com/lodash/4.17.21 minimist: registry.nlark.com/minimist/1.2.5 strip-bom: registry.nlark.com/strip-bom/4.0.0 strip-json-comments: registry.nlark.com/strip-json-comments/3.0.1 @@ -5008,16 +4287,16 @@ packages: - '@types/node' dev: true - registry.npmmirror.com/confusing-browser-globals/1.0.10: - resolution: {integrity: sha1-MNHn89G4grJexJM9HRraw1PSClk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/confusing-browser-globals/download/confusing-browser-globals-1.0.10.tgz} + registry.npmmirror.com/confusing-browser-globals/1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/confusing-browser-globals/download/confusing-browser-globals-1.0.11.tgz} name: confusing-browser-globals - version: 1.0.10 + version: 1.0.11 dev: true - registry.npmmirror.com/conventional-changelog-conventionalcommits/4.6.1: - resolution: {integrity: sha1-9MCSGTcFBnTleNx4dfkINRzPQBQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/conventional-changelog-conventionalcommits/download/conventional-changelog-conventionalcommits-4.6.1.tgz} + registry.npmmirror.com/conventional-changelog-conventionalcommits/4.6.3: + resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/conventional-changelog-conventionalcommits/download/conventional-changelog-conventionalcommits-4.6.3.tgz} name: conventional-changelog-conventionalcommits - version: 4.6.1 + version: 4.6.3 engines: {node: '>=10'} dependencies: compare-func: registry.nlark.com/compare-func/2.0.0 @@ -5025,10 +4304,10 @@ packages: q: registry.nlark.com/q/1.5.1 dev: true - registry.npmmirror.com/conventional-commits-parser/3.2.3: - resolution: {integrity: sha1-/ENwRpgjlFHj7zX9HY7WRPRr2G4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/conventional-commits-parser/download/conventional-commits-parser-3.2.3.tgz} + registry.npmmirror.com/conventional-commits-parser/3.2.4: + resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/conventional-commits-parser/download/conventional-commits-parser-3.2.4.tgz} name: conventional-commits-parser - version: 3.2.3 + version: 3.2.4 engines: {node: '>=10'} hasBin: true dependencies: @@ -5040,14 +4319,7 @@ packages: through2: registry.nlark.com/through2/4.0.2 dev: true - registry.npmmirror.com/core-js-pure/3.19.3: - resolution: {integrity: sha512-N3JruInmCyt7EJj5mAq3csCgGYgiSqu7p7TQp2KOztr180/OAIxyIvL1FCjzgmQk/t3Yniua50Fsak7FShI9lA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/core-js-pure/download/core-js-pure-3.19.3.tgz} - name: core-js-pure - version: 3.19.3 - requiresBuild: true - dev: false - - registry.npmmirror.com/cosmiconfig-typescript-loader/1.0.2_typescript@4.5.4: + registry.npmmirror.com/cosmiconfig-typescript-loader/1.0.2_646584a8d620b4d6f5eb4525e8655565: resolution: {integrity: sha512-27ZehvijYqAKVzta5xtZBS3PAliC8CmnWkGXN0vgxAZz7yqxpMjf3aG7flxF5rEiu8FAD7nZZXtOI+xUGn+bVg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/cosmiconfig-typescript-loader/download/cosmiconfig-typescript-loader-1.0.2.tgz} id: registry.npmmirror.com/cosmiconfig-typescript-loader/1.0.2 name: cosmiconfig-typescript-loader @@ -5057,8 +4329,9 @@ packages: '@types/node': '*' typescript: '>=3' dependencies: + '@types/node': registry.npmmirror.com/@types/node/17.0.6 cosmiconfig: registry.nlark.com/cosmiconfig/7.0.1 - ts-node: registry.npmmirror.com/ts-node/10.4.0_typescript@4.5.4 + ts-node: registry.npmmirror.com/ts-node/10.4.0_646584a8d620b4d6f5eb4525e8655565 typescript: registry.npmmirror.com/typescript/4.5.4 transitivePeerDependencies: - '@swc/core' @@ -5089,7 +4362,7 @@ packages: csstype: registry.npmmirror.com/csstype/3.0.10 registry.npmmirror.com/csstype/2.6.19: - resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/download/csstype-2.6.19.tgz} + resolution: {integrity: sha512-ZVxXaNy28/k3kJg0Fou5MiYpp88j7H9hLZp8PDC3jV0WFjfH5E9xHb56L0W59cPbKbcHXeP4qyT8PrHp8t6LcQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/download/csstype-2.6.19.tgz?cache=0&sync_timestamp=1637226973684&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcsstype%2Fdownload%2Fcsstype-2.6.19.tgz} name: csstype version: 2.6.19 dev: false @@ -5108,31 +4381,11 @@ packages: editor: registry.nlark.com/editor/1.0.0 find-config: registry.nlark.com/find-config/1.0.0 inquirer: registry.npmmirror.com/inquirer/6.5.2 - lodash: registry.nlark.com/lodash/4.17.21 + lodash: registry.npmmirror.com/lodash/4.17.21 temp: registry.nlark.com/temp/0.9.4 word-wrap: registry.nlark.com/word-wrap/1.2.3 dev: true - registry.npmmirror.com/d3-ease/1.0.7: - resolution: {integrity: sha1-moNIkO+LiujFWLL+Vb1X9Zk7heI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-ease/download/d3-ease-1.0.7.tgz} - name: d3-ease - version: 1.0.7 - dev: false - - registry.npmmirror.com/d3-hierarchy/2.0.0: - resolution: {integrity: sha1-2riKWMo+ehvGyrOQ6JZn/MbSAhg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/d3-hierarchy/download/d3-hierarchy-2.0.0.tgz} - name: d3-hierarchy - version: 2.0.0 - dev: false - - registry.npmmirror.com/danmu.js/0.5.10: - resolution: {integrity: sha1-YW8wjzU+78H3ucaKhVEwscOIjL8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/danmu.js/download/danmu.js-0.5.10.tgz} - name: danmu.js - version: 0.5.10 - dependencies: - event-emitter: registry.nlark.com/event-emitter/0.3.5 - dev: false - registry.npmmirror.com/dargs/7.0.0: resolution: {integrity: sha1-BAFcQd4Ly2nshAUPPZvgyvjW1cw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dargs/download/dargs-7.0.0.tgz} name: dargs @@ -5140,24 +4393,30 @@ packages: engines: {node: '>=8'} dev: true - registry.npmmirror.com/date-fns-tz/1.1.6_date-fns@2.27.0: - resolution: {integrity: sha1-k8vzVOKuss0xL/oy5GLBlDzyCo4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/date-fns-tz/download/date-fns-tz-1.1.6.tgz} - id: registry.npmmirror.com/date-fns-tz/1.1.6 + registry.npmmirror.com/date-fns-tz/1.2.2_date-fns@2.28.0: + resolution: {integrity: sha512-vWtn44eEqnLbkACb7T5G5gPgKR4nY8NkNMOCyoY49NsRGHrcDmY2aysCyzDeA+u+vcDBn/w6nQqEDyouRs4m8w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/date-fns-tz/download/date-fns-tz-1.2.2.tgz} + id: registry.npmmirror.com/date-fns-tz/1.2.2 name: date-fns-tz - version: 1.1.6 + version: 1.2.2 peerDependencies: - date-fns: '>=2.0.0-alpha.13' + date-fns: '>=2.0.0' dependencies: - date-fns: registry.npmmirror.com/date-fns/2.27.0 + date-fns: registry.npmmirror.com/date-fns/2.28.0 dev: false - registry.npmmirror.com/date-fns/2.27.0: - resolution: {integrity: sha512-sj+J0Mo2p2X1e306MHq282WS4/A8Pz/95GIFcsPNMPMZVI3EUrAdSv90al1k+p74WGLCruMXk23bfEDZa71X9Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/date-fns/download/date-fns-2.27.0.tgz} + registry.npmmirror.com/date-fns/2.28.0: + resolution: {integrity: sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/date-fns/download/date-fns-2.28.0.tgz} name: date-fns - version: 2.27.0 + version: 2.28.0 engines: {node: '>=0.11'} dev: false + registry.npmmirror.com/dayjs/1.10.7: + resolution: {integrity: sha512-P6twpd70BcPK34K26uJ1KT3wlhpuOAPoMwJzpsIWUxHZ7wpmbdZL/hQqBDfz7hGurYSa5PhzdhDHtt319hL3ig==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dayjs/download/dayjs-1.10.7.tgz} + name: dayjs + version: 1.10.7 + dev: false + registry.npmmirror.com/debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz} name: debug @@ -5209,12 +4468,7 @@ packages: name: decamelize version: 1.2.0 engines: {node: '>=0.10.0'} - - registry.npmmirror.com/detect-browser/5.3.0: - resolution: {integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/detect-browser/download/detect-browser-5.3.0.tgz} - name: detect-browser - version: 5.3.0 - dev: false + dev: true registry.npmmirror.com/diff-sequences/27.4.0: resolution: {integrity: sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/diff-sequences/download/diff-sequences-27.4.0.tgz} @@ -5222,14 +4476,6 @@ packages: version: 27.4.0 engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - registry.npmmirror.com/dom7/4.0.2: - resolution: {integrity: sha512-Ji4t3Y/vNQg6Q9bR+Syx6Td8qiq8116LE9h4OzbPuxdxK7DyyX7i8EXkYgBX6+EiX6+oYXDTH5BSN29G/n4jug==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dom7/download/dom7-4.0.2.tgz} - name: dom7 - version: 4.0.2 - dependencies: - ssr-window: registry.npmmirror.com/ssr-window/4.0.2 - dev: false - registry.npmmirror.com/domhandler/4.3.0: resolution: {integrity: sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/domhandler/download/domhandler-4.3.0.tgz} name: domhandler @@ -5239,21 +4485,6 @@ packages: domelementtype: registry.nlark.com/domelementtype/2.2.0 dev: true - registry.npmmirror.com/downloadjs/1.4.7: - resolution: {integrity: sha1-9p+W+UDg0FU9rCkROYZaPNAQHjw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/downloadjs/download/downloadjs-1.4.7.tgz} - name: downloadjs - version: 1.4.7 - dev: false - - registry.npmmirror.com/draggabilly/2.3.0: - resolution: {integrity: sha1-4OZT4JuTjreuZUxLdgARSySi7lA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/draggabilly/download/draggabilly-2.3.0.tgz} - name: draggabilly - version: 2.3.0 - dependencies: - get-size: registry.npmmirror.com/get-size/2.0.3 - unidragger: registry.npmmirror.com/unidragger/2.3.1 - dev: false - registry.npmmirror.com/ejs/3.1.6: resolution: {integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ejs/download/ejs-3.1.6.tgz} name: ejs @@ -5264,10 +4495,10 @@ packages: jake: registry.nlark.com/jake/10.8.2 dev: true - registry.npmmirror.com/emmet/2.3.4: - resolution: {integrity: sha1-W6DXpVaaaMdpffqJDHcuTzF50SM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emmet/download/emmet-2.3.4.tgz} + registry.npmmirror.com/emmet/2.3.5: + resolution: {integrity: sha512-LcWfTamJnXIdMfLvJEC5Ld3hY5/KHXgv1L1bp6I7eEvB0ZhacHZ1kX0BYovJ8FroEsreLcq7n7kZhRMsf6jkXQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/emmet/download/emmet-2.3.5.tgz} name: emmet - version: 2.3.4 + version: 2.3.5 dependencies: '@emmetio/abbreviation': registry.nlark.com/@emmetio/abbreviation/2.2.2 '@emmetio/css-abbreviation': registry.nlark.com/@emmetio/css-abbreviation/2.1.4 @@ -5305,7 +4536,7 @@ packages: get-intrinsic: registry.nlark.com/get-intrinsic/1.1.1 get-symbol-description: registry.nlark.com/get-symbol-description/1.0.0 has: registry.nlark.com/has/1.0.3 - has-symbols: registry.npmmirror.com/has-symbols/1.0.2 + has-symbols: registry.nlark.com/has-symbols/1.0.2 internal-slot: registry.nlark.com/internal-slot/1.0.3 is-callable: registry.nlark.com/is-callable/1.2.4 is-negative-zero: registry.npmmirror.com/is-negative-zero/2.0.2 @@ -5313,27 +4544,216 @@ packages: is-shared-array-buffer: registry.npmmirror.com/is-shared-array-buffer/1.0.1 is-string: registry.nlark.com/is-string/1.0.7 is-weakref: registry.npmmirror.com/is-weakref/1.0.2 - object-inspect: registry.npmmirror.com/object-inspect/1.11.1 + object-inspect: registry.npmmirror.com/object-inspect/1.12.0 object-keys: registry.nlark.com/object-keys/1.1.1 object.assign: registry.nlark.com/object.assign/4.1.2 string.prototype.trimend: registry.nlark.com/string.prototype.trimend/1.0.4 string.prototype.trimstart: registry.nlark.com/string.prototype.trimstart/1.0.4 unbox-primitive: registry.nlark.com/unbox-primitive/1.0.1 + dev: true + + registry.npmmirror.com/esbuild-android-arm64/0.13.15: + resolution: {integrity: sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/download/esbuild-android-arm64-0.13.15.tgz} + name: esbuild-android-arm64 + version: 0.13.15 + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64/0.13.15: + resolution: {integrity: sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/download/esbuild-darwin-64-0.13.15.tgz} + name: esbuild-darwin-64 + version: 0.13.15 + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64/0.13.15: + resolution: {integrity: sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/download/esbuild-darwin-arm64-0.13.15.tgz} + name: esbuild-darwin-arm64 + version: 0.13.15 + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64/0.13.15: + resolution: {integrity: sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/download/esbuild-freebsd-64-0.13.15.tgz} + name: esbuild-freebsd-64 + version: 0.13.15 + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64/0.13.15: + resolution: {integrity: sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/download/esbuild-freebsd-arm64-0.13.15.tgz} + name: esbuild-freebsd-arm64 + version: 0.13.15 + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-32/0.13.15: + resolution: {integrity: sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/download/esbuild-linux-32-0.13.15.tgz} + name: esbuild-linux-32 + version: 0.13.15 + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-64/0.13.15: + resolution: {integrity: sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/download/esbuild-linux-64-0.13.15.tgz} + name: esbuild-linux-64 + version: 0.13.15 + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm/0.13.15: + resolution: {integrity: sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/download/esbuild-linux-arm-0.13.15.tgz} + name: esbuild-linux-arm + version: 0.13.15 + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64/0.13.15: + resolution: {integrity: sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/download/esbuild-linux-arm64-0.13.15.tgz} + name: esbuild-linux-arm64 + version: 0.13.15 + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le/0.13.15: + resolution: {integrity: sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/download/esbuild-linux-mips64le-0.13.15.tgz} + name: esbuild-linux-mips64le + version: 0.13.15 + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le/0.13.15: + resolution: {integrity: sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/download/esbuild-linux-ppc64le-0.13.15.tgz} + name: esbuild-linux-ppc64le + version: 0.13.15 + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64/0.13.15: + resolution: {integrity: sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/download/esbuild-netbsd-64-0.13.15.tgz} + name: esbuild-netbsd-64 + version: 0.13.15 + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64/0.13.15: + resolution: {integrity: sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/download/esbuild-openbsd-64-0.13.15.tgz} + name: esbuild-openbsd-64 + version: 0.13.15 + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64/0.13.15: + resolution: {integrity: sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/download/esbuild-sunos-64-0.13.15.tgz} + name: esbuild-sunos-64 + version: 0.13.15 + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-32/0.13.15: + resolution: {integrity: sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/download/esbuild-windows-32-0.13.15.tgz} + name: esbuild-windows-32 + version: 0.13.15 + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-64/0.13.15: + resolution: {integrity: sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/download/esbuild-windows-64-0.13.15.tgz} + name: esbuild-windows-64 + version: 0.13.15 + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64/0.13.15: + resolution: {integrity: sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/download/esbuild-windows-arm64-0.13.15.tgz} + name: esbuild-windows-arm64 + version: 0.13.15 + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true registry.npmmirror.com/esbuild/0.11.3: - resolution: {integrity: sha1-tXFluQe+T/umUfZFBTjOjYwdXrA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/download/esbuild-0.11.3.tgz} + resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/download/esbuild-0.11.3.tgz} name: esbuild version: 0.11.3 hasBin: true requiresBuild: true dev: true - registry.npmmirror.com/esbuild/0.12.29: - resolution: {integrity: sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/download/esbuild-0.12.29.tgz} + registry.npmmirror.com/esbuild/0.13.15: + resolution: {integrity: sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/download/esbuild-0.13.15.tgz} name: esbuild - version: 0.12.29 + version: 0.13.15 hasBin: true requiresBuild: true + optionalDependencies: + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.13.15 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64/0.13.15 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.13.15 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.13.15 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.13.15 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.13.15 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.13.15 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.13.15 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.13.15 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.13.15 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.13.15 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.13.15 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.13.15 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.13.15 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.13.15 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.13.15 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.13.15 dev: true registry.npmmirror.com/eslint-config-airbnb-base/15.0.0_b54597effeb7d09a84a334cc3c3dadae: @@ -5346,7 +4766,7 @@ packages: 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.10 + confusing-browser-globals: registry.npmmirror.com/confusing-browser-globals/1.0.11 eslint: registry.npmmirror.com/eslint/8.6.0 eslint-plugin-import: registry.npmmirror.com/eslint-plugin-import/2.25.3_eslint@8.6.0 object.assign: registry.nlark.com/object.assign/4.1.2 @@ -5354,18 +4774,6 @@ packages: semver: registry.nlark.com/semver/6.3.0 dev: true - registry.npmmirror.com/eslint-config-prettier/8.3.0_eslint@8.6.0: - resolution: {integrity: sha1-90cbILb+ipqSVMxoRFQgKIai3Xo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-config-prettier/download/eslint-config-prettier-8.3.0.tgz} - id: registry.npmmirror.com/eslint-config-prettier/8.3.0 - name: eslint-config-prettier - version: 8.3.0 - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: registry.npmmirror.com/eslint/8.6.0 - dev: true - registry.npmmirror.com/eslint-module-utils/2.7.1: resolution: {integrity: sha1-tDUAHJ+N1Kt/bQ78rkuWltTCS3w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-module-utils/download/eslint-module-utils-2.7.1.tgz} name: eslint-module-utils @@ -5378,7 +4786,7 @@ packages: dev: true registry.npmmirror.com/eslint-plugin-import/2.25.3_eslint@8.6.0: - resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-import/download/eslint-plugin-import-2.25.3.tgz?cache=0&sync_timestamp=1636530494800&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.25.3.tgz} + resolution: {integrity: sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-plugin-import/download/eslint-plugin-import-2.25.3.tgz} id: registry.npmmirror.com/eslint-plugin-import/2.25.3 name: eslint-plugin-import version: 2.25.3 @@ -5417,7 +4825,7 @@ packages: optional: true dependencies: eslint: registry.npmmirror.com/eslint/8.6.0 - eslint-config-prettier: registry.npmmirror.com/eslint-config-prettier/8.3.0_eslint@8.6.0 + eslint-config-prettier: registry.nlark.com/eslint-config-prettier/8.3.0_eslint@8.6.0 prettier: registry.npmmirror.com/prettier/2.5.1 prettier-linter-helpers: registry.nlark.com/prettier-linter-helpers/1.0.0 dev: true @@ -5451,7 +4859,7 @@ packages: dev: true registry.npmmirror.com/eslint-scope/6.0.0: - resolution: {integrity: sha1-nPRbE8Wsjz1MUPRqUSH2Gz4xiXg=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/download/eslint-scope-6.0.0.tgz} + resolution: {integrity: sha1-nPRbE8Wsjz1MUPRqUSH2Gz4xiXg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-scope/download/eslint-scope-6.0.0.tgz} name: eslint-scope version: 6.0.0 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5471,7 +4879,7 @@ packages: dev: true registry.npmmirror.com/eslint-visitor-keys/2.1.0: - resolution: {integrity: sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz?cache=0&sync_timestamp=1636378941796&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-visitor-keys%2Fdownload%2Feslint-visitor-keys-2.1.0.tgz} + resolution: {integrity: sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz} name: eslint-visitor-keys version: 2.1.0 engines: {node: '>=10'} @@ -5533,17 +4941,6 @@ packages: - supports-color dev: true - registry.npmmirror.com/espree/9.2.0: - resolution: {integrity: sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/espree/download/espree-9.2.0.tgz} - name: espree - version: 9.2.0 - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: registry.npmmirror.com/acorn/8.6.0 - acorn-jsx: registry.nlark.com/acorn-jsx/5.3.2_acorn@8.6.0 - eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.1.0 - dev: true - registry.npmmirror.com/espree/9.3.0: resolution: {integrity: sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/espree/download/espree-9.3.0.tgz} name: espree @@ -5579,13 +4976,6 @@ packages: resolution: {integrity: sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/download/estree-walker-2.0.2.tgz} name: estree-walker version: 2.0.2 - dev: true - - registry.npmmirror.com/ev-emitter/1.1.1: - resolution: {integrity: sha1-jxiwzlx2pdGAF/ccCnlcZbkTjyo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ev-emitter/download/ev-emitter-1.1.1.tgz} - name: ev-emitter - version: 1.1.1 - dev: false registry.npmmirror.com/evtd/0.2.3: resolution: {integrity: sha512-tmiT1YUVqFjTY+BSBOAskL83xNx41iUfpvKP6Gcd/xMHjg3mnER98jXGXJyKnxCG19uPc6EhZiUC+MUyvoqCtw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/evtd/download/evtd-0.2.3.tgz} @@ -5593,7 +4983,7 @@ packages: version: 0.2.3 registry.npmmirror.com/execa/5.1.1: - resolution: {integrity: sha1-+ArZy/Qpj3vR1MlVXCHpN0HEEd0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/download/execa-5.1.1.tgz?cache=0&sync_timestamp=1637147768929&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fexeca%2Fdownload%2Fexeca-5.1.1.tgz} + resolution: {integrity: sha1-+ArZy/Qpj3vR1MlVXCHpN0HEEd0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/execa/download/execa-5.1.1.tgz} name: execa version: 5.1.1 engines: {node: '>=10'} @@ -5609,25 +4999,8 @@ packages: strip-final-newline: registry.nlark.com/strip-final-newline/2.0.0 dev: true - registry.npmmirror.com/ext/1.6.0: - resolution: {integrity: sha1-OHHVBkHodMwXLitT+RmELRnbTFI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ext/download/ext-1.6.0.tgz} - name: ext - version: 1.6.0 - dependencies: - type: registry.nlark.com/type/2.5.0 - dev: false - - registry.npmmirror.com/figures/2.0.0: - resolution: {integrity: sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/figures/download/figures-2.0.0.tgz} - name: figures - version: 2.0.0 - engines: {node: '>=4'} - dependencies: - escape-string-regexp: registry.nlark.com/escape-string-regexp/1.0.5 - dev: true - registry.npmmirror.com/find-up/2.1.0: - resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633621945409&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz} + resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-up/download/find-up-2.1.0.tgz?cache=0&sync_timestamp=1633619099767&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ffind-up%2Fdownload%2Ffind-up-2.1.0.tgz} name: find-up version: 2.1.0 engines: {node: '>=4'} @@ -5655,14 +5028,6 @@ packages: path-exists: registry.nlark.com/path-exists/4.0.0 dev: true - registry.npmmirror.com/find-yarn-workspace-root/2.0.0: - resolution: {integrity: sha1-9H+40jnJAOt4F5qoG2ZnPqyI970=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/find-yarn-workspace-root/download/find-yarn-workspace-root-2.0.0.tgz} - name: find-yarn-workspace-root - version: 2.0.0 - dependencies: - micromatch: registry.npmmirror.com/micromatch/4.0.4 - dev: true - registry.npmmirror.com/findup-sync/4.0.0: resolution: {integrity: sha1-lWyc3egEBSuIG0KFEpBcSl8s3vA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/findup-sync/download/findup-sync-4.0.0.tgz} name: findup-sync @@ -5671,7 +5036,7 @@ packages: dependencies: detect-file: registry.nlark.com/detect-file/1.0.0 is-glob: registry.npmmirror.com/is-glob/4.0.3 - micromatch: registry.npmmirror.com/micromatch/4.0.4 + micromatch: registry.nlark.com/micromatch/4.0.4 resolve-dir: registry.nlark.com/resolve-dir/1.0.1 dev: true @@ -5703,25 +5068,10 @@ packages: dev: true optional: true - registry.npmmirror.com/generate-source-map/0.0.5: - resolution: {integrity: sha1-8SVfMWU8sCMeZxOn3IN1r08zpQk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/generate-source-map/download/generate-source-map-0.0.5.tgz} - name: generate-source-map - version: 0.0.5 - dependencies: - esprima: registry.nlark.com/esprima/1.2.5 - source-map: registry.nlark.com/source-map/0.1.43 - dev: false - - registry.npmmirror.com/get-size/2.0.3: - resolution: {integrity: sha1-VKHQJWsg6nrGRlFnViAnaZQa0u8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/get-size/download/get-size-2.0.3.tgz} - name: get-size - version: 2.0.3 - dev: false - - registry.npmmirror.com/git-raw-commits/2.0.10: - resolution: {integrity: sha1-4iVe2VY7HJw+pr0FgGQQKQKXu8E=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-raw-commits/download/git-raw-commits-2.0.10.tgz} + registry.npmmirror.com/git-raw-commits/2.0.11: + resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/git-raw-commits/download/git-raw-commits-2.0.11.tgz} name: git-raw-commits - version: 2.0.10 + version: 2.0.11 engines: {node: '>=10'} hasBin: true dependencies: @@ -5732,12 +5082,6 @@ packages: through2: registry.nlark.com/through2/4.0.2 dev: true - registry.npmmirror.com/gl-matrix/3.4.3: - resolution: {integrity: sha1-/BGR6DIACf1NIOkzlZXGBB3cIsk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gl-matrix/download/gl-matrix-3.4.3.tgz} - name: gl-matrix - version: 3.4.3 - dev: false - registry.npmmirror.com/glob-parent/5.1.2: resolution: {integrity: sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz} name: glob-parent @@ -5757,7 +5101,7 @@ packages: dev: true registry.npmmirror.com/glob/7.1.4: - resolution: {integrity: sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/download/glob-7.1.4.tgz} + resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/download/glob-7.1.4.tgz} name: glob version: 7.1.4 dependencies: @@ -5769,19 +5113,6 @@ packages: path-is-absolute: registry.nlark.com/path-is-absolute/1.0.1 dev: true - registry.npmmirror.com/glob/7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/download/glob-7.1.7.tgz} - name: glob - version: 7.1.7 - dependencies: - fs.realpath: registry.nlark.com/fs.realpath/1.0.0 - inflight: registry.nlark.com/inflight/1.0.6 - inherits: registry.nlark.com/inherits/2.0.4 - minimatch: registry.nlark.com/minimatch/3.0.4 - once: registry.nlark.com/once/1.4.0 - path-is-absolute: registry.nlark.com/path-is-absolute/1.0.1 - dev: false - registry.npmmirror.com/glob/7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz} name: glob @@ -5808,12 +5139,7 @@ packages: resolution: {integrity: sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz} name: graceful-fs version: 4.2.8 - - registry.npmmirror.com/has-symbols/1.0.2: - resolution: {integrity: sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-symbols/download/has-symbols-1.0.2.tgz} - name: has-symbols - version: 1.0.2 - engines: {node: '>= 0.4'} + dev: true registry.npmmirror.com/highlight.js/11.3.1: resolution: {integrity: sha512-PUhCRnPjLtiLHZAQ5A/Dt5F8cWZeMyj9KRsACsWT+OD6OP0x6dp5OmT5jdx0JgEyPxPZZIPQpRN2TciUT7occw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/highlight.js/download/highlight.js-11.3.1.tgz} @@ -5874,6 +5200,15 @@ packages: hasBin: true dev: true + registry.npmmirror.com/iconv-lite/0.4.24: + resolution: {integrity: sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/iconv-lite/download/iconv-lite-0.4.24.tgz} + name: iconv-lite + version: 0.4.24 + engines: {node: '>=0.10.0'} + dependencies: + safer-buffer: registry.nlark.com/safer-buffer/2.1.2 + dev: true + registry.npmmirror.com/ignore/4.0.6: resolution: {integrity: sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz} name: ignore @@ -5881,10 +5216,10 @@ packages: engines: {node: '>= 4'} dev: true - registry.npmmirror.com/ignore/5.1.9: - resolution: {integrity: sha1-nsGly+jhRG7GDUQgBg1Dqm5zgvs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ignore/download/ignore-5.1.9.tgz} + registry.npmmirror.com/ignore/5.2.0: + resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ignore/download/ignore-5.2.0.tgz} name: ignore - version: 5.1.9 + version: 5.2.0 engines: {node: '>= 4'} dev: true @@ -5903,7 +5238,7 @@ packages: dev: true registry.npmmirror.com/inquirer/6.5.2: - resolution: {integrity: sha1-rVCUI3XQNtMn/1KMCL1fqwiZKMo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inquirer/download/inquirer-6.5.2.tgz} + resolution: {integrity: sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/inquirer/download/inquirer-6.5.2.tgz} name: inquirer version: 6.5.2 engines: {node: '>=6.0.0'} @@ -5913,8 +5248,8 @@ packages: cli-cursor: registry.nlark.com/cli-cursor/2.1.0 cli-width: registry.nlark.com/cli-width/2.2.1 external-editor: registry.nlark.com/external-editor/3.1.0 - figures: registry.npmmirror.com/figures/2.0.0 - lodash: registry.nlark.com/lodash/4.17.21 + figures: registry.nlark.com/figures/2.0.0 + lodash: registry.npmmirror.com/lodash/4.17.21 mute-stream: registry.nlark.com/mute-stream/0.0.7 run-async: registry.nlark.com/run-async/2.4.1 rxjs: registry.npmmirror.com/rxjs/6.6.7 @@ -5923,23 +5258,8 @@ packages: through: registry.nlark.com/through/2.3.8 dev: true - registry.npmmirror.com/is-boolean-object/1.1.2: - resolution: {integrity: sha1-XG3CACRt2TIa5LiFoRS7H3X2Nxk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-boolean-object/download/is-boolean-object-1.1.2.tgz} - name: is-boolean-object - version: 1.1.2 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.nlark.com/call-bind/1.0.2 - has-tostringtag: registry.nlark.com/has-tostringtag/1.0.0 - - registry.npmmirror.com/is-buffer/1.1.6: - resolution: {integrity: sha1-76ouqdqg16suoTqXsritUf776L4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-buffer/download/is-buffer-1.1.6.tgz} - name: is-buffer - version: 1.1.6 - dev: false - registry.npmmirror.com/is-ci/2.0.0: - resolution: {integrity: sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-ci/download/is-ci-2.0.0.tgz?cache=0&sync_timestamp=1635264993158&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-ci%2Fdownload%2Fis-ci-2.0.0.tgz} + resolution: {integrity: sha1-a8YzQYGBDgS1wis9WJ/cpVAmQEw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-ci/download/is-ci-2.0.0.tgz} name: is-ci version: 2.0.0 hasBin: true @@ -5953,6 +5273,7 @@ packages: version: 2.8.0 dependencies: has: registry.nlark.com/has/1.0.3 + dev: true registry.npmmirror.com/is-glob/4.0.3: resolution: {integrity: sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz} @@ -5974,11 +5295,13 @@ packages: name: is-negative-zero version: 2.0.2 engines: {node: '>= 0.4'} + dev: true registry.npmmirror.com/is-shared-array-buffer/1.0.1: resolution: {integrity: sha1-l7DIX72stZycRG/mU7gs8rW3z+Y=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-shared-array-buffer/download/is-shared-array-buffer-1.0.1.tgz} name: is-shared-array-buffer version: 1.0.1 + dev: true registry.npmmirror.com/is-weakref/1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-weakref/download/is-weakref-1.0.2.tgz} @@ -5986,6 +5309,7 @@ packages: version: 1.0.2 dependencies: call-bind: registry.nlark.com/call-bind/1.0.2 + dev: true registry.npmmirror.com/jest-diff/27.4.2: resolution: {integrity: sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jest-diff/download/jest-diff-27.4.2.tgz} @@ -6005,7 +5329,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} registry.npmmirror.com/jiti/1.12.9: - resolution: {integrity: sha1-LORbJlz8jckevXClIEgHz5FSkbw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jiti/download/jiti-1.12.9.tgz?cache=0&sync_timestamp=1636330737910&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjiti%2Fdownload%2Fjiti-1.12.9.tgz} + resolution: {integrity: sha1-LORbJlz8jckevXClIEgHz5FSkbw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jiti/download/jiti-1.12.9.tgz?cache=0&sync_timestamp=1636330737910&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fjiti%2Fdownload%2Fjiti-1.12.9.tgz} name: jiti version: 1.12.9 hasBin: true @@ -6027,16 +5351,8 @@ packages: engines: {'0': node >= 0.2.0} dev: true - registry.npmmirror.com/klaw-sync/6.0.0: - resolution: {integrity: sha1-H9LP1W67YlAYERTwpYEWcJnCsow=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/klaw-sync/download/klaw-sync-6.0.0.tgz} - name: klaw-sync - version: 6.0.0 - dependencies: - graceful-fs: registry.npmmirror.com/graceful-fs/4.2.8 - dev: true - registry.npmmirror.com/kolorist/1.5.1: - resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kolorist/download/kolorist-1.5.1.tgz} + resolution: {integrity: sha512-lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kolorist/download/kolorist-1.5.1.tgz} name: kolorist version: 1.5.1 dev: true @@ -6068,9 +5384,9 @@ packages: execa: registry.npmmirror.com/execa/5.1.1 lilconfig: registry.npmmirror.com/lilconfig/2.0.4 listr2: registry.npmmirror.com/listr2/3.13.5 - micromatch: registry.npmmirror.com/micromatch/4.0.4 + micromatch: registry.nlark.com/micromatch/4.0.4 normalize-path: registry.nlark.com/normalize-path/3.0.0 - object-inspect: registry.npmmirror.com/object-inspect/1.11.1 + object-inspect: registry.npmmirror.com/object-inspect/1.12.0 string-argv: registry.nlark.com/string-argv/0.3.1 supports-color: registry.npmmirror.com/supports-color/9.2.1 yaml: registry.npmmirror.com/yaml/1.10.2 @@ -6094,7 +5410,7 @@ packages: log-update: registry.npmmirror.com/log-update/4.0.0 p-map: registry.npmmirror.com/p-map/4.0.0 rfdc: registry.nlark.com/rfdc/1.3.0 - rxjs: registry.npmmirror.com/rxjs/7.4.0 + rxjs: registry.npmmirror.com/rxjs/7.5.1 through: registry.nlark.com/through/2.3.8 wrap-ansi: registry.nlark.com/wrap-ansi/7.0.0 dev: true @@ -6120,7 +5436,7 @@ packages: version: 4.17.21 registry.npmmirror.com/log-update/4.0.0: - resolution: {integrity: sha1-WJ7NNSRx8qHAxXAodUOmTf0g4KE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-update/download/log-update-4.0.0.tgz} + resolution: {integrity: sha1-WJ7NNSRx8qHAxXAodUOmTf0g4KE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/log-update/download/log-update-4.0.0.tgz?cache=0&sync_timestamp=1634543461511&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Flog-update%2Fdownload%2Flog-update-4.0.0.tgz} name: log-update version: 4.0.0 engines: {node: '>=10'} @@ -6164,16 +5480,6 @@ packages: yargs-parser: registry.npmmirror.com/yargs-parser/20.2.9 dev: true - registry.npmmirror.com/micromatch/4.0.4: - resolution: {integrity: sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/micromatch/download/micromatch-4.0.4.tgz} - name: micromatch - version: 4.0.4 - engines: {node: '>=8.6'} - dependencies: - braces: registry.nlark.com/braces/3.0.2 - picomatch: registry.nlark.com/picomatch/2.3.0 - dev: true - registry.npmmirror.com/mime-db/1.51.0: resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime-db/download/mime-db-1.51.0.tgz?cache=0&sync_timestamp=1636426398016&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-db%2Fdownload%2Fmime-db-1.51.0.tgz} name: mime-db @@ -6248,8 +5554,8 @@ packages: '@types/lodash-es': registry.npmmirror.com/@types/lodash-es/4.17.5 async-validator: registry.npmmirror.com/async-validator/4.0.7 css-render: registry.npmmirror.com/css-render/0.15.8 - date-fns: registry.npmmirror.com/date-fns/2.27.0 - date-fns-tz: registry.npmmirror.com/date-fns-tz/1.1.6_date-fns@2.27.0 + date-fns: registry.npmmirror.com/date-fns/2.28.0 + date-fns-tz: registry.npmmirror.com/date-fns-tz/1.2.2_date-fns@2.28.0 evtd: registry.npmmirror.com/evtd/0.2.3 highlight.js: registry.npmmirror.com/highlight.js/11.3.1 lodash: registry.npmmirror.com/lodash/4.17.21 @@ -6257,14 +5563,14 @@ packages: seemly: registry.npmmirror.com/seemly/0.3.3 treemate: registry.npmmirror.com/treemate/0.3.9 vdirs: registry.npmmirror.com/vdirs/0.1.7_vue@3.2.26 - vfonts: registry.nlark.com/vfonts/0.1.0 + vfonts: registry.npmmirror.com/vfonts/0.1.0 vooks: registry.npmmirror.com/vooks/0.2.12_vue@3.2.26 vue: registry.npmmirror.com/vue/3.2.26 vueuc: registry.npmmirror.com/vueuc/0.4.19_7fea039e05dc0d0bb67319189a00d1ad dev: false registry.npmmirror.com/nanoid/3.1.30: - resolution: {integrity: sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz} + resolution: {integrity: sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz} name: nanoid version: 3.1.30 engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -6286,10 +5592,10 @@ packages: path-key: registry.nlark.com/path-key/3.1.1 dev: true - registry.npmmirror.com/object-inspect/1.11.1: - resolution: {integrity: sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/download/object-inspect-1.11.1.tgz} + registry.npmmirror.com/object-inspect/1.12.0: + resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-inspect/download/object-inspect-1.12.0.tgz} name: object-inspect - version: 1.11.1 + version: 1.12.0 registry.npmmirror.com/object.entries/1.1.5: resolution: {integrity: sha1-4azdF8TeLNltWghIfPuduE2IGGE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object.entries/download/object.entries-1.1.5.tgz} @@ -6314,7 +5620,7 @@ packages: dev: true registry.npmmirror.com/open/7.4.2: - resolution: {integrity: sha1-uBR+Jtzz5CYxbHMAif1x7dKcIyE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/download/open-7.4.2.tgz?cache=0&sync_timestamp=1635049133809&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fopen%2Fdownload%2Fopen-7.4.2.tgz} + resolution: {integrity: sha1-uBR+Jtzz5CYxbHMAif1x7dKcIyE=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/open/download/open-7.4.2.tgz} name: open version: 7.4.2 engines: {node: '>=8'} @@ -6324,7 +5630,7 @@ packages: dev: true registry.npmmirror.com/p-map/4.0.0: - resolution: {integrity: sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-map/download/p-map-4.0.0.tgz} + resolution: {integrity: sha1-uy+Vpe2i7BaOySdOBqdHw+KQTSs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/p-map/download/p-map-4.0.0.tgz?cache=0&sync_timestamp=1635932063287&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fp-map%2Fdownload%2Fp-map-4.0.0.tgz} name: p-map version: 4.0.0 engines: {node: '>=10'} @@ -6361,36 +5667,14 @@ packages: version: 5.2.0 engines: {node: '>=8'} dependencies: - '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.16.0 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.16.7 error-ex: registry.npmmirror.com/error-ex/1.3.2 json-parse-even-better-errors: registry.nlark.com/json-parse-even-better-errors/2.3.1 lines-and-columns: registry.npmmirror.com/lines-and-columns/1.2.4 dev: true - registry.npmmirror.com/patch-package/6.4.7: - resolution: {integrity: sha1-IoLVPDl5CaDZ75La4/3rVYOCsUg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/patch-package/download/patch-package-6.4.7.tgz} - name: patch-package - version: 6.4.7 - engines: {npm: '>5'} - hasBin: true - dependencies: - '@yarnpkg/lockfile': registry.npmmirror.com/@yarnpkg/lockfile/1.1.0 - chalk: registry.npmmirror.com/chalk/2.4.2 - cross-spawn: registry.nlark.com/cross-spawn/6.0.5 - find-yarn-workspace-root: registry.npmmirror.com/find-yarn-workspace-root/2.0.0 - fs-extra: registry.nlark.com/fs-extra/7.0.1 - is-ci: registry.npmmirror.com/is-ci/2.0.0 - klaw-sync: registry.npmmirror.com/klaw-sync/6.0.0 - minimist: registry.nlark.com/minimist/1.2.5 - open: registry.npmmirror.com/open/7.4.2 - rimraf: registry.nlark.com/rimraf/2.7.1 - semver: registry.nlark.com/semver/5.7.1 - slash: registry.nlark.com/slash/2.0.0 - tmp: registry.nlark.com/tmp/0.0.33 - dev: true - registry.npmmirror.com/picocolors/1.0.0: - resolution: {integrity: sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz} + resolution: {integrity: sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz} name: picocolors version: 1.0.0 @@ -6424,10 +5708,10 @@ packages: find-up: registry.npmmirror.com/find-up/2.1.0 dev: true - registry.npmmirror.com/postcss/8.4.4: - resolution: {integrity: sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/download/postcss-8.4.4.tgz} + registry.npmmirror.com/postcss/8.4.5: + resolution: {integrity: sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/download/postcss-8.4.5.tgz} name: postcss - version: 8.4.4 + version: 8.4.5 engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: registry.npmmirror.com/nanoid/3.1.30 @@ -6505,10 +5789,10 @@ packages: type-fest: registry.npmmirror.com/type-fest/0.8.1 dev: true - registry.npmmirror.com/request-light/0.5.5: - resolution: {integrity: sha512-AvjfJuhyT6dYfhtIBF+IpTPQco+Td1QJ6PsIJ5xui110vQ5p9HxHk+m1XJqXazLQT6CxxSx9eNv6R/+fu4bZig==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/request-light/download/request-light-0.5.5.tgz} + registry.npmmirror.com/request-light/0.5.6: + resolution: {integrity: sha512-mIfRkYujBF6qQQi+uJGHFzYD2P7WwfIMyJ3/DcTtOFB3iypwIVOXmsr3RMnFwTJRVcYLLZdjkIx43E8Zn2hRng==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/request-light/download/request-light-0.5.6.tgz} name: request-light - version: 0.5.5 + version: 0.5.6 dev: true registry.npmmirror.com/reusify/1.0.4: @@ -6518,6 +5802,24 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true + registry.npmmirror.com/rimraf/2.6.3: + resolution: {integrity: sha1-stEE/g2Psnz54KHNqCYt04M8bKs=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/download/rimraf-2.6.3.tgz} + name: rimraf + version: 2.6.3 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob/7.2.0 + dev: true + + registry.npmmirror.com/rimraf/2.7.1: + resolution: {integrity: sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/download/rimraf-2.7.1.tgz} + name: rimraf + version: 2.7.1 + hasBin: true + dependencies: + glob: registry.npmmirror.com/glob/7.2.0 + dev: true + registry.npmmirror.com/rimraf/3.0.2: resolution: {integrity: sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rimraf/download/rimraf-3.0.2.tgz} name: rimraf @@ -6527,33 +5829,16 @@ packages: glob: registry.npmmirror.com/glob/7.2.0 dev: true - registry.npmmirror.com/rollup/0.25.8: - resolution: {integrity: sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/download/rollup-0.25.8.tgz} + registry.npmmirror.com/rollup/2.62.0: + resolution: {integrity: sha512-cJEQq2gwB0GWMD3rYImefQTSjrPYaC6s4J9pYqnstVLJ1CHa/aZNVkD4Epuvg4iLeMA4KRiq7UM7awKK6j7jcw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/download/rollup-2.62.0.tgz} name: rollup - version: 0.25.8 - hasBin: true - dependencies: - chalk: registry.npmmirror.com/chalk/1.1.3 - minimist: registry.nlark.com/minimist/1.2.5 - source-map-support: registry.npmmirror.com/source-map-support/0.3.3 - dev: false - - registry.npmmirror.com/rollup/2.61.1: - resolution: {integrity: sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/download/rollup-2.61.1.tgz} - name: rollup - version: 2.61.1 + version: 2.62.0 engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true - registry.npmmirror.com/rw/1.3.3: - resolution: {integrity: sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rw/download/rw-1.3.3.tgz} - name: rw - version: 1.3.3 - dev: false - registry.npmmirror.com/rxjs/6.6.7: resolution: {integrity: sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/download/rxjs-6.6.7.tgz} name: rxjs @@ -6563,12 +5848,12 @@ packages: tslib: registry.nlark.com/tslib/1.14.1 dev: true - registry.npmmirror.com/rxjs/7.4.0: - resolution: {integrity: sha1-oSpE1+6/AW9f8kQbh/KMmlHOvGg=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/download/rxjs-7.4.0.tgz} + registry.npmmirror.com/rxjs/7.5.1: + resolution: {integrity: sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rxjs/download/rxjs-7.5.1.tgz} name: rxjs - version: 7.4.0 + version: 7.5.1 dependencies: - tslib: registry.nlark.com/tslib/2.1.0 + tslib: registry.nlark.com/tslib/2.3.1 dev: true registry.npmmirror.com/sass/1.45.2: @@ -6588,7 +5873,7 @@ packages: name: seemly version: 0.3.3 dependencies: - '@types/jest': registry.npmmirror.com/@types/jest/27.0.3 + '@types/jest': registry.npmmirror.com/@types/jest/27.4.0 registry.npmmirror.com/signal-exit/3.0.6: resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/signal-exit/download/signal-exit-3.0.6.tgz} @@ -6597,19 +5882,11 @@ packages: dev: true registry.npmmirror.com/source-map-js/1.0.1: - resolution: {integrity: sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz} + resolution: {integrity: sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/download/source-map-js-1.0.1.tgz} name: source-map-js version: 1.0.1 engines: {node: '>=0.10.0'} - registry.npmmirror.com/source-map-support/0.3.3: - resolution: {integrity: sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-support/download/source-map-support-0.3.3.tgz?cache=0&sync_timestamp=1637325774967&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.3.3.tgz} - name: source-map-support - version: 0.3.3 - dependencies: - source-map: registry.nlark.com/source-map/0.1.32 - dev: false - registry.npmmirror.com/source-map-support/0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-support/download/source-map-support-0.5.21.tgz?cache=0&sync_timestamp=1637325774967&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.21.tgz} name: source-map-support @@ -6633,12 +5910,6 @@ packages: readable-stream: registry.nlark.com/readable-stream/3.6.0 dev: true - registry.npmmirror.com/ssr-window/4.0.2: - resolution: {integrity: sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ssr-window/download/ssr-window-4.0.2.tgz} - name: ssr-window - version: 4.0.2 - dev: false - registry.npmmirror.com/string-width/2.1.1: resolution: {integrity: sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string-width/download/string-width-2.1.1.tgz} name: string-width @@ -6671,26 +5942,6 @@ packages: strip-ansi: registry.npmmirror.com/strip-ansi/7.0.1 dev: true - registry.npmmirror.com/string.prototype.trim/1.2.5: - resolution: {integrity: sha1-pYe8yL+tjLmCmld/XeMN0XDBaCw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/string.prototype.trim/download/string.prototype.trim-1.2.5.tgz} - name: string.prototype.trim - version: 1.2.5 - engines: {node: '>= 0.4'} - dependencies: - call-bind: registry.nlark.com/call-bind/1.0.2 - define-properties: registry.nlark.com/define-properties/1.1.3 - es-abstract: registry.npmmirror.com/es-abstract/1.19.1 - dev: false - - registry.npmmirror.com/strip-ansi/3.0.1: - resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/download/strip-ansi-3.0.1.tgz} - name: strip-ansi - version: 3.0.1 - engines: {node: '>=0.10.0'} - dependencies: - ansi-regex: registry.nlark.com/ansi-regex/2.1.1 - dev: false - registry.npmmirror.com/strip-ansi/4.0.0: resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/strip-ansi/download/strip-ansi-4.0.0.tgz} name: strip-ansi @@ -6727,13 +5978,6 @@ packages: ansi-regex: registry.nlark.com/ansi-regex/6.0.1 dev: true - registry.npmmirror.com/supports-color/2.0.0: - resolution: {integrity: sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/download/supports-color-2.0.0.tgz} - name: supports-color - version: 2.0.0 - engines: {node: '>=0.8.0'} - dev: false - registry.npmmirror.com/supports-color/5.5.0: resolution: {integrity: sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/download/supports-color-5.5.0.tgz} name: supports-color @@ -6741,6 +5985,7 @@ packages: engines: {node: '>=4'} dependencies: has-flag: registry.nlark.com/has-flag/3.0.0 + dev: true registry.npmmirror.com/supports-color/7.2.0: resolution: {integrity: sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz} @@ -6757,40 +6002,6 @@ packages: engines: {node: '>=12'} dev: true - registry.npmmirror.com/swiper/7.4.1: - resolution: {integrity: sha512-dhbL4tpYFvHug1J7GnKElfTi6EYhlZy/vNZRhHkWFyUsWZ1Vovipxj3la5gqllMogygXJMe3zvVv+f6eppvWiA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/swiper/download/swiper-7.4.1.tgz} - name: swiper - version: 7.4.1 - engines: {node: '>= 4.7.0'} - requiresBuild: true - dependencies: - dom7: registry.npmmirror.com/dom7/4.0.2 - ssr-window: registry.npmmirror.com/ssr-window/4.0.2 - dev: false - - registry.npmmirror.com/tape/4.14.0: - resolution: {integrity: sha1-5NRgl+EpgXF1uQkl8jhfaxvPqCY=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/tape/download/tape-4.14.0.tgz} - name: tape - version: 4.14.0 - hasBin: true - dependencies: - call-bind: registry.nlark.com/call-bind/1.0.2 - deep-equal: registry.nlark.com/deep-equal/1.1.1 - defined: registry.nlark.com/defined/1.0.0 - dotignore: registry.nlark.com/dotignore/0.1.2 - for-each: registry.nlark.com/for-each/0.3.3 - glob: registry.npmmirror.com/glob/7.1.7 - has: registry.nlark.com/has/1.0.3 - inherits: registry.nlark.com/inherits/2.0.4 - is-regex: registry.nlark.com/is-regex/1.1.4 - minimist: registry.nlark.com/minimist/1.2.5 - object-inspect: registry.npmmirror.com/object-inspect/1.11.1 - resolve: registry.nlark.com/resolve/1.20.0 - resumer: registry.nlark.com/resumer/0.0.0 - string.prototype.trim: registry.npmmirror.com/string.prototype.trim/1.2.5 - through: registry.nlark.com/through/2.3.8 - dev: false - registry.npmmirror.com/terser/5.10.0: resolution: {integrity: sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/terser/download/terser-5.10.0.tgz?cache=0&sync_timestamp=1637014752872&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fterser%2Fdownload%2Fterser-5.10.0.tgz} name: terser @@ -6814,7 +6025,7 @@ packages: version: 0.3.9 dev: false - registry.npmmirror.com/ts-node/10.4.0_typescript@4.5.4: + registry.npmmirror.com/ts-node/10.4.0_646584a8d620b4d6f5eb4525e8655565: resolution: {integrity: sha1-aA+IlFiF9ObPRQ5/DWIj3UBIlfc=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ts-node/download/ts-node-10.4.0.tgz?cache=0&sync_timestamp=1636438781562&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fts-node%2Fdownload%2Fts-node-10.4.0.tgz} id: registry.npmmirror.com/ts-node/10.4.0 name: ts-node @@ -6836,6 +6047,7 @@ packages: '@tsconfig/node12': registry.nlark.com/@tsconfig/node12/1.0.9 '@tsconfig/node14': registry.nlark.com/@tsconfig/node14/1.0.1 '@tsconfig/node16': registry.nlark.com/@tsconfig/node16/1.0.2 + '@types/node': registry.npmmirror.com/@types/node/17.0.6 acorn: registry.npmmirror.com/acorn/8.7.0 acorn-walk: registry.nlark.com/acorn-walk/8.2.0 arg: registry.npmmirror.com/arg/4.1.3 @@ -6893,43 +6105,14 @@ packages: dev: true registry.npmmirror.com/typescript/4.5.4: - resolution: {integrity: sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typescript/download/typescript-4.5.4.tgz} + resolution: {integrity: sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typescript/download/typescript-4.5.4.tgz} name: typescript version: 4.5.4 engines: {node: '>=4.2.0'} hasBin: true dev: true - registry.npmmirror.com/uglify-js/2.8.29: - resolution: {integrity: sha1-KcVzMUgFe7Th913zW3qcty5qWd0=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/uglify-js/download/uglify-js-2.8.29.tgz} - name: uglify-js - version: 2.8.29 - engines: {node: '>=0.8.0'} - hasBin: true - dependencies: - source-map: registry.nlark.com/source-map/0.5.7 - yargs: registry.npmmirror.com/yargs/3.10.0 - optionalDependencies: - uglify-to-browserify: registry.nlark.com/uglify-to-browserify/1.0.2 - dev: false - - registry.npmmirror.com/unidragger/2.3.1: - resolution: {integrity: sha1-Low0/v9hr/qW3IlSNN38HqTsdRU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unidragger/download/unidragger-2.3.1.tgz} - name: unidragger - version: 2.3.1 - dependencies: - unipointer: registry.npmmirror.com/unipointer/2.3.0 - dev: false - - registry.npmmirror.com/unipointer/2.3.0: - resolution: {integrity: sha1-ug3EYs4xwqiOgIEOGcO64M5H7Z8=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unipointer/download/unipointer-2.3.0.tgz} - name: unipointer - version: 2.3.0 - dependencies: - ev-emitter: registry.npmmirror.com/ev-emitter/1.1.1 - dev: false - - registry.npmmirror.com/unplugin-icons/0.13.0_bf0f6a97e10b237a73e38ba784672bd6: + registry.npmmirror.com/unplugin-icons/0.13.0_vite@2.7.10: resolution: {integrity: sha512-CyAl0HV3bZUGT7ut9agpPRhEYXCvufr80Fh72yrkD57BVCTZ7ze10Rt63ZrvPXiJQpd+aI/Bizm2aqOf3WPSfg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unplugin-icons/download/unplugin-icons-0.13.0.tgz} id: registry.npmmirror.com/unplugin-icons/0.13.0 name: unplugin-icons @@ -6952,11 +6135,10 @@ packages: '@antfu/install-pkg': registry.npmmirror.com/@antfu/install-pkg/0.1.0 '@antfu/utils': registry.npmmirror.com/@antfu/utils/0.4.0 '@iconify/utils': registry.npmmirror.com/@iconify/utils/1.0.20 - '@vue/compiler-sfc': registry.npmmirror.com/@vue/compiler-sfc/3.2.26 debug: registry.npmmirror.com/debug/4.3.3 kolorist: registry.npmmirror.com/kolorist/1.5.1 local-pkg: registry.npmmirror.com/local-pkg/0.4.0 - unplugin: registry.npmmirror.com/unplugin/0.2.21_vite@2.5.10 + unplugin: registry.npmmirror.com/unplugin/0.2.21_vite@2.7.10 transitivePeerDependencies: - rollup - supports-color @@ -6964,7 +6146,7 @@ packages: - webpack dev: true - registry.npmmirror.com/unplugin-vue-components/0.17.11_vite@2.5.10+vue@3.2.26: + registry.npmmirror.com/unplugin-vue-components/0.17.11_vite@2.7.10+vue@3.2.26: resolution: {integrity: sha512-u5MQ0TbikszRelCt6EA/HskGtGkGLDxi7tQ4/4tcEPWkH3yXSZRJCOeLF5MSdxN1SiGjaJ0I9zeHjoZFC3FvRw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unplugin-vue-components/download/unplugin-vue-components-0.17.11.tgz} id: registry.npmmirror.com/unplugin-vue-components/0.17.11 name: unplugin-vue-components @@ -6981,7 +6163,7 @@ packages: optional: true dependencies: '@antfu/utils': registry.npmmirror.com/@antfu/utils/0.3.0 - '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/4.1.1 + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/4.1.2 chokidar: registry.npmmirror.com/chokidar/3.5.2 debug: registry.npmmirror.com/debug/4.3.3 fast-glob: registry.nlark.com/fast-glob/3.2.7 @@ -6989,7 +6171,7 @@ packages: magic-string: registry.nlark.com/magic-string/0.25.7 minimatch: registry.nlark.com/minimatch/3.0.4 resolve: registry.nlark.com/resolve/1.20.0 - unplugin: registry.npmmirror.com/unplugin/0.2.21_vite@2.5.10 + unplugin: registry.npmmirror.com/unplugin/0.2.21_vite@2.7.10 vue: registry.npmmirror.com/vue/3.2.26 transitivePeerDependencies: - rollup @@ -6998,7 +6180,7 @@ packages: - webpack dev: true - registry.npmmirror.com/unplugin/0.2.21_vite@2.5.10: + registry.npmmirror.com/unplugin/0.2.21_vite@2.7.10: resolution: {integrity: sha512-IJ15/L5XbhnV7J09Zjk0FT5HEkBjkXucWAXQWRsmEtUxmmxwh23yavrmDbCF6ZPxWiVB28+wnKIHePTRRpQPbQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/unplugin/download/unplugin-0.2.21.tgz} id: registry.npmmirror.com/unplugin/0.2.21 name: unplugin @@ -7015,7 +6197,7 @@ packages: webpack: optional: true dependencies: - vite: registry.npmmirror.com/vite/2.5.10 + vite: registry.npmmirror.com/vite/2.7.10_sass@1.45.2 webpack-virtual-modules: registry.nlark.com/webpack-virtual-modules/0.4.3 dev: true @@ -7028,18 +6210,6 @@ packages: os-homedir: registry.nlark.com/os-homedir/1.0.2 dev: true - registry.npmmirror.com/vdirs/0.1.4_vue@3.2.26: - resolution: {integrity: sha1-xMD/hs9H/tA95fhp4mUxHvGIq3Q=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vdirs/download/vdirs-0.1.4.tgz} - id: registry.npmmirror.com/vdirs/0.1.4 - name: vdirs - version: 0.1.4 - peerDependencies: - vue: ^3.0.11 - dependencies: - '@types/node': registry.npmmirror.com/@types/node/14.18.0 - evtd: registry.npmmirror.com/evtd/0.2.3 - vue: registry.npmmirror.com/vue/3.2.26 - registry.npmmirror.com/vdirs/0.1.7_vue@3.2.26: resolution: {integrity: sha512-MEUaLhV1jJyUqA2Ar4DfvlQx8jWs+PpCZ2dbM0ILelpMWGOybzt8ddL456VxeIbY/tkuDGT/Wzb8GG4LCuLuHw==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vdirs/download/vdirs-0.1.7.tgz} id: registry.npmmirror.com/vdirs/0.1.7 @@ -7050,17 +6220,14 @@ packages: dependencies: evtd: registry.npmmirror.com/evtd/0.2.3 vue: registry.npmmirror.com/vue/3.2.26 + + registry.npmmirror.com/vfonts/0.1.0: + resolution: {integrity: sha1-wWrzfKBEsnJa5VVTBJKA775iIqk=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vfonts/download/vfonts-0.1.0.tgz} + name: vfonts + version: 0.1.0 dev: false - registry.npmmirror.com/vditor/3.8.10: - resolution: {integrity: sha512-n15aA9cgcE52EJgW357HX9oFSAAiFFwICwpjDYrZPHZhVKdrdpbG3GBBYUzyiqRvLtD3LPET1IBaHGiF+8dO6g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vditor/download/vditor-3.8.10.tgz} - name: vditor - version: 3.8.10 - dependencies: - diff-match-patch: registry.nlark.com/diff-match-patch/1.0.5 - dev: false - - registry.npmmirror.com/vite-plugin-html/2.1.2_vite@2.5.10: + registry.npmmirror.com/vite-plugin-html/2.1.2_vite@2.7.10: resolution: {integrity: sha512-7HXkL6n7M2qDEaUV4Vnz8yM2glW4gV36d5HSBIM5gOoAG1PkuQb4Vv9FTPgPiQxq4sPRf/6IgABX0MeLVW+CyQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-html/download/vite-plugin-html-2.1.2.tgz} id: registry.npmmirror.com/vite-plugin-html/2.1.2 name: vite-plugin-html @@ -7074,12 +6241,12 @@ packages: ejs: registry.npmmirror.com/ejs/3.1.6 fs-extra: registry.nlark.com/fs-extra/10.0.0 html-minifier-terser: registry.npmmirror.com/html-minifier-terser/6.1.0 - vite: registry.npmmirror.com/vite/2.5.10 + vite: registry.npmmirror.com/vite/2.7.10_sass@1.45.2 transitivePeerDependencies: - acorn dev: true - registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.5.10: + registry.npmmirror.com/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.7.10: resolution: {integrity: sha1-BN0j3muqBS+qW5rTF1FMkNYgXiU=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-mock/download/vite-plugin-mock-2.9.6.tgz} id: registry.npmmirror.com/vite-plugin-mock/2.9.6 name: vite-plugin-mock @@ -7089,7 +6256,7 @@ packages: mockjs: '>=1.1.0' vite: '>=2.0.0' dependencies: - '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve/13.1.1 + '@rollup/plugin-node-resolve': registry.npmmirror.com/@rollup/plugin-node-resolve/13.1.2 '@types/mockjs': registry.npmmirror.com/@types/mockjs/1.0.4 chalk: registry.npmmirror.com/chalk/4.1.2 chokidar: registry.npmmirror.com/chokidar/3.5.2 @@ -7099,14 +6266,14 @@ packages: fast-glob: registry.nlark.com/fast-glob/3.2.7 mockjs: registry.npmmirror.com/mockjs/1.1.0 path-to-regexp: registry.nlark.com/path-to-regexp/6.2.0 - vite: registry.npmmirror.com/vite/2.5.10 + vite: registry.npmmirror.com/vite/2.7.10_sass@1.45.2 transitivePeerDependencies: - rollup - supports-color dev: true - registry.npmmirror.com/vite-plugin-windicss/1.6.1_vite@2.5.10: - resolution: {integrity: sha512-63uv4HqBxtSZB0WOtrZS8yhyfQPgGQwYgcBald+/BpLSlYJREcDKgX9Xd/qDgTAjpDRozxKQj/JWreIlyIahGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-windicss/download/vite-plugin-windicss-1.6.1.tgz} + registry.npmmirror.com/vite-plugin-windicss/1.6.1_vite@2.7.10: + resolution: {integrity: sha512-63uv4HqBxtSZB0WOtrZS8yhyfQPgGQwYgcBald+/BpLSlYJREcDKgX9Xd/qDgTAjpDRozxKQj/JWreIlyIahGg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite-plugin-windicss/download/vite-plugin-windicss-1.6.1.tgz} id: registry.npmmirror.com/vite-plugin-windicss/1.6.1 name: vite-plugin-windicss version: 1.6.1 @@ -7116,38 +6283,40 @@ packages: '@windicss/plugin-utils': registry.npmmirror.com/@windicss/plugin-utils/1.6.1 debug: registry.npmmirror.com/debug/4.3.3 kolorist: registry.npmmirror.com/kolorist/1.5.1 - vite: registry.npmmirror.com/vite/2.5.10 + vite: registry.npmmirror.com/vite/2.7.10_sass@1.45.2 windicss: registry.npmmirror.com/windicss/3.4.2 transitivePeerDependencies: - supports-color dev: true - registry.npmmirror.com/vite/2.5.10: - resolution: {integrity: sha1-xZjjtafhlW/8Uus7NCDRd/wu0qU=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/download/vite-2.5.10.tgz} + registry.npmmirror.com/vite/2.7.10_sass@1.45.2: + resolution: {integrity: sha512-KEY96ntXUid1/xJihJbgmLZx7QSC2D4Tui0FdS0Old5OokYzFclcofhtxtjDdGOk/fFpPbHv9yw88+rB93Tb8w==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/download/vite-2.7.10.tgz} + id: registry.npmmirror.com/vite/2.7.10 name: vite - version: 2.5.10 + version: 2.7.10 engines: {node: '>=12.2.0'} hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true dependencies: - esbuild: registry.npmmirror.com/esbuild/0.12.29 - postcss: registry.npmmirror.com/postcss/8.4.4 + esbuild: registry.npmmirror.com/esbuild/0.13.15 + postcss: registry.npmmirror.com/postcss/8.4.5 resolve: registry.nlark.com/resolve/1.20.0 - rollup: registry.npmmirror.com/rollup/2.61.1 + rollup: registry.npmmirror.com/rollup/2.62.0 + sass: registry.npmmirror.com/sass/1.45.2 optionalDependencies: fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true - registry.npmmirror.com/vooks/0.2.10_vue@3.2.26: - resolution: {integrity: sha1-Jlb0wCV1jtl+3EqVhMnMFez/tws=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vooks/download/vooks-0.2.10.tgz} - id: registry.npmmirror.com/vooks/0.2.10 - name: vooks - version: 0.2.10 - peerDependencies: - vue: ^3.0.0 - dependencies: - evtd: registry.npmmirror.com/evtd/0.2.3 - vue: registry.npmmirror.com/vue/3.2.26 - registry.npmmirror.com/vooks/0.2.12_vue@3.2.26: resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vooks/download/vooks-0.2.12.tgz} id: registry.npmmirror.com/vooks/0.2.12 @@ -7158,7 +6327,6 @@ packages: dependencies: evtd: registry.npmmirror.com/evtd/0.2.3 vue: registry.npmmirror.com/vue/3.2.26 - dev: false registry.npmmirror.com/vscode-css-languageservice/5.1.9: resolution: {integrity: sha512-/tFOWeZBL3Oc9Zc+2MAi3rEwiXJTSZsvjB+M7nSjWLbGPUIjukUA7YzLgsBoUfR35sPJYnXWUkL56PdfIYM8GA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-css-languageservice/download/vscode-css-languageservice-5.1.9.tgz} @@ -7168,18 +6336,18 @@ packages: vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.3 vscode-languageserver-types: registry.npmmirror.com/vscode-languageserver-types/3.16.0 vscode-nls: registry.npmmirror.com/vscode-nls/5.0.0 - vscode-uri: registry.npmmirror.com/vscode-uri/3.0.2 + vscode-uri: registry.npmmirror.com/vscode-uri/3.0.3 dev: true - registry.npmmirror.com/vscode-html-languageservice/4.2.0: - resolution: {integrity: sha512-5ebk/5kMa7PrCPL3JuP27vo8h+coDgSkMP14pSlKz3ISXZxHm+nnCenhVrpy9Ayamtwb28YXeQuN8AqNQH8kVQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-html-languageservice/download/vscode-html-languageservice-4.2.0.tgz} + registry.npmmirror.com/vscode-html-languageservice/4.2.1: + resolution: {integrity: sha512-PgaToZVXJ44nFWEBuSINdDgVV6EnpC3MnXBsysR3O5TKcAfywbYeRGRy+Y4dVR7YeUgDvtb+JkJoSkaYC0mxXQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-html-languageservice/download/vscode-html-languageservice-4.2.1.tgz} name: vscode-html-languageservice - version: 4.2.0 + version: 4.2.1 dependencies: vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.3 vscode-languageserver-types: registry.npmmirror.com/vscode-languageserver-types/3.16.0 vscode-nls: registry.npmmirror.com/vscode-nls/5.0.0 - vscode-uri: registry.npmmirror.com/vscode-uri/3.0.2 + vscode-uri: registry.npmmirror.com/vscode-uri/3.0.3 dev: true registry.npmmirror.com/vscode-json-languageservice/4.1.10: @@ -7191,7 +6359,7 @@ packages: vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.3 vscode-languageserver-types: registry.npmmirror.com/vscode-languageserver-types/3.16.0 vscode-nls: registry.npmmirror.com/vscode-nls/5.0.0 - vscode-uri: registry.npmmirror.com/vscode-uri/3.0.2 + vscode-uri: registry.npmmirror.com/vscode-uri/3.0.3 dev: true registry.npmmirror.com/vscode-jsonrpc/8.0.0-next.4: @@ -7275,10 +6443,10 @@ packages: version: 2.1.2 dev: true - registry.npmmirror.com/vscode-uri/3.0.2: - resolution: {integrity: sha1-7P0dBmy470w6II3s26uajCPQVdA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-uri/download/vscode-uri-3.0.2.tgz} + registry.npmmirror.com/vscode-uri/3.0.3: + resolution: {integrity: sha512-EcswR2S8bpR7fD0YPeS7r2xXExrScVMxg4MedACaWHEtx9ftCF/qHG1xGkolzTPcEmjTavCQgbVzHUIdTMzFGA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vscode-uri/download/vscode-uri-3.0.3.tgz} name: vscode-uri - version: 3.0.2 + version: 3.0.3 dev: true registry.npmmirror.com/vscode-vue-languageservice/0.30.1: @@ -7292,13 +6460,13 @@ packages: '@volar/source-map': registry.npmmirror.com/@volar/source-map/0.30.1 '@volar/transforms': registry.npmmirror.com/@volar/transforms/0.30.1 '@volar/vue-code-gen': registry.npmmirror.com/@volar/vue-code-gen/0.30.1 - '@vscode/emmet-helper': registry.npmmirror.com/@vscode/emmet-helper/2.8.2 + '@vscode/emmet-helper': registry.npmmirror.com/@vscode/emmet-helper/2.8.3 '@vue/reactivity': registry.npmmirror.com/@vue/reactivity/3.2.26 '@vue/shared': registry.npmmirror.com/@vue/shared/3.2.26 - request-light: registry.npmmirror.com/request-light/0.5.5 + request-light: registry.npmmirror.com/request-light/0.5.6 upath: registry.nlark.com/upath/2.0.1 vscode-css-languageservice: registry.npmmirror.com/vscode-css-languageservice/5.1.9 - vscode-html-languageservice: registry.npmmirror.com/vscode-html-languageservice/4.2.0 + vscode-html-languageservice: registry.npmmirror.com/vscode-html-languageservice/4.2.1 vscode-json-languageservice: registry.npmmirror.com/vscode-json-languageservice/4.1.10 vscode-languageserver: registry.npmmirror.com/vscode-languageserver/8.0.0-next.5 vscode-languageserver-textdocument: registry.npmmirror.com/vscode-languageserver-textdocument/1.0.3 @@ -7325,7 +6493,7 @@ packages: dev: false registry.npmmirror.com/vue-eslint-parser/8.0.1_eslint@8.6.0: - resolution: {integrity: sha1-JeCLIKQUVRUx8+GfmZkC4ez0XxM=, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-eslint-parser/download/vue-eslint-parser-8.0.1.tgz} + resolution: {integrity: sha1-JeCLIKQUVRUx8+GfmZkC4ez0XxM=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-eslint-parser/download/vue-eslint-parser-8.0.1.tgz} id: registry.npmmirror.com/vue-eslint-parser/8.0.1 name: vue-eslint-parser version: 8.0.1 @@ -7337,7 +6505,7 @@ packages: eslint: registry.npmmirror.com/eslint/8.6.0 eslint-scope: registry.npmmirror.com/eslint-scope/6.0.0 eslint-visitor-keys: registry.npmmirror.com/eslint-visitor-keys/3.1.0 - espree: registry.npmmirror.com/espree/9.2.0 + espree: registry.npmmirror.com/espree/9.3.0 esquery: registry.nlark.com/esquery/1.4.0 lodash: registry.npmmirror.com/lodash/4.17.21 semver: registry.nlark.com/semver/7.3.5 @@ -7346,14 +6514,14 @@ packages: dev: true registry.npmmirror.com/vue-router/4.0.12_vue@3.2.26: - resolution: {integrity: sha1-jceSzd9bsavMOQj5BkE23n4TxGA=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-router/download/vue-router-4.0.12.tgz} + resolution: {integrity: sha512-CPXvfqe+mZLB1kBWssssTiWg4EQERyqJZes7USiqfW9B5N2x+nHlnsM1D3b5CaJ6qgCvMmYJnz+G0iWjNCvXrg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue-router/download/vue-router-4.0.12.tgz} id: registry.npmmirror.com/vue-router/4.0.12 name: vue-router version: 4.0.12 peerDependencies: vue: ^3.0.0 dependencies: - '@vue/devtools-api': registry.npmmirror.com/@vue/devtools-api/6.0.0-beta.20.1 + '@vue/devtools-api': registry.npmmirror.com/@vue/devtools-api/6.0.0-beta.21.1 vue: registry.npmmirror.com/vue/3.2.26 dev: false @@ -7372,7 +6540,7 @@ packages: dev: true registry.npmmirror.com/vue/3.2.26: - resolution: {integrity: sha512-KD4lULmskL5cCsEkfhERVRIOEDrfEL9CwAsLYpzptOGjaGFNWo3BQ9g8MAb7RaIO71rmVOziZ/uEN/rHwcUIhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue/download/vue-3.2.26.tgz} + resolution: {integrity: sha512-KD4lULmskL5cCsEkfhERVRIOEDrfEL9CwAsLYpzptOGjaGFNWo3BQ9g8MAb7RaIO71rmVOziZ/uEN/rHwcUIhg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vue/download/vue-3.2.26.tgz} name: vue version: 3.2.26 dependencies: @@ -7397,8 +6565,8 @@ packages: evtd: registry.npmmirror.com/evtd/0.2.3 resize-observer-polyfill: registry.nlark.com/resize-observer-polyfill/1.5.1 seemly: registry.npmmirror.com/seemly/0.3.3 - vdirs: registry.npmmirror.com/vdirs/0.1.4_vue@3.2.26 - vooks: registry.npmmirror.com/vooks/0.2.10_vue@3.2.26 + vdirs: registry.npmmirror.com/vdirs/0.1.7_vue@3.2.26 + vooks: registry.npmmirror.com/vooks/0.2.12_vue@3.2.26 vue: registry.npmmirror.com/vue/3.2.26 dev: false @@ -7415,21 +6583,11 @@ packages: evtd: registry.npmmirror.com/evtd/0.2.3 resize-observer-polyfill: registry.nlark.com/resize-observer-polyfill/1.5.1 seemly: registry.npmmirror.com/seemly/0.3.3 - vdirs: registry.npmmirror.com/vdirs/0.1.4_vue@3.2.26 - vooks: registry.npmmirror.com/vooks/0.2.10_vue@3.2.26 + vdirs: registry.npmmirror.com/vdirs/0.1.7_vue@3.2.26 + vooks: registry.npmmirror.com/vooks/0.2.12_vue@3.2.26 vue: registry.npmmirror.com/vue/3.2.26 dev: true - registry.npmmirror.com/wangeditor/4.7.11: - resolution: {integrity: sha512-z6xEHTSj4YgqvQkHWh9/V/Md7hjEKchXquwvtxvWhwlMS/wBFprCg7qgE4omzuSBeivkZZGTJP08pmdHzOwCUQ==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/wangeditor/download/wangeditor-4.7.11.tgz} - name: wangeditor - version: 4.7.11 - dependencies: - '@babel/runtime': registry.npmmirror.com/@babel/runtime/7.16.3 - '@babel/runtime-corejs3': registry.npmmirror.com/@babel/runtime-corejs3/7.16.3 - tslib: registry.nlark.com/tslib/2.3.1 - dev: false - registry.npmmirror.com/windicss/3.4.2: resolution: {integrity: sha512-YieqWaXiwPu0JJoB7z03RXdjZjQQJtMZAeXUXu/j3JXSMhIgV/2rUXu4Q7QrworRlbaASZlFhxjnL/78aAty+Q==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/windicss/download/windicss-3.4.2.tgz} name: windicss @@ -7438,31 +6596,6 @@ packages: hasBin: true dev: true - registry.npmmirror.com/xgplayer-subtitles/1.0.21: - resolution: {integrity: sha1-btQ2EJIP27Gj/JYGSAFdEVw9wkw=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xgplayer-subtitles/download/xgplayer-subtitles-1.0.21.tgz} - name: xgplayer-subtitles - version: 1.0.21 - dependencies: - eventemitter3: registry.nlark.com/eventemitter3/4.0.7 - generate-source-map: registry.npmmirror.com/generate-source-map/0.0.5 - dev: false - - registry.npmmirror.com/xgplayer/2.31.4: - resolution: {integrity: sha512-apuAucT8RMsC8t0lattoBI9g8o9Pf7ZP7G5Eh5T7CpYAC7WA8zWZiWSunidc3rAs9HZmROhRtd1RhPnIyXGJjg==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/xgplayer/download/xgplayer-2.31.4.tgz} - name: xgplayer - version: 2.31.4 - hasBin: true - dependencies: - chalk: registry.npmmirror.com/chalk/2.4.2 - commander: registry.npmmirror.com/commander/2.20.3 - danmu.js: registry.npmmirror.com/danmu.js/0.5.10 - downloadjs: registry.npmmirror.com/downloadjs/1.4.7 - draggabilly: registry.npmmirror.com/draggabilly/2.3.0 - event-emitter: registry.nlark.com/event-emitter/0.3.5 - fs-extra: registry.nlark.com/fs-extra/5.0.0 - xgplayer-subtitles: registry.npmmirror.com/xgplayer-subtitles/1.0.21 - dev: false - registry.npmmirror.com/yaml/1.10.2: resolution: {integrity: sha1-IwHF/78StGfejaIzOkWeKeeSDks=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yaml/download/yaml-1.10.2.tgz} name: yaml @@ -7499,10 +6632,10 @@ packages: yargs-parser: registry.npmmirror.com/yargs-parser/20.2.9 dev: true - registry.npmmirror.com/yargs/17.3.0: - resolution: {integrity: sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs/download/yargs-17.3.0.tgz} + registry.npmmirror.com/yargs/17.3.1: + resolution: {integrity: sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs/download/yargs-17.3.1.tgz} name: yargs - version: 17.3.0 + version: 17.3.1 engines: {node: '>=12'} dependencies: cliui: registry.nlark.com/cliui/7.0.4 @@ -7513,14 +6646,3 @@ packages: y18n: registry.nlark.com/y18n/5.0.8 yargs-parser: registry.npmmirror.com/yargs-parser/21.0.0 dev: true - - registry.npmmirror.com/yargs/3.10.0: - resolution: {integrity: sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=, registry: http://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/yargs/download/yargs-3.10.0.tgz} - name: yargs - version: 3.10.0 - dependencies: - camelcase: registry.npmmirror.com/camelcase/1.2.1 - cliui: registry.nlark.com/cliui/2.1.0 - decamelize: registry.npmmirror.com/decamelize/1.2.0 - window-size: registry.nlark.com/window-size/0.1.0 - dev: false diff --git a/public/favicon.ico b/public/favicon.ico index 2b47ca6e980c026368b61d73b28cc993f659c382..df36fcfb72584e00488330b560ebcf34a41c64c2 100644 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 16958 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 Wf6&QM;vbvZOWENcJ i { - position: absolute; - display: block; - width: 18px; - height: 18px; - background: #1890ff; - border-radius: 50%; - -webkit-transform: scale(0.75); - transform: scale(0.75); - transform-origin: 50% 50%; - opacity: 0.3; - animation: spinOpacity 1s infinite linear alternate; -} -@keyframes spinOpacity { - to { - opacity: 1; - } -} -@-webkit-keyframes spinOpacity { - to { - opacity: 1; - } -} -.delay-400 { - animation-delay: 0.4s !important; -} -.delay-800 { - animation-delay: 0.8s !important; -} -.delay-1200 { - animation-delay: 1.2s !important; -} -.left { - left: 0; -} -.right { - right: 0; -} -.top { - top: 0; -} -.bottom { - bottom: 0; -} -.app-loading_title { - font-size: 28px; - color: #646464; -} diff --git a/public/resource/logo.png b/public/resource/logo.png deleted file mode 100644 index 6641c8273c22557208827ac4c1e8c60dd6314920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11341 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 - - - + - - + + diff --git a/src/AppProvider.vue b/src/AppProvider.vue deleted file mode 100644 index 8d94cb06..00000000 --- a/src/AppProvider.vue +++ /dev/null @@ -1,33 +0,0 @@ - - - - diff --git a/src/assets/base.css b/src/assets/base.css new file mode 100644 index 00000000..71dc55a3 --- /dev/null +++ b/src/assets/base.css @@ -0,0 +1,74 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + position: relative; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: color 0.5s, background-color 0.5s; + line-height: 1.6; + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/src/assets/img/common/logo-fill.png b/src/assets/img/common/logo-fill.png deleted file mode 100644 index 55fa1495ae1c3f1a233de2d49fb268422a31a975..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8007 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 diff --git a/src/assets/img/common/logo.png b/src/assets/img/common/logo.png deleted file mode 100644 index 6641c8273c22557208827ac4c1e8c60dd6314920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11341 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 \ No newline at end of file diff --git a/src/assets/svg/avatar/avatar01.svg b/src/assets/svg/avatar/avatar01.svg deleted file mode 100644 index de4bce2a..00000000 --- a/src/assets/svg/avatar/avatar01.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/svg/common/logo.svg b/src/assets/svg/common/logo.svg deleted file mode 100644 index 8d63827a..00000000 --- a/src/assets/svg/common/logo.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - diff --git a/src/components/business/index.ts b/src/components/business/index.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/components/common/BannerSvg/components/Banner1.vue b/src/components/common/BannerSvg/components/Banner1.vue deleted file mode 100644 index 5af91ef8..00000000 --- a/src/components/common/BannerSvg/components/Banner1.vue +++ /dev/null @@ -1,611 +0,0 @@ - - - - diff --git a/src/components/common/BannerSvg/components/Banner2.vue b/src/components/common/BannerSvg/components/Banner2.vue deleted file mode 100644 index 4d7e701c..00000000 --- a/src/components/common/BannerSvg/components/Banner2.vue +++ /dev/null @@ -1,1220 +0,0 @@ - - - - diff --git a/src/components/common/BannerSvg/components/Banner3.vue b/src/components/common/BannerSvg/components/Banner3.vue deleted file mode 100644 index 1404f046..00000000 --- a/src/components/common/BannerSvg/components/Banner3.vue +++ /dev/null @@ -1,2868 +0,0 @@ - - - - diff --git a/src/components/common/BannerSvg/components/index.ts b/src/components/common/BannerSvg/components/index.ts deleted file mode 100644 index 18a6c3f4..00000000 --- a/src/components/common/BannerSvg/components/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import Banner1 from './Banner1.vue'; -import Banner2 from './Banner2.vue'; -import Banner3 from './Banner3.vue'; - -export { Banner1, Banner2, Banner3 }; diff --git a/src/components/common/BannerSvg/index.vue b/src/components/common/BannerSvg/index.vue deleted file mode 100644 index 27bf6758..00000000 --- a/src/components/common/BannerSvg/index.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - - diff --git a/src/components/common/HoverContainer/index.vue b/src/components/common/HoverContainer/index.vue deleted file mode 100644 index d4c44664..00000000 --- a/src/components/common/HoverContainer/index.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - - diff --git a/src/components/common/IconSelect/index.vue b/src/components/common/IconSelect/index.vue deleted file mode 100644 index 42f33435..00000000 --- a/src/components/common/IconSelect/index.vue +++ /dev/null @@ -1,75 +0,0 @@ - - - - diff --git a/src/components/common/LoadingEmptyWrapper/index.vue b/src/components/common/LoadingEmptyWrapper/index.vue deleted file mode 100644 index 90a77f9e..00000000 --- a/src/components/common/LoadingEmptyWrapper/index.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - - diff --git a/src/components/common/LoginBg/components/CornerBottom.vue b/src/components/common/LoginBg/components/CornerBottom.vue deleted file mode 100644 index b62deb4c..00000000 --- a/src/components/common/LoginBg/components/CornerBottom.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - diff --git a/src/components/common/LoginBg/components/CornerTop.vue b/src/components/common/LoginBg/components/CornerTop.vue deleted file mode 100644 index 6b1d6e20..00000000 --- a/src/components/common/LoginBg/components/CornerTop.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - diff --git a/src/components/common/LoginBg/components/index.ts b/src/components/common/LoginBg/components/index.ts deleted file mode 100644 index 33e9bf12..00000000 --- a/src/components/common/LoginBg/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import CornerTop from './CornerTop.vue'; -import CornerBottom from './CornerBottom.vue'; - -export { CornerTop, CornerBottom }; diff --git a/src/components/common/LoginBg/index.vue b/src/components/common/LoginBg/index.vue deleted file mode 100644 index 8bde57e8..00000000 --- a/src/components/common/LoginBg/index.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - diff --git a/src/components/common/NaiveProvider/components/NaiveProviderContent.vue b/src/components/common/NaiveProvider/components/NaiveProviderContent.vue deleted file mode 100644 index e497643a..00000000 --- a/src/components/common/NaiveProvider/components/NaiveProviderContent.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - - diff --git a/src/components/common/NaiveProvider/components/index.ts b/src/components/common/NaiveProvider/components/index.ts deleted file mode 100644 index 11b83311..00000000 --- a/src/components/common/NaiveProvider/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import NaiveProviderContent from './NaiveProviderContent.vue'; - -export { NaiveProviderContent }; diff --git a/src/components/common/NaiveProvider/index.vue b/src/components/common/NaiveProvider/index.vue deleted file mode 100644 index ab32c03b..00000000 --- a/src/components/common/NaiveProvider/index.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - - diff --git a/src/components/common/SystemLogo/components/SvgFillLogo.vue b/src/components/common/SystemLogo/components/SvgFillLogo.vue deleted file mode 100644 index 446c8b3a..00000000 --- a/src/components/common/SystemLogo/components/SvgFillLogo.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - diff --git a/src/components/common/SystemLogo/components/SvgLogo.vue b/src/components/common/SystemLogo/components/SvgLogo.vue deleted file mode 100644 index e0115a23..00000000 --- a/src/components/common/SystemLogo/components/SvgLogo.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - diff --git a/src/components/common/SystemLogo/components/index.ts b/src/components/common/SystemLogo/components/index.ts deleted file mode 100644 index 35465521..00000000 --- a/src/components/common/SystemLogo/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import SvgLogo from './SvgLogo.vue'; -import SvgFillLogo from './SvgFillLogo.vue'; - -export { SvgLogo, SvgFillLogo }; diff --git a/src/components/common/SystemLogo/index.vue b/src/components/common/SystemLogo/index.vue deleted file mode 100644 index fe137402..00000000 --- a/src/components/common/SystemLogo/index.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - diff --git a/src/components/common/index.ts b/src/components/common/index.ts deleted file mode 100644 index 4d3cf832..00000000 --- a/src/components/common/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import NaiveProvider from './NaiveProvider/index.vue'; -import SystemLogo from './SystemLogo/index.vue'; -import LoginBg from './LoginBg/index.vue'; -import BannerSvg from './BannerSvg/index.vue'; -import HoverContainer from './HoverContainer/index.vue'; -import LoadingEmptyWrapper from './LoadingEmptyWrapper/index.vue'; -import IconSelect from './IconSelect/index.vue'; - -export { NaiveProvider, SystemLogo, LoginBg, BannerSvg, HoverContainer, LoadingEmptyWrapper, IconSelect }; diff --git a/src/components/custom/BetterScroll/index.vue b/src/components/custom/BetterScroll/index.vue deleted file mode 100644 index 85996049..00000000 --- a/src/components/custom/BetterScroll/index.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/src/components/custom/ButtonTab/index.vue b/src/components/custom/ButtonTab/index.vue deleted file mode 100644 index bce2f54f..00000000 --- a/src/components/custom/ButtonTab/index.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - diff --git a/src/components/custom/ChromeTab/components/SvgRadiusBg.vue b/src/components/custom/ChromeTab/components/SvgRadiusBg.vue deleted file mode 100644 index 66f8f986..00000000 --- a/src/components/custom/ChromeTab/components/SvgRadiusBg.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - - diff --git a/src/components/custom/ChromeTab/components/index.ts b/src/components/custom/ChromeTab/components/index.ts deleted file mode 100644 index 57d745d0..00000000 --- a/src/components/custom/ChromeTab/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import SvgRadiusBg from './SvgRadiusBg.vue'; - -export { SvgRadiusBg }; diff --git a/src/components/custom/ChromeTab/index.vue b/src/components/custom/ChromeTab/index.vue deleted file mode 100644 index 4edebb7b..00000000 --- a/src/components/custom/ChromeTab/index.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - diff --git a/src/components/custom/CountTo/index.vue b/src/components/custom/CountTo/index.vue deleted file mode 100644 index 2f9be1a0..00000000 --- a/src/components/custom/CountTo/index.vue +++ /dev/null @@ -1,106 +0,0 @@ - - diff --git a/src/components/custom/GithubLink/index.vue b/src/components/custom/GithubLink/index.vue deleted file mode 100644 index 5e7266ca..00000000 --- a/src/components/custom/GithubLink/index.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/components/custom/IconClose/index.vue b/src/components/custom/IconClose/index.vue deleted file mode 100644 index 1300bdf2..00000000 --- a/src/components/custom/IconClose/index.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - diff --git a/src/components/custom/ImageVerify/index.vue b/src/components/custom/ImageVerify/index.vue deleted file mode 100644 index 406a6625..00000000 --- a/src/components/custom/ImageVerify/index.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - - diff --git a/src/components/custom/SGraph/components/DragScaleSvg.vue b/src/components/custom/SGraph/components/DragScaleSvg.vue deleted file mode 100644 index 39036bc8..00000000 --- a/src/components/custom/SGraph/components/DragScaleSvg.vue +++ /dev/null @@ -1,290 +0,0 @@ - - - - diff --git a/src/components/custom/SGraph/components/ScaleSlider.vue b/src/components/custom/SGraph/components/ScaleSlider.vue deleted file mode 100644 index b1de20da..00000000 --- a/src/components/custom/SGraph/components/ScaleSlider.vue +++ /dev/null @@ -1,124 +0,0 @@ - - - - diff --git a/src/components/custom/SGraph/components/SvgEdge.vue b/src/components/custom/SGraph/components/SvgEdge.vue deleted file mode 100644 index 6fbc28e3..00000000 --- a/src/components/custom/SGraph/components/SvgEdge.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - diff --git a/src/components/custom/SGraph/components/SvgNode.vue b/src/components/custom/SGraph/components/SvgNode.vue deleted file mode 100644 index cf774777..00000000 --- a/src/components/custom/SGraph/components/SvgNode.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - - diff --git a/src/components/custom/SGraph/components/index.ts b/src/components/custom/SGraph/components/index.ts deleted file mode 100644 index 76269cbb..00000000 --- a/src/components/custom/SGraph/components/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import DragScaleSvg from './DragScaleSvg.vue'; -import SvgNode from './SvgNode.vue'; -import SvgEdge from './SvgEdge.vue'; -import ScaleSlider from './ScaleSlider.vue'; - -export { DragScaleSvg, SvgNode, SvgEdge, ScaleSlider }; diff --git a/src/components/custom/SGraph/index.vue b/src/components/custom/SGraph/index.vue deleted file mode 100644 index 6839da01..00000000 --- a/src/components/custom/SGraph/index.vue +++ /dev/null @@ -1,123 +0,0 @@ - - - - diff --git a/src/components/custom/ThemeSwitch/index.vue b/src/components/custom/ThemeSwitch/index.vue deleted file mode 100644 index 153d96aa..00000000 --- a/src/components/custom/ThemeSwitch/index.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - diff --git a/src/components/custom/WebSiteLink/index.vue b/src/components/custom/WebSiteLink/index.vue deleted file mode 100644 index f9623a06..00000000 --- a/src/components/custom/WebSiteLink/index.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - diff --git a/src/components/custom/index.ts b/src/components/custom/index.ts deleted file mode 100644 index 378553b1..00000000 --- a/src/components/custom/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -import CountTo from './CountTo/index.vue'; -import IconClose from './IconClose/index.vue'; -import ButtonTab from './ButtonTab/index.vue'; -import ChromeTab from './ChromeTab/index.vue'; -import BetterScroll from './BetterScroll/index.vue'; -import WebSiteLink from './WebSiteLink/index.vue'; -import GithubLink from './GithubLink/index.vue'; -import ThemeSwitch from './ThemeSwitch/index.vue'; -import ImageVerify from './ImageVerify/index.vue'; - -export { CountTo, IconClose, ButtonTab, ChromeTab, BetterScroll, WebSiteLink, GithubLink, ThemeSwitch, ImageVerify }; diff --git a/src/components/index.ts b/src/components/index.ts index 0ea11154..fd962762 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -1,3 +1,3 @@ -export * from './common'; -export * from './custom'; -export * from './svg'; +export const test = { + age: 1 +}; diff --git a/src/components/svg/SvgEmptyData.vue b/src/components/svg/SvgEmptyData.vue deleted file mode 100644 index 9cbf8fb1..00000000 --- a/src/components/svg/SvgEmptyData.vue +++ /dev/null @@ -1,1447 +0,0 @@ - - - - diff --git a/src/components/svg/SvgNetworkError.vue b/src/components/svg/SvgNetworkError.vue deleted file mode 100644 index b2882c76..00000000 --- a/src/components/svg/SvgNetworkError.vue +++ /dev/null @@ -1,408 +0,0 @@ - - - - diff --git a/src/components/svg/SvgNoPermission.vue b/src/components/svg/SvgNoPermission.vue deleted file mode 100644 index 854b7760..00000000 --- a/src/components/svg/SvgNoPermission.vue +++ /dev/null @@ -1,897 +0,0 @@ - - - - diff --git a/src/components/svg/SvgNotFound.vue b/src/components/svg/SvgNotFound.vue deleted file mode 100644 index 53f921c3..00000000 --- a/src/components/svg/SvgNotFound.vue +++ /dev/null @@ -1,504 +0,0 @@ - - - - diff --git a/src/components/svg/SvgServiceError.vue b/src/components/svg/SvgServiceError.vue deleted file mode 100644 index f9eee881..00000000 --- a/src/components/svg/SvgServiceError.vue +++ /dev/null @@ -1,1337 +0,0 @@ - - - - diff --git a/src/components/svg/index.ts b/src/components/svg/index.ts deleted file mode 100644 index 38ca609f..00000000 --- a/src/components/svg/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import SvgNoPermission from './SvgNoPermission.vue'; -import SvgNotFound from './SvgNotFound.vue'; -import SvgServiceError from './SvgServiceError.vue'; -import SvgEmptyData from './SvgEmptyData.vue'; -import SvgNetworkError from './SvgNetworkError.vue'; - -export { SvgNoPermission, SvgNotFound, SvgServiceError, SvgEmptyData, SvgNetworkError }; diff --git a/src/composables/business/index.ts b/src/composables/business/index.ts deleted file mode 100644 index 6cc1e6e2..00000000 --- a/src/composables/business/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './login'; diff --git a/src/composables/business/login.ts b/src/composables/business/login.ts deleted file mode 100644 index 8b660de6..00000000 --- a/src/composables/business/login.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { useAuthStore } from '@/store'; -import { useLoading } from '@/hooks'; -import { setToken, setRefreshToken, setUserInfo, consoleLog } from '@/utils'; -import type { LoginToken, UserInfo } from '@/interface'; -import { useRouterPush, useRouteQuery } from '../common'; - -export function useLogin() { - const auth = useAuthStore(); - const { setAuthState } = useAuthStore(); - const { toLoginRedirect } = useRouterPush(); - const { loginRedirect } = useRouteQuery(); - const { loading, startLoading, endLoading } = useLoading(); - - /** - * 登录注册 - * @param param - 请求参数 - * - phone: 手机号 - * - pwdOrCode: 密码或验证码 - * - type: 登录方式: pwd - 密码登录; sms - 验证码登录 - * @returns 是否登录成功 - */ - async function login(param: { phone: string; pwdOrCode: string; type: 'pwd' | 'sms' }) { - consoleLog(param); // 打印参数(接入接口后去除) - - startLoading(); - // 1.这里调用登录接口获取token和refreshToken - const loginToken: LoginToken = { - token: 'temp-token', - refreshToken: 'temp-refresh-token' - }; - const { token, refreshToken } = loginToken; - setToken(token); - setRefreshToken(refreshToken); - // 2.这里调用获取用户信息的接口 - const userInfo: UserInfo = { - userId: 'temp-user-id', - userName: 'Soybean', - userPhone: '15170283876' - }; - setUserInfo(userInfo); - setAuthState({ token, userInfo }); - - // 3.登录成功后跳转重定向地址 - toLoginRedirect(loginRedirect.value); - window.$notification?.success({ - title: '登录成功!', - content: `欢迎回来,${auth.userInfo.userName}!`, - duration: 3000 - }); - endLoading(); - } - - return { - loading, - login - }; -} diff --git a/src/composables/common/index.ts b/src/composables/common/index.ts deleted file mode 100644 index f98f2473..00000000 --- a/src/composables/common/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './route'; -export * from './router'; -export * from './system'; -export * from './layout'; -export * from './theme'; diff --git a/src/composables/common/layout.ts b/src/composables/common/layout.ts deleted file mode 100644 index c1559b84..00000000 --- a/src/composables/common/layout.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { ref, computed, watch } from 'vue'; -import type { ScrollbarInst } from 'naive-ui'; -import { useThemeStore, useAppStore } from '@/store'; -import { useRouteProps } from './route'; - -export function useLayoutConfig() { - const theme = useThemeStore(); - const app = useAppStore(); - const { setScrollbarInstance } = useAppStore(); - const routeProps = useRouteProps(); - - /** 反转sider */ - const siderInverted = computed(() => theme.navStyle.theme !== 'light'); - - /** 侧边菜单宽度 */ - const siderMenuWidth = computed(() => { - const { collapsed } = app.menu; - const { collapsedWidth, width } = theme.menuStyle; - return collapsed ? collapsedWidth : width; - }); - - /** 反转header */ - const headerInverted = computed(() => (theme.navStyle.theme !== 'dark' ? siderInverted.value : !siderInverted.value)); - - /** 头部定位 */ - const headerPosition = computed(() => (theme.fixedHeaderAndTab ? 'absolute' : 'static')); - - /** 全局头部的高度(px) */ - const headerHeight = computed(() => `${theme.headerStyle.height}px`); - - /** 多页签Tab的高度(px) */ - const multiTabHeight = computed(() => `${theme.multiTabStyle.height}px`); - - /** 全局头部和多页签的总高度 */ - const headerAndMultiTabHeight = computed(() => { - const { - multiTabStyle: { visible, height: tabHeight }, - headerStyle: { height: headerHeight } - } = theme; - const height = visible ? headerHeight + tabHeight : headerHeight; - return `${height}px`; - }); - - /** 全局侧边栏的样式 */ - const globalSiderClassAndStyle = { - class: 'transition-all duration-300 ease-in-out', - style: 'z-index:12;box-shadow: 2px 0 8px 0 rgb(29 35 41 / 5%);' - }; - - /** 纵向flex布局样式 */ - const flexColumnStyle = 'display:flex;flex-direction:column;height:100%;'; - - /** scrollbar的content的样式 */ - const scrollbarContentStyle = computed(() => { - const { fullPage } = routeProps.value; - const height = fullPage ? '100%' : 'auto'; - return `display:flex;flex-direction:column;height:${height};min-height:100%;`; - }); - - /** 滚动条实例 */ - const scrollbar = ref(null); - - watch(scrollbar, newValue => { - if (newValue) { - setScrollbarInstance(newValue); - } - }); - - return { - siderInverted, - siderMenuWidth, - headerInverted, - headerPosition, - headerHeight, - multiTabHeight, - headerAndMultiTabHeight, - globalSiderClassAndStyle, - flexColumnStyle, - scrollbarContentStyle, - scrollbar - }; -} diff --git a/src/composables/common/route.ts b/src/composables/common/route.ts deleted file mode 100644 index 9de01021..00000000 --- a/src/composables/common/route.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { computed, watch } from 'vue'; -import type { WatchOptions } from 'vue'; -import { useRoute } from 'vue-router'; -import { routeName } from '@/router'; -import type { RouteKey } from '@/interface'; - -/** - * 路由属性 - */ -export function useRouteProps() { - const route = useRoute(); - const props = computed(() => { - /** 路由名称 */ - const name = route.name as string; - /** 缓存页面 */ - const keepAlive = Boolean(route.meta?.keepAlive); - /** 视高100% */ - const fullPage = Boolean(route.meta?.fullPage); - - return { - name, - keepAlive, - fullPage - }; - }); - - return props; -} - -/** - * 路由查询参数 - */ -export function useRouteQuery() { - const route = useRoute(); - - /** 登录跳转链接 */ - const loginRedirect = computed(() => { - let url: string | undefined; - if (route.name === routeName('login')) { - url = (route.query?.redirect as string) || ''; - } - return url; - }); - - return { - loginRedirect - }; -} - -/** - * 路由名称变化后的回调 - * @param callback - */ -export function routeNameWatcher(callback: (name: RouteKey) => void, options?: WatchOptions) { - const route = useRoute(); - watch( - () => route.name, - newValue => { - callback(newValue as RouteKey); - }, - options - ); -} - -/** - * 路由全路径变化后的回调 - * @param callback - */ -export function routeFullPathWatcher(callback: (fullPath: string) => void, options?: WatchOptions) { - const route = useRoute(); - watch( - () => route.fullPath, - newValue => { - callback(newValue); - }, - options - ); -} - -/** - * 路由路径变化后的回调 - * @param callback - 回调函数 - * @param options - 监听配置 - */ -export function routePathWatcher(callback: (path: string) => void, options?: WatchOptions) { - const route = useRoute(); - watch( - () => route.path, - newValue => { - callback(newValue); - }, - options - ); -} diff --git a/src/composables/common/router.ts b/src/composables/common/router.ts deleted file mode 100644 index d4eb0faf..00000000 --- a/src/composables/common/router.ts +++ /dev/null @@ -1,99 +0,0 @@ -import { unref } from 'vue'; -import { useRouter, useRoute } from 'vue-router'; -import type { RouteLocationRaw } from 'vue-router'; -import { router as globalRouter, routeName, ROUTE_HOME } from '@/router'; -import type { LoginModuleType } from '@/interface'; - -/** - * 路由跳转 - * @param inSetup - 是否在vue页面/组件的setup里面调用 - */ -export function useRouterPush(inSetup: boolean = true) { - const router = inSetup ? useRouter() : globalRouter; - const route = inSetup ? useRoute() : unref(globalRouter.currentRoute); - - /** - * 路由跳转 - * @param to - 路由 - * @param newTab - 在新的浏览器标签打开 - */ - function routerPush(to: RouteLocationRaw, newTab = false) { - if (newTab) { - const routerData = router.resolve(to); - window.open(routerData.href, '_blank'); - } else { - router.push(to); - } - } - - /** 返回上一级路由 */ - function routerBack() { - router.go(-1); - } - - /** - * 跳转首页 - * @param newTab - 在新的浏览器标签打开 - */ - function toHome(newTab = false) { - routerPush(ROUTE_HOME.path, newTab); - } - - /** - * 重定向地址 - * - current: 取当前的path作为重定向地址 - */ - type LoginRedirect = 'current' | string; - - /** - * 跳转登录页面(通过vue路由) - * @param module - 展示的登录模块 - * @param redirect - 重定向地址(登录成功后跳转的地址) - * @param newTab - 在新的浏览器标签打开 - */ - function toLogin(module: LoginModuleType = 'pwd-login', redirect: LoginRedirect = 'current', newTab = false) { - const routeLocation: RouteLocationRaw = { - name: routeName('login'), - params: { module } - }; - if (redirect) { - let url = redirect; - if (redirect === 'current') { - url = route.fullPath; - } - Object.assign(routeLocation, { query: { redirect: url } }); - } - routerPush(routeLocation, newTab); - } - - /** - * 登陆页跳转登陆页(登录模块切换) - * @param module - 展示的登录模块 - * @param newTab - 在新的浏览器标签打开 - */ - function toCurrentLogin(module: LoginModuleType, newTab = false) { - const { query } = route; - routerPush({ name: routeName('login'), params: { module }, query: { ...query } }, newTab); - } - - /** - * 登录成功后跳转重定向的地址 - * @param redirect - 重定向地址 - */ - function toLoginRedirect(redirect?: string) { - if (redirect) { - routerPush(redirect); - } else { - toHome(); - } - } - - return { - routerPush, - routerBack, - toHome, - toLogin, - toCurrentLogin, - toLoginRedirect - }; -} diff --git a/src/composables/common/system.ts b/src/composables/common/system.ts deleted file mode 100644 index 2f817f56..00000000 --- a/src/composables/common/system.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { useBreakpoints, breakpointsTailwind } from '@vueuse/core'; - -interface AppInfo { - /** 项目名称 */ - name: string; - /** 项目标题 */ - title: string; - /** 项目描述 */ - desc: string; -} - -/** 项目信息 */ -export function useAppInfo(): AppInfo { - const { VITE_APP_NAME: name, VITE_APP_TITLE: title, VITE_APP_DESC: desc } = import.meta.env; - - return { - name, - title, - desc - }; -} - -/** 是否是移动端 */ -export function useIsMobile() { - const breakpoints = useBreakpoints(breakpointsTailwind); - const isMobile = breakpoints.smaller('lg'); - return isMobile; -} diff --git a/src/composables/common/theme.ts b/src/composables/common/theme.ts deleted file mode 100644 index f6f0a945..00000000 --- a/src/composables/common/theme.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { computed, watch } from 'vue'; -import { darkTheme } from 'naive-ui'; -import { useDark } from '@vueuse/core'; -import { useThemeStore } from '@/store'; - -/** 系统暗黑模式 */ -export function useDarkMode() { - const osDark = useDark(); - const theme = useThemeStore(); - const { handleDarkMode } = useThemeStore(); - - /** naive-ui暗黑主题 */ - const naiveTheme = computed(() => (theme.darkMode ? darkTheme : undefined)); - - // windicss 暗黑模式 - const DARK_CLASS = 'dark'; - function getHtmlElement() { - return document.querySelector('html'); - } - function addDarkClass() { - const html = getHtmlElement(); - if (html) { - html.classList.add(DARK_CLASS); - } - } - function removeDarkClass() { - const html = getHtmlElement(); - if (html) { - html.classList.remove(DARK_CLASS); - } - } - - // 监听操作系统主题模式 - watch( - osDark, - newValue => { - handleDarkMode(newValue); - }, - { - immediate: true - } - ); - // 监听主题的暗黑模式 - watch( - () => theme.darkMode, - newValue => { - if (newValue) { - addDarkClass(); - } else { - removeDarkClass(); - } - }, - { immediate: true } - ); - - return { - naiveTheme - }; -} - -/** 更改html样式 */ -export function useHtmlStyle() { - const HIDE_SCROLL_CLASS = 'overflow-hidden'; - - function getHtmlElement() { - return document.querySelector('html'); - } - - function handleHideScroll() { - const html = getHtmlElement(); - if (html) { - html.classList.add(HIDE_SCROLL_CLASS); - } - } - function handleAutoScroll() { - const html = getHtmlElement(); - if (html) { - html.classList.remove(HIDE_SCROLL_CLASS); - } - } - - return { - handleHideScroll, - handleAutoScroll - }; -} diff --git a/src/composables/events/auth.ts b/src/composables/events/auth.ts deleted file mode 100644 index 117df9de..00000000 --- a/src/composables/events/auth.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { onMounted, onUnmounted } from 'vue'; -import { useAuthStore } from '@/store'; - -/** 添加用户权益变更的全局点击事件监听 */ -export function useAuthChangeEvent() { - const { getIsAuthChange } = useAuthStore(); - - function eventHandler(event: MouseEvent) { - const change = getIsAuthChange(); - if (change) { - event.stopPropagation(); - window.location.reload(); - } - } - - function addAuthChangeListener() { - document.addEventListener('click', eventHandler, { capture: true }); - } - - function removeAuthChangeListener() { - document.removeEventListener('click', eventHandler); - } - - onMounted(() => { - addAuthChangeListener(); - }); - - onUnmounted(() => { - removeAuthChangeListener(); - }); -} diff --git a/src/composables/events/global.ts b/src/composables/events/global.ts deleted file mode 100644 index 5dcdfa0b..00000000 --- a/src/composables/events/global.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { useAuthChangeEvent } from './auth'; - -export function useGlobalEvent() { - /** 初始化全局监听事件 */ - function initGlobalEventListener() { - useAuthChangeEvent(); - } - - return { - initGlobalEventListener - }; -} diff --git a/src/composables/events/index.ts b/src/composables/events/index.ts deleted file mode 100644 index 7afcc369..00000000 --- a/src/composables/events/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './global'; diff --git a/src/composables/index.ts b/src/composables/index.ts deleted file mode 100644 index f48672db..00000000 --- a/src/composables/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './common'; -export * from './business'; -export * from './events'; diff --git a/src/config/business/index.ts b/src/config/business/index.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/config/common/index.ts b/src/config/common/index.ts index 434fd0b5..f78beabc 100644 --- a/src/config/common/index.ts +++ b/src/config/common/index.ts @@ -1,3 +1 @@ -export * from './regexp'; export * from './service'; -export * from './map-sdk'; diff --git a/src/config/common/map-sdk.ts b/src/config/common/map-sdk.ts deleted file mode 100644 index e28fa78b..00000000 --- a/src/config/common/map-sdk.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** 百度地图sdk地址 */ -export const BAIDU_MAP_SDK_URL = - 'https://api.map.baidu.com/getscript?v=3.0&ak=KSezYymXPth1DIGILRX3oYN9PxbOQQmU&services=&t=20210201100830&s=1'; - -/** 高德地图sdk地址 */ -export const GAODE_MAP_SDK_URL = 'https://webapi.amap.com/maps?v=2.0&key=e7bd02bd504062087e6563daf4d6721d'; - -/** 腾讯地图sdk地址 */ -export const TENCENT_MAP_SDK_URL = 'https://map.qq.com/api/gljs?v=1.exp&key=A6DBZ-KXPLW-JKSRY-ONZF4-CPHY3-K6BL7'; diff --git a/src/config/common/regexp.ts b/src/config/common/regexp.ts deleted file mode 100644 index 070675bb..00000000 --- a/src/config/common/regexp.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** 手机号码正则 */ -export const REGEXP_PHONE = - /^[1](([3][0-9])|([4][0,1,4-9])|([5][0-3,5-9])|([6][2,5,6,7])|([7][0-8])|([8][0-9])|([9][0-3,5-9]))[0-9]{8}$/; - -/** 邮箱正则 */ -export const REGEXP_EMAIL = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; - -/** 密码正则(密码为8-18位数字/字符/符号的组合) */ -export const REGEXP_PWD = - /^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[()])+$)(?!^.*[\u4E00-\u9FA5].*$)([^(0-9a-zA-Z)]|[()]|[a-z]|[A-Z]|[0-9]){8,18}$/; - -/** 验证码正则(6位数字) */ -export const REGEXP_CODE = /^\d{6}$/; - -/** 图片验证码正则(4位数字) */ -export const REGEXP_IMG_CODE = /^\d{4}$/; diff --git a/src/config/common/service.ts b/src/config/common/service.ts index 34ccb9a3..d90cb47a 100644 --- a/src/config/common/service.ts +++ b/src/config/common/service.ts @@ -4,18 +4,21 @@ export const REQUEST_TIMEOUT = 60 * 1000; /** 错误信息的显示时间 */ export const ERROR_MSG_DURATION = 3 * 1000; -/** 兜底的请求错误code */ +/** 默认的请求错误code */ export const DEFAULT_REQUEST_ERROR_CODE = 'DEFAULT'; -/** 兜底的请求错误文本 */ + +/** 默认的请求错误文本 */ export const DEFAULT_REQUEST_ERROR_MSG = '请求错误~'; /** 请求超时的错误code(为固定值:ECONNABORTED) */ export const REQUEST_TIMEOUT_CODE = 'ECONNABORTED'; + /** 请求超时的错误文本 */ export const REQUEST_TIMEOUT_MSG = '请求超时~'; /** 网络不可用的code */ export const NETWORK_ERROR_CODE = 'NETWORK_ERROR'; + /** 网络不可用的错误文本 */ export const NETWORK_ERROR_MSG = '网络不可用~'; @@ -32,7 +35,8 @@ export const ERROR_STATUS = { 502: '502: 错误网关~', 503: '503: 服务不可用~', 504: '504: 网关超时~', - 505: '505: http版本不支持该请求~' + 505: '505: http版本不支持该请求~', + [DEFAULT_REQUEST_ERROR_CODE]: DEFAULT_REQUEST_ERROR_MSG }; /** 不弹出错误信息的code */ diff --git a/src/directives/index.ts b/src/directives/index.ts deleted file mode 100644 index 37e897fe..00000000 --- a/src/directives/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import type { App } from 'vue'; -import setupNetworkDirective from './network'; -import setupLoginDirective from './login'; - -export function setupDirectives(app: App) { - setupNetworkDirective(app); - setupLoginDirective(app); -} diff --git a/src/directives/login.ts b/src/directives/login.ts deleted file mode 100644 index 450d78f9..00000000 --- a/src/directives/login.ts +++ /dev/null @@ -1,27 +0,0 @@ -import type { App, Directive } from 'vue'; -import { useAuthStore } from '@/store'; -import { useRouterPush } from '@/composables'; - -export default function setupLoginDirective(app: App) { - const auth = useAuthStore(); - const { toLogin } = useRouterPush(false); - function listenerHandler(event: MouseEvent) { - if (!auth.isLogin) { - event.stopPropagation(); - toLogin(); - } - } - - const loginDirective: Directive = { - mounted(el: HTMLElement, binding) { - if (binding.value === false) return; - el.addEventListener('click', listenerHandler, { capture: true }); - }, - unmounted(el: HTMLElement, binding) { - if (binding.value === false) return; - el.removeEventListener('click', listenerHandler); - } - }; - - app.directive('login', loginDirective); -} diff --git a/src/directives/network.ts b/src/directives/network.ts deleted file mode 100644 index 229b092f..00000000 --- a/src/directives/network.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { App, Directive } from 'vue'; -import { NETWORK_ERROR_MSG } from '@/config'; - -export default function setupNetworkDirective(app: App) { - function listenerHandler(event: MouseEvent) { - const hasNetwork = window.navigator.onLine; - if (!hasNetwork) { - window.$message?.error(NETWORK_ERROR_MSG); - event.stopPropagation(); - } - } - - const networkDirective: Directive = { - mounted(el: HTMLElement, binding) { - if (binding.value === false) return; - el.addEventListener('click', listenerHandler, { capture: true }); - }, - unmounted(el: HTMLElement, binding) { - if (binding.value === false) return; - el.removeEventListener('click', listenerHandler); - } - }; - - app.directive('network', networkDirective); -} diff --git a/src/enum/business/index.ts b/src/enum/business/index.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/enum/common/animate.ts b/src/enum/common/animate.ts deleted file mode 100644 index 04f6ab90..00000000 --- a/src/enum/common/animate.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** 动画类型 */ -export enum EnumAnimate { - 'zoom-fade' = '渐变', - 'zoom-out' = '闪现', - 'fade-slide' = '滑动', - 'fade' = '消退', - 'fade-bottom' = '底部消退', - 'fade-scale' = '缩放消退' -} diff --git a/src/enum/common/index.ts b/src/enum/common/index.ts index 8967de30..4a837136 100644 --- a/src/enum/common/index.ts +++ b/src/enum/common/index.ts @@ -1,5 +1,3 @@ -export * from './system'; -export * from './theme'; -export * from './animate'; export * from './typeof'; export * from './storage'; +export * from './service'; diff --git a/src/enum/common/service.ts b/src/enum/common/service.ts new file mode 100644 index 00000000..f4d81362 --- /dev/null +++ b/src/enum/common/service.ts @@ -0,0 +1,6 @@ +/** http请求头的content-type类型 */ +export enum ContentType { + json = 'application/json', + formUrlencoded = 'application/x-www-form-urlencoded', + formData = 'multipart/form-data' +} diff --git a/src/enum/common/storage.ts b/src/enum/common/storage.ts index 0d386edc..05c1be83 100644 --- a/src/enum/common/storage.ts +++ b/src/enum/common/storage.ts @@ -4,7 +4,5 @@ export enum EnumStorageKey { /** 用户刷新token */ 'refresh-koken' = '__REFRESH_TOKEN__', /** 用户信息 */ - 'user-info' = '__USER_INFO__', - /** 多页签路由信息 */ - 'tab-route' = '__TAB_ROUTE__' + 'user-info' = '__USER_INFO__' } diff --git a/src/enum/common/system.ts b/src/enum/common/system.ts deleted file mode 100644 index 8acd9998..00000000 --- a/src/enum/common/system.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** http请求头的content-type类型 */ -export enum ContentType { - json = 'application/json', - formUrlencoded = 'application/x-www-form-urlencoded', - formData = 'multipart/form-data' -} - -/** 登录模块 */ -export enum EnumLoginModule { - 'pwd-login' = '账密登录', - 'code-login' = '手机验证码登录', - 'register' = '注册', - 'reset-pwd' = '重置密码', - 'bind-wechat' = '微信绑定' -} diff --git a/src/enum/common/theme.ts b/src/enum/common/theme.ts deleted file mode 100644 index fa00eddc..00000000 --- a/src/enum/common/theme.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** 导航模式 */ -export enum EnumNavMode { - 'vertical' = '左侧菜单模式', - 'horizontal' = '顶部菜单模式', - 'vertical-mix' = '左侧菜单混合模式', - 'horizontal-mix' = '顶部菜单混合模式' -} - -/** 导航风格 */ -export enum EnumNavTheme { - 'dark' = '暗色侧边栏', - 'light' = '白色侧边栏', - 'header-dark' = '暗色的侧边栏和顶栏' -} - -/** 多页签风格 */ -export enum EnumMultiTabMode { - 'button' = '按钮风格', - 'chrome' = '谷歌风格' -} - -/** 水平模式的菜单位置 */ -export enum EnumHorizontalMenuPosition { - 'flex-start' = '居左', - 'center' = '居中', - 'flex-end' = '居右' -} diff --git a/src/hooks/business/index.ts b/src/hooks/business/index.ts deleted file mode 100644 index 15f3efd8..00000000 --- a/src/hooks/business/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import useAntv from './useAntv'; -import useAntvTool from './useAntvTool'; -import useCountDown from './useCountDown'; -import useSmsCode from './useSmsCode'; -import useImageVerify from './useImageVerify'; -import useAgreement from './useAgreement'; -import useVirtualList from './useVirtualList'; - -export { useAntv, useAntvTool, useCountDown, useSmsCode, useImageVerify, useAgreement, useVirtualList }; diff --git a/src/hooks/business/useAgreement.ts b/src/hooks/business/useAgreement.ts deleted file mode 100644 index 004d99b4..00000000 --- a/src/hooks/business/useAgreement.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ref } from 'vue'; - -/** 使用勾选协议 */ -export default function useAgreement(text = '请勾选 "我已经仔细阅读并接受《用户协议》《隐私权政策》"') { - const agreement = ref(true); - - function isAgree() { - let agree = true; - if (!agreement.value) { - agree = false; - window.$message?.error(text); - } - return agree; - } - - return { - agreement, - isAgree - }; -} diff --git a/src/hooks/business/useAntv.ts b/src/hooks/business/useAntv.ts deleted file mode 100644 index 6d394cb1..00000000 --- a/src/hooks/business/useAntv.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { ref, watch, onMounted } from 'vue'; -import type { ComputedRef } from 'vue'; -import type { Plot } from '@antv/g2plot'; -import { useBoolean } from '@/hooks'; - -interface AntvFn { - new (dom: HTMLElement, options: O): T; -} - -export default function useAntv>( - GraphFn: AntvFn, - graphOptions: ComputedRef -) { - /** 图表dom容器 */ - const domRef = ref(); - - /** 图表实例 */ - const graph = ref(); - - /** 是否可以开始渲染图表 */ - const { bool: canRender, setTrue: setCanRender } = useBoolean(); - - /** 是否是在onMouted第一次渲染图表 */ - const { bool: isFirstRender, setTrue: setIsFirstRender, setFalse: setIsNotFirstRender } = useBoolean(); - - /** 渲染图表 */ - function renderGraph(options: GraphOption) { - if (!domRef.value) return; - if (!graph.value) { - graph.value = new GraphFn(domRef.value, options); - graph.value.render(); - } else { - graph.value.update(options); - } - } - - onMounted(() => { - setCanRender(); - setIsFirstRender(); - renderGraph(graphOptions.value); - setIsNotFirstRender(); - }); - - watch(graphOptions, newValue => { - if (!canRender.value || isFirstRender.value) return; - renderGraph(newValue); - }); - - return { - domRef, - graph - }; -} diff --git a/src/hooks/business/useAntvTool.ts b/src/hooks/business/useAntvTool.ts deleted file mode 100644 index d17994c6..00000000 --- a/src/hooks/business/useAntvTool.ts +++ /dev/null @@ -1,31 +0,0 @@ -export default function useAntvTool() { - /** - * antv滑动调属性 - */ - function getSlider(columns: number, length: number, sliderColor: string) { - return { - start: 1 - columns / length, - end: 1, - foregroundStyle: { fill: sliderColor } - }; - } - - function getFormatter(unit: string) { - const EMPTY = ' '; - function formatter(v: number | null) { - return v === null ? EMPTY : v + unit; - } - return formatter; - } - - function formatLabelWithUnit(value: number | null, unit: string) { - const EMPTY = ' '; - return value === null ? EMPTY : value + unit; - } - - return { - getSlider, - getFormatter, - formatLabelWithUnit - }; -} diff --git a/src/hooks/business/useCountDown.ts b/src/hooks/business/useCountDown.ts deleted file mode 100644 index d3951ba8..00000000 --- a/src/hooks/business/useCountDown.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { ref, computed } from 'vue'; -import { useBoolean } from '../common'; - -/** - * 倒计时 - * @param second - 倒计时的时间(s) - */ -export default function useCountDown(second: number) { - if (second <= 0 && second % 1 !== 0) { - throw Error('倒计时的时间应该为一个正整数!'); - } - const { bool: isComplete, setTrue, setFalse } = useBoolean(false); - - const counts = ref(0); - const isCounting = computed(() => Boolean(counts.value)); - - let intervalId: any; - - /** - * 开始计时 - * @param updateSecond - 更改初时传入的倒计时时间 - */ - function start(updateSecond: number = second) { - if (!counts.value) { - setFalse(); - counts.value = updateSecond; - intervalId = setInterval(() => { - counts.value -= 1; - if (counts.value <= 0) { - clearInterval(intervalId); - setTrue(); - } - }, 1000); - } - } - - /** - * 停止计时 - */ - function stop() { - intervalId = clearInterval(intervalId); - counts.value = 0; - } - - return { - counts, - isCounting, - start, - stop, - isComplete - }; -} diff --git a/src/hooks/business/useImageVerify.ts b/src/hooks/business/useImageVerify.ts deleted file mode 100644 index 3978ead5..00000000 --- a/src/hooks/business/useImageVerify.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { ref, onMounted } from 'vue'; - -/** - * 绘制图形验证码 - * @param width - 图形宽度 - * @param height - 图形高度 - */ -export default function useImageVerify(width = 152, height = 40) { - const domRef = ref(); - const imgCode = ref(''); - - function setImgCode(code: string) { - imgCode.value = code; - } - - function getImgCode() { - if (!domRef.value) return; - imgCode.value = draw(domRef.value, width, height); - } - - onMounted(() => { - getImgCode(); - }); - - return { - domRef, - imgCode, - setImgCode, - getImgCode - }; -} - -function randomNum(min: number, max: number) { - const num = Math.floor(Math.random() * (max - min) + min); - return num; -} - -function randomColor(min: number, max: number) { - const r = randomNum(min, max); - const g = randomNum(min, max); - const b = randomNum(min, max); - return `rgb(${r},${g},${b})`; -} - -function draw(dom: HTMLCanvasElement, width: number, height: number) { - let imgCode = ''; - - const NUMBER_STRING = '0123456789'; - - const ctx = dom.getContext('2d'); - if (!ctx) return imgCode; - - ctx.fillStyle = randomColor(180, 230); - ctx.fillRect(0, 0, width, height); - for (let i = 0; i < 4; i += 1) { - const text = NUMBER_STRING[randomNum(0, NUMBER_STRING.length)]; - imgCode += text; - const fontSize = randomNum(18, 41); - const deg = randomNum(-30, 30); - ctx.font = `${fontSize}px Simhei`; - ctx.textBaseline = 'top'; - ctx.fillStyle = randomColor(80, 150); - ctx.save(); - ctx.translate(30 * i + 23, 15); - ctx.rotate((deg * Math.PI) / 180); - ctx.fillText(text, -15 + 5, -15); - ctx.restore(); - } - for (let i = 0; i < 5; i += 1) { - ctx.beginPath(); - ctx.moveTo(randomNum(0, width), randomNum(0, height)); - ctx.lineTo(randomNum(0, width), randomNum(0, height)); - ctx.strokeStyle = randomColor(180, 230); - ctx.closePath(); - ctx.stroke(); - } - for (let i = 0; i < 41; i += 1) { - ctx.beginPath(); - ctx.arc(randomNum(0, width), randomNum(0, height), 1, 0, 2 * Math.PI); - ctx.closePath(); - ctx.fillStyle = randomColor(150, 200); - ctx.fill(); - } - return imgCode; -} diff --git a/src/hooks/business/useSmsCode.ts b/src/hooks/business/useSmsCode.ts deleted file mode 100644 index 8f1ff39c..00000000 --- a/src/hooks/business/useSmsCode.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { computed } from 'vue'; -import { REGEXP_PHONE } from '@/config'; -import useCountDown from './useCountDown'; - -export default function useSmsCode() { - const { counts, start, isCounting } = useCountDown(60); - const initLabel = '获取验证码'; - const countingLabel = (second: number) => `${second}秒后重新获取`; - const label = computed(() => (isCounting.value ? countingLabel(counts.value) : initLabel)); - - /** 判断手机号码格式是否正确 */ - function isPhoneValid(phone: string) { - let valid = true; - if (phone.trim() === '') { - window.$message?.error('手机号码不能为空!'); - valid = false; - } else if (!REGEXP_PHONE.test(phone)) { - window.$message?.error('手机号码格式错误!'); - valid = false; - } - return valid; - } - - /** - * 获取短信验证码 - * @param phone - 手机号 - */ - async function getSmsCode(phone: string) { - const valid = isPhoneValid(phone); - if (!valid) return; - // 该处调用验证码接口 - window.$message?.success('验证码发送成功!'); - start(); - } - - return { - label, - start, - isCounting, - getSmsCode - }; -} diff --git a/src/hooks/business/useVirtualList.ts b/src/hooks/business/useVirtualList.ts deleted file mode 100644 index b20a6b5f..00000000 --- a/src/hooks/business/useVirtualList.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { ref, watch, computed, nextTick } from 'vue'; -import type { Ref, ComputedRef } from 'vue'; - -interface VirtualListConfig { - /** 容器的高度 */ - containerHeight: number; - /** 渲染的个数 */ - renderNums: number; - /** 触发的高度距离 */ - triggerHeight: number; -} - -/** - * 虚拟列表 - * @param list - 列表数据源 - * @param config - 虚拟列表配置 - */ -export default function useVirtualList( - list: Ref, - config: VirtualListConfig = { - containerHeight: 200, - renderNums: 10, - triggerHeight: 24 - } -) { - const { containerHeight, renderNums, triggerHeight } = config; - - const renderIndex = ref(1); - function setRenderIndex(index: number) { - renderIndex.value = index; - } - function resetRenderIndex() { - setRenderIndex(1); - } - - const dataSource = computed(() => { - const endIndex = renderIndex.value * renderNums; - return list.value.slice(0, endIndex); - }) as ComputedRef; - - function handleScroll(e: Event) { - const target = e.target as HTMLElement; - const needRender = target.scrollHeight - (target.scrollTop + containerHeight) < triggerHeight; - if (needRender) { - nextTick(() => { - setRenderIndex(renderIndex.value + 1); - }); - } - } - - watch(list, () => { - resetRenderIndex(); - }); - - return { - containerHeight, - dataSource, - handleScroll - }; -} diff --git a/src/hooks/common/index.ts b/src/hooks/common/index.ts index 68f2ba14..1d1b78ad 100644 --- a/src/hooks/common/index.ts +++ b/src/hooks/common/index.ts @@ -2,5 +2,6 @@ import useContext from './useContext'; import useBoolean from './useBoolean'; import useLoading from './useLoading'; import useLoadingEmpty from './useLoadingEmpty'; +import useReload from './useReload'; -export { useContext, useBoolean, useLoading, useLoadingEmpty }; +export { useContext, useBoolean, useLoading, useLoadingEmpty, useReload }; diff --git a/src/hooks/common/useReload.ts b/src/hooks/common/useReload.ts new file mode 100644 index 00000000..ffa64c0a --- /dev/null +++ b/src/hooks/common/useReload.ts @@ -0,0 +1,29 @@ +import { nextTick } from 'vue'; +import useBoolean from './useBoolean'; + +/** 重载 */ +export default function useReload() { + // 重载的标志 + const { bool: reloadFlag, setTrue, setFalse } = useBoolean(true); + + /** + * 触发重载 + * @param duration - 延迟时间(ms) + */ + async function handleReload(duration = 0) { + setFalse(); + await nextTick(); + if (duration) { + setTimeout(() => { + setTrue(); + }, duration); + } else { + setTrue(); + } + } + + return { + reloadFlag, + handleReload + }; +} diff --git a/src/hooks/index.ts b/src/hooks/index.ts index 5f193c38..d0b93236 100644 --- a/src/hooks/index.ts +++ b/src/hooks/index.ts @@ -1,2 +1 @@ export * from './common'; -export * from './business'; diff --git a/src/interface/business/auth.ts b/src/interface/business/auth.ts deleted file mode 100644 index 01fd6622..00000000 --- a/src/interface/business/auth.ts +++ /dev/null @@ -1,17 +0,0 @@ -/** 登录token */ -export interface LoginToken { - /** token */ - token: string; - /** 刷新token(用户token到期后换取新的token) */ - refreshToken: string; -} - -/** 用户信息 */ -export interface UserInfo { - /** 用户id */ - userId: string; - /** 用户名 */ - userName: string; - /** 用户手机号 */ - userPhone: string; -} diff --git a/src/interface/business/demo.ts b/src/interface/business/demo.ts deleted file mode 100644 index 351913f3..00000000 --- a/src/interface/business/demo.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** 数据字典 */ -export interface Dictionary { - /** 字典名字 */ - label: string; - /** 要素名字(一级指标) */ - charactorLabel: string; - /** 要素下的指标key(二级指标) */ - indicatorKey: string; - /** 要素下的指标名字(二级指标) */ - indicatorLabel: string; - /** 备注 */ - remark: string; - /** 指标公式 */ - formula: string; -} diff --git a/src/interface/business/index.ts b/src/interface/business/index.ts deleted file mode 100644 index eb7b6c53..00000000 --- a/src/interface/business/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './auth'; -export * from './demo'; -export * from './website'; -export * from './s-graph'; diff --git a/src/interface/business/s-graph.ts b/src/interface/business/s-graph.ts deleted file mode 100644 index 69fc94bc..00000000 --- a/src/interface/business/s-graph.ts +++ /dev/null @@ -1,53 +0,0 @@ -/** 缩放比例取值范围 */ -export type SScaleRange = [number, number]; - -/** 偏移量 */ -export interface STranslate { - /** X偏移量 */ - x: number; - /** Y偏移量 */ - y: number; -} - -/** 位置 */ -export interface SPosition { - /** x坐标 */ - x: number; - /** y坐标 */ - y: number; -} - -/** 坐标 */ -export interface SCoord { - /** x坐标 */ - x: number; - /** y坐标 */ - y: number; -} - -/** 节点尺寸 */ -export interface SNodeSize { - /** 节点宽 */ - w: number; - /** 节点高 */ - h: number; -} - -/** 图的节点 */ -export interface SGraphNode extends SCoord { - /** 节点id */ - id: string; - /** 节点名称 */ - label: string; -} - -/** 图的关系线 */ -export interface SGraphEdge { - sourceCoord: SCoord; - targetCoord: SCoord; -} - -export interface SGraphData { - nodes: SGraphNode[]; - edges: SGraphEdge[]; -} diff --git a/src/interface/business/website.ts b/src/interface/business/website.ts deleted file mode 100644 index 470d6f04..00000000 --- a/src/interface/business/website.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** 网址导航 */ -export interface Website { - /** 网址名称 */ - title: string; - /** 网址简称 */ - abbr: string; - /** 网址图标(网络地址,形状为正方形) */ - logo: string; - /** 描述 */ - desc: string; -} - -/** 网址导航 分类 */ -export interface WebsiteCategory { - /** 分类名称 */ - title: string; - children: WebsiteCategory[] | Website[]; -} diff --git a/src/interface/common/api.ts b/src/interface/common/api.ts deleted file mode 100644 index 52e89481..00000000 --- a/src/interface/common/api.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** 数据字典 */ -export interface ResponseDictionary { - /** 字典名字 */ - modelName: string; - /** 要素名字(一级指标) */ - modelCharactorName: string; - /** 要素下的指标key(二级指标) */ - modelIndicator: string; - /** 要素下的指标名字(二级指标) */ - modelIndicatorName: string; - /** 备注 */ - remarks: string; - /** 指标公式 */ - formula: string; -} diff --git a/src/interface/common/expose.ts b/src/interface/common/expose.ts deleted file mode 100644 index 4c9bce76..00000000 --- a/src/interface/common/expose.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { Ref } from 'vue'; -import BScroll from '@better-scroll/core'; - -/** BetterScroll暴露出的数据的类型 */ -export interface ExposeBetterScroll { - bsInstance: Ref; -} diff --git a/src/interface/common/index.ts b/src/interface/common/index.ts deleted file mode 100644 index 6c6a05af..00000000 --- a/src/interface/common/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './theme'; -export * from './system'; -export * from './route'; -export * from './expose'; -export * from './service'; -export * from './api'; diff --git a/src/interface/common/route.ts b/src/interface/common/route.ts deleted file mode 100644 index b2e54151..00000000 --- a/src/interface/common/route.ts +++ /dev/null @@ -1,44 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; - -/** 导入的路由模块 */ -export type ImportedRouteModules = Record; - -/** 路由声明的key */ -export type RouteKey = - | 'root' - | 'login' - | 'not-found' - | 'no-permission' - | 'service-error' - // 自定义路由 - | 'dashboard' - | 'dashboard_analysis' - | 'dashboard_workbench' - | 'document' - | 'document_vue' - | 'document_vite' - | 'document_naive' - | 'document_project' - | 'plugin' - | 'plugin_map' - | 'plugin_video' - | 'plugin_editor' - | 'plugin_editor_quill' - | 'plugin_editor_markdown' - | 'plugin_copy' - | 'plugin_icon' - | 'plugin_print' - | 'plugin_swiper' - | 'component' - | 'component_button' - | 'component_card' - | 'component_table' - | 'multi-menu' - | 'multi-menu_first' - | 'multi-menu_first_second' - | 'exception' - | 'exception_403' - | 'exception_404' - | 'exception_500' - | 'about' - | 'website'; diff --git a/src/interface/common/service.ts b/src/interface/common/service.ts deleted file mode 100644 index f86df036..00000000 --- a/src/interface/common/service.ts +++ /dev/null @@ -1,46 +0,0 @@ -/** - * 请求服务的错误类型: - * - axios: axios错误:网络错误, 请求超时, 默认的兜底错误 - * - http: 请求成功,响应的状态码非200的错误 - * - backend: 请求成功,响应的状态码为200,由后端定义的业务错误 - */ -export type RequestServiceErrorType = 'axios' | 'http' | 'backend'; - -/** 请求服务的错误 */ -export interface RequestServiceError { - /** 请求服务的错误类型 */ - type: RequestServiceErrorType; - /** 错误码 */ - code: string | number; - /** 错误信息 */ - msg: string; -} - -/** 后端接口返回的类型结构 */ -export interface BackendServiceResult { - /** 状态码 */ - code: number; - /** 接口数据 */ - data: any; - /** 接口消息 */ - message: string; -} - -/** 自定义的请求成功结果 */ -export interface CustomSuccessRequestResult { - /** 请求错误 */ - error: null; - /** 请求数据 */ - data: ResponseData; -} - -/** 自定义的请求失败结果 */ -export interface CustomFailRequestResult { - /** 请求错误 */ - error: RequestServiceError; - /** 请求数据 */ - data: null; -} - -/** 自定义的请求结果 */ -export type CustomRequestResult = CustomSuccessRequestResult | CustomFailRequestResult; diff --git a/src/interface/common/system.ts b/src/interface/common/system.ts deleted file mode 100644 index 44b2cd0e..00000000 --- a/src/interface/common/system.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { RouteLocationNormalizedLoaded } from 'vue-router'; -import type { MenuOption } from 'naive-ui'; -import { EnumLoginModule } from '@/enum'; - -/** 菜单项配置 */ -export type GlobalMenuOption = MenuOption & { - routeName: string; - routePath: string; -}; - -/** 多页签 */ -export interface MultiTab { - routes: MultiTabRoute[]; - activeRoute: string; -} -export type MultiTabRoute = Partial & { - path: string; - fullPath: string; -}; - -/** 登录模块 */ -export type LoginModuleType = keyof typeof EnumLoginModule; - -/** npm依赖包版本信息 */ -export interface VersionInfo { - name: string; - version: string; -} diff --git a/src/interface/common/theme.ts b/src/interface/common/theme.ts deleted file mode 100644 index 418660b7..00000000 --- a/src/interface/common/theme.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { EnumAnimate, EnumNavMode, EnumNavTheme, EnumMultiTabMode, EnumHorizontalMenuPosition } from '@/enum'; - -export interface ThemeSettings { - /** 深色模式 */ - darkMode: boolean; - /** 主题颜色 */ - themeColor: string; - /** 主题颜色列表 */ - themeColorList: string[]; - /** 其他颜色 */ - otherColor: OtherColor; - /** 导航样式 */ - navStyle: NavStyle; - /** 菜单样式 */ - menuStyle: MenuStyle; - /** 头部样式 */ - headerStyle: HeaderStyle; - /** 多页签样式 */ - multiTabStyle: MultiTabStyle; - /** 面包屑样式 */ - crumbsStyle: CrumbsStyle; - /** 底部样式 */ - footerStyle: FooterStyle; - /** 页面样式 */ - pageStyle: PageStyle; - /** 固定头部和多页签 */ - fixedHeaderAndTab: boolean; - /** 显示重载按钮 */ - showReload: boolean; -} - -interface OtherColor { - /** 信息 */ - info: string; - /** 成功 */ - success: string; - /** 警告 */ - warning: string; - /** 错误 */ - error: string; -} - -export type NavMode = keyof typeof EnumNavMode; - -type NavTheme = keyof typeof EnumNavTheme; - -interface NavStyle { - /** 导航模式 */ - mode: NavMode; - /** 导航主题 */ - theme: NavTheme; -} - -interface HeaderStyle { - /** 顶部高度 */ - height: number; - /** 背景颜色 */ - bgColor: string; -} - -export type HorizontalMenuPosition = keyof typeof EnumHorizontalMenuPosition; - -interface HorizontalMenuPositionList { - value: HorizontalMenuPosition; - label: EnumHorizontalMenuPosition; -} - -interface MenuStyle { - /** 菜单宽度 */ - width: number; - /** 菜单折叠时的宽度 */ - collapsedWidth: number; - /** 混合菜单的宽度 */ - mixWidth: number; - /** 混合菜单折叠时的宽度 */ - mixCollapsedWidth: number; - /** 水平模式的菜单的位置 */ - horizontalPosition: HorizontalMenuPosition; - /** 水平模式的菜单的位置列表 */ - horizontalPositionList: HorizontalMenuPositionList[]; -} - -export type MultiTabMode = keyof typeof EnumMultiTabMode; - -interface MultiTabModeList { - value: MultiTabMode; - label: EnumMultiTabMode; -} - -interface MultiTabStyle { - /** 多页签高度 */ - height: number; - /** 多页签可见 */ - visible: boolean; - /** 背景颜色 */ - bgColor: string; - /** 多页签模式 */ - mode: MultiTabMode; - /** 开启多页签缓存 */ - isCache: boolean; - /** 多页签模式列表 */ - modeList: MultiTabModeList[]; -} - -interface CrumbsStyle { - /** 面包屑可见 */ - visible: boolean; - /** 显示图标 */ - showIcon: boolean; -} - -interface FooterStyle { - /** 底部高度 */ - height: number; -} - -export type AnimateType = keyof typeof EnumAnimate; - -interface AnimateTypeList { - value: AnimateType; - label: EnumAnimate; -} - -interface PageStyle { - /** 页面是否开启动画 */ - animate: boolean; - /** 动画类型 */ - animateType: AnimateType; - /** 动画类型列表 */ - animateTypeList: AnimateTypeList[]; -} diff --git a/src/interface/index.ts b/src/interface/index.ts index 5f193c38..a17be796 100644 --- a/src/interface/index.ts +++ b/src/interface/index.ts @@ -1,2 +1,3 @@ -export * from './common'; -export * from './business'; +export interface TestType { + name: string; +} diff --git a/src/layouts/BasicLayout/components/HorizontalLayout/index.vue b/src/layouts/BasicLayout/components/HorizontalLayout/index.vue deleted file mode 100644 index 643738e3..00000000 --- a/src/layouts/BasicLayout/components/HorizontalLayout/index.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - - diff --git a/src/layouts/BasicLayout/components/HorizontalMixLayout/index.vue b/src/layouts/BasicLayout/components/HorizontalMixLayout/index.vue deleted file mode 100644 index 8a92954a..00000000 --- a/src/layouts/BasicLayout/components/HorizontalMixLayout/index.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - diff --git a/src/layouts/BasicLayout/components/VerticalLayout/index.vue b/src/layouts/BasicLayout/components/VerticalLayout/index.vue deleted file mode 100644 index 63694e05..00000000 --- a/src/layouts/BasicLayout/components/VerticalLayout/index.vue +++ /dev/null @@ -1,64 +0,0 @@ - - - - diff --git a/src/layouts/BasicLayout/components/VerticalMixLayout/index.vue b/src/layouts/BasicLayout/components/VerticalMixLayout/index.vue deleted file mode 100644 index baf7f1c6..00000000 --- a/src/layouts/BasicLayout/components/VerticalMixLayout/index.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - - diff --git a/src/layouts/BasicLayout/components/index.ts b/src/layouts/BasicLayout/components/index.ts deleted file mode 100644 index 34db5578..00000000 --- a/src/layouts/BasicLayout/components/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import VerticalLayout from './VerticalLayout/index.vue'; -import VerticalMixLayout from './VerticalMixLayout/index.vue'; -import HorizontalLayout from './HorizontalLayout/index.vue'; -import HorizontalMixLayout from './HorizontalMixLayout/index.vue'; - -export { VerticalLayout, VerticalMixLayout, HorizontalLayout, HorizontalMixLayout }; diff --git a/src/layouts/BasicLayout/index.vue b/src/layouts/BasicLayout/index.vue deleted file mode 100644 index 58c6b432..00000000 --- a/src/layouts/BasicLayout/index.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - diff --git a/src/layouts/BlankLayout/index.vue b/src/layouts/BlankLayout/index.vue deleted file mode 100644 index 193a194b..00000000 --- a/src/layouts/BlankLayout/index.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/src/layouts/Layout/index.vue b/src/layouts/Layout/index.vue new file mode 100644 index 00000000..fb64231b --- /dev/null +++ b/src/layouts/Layout/index.vue @@ -0,0 +1,11 @@ + + + + diff --git a/src/layouts/common/GlobalContent/index.vue b/src/layouts/common/GlobalContent/index.vue deleted file mode 100644 index fffecc5c..00000000 --- a/src/layouts/common/GlobalContent/index.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalFooter/index.vue b/src/layouts/common/GlobalFooter/index.vue deleted file mode 100644 index 0ebbaabd..00000000 --- a/src/layouts/common/GlobalFooter/index.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalHeader/components/FullScreen.vue b/src/layouts/common/GlobalHeader/components/FullScreen.vue deleted file mode 100644 index 2618412c..00000000 --- a/src/layouts/common/GlobalHeader/components/FullScreen.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalHeader/components/GithubSite.vue b/src/layouts/common/GlobalHeader/components/GithubSite.vue deleted file mode 100644 index e0992af9..00000000 --- a/src/layouts/common/GlobalHeader/components/GithubSite.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalHeader/components/GlobalBreadcrumb.vue b/src/layouts/common/GlobalHeader/components/GlobalBreadcrumb.vue deleted file mode 100644 index f5a84ebb..00000000 --- a/src/layouts/common/GlobalHeader/components/GlobalBreadcrumb.vue +++ /dev/null @@ -1,91 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalHeader/components/HeaderMenu.vue b/src/layouts/common/GlobalHeader/components/HeaderMenu.vue deleted file mode 100644 index dd7385e3..00000000 --- a/src/layouts/common/GlobalHeader/components/HeaderMenu.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalHeader/components/MenuCollapse.vue b/src/layouts/common/GlobalHeader/components/MenuCollapse.vue deleted file mode 100644 index 9d982606..00000000 --- a/src/layouts/common/GlobalHeader/components/MenuCollapse.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalHeader/components/SettingDrawerButton.vue b/src/layouts/common/GlobalHeader/components/SettingDrawerButton.vue deleted file mode 100644 index cd5e7e88..00000000 --- a/src/layouts/common/GlobalHeader/components/SettingDrawerButton.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalHeader/components/ThemeMode.vue b/src/layouts/common/GlobalHeader/components/ThemeMode.vue deleted file mode 100644 index afbfc97e..00000000 --- a/src/layouts/common/GlobalHeader/components/ThemeMode.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalHeader/components/UserAvatar.vue b/src/layouts/common/GlobalHeader/components/UserAvatar.vue deleted file mode 100644 index 3b2bdf18..00000000 --- a/src/layouts/common/GlobalHeader/components/UserAvatar.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalHeader/components/index.ts b/src/layouts/common/GlobalHeader/components/index.ts deleted file mode 100644 index bf5e1e42..00000000 --- a/src/layouts/common/GlobalHeader/components/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import HeaderMenu from './HeaderMenu.vue'; -import GlobalBreadcrumb from './GlobalBreadcrumb.vue'; -import UserAvatar from './UserAvatar.vue'; -import MenuCollapse from './MenuCollapse.vue'; -import ThemeMode from './ThemeMode.vue'; -import FullScreen from './FullScreen.vue'; -import SettingDrawerButton from './SettingDrawerButton.vue'; -import GithubSite from './GithubSite.vue'; - -export { - HeaderMenu, - GlobalBreadcrumb, - UserAvatar, - MenuCollapse, - ThemeMode, - FullScreen, - SettingDrawerButton, - GithubSite -}; diff --git a/src/layouts/common/GlobalHeader/index.vue b/src/layouts/common/GlobalHeader/index.vue deleted file mode 100644 index db65b413..00000000 --- a/src/layouts/common/GlobalHeader/index.vue +++ /dev/null @@ -1,58 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalLogo/index.vue b/src/layouts/common/GlobalLogo/index.vue deleted file mode 100644 index d676d5f9..00000000 --- a/src/layouts/common/GlobalLogo/index.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalMenu/index.vue b/src/layouts/common/GlobalMenu/index.vue deleted file mode 100644 index fd740ab1..00000000 --- a/src/layouts/common/GlobalMenu/index.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalSearch/components/SearchFooter.vue b/src/layouts/common/GlobalSearch/components/SearchFooter.vue deleted file mode 100644 index f7a1d868..00000000 --- a/src/layouts/common/GlobalSearch/components/SearchFooter.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalSearch/components/SearchModal.vue b/src/layouts/common/GlobalSearch/components/SearchModal.vue deleted file mode 100644 index b4bd93aa..00000000 --- a/src/layouts/common/GlobalSearch/components/SearchModal.vue +++ /dev/null @@ -1,132 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalSearch/components/SearchResult.vue b/src/layouts/common/GlobalSearch/components/SearchResult.vue deleted file mode 100644 index f4797ece..00000000 --- a/src/layouts/common/GlobalSearch/components/SearchResult.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalSearch/components/index.ts b/src/layouts/common/GlobalSearch/components/index.ts deleted file mode 100644 index acfa0425..00000000 --- a/src/layouts/common/GlobalSearch/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import SearchModal from './SearchModal.vue'; - -export { SearchModal }; diff --git a/src/layouts/common/GlobalSearch/index.vue b/src/layouts/common/GlobalSearch/index.vue deleted file mode 100644 index 973f6c89..00000000 --- a/src/layouts/common/GlobalSearch/index.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalTab/components/MultiTab/components/ContextMenu.vue b/src/layouts/common/GlobalTab/components/MultiTab/components/ContextMenu.vue deleted file mode 100644 index d87aedd7..00000000 --- a/src/layouts/common/GlobalTab/components/MultiTab/components/ContextMenu.vue +++ /dev/null @@ -1,140 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalTab/components/MultiTab/components/index.ts b/src/layouts/common/GlobalTab/components/MultiTab/components/index.ts deleted file mode 100644 index 344a7087..00000000 --- a/src/layouts/common/GlobalTab/components/MultiTab/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ContextMenu from './ContextMenu.vue'; - -export { ContextMenu }; diff --git a/src/layouts/common/GlobalTab/components/MultiTab/index.vue b/src/layouts/common/GlobalTab/components/MultiTab/index.vue deleted file mode 100644 index 3bcbb15e..00000000 --- a/src/layouts/common/GlobalTab/components/MultiTab/index.vue +++ /dev/null @@ -1,113 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalTab/components/ReloadButton/index.vue b/src/layouts/common/GlobalTab/components/ReloadButton/index.vue deleted file mode 100644 index 1e3151b8..00000000 --- a/src/layouts/common/GlobalTab/components/ReloadButton/index.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - diff --git a/src/layouts/common/GlobalTab/components/index.ts b/src/layouts/common/GlobalTab/components/index.ts deleted file mode 100644 index 386d9184..00000000 --- a/src/layouts/common/GlobalTab/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import MultiTab from './MultiTab/index.vue'; -import ReloadButton from './ReloadButton/index.vue'; - -export { MultiTab, ReloadButton }; diff --git a/src/layouts/common/GlobalTab/index.vue b/src/layouts/common/GlobalTab/index.vue deleted file mode 100644 index f8b8e422..00000000 --- a/src/layouts/common/GlobalTab/index.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - diff --git a/src/layouts/common/HeaderPlaceholder/index.vue b/src/layouts/common/HeaderPlaceholder/index.vue deleted file mode 100644 index 114d491c..00000000 --- a/src/layouts/common/HeaderPlaceholder/index.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - - diff --git a/src/layouts/common/MixSider/components/MixMenu.vue b/src/layouts/common/MixSider/components/MixMenu.vue deleted file mode 100644 index 61f3e55f..00000000 --- a/src/layouts/common/MixSider/components/MixMenu.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - diff --git a/src/layouts/common/MixSider/components/MixMenuCollapse.vue b/src/layouts/common/MixSider/components/MixMenuCollapse.vue deleted file mode 100644 index d9eb87b5..00000000 --- a/src/layouts/common/MixSider/components/MixMenuCollapse.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/src/layouts/common/MixSider/components/MixMenuDrawer.vue b/src/layouts/common/MixSider/components/MixMenuDrawer.vue deleted file mode 100644 index 1bb42d32..00000000 --- a/src/layouts/common/MixSider/components/MixMenuDrawer.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - diff --git a/src/layouts/common/MixSider/components/index.ts b/src/layouts/common/MixSider/components/index.ts deleted file mode 100644 index 85d8b1ce..00000000 --- a/src/layouts/common/MixSider/components/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import MixMenu from './MixMenu.vue'; -import MixMenuCollapse from './MixMenuCollapse.vue'; -import MixMenuDrawer from './MixMenuDrawer.vue'; - -export { MixMenu, MixMenuCollapse, MixMenuDrawer }; diff --git a/src/layouts/common/MixSider/index.vue b/src/layouts/common/MixSider/index.vue deleted file mode 100644 index ce04f6cb..00000000 --- a/src/layouts/common/MixSider/index.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/DarkMode/index.vue b/src/layouts/common/SettingDrawer/components/DarkMode/index.vue deleted file mode 100644 index cf91a1f6..00000000 --- a/src/layouts/common/SettingDrawer/components/DarkMode/index.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/DrawerButton/index.vue b/src/layouts/common/SettingDrawer/components/DrawerButton/index.vue deleted file mode 100644 index 4b658f8d..00000000 --- a/src/layouts/common/SettingDrawer/components/DrawerButton/index.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/NavMode/components/NavType.vue b/src/layouts/common/SettingDrawer/components/NavMode/components/NavType.vue deleted file mode 100644 index 9c37c336..00000000 --- a/src/layouts/common/SettingDrawer/components/NavMode/components/NavType.vue +++ /dev/null @@ -1,59 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/NavMode/components/index.ts b/src/layouts/common/SettingDrawer/components/NavMode/components/index.ts deleted file mode 100644 index 1ffab7cd..00000000 --- a/src/layouts/common/SettingDrawer/components/NavMode/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import NavType from './NavType.vue'; - -export { NavType }; diff --git a/src/layouts/common/SettingDrawer/components/NavMode/index.vue b/src/layouts/common/SettingDrawer/components/NavMode/index.vue deleted file mode 100644 index 0e26080a..00000000 --- a/src/layouts/common/SettingDrawer/components/NavMode/index.vue +++ /dev/null @@ -1,37 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/PageFunc/index.vue b/src/layouts/common/SettingDrawer/components/PageFunc/index.vue deleted file mode 100644 index 741ffde6..00000000 --- a/src/layouts/common/SettingDrawer/components/PageFunc/index.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/PageView/index.vue b/src/layouts/common/SettingDrawer/components/PageView/index.vue deleted file mode 100644 index de1e892b..00000000 --- a/src/layouts/common/SettingDrawer/components/PageView/index.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/SystemTheme/index.vue b/src/layouts/common/SettingDrawer/components/SystemTheme/index.vue deleted file mode 100644 index 627872b0..00000000 --- a/src/layouts/common/SettingDrawer/components/SystemTheme/index.vue +++ /dev/null @@ -1,18 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/ThemeConfig/index.vue b/src/layouts/common/SettingDrawer/components/ThemeConfig/index.vue deleted file mode 100644 index d317458f..00000000 --- a/src/layouts/common/SettingDrawer/components/ThemeConfig/index.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/common/ColorBlock.vue b/src/layouts/common/SettingDrawer/components/common/ColorBlock.vue deleted file mode 100644 index 42f5c6cd..00000000 --- a/src/layouts/common/SettingDrawer/components/common/ColorBlock.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/common/SettingMenuItem.vue b/src/layouts/common/SettingDrawer/components/common/SettingMenuItem.vue deleted file mode 100644 index f29e6610..00000000 --- a/src/layouts/common/SettingDrawer/components/common/SettingMenuItem.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - - diff --git a/src/layouts/common/SettingDrawer/components/common/index.ts b/src/layouts/common/SettingDrawer/components/common/index.ts deleted file mode 100644 index 169aa21b..00000000 --- a/src/layouts/common/SettingDrawer/components/common/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import ColorBlock from './ColorBlock.vue'; -import SettingMenuItem from './SettingMenuItem.vue'; - -export { ColorBlock, SettingMenuItem }; diff --git a/src/layouts/common/SettingDrawer/components/index.ts b/src/layouts/common/SettingDrawer/components/index.ts deleted file mode 100644 index e1318ab3..00000000 --- a/src/layouts/common/SettingDrawer/components/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import DarkMode from './DarkMode/index.vue'; -import NavMode from './NavMode/index.vue'; -import SystemTheme from './SystemTheme/index.vue'; -import PageFunc from './PageFunc/index.vue'; -import PageView from './PageView/index.vue'; -import ThemeConfig from './ThemeConfig/index.vue'; -import DrawerButton from './DrawerButton/index.vue'; - -export { DarkMode, NavMode, SystemTheme, PageFunc, PageView, ThemeConfig, DrawerButton }; diff --git a/src/layouts/common/SettingDrawer/index.vue b/src/layouts/common/SettingDrawer/index.vue deleted file mode 100644 index ec7b6862..00000000 --- a/src/layouts/common/SettingDrawer/index.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - - diff --git a/src/layouts/common/SpacePlaceholder/index.vue b/src/layouts/common/SpacePlaceholder/index.vue deleted file mode 100644 index 5f05021a..00000000 --- a/src/layouts/common/SpacePlaceholder/index.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - diff --git a/src/layouts/common/VerticalMixSider/components/MixMenu.vue b/src/layouts/common/VerticalMixSider/components/MixMenu.vue deleted file mode 100644 index 61f3e55f..00000000 --- a/src/layouts/common/VerticalMixSider/components/MixMenu.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - diff --git a/src/layouts/common/VerticalMixSider/components/MixMenuCollapse.vue b/src/layouts/common/VerticalMixSider/components/MixMenuCollapse.vue deleted file mode 100644 index d9eb87b5..00000000 --- a/src/layouts/common/VerticalMixSider/components/MixMenuCollapse.vue +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/src/layouts/common/VerticalMixSider/components/MixMenuDrawer.vue b/src/layouts/common/VerticalMixSider/components/MixMenuDrawer.vue deleted file mode 100644 index 1bb42d32..00000000 --- a/src/layouts/common/VerticalMixSider/components/MixMenuDrawer.vue +++ /dev/null @@ -1,82 +0,0 @@ - - - - diff --git a/src/layouts/common/VerticalMixSider/components/index.ts b/src/layouts/common/VerticalMixSider/components/index.ts deleted file mode 100644 index 85d8b1ce..00000000 --- a/src/layouts/common/VerticalMixSider/components/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import MixMenu from './MixMenu.vue'; -import MixMenuCollapse from './MixMenuCollapse.vue'; -import MixMenuDrawer from './MixMenuDrawer.vue'; - -export { MixMenu, MixMenuCollapse, MixMenuDrawer }; diff --git a/src/layouts/common/VerticalMixSider/index.vue b/src/layouts/common/VerticalMixSider/index.vue deleted file mode 100644 index ce04f6cb..00000000 --- a/src/layouts/common/VerticalMixSider/index.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - diff --git a/src/layouts/common/index.ts b/src/layouts/common/index.ts deleted file mode 100644 index 6c2449d8..00000000 --- a/src/layouts/common/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import GlobalHeader from './GlobalHeader/index.vue'; -import GlobalContent from './GlobalContent/index.vue'; -import GlobalFooter from './GlobalFooter/index.vue'; -import GlobalLogo from './GlobalLogo/index.vue'; -import GlobalMenu from './GlobalMenu/index.vue'; -import GlobalTab from './GlobalTab/index.vue'; -import VerticalMixSider from './VerticalMixSider/index.vue'; -import MixSider from './MixSider/index.vue'; -import SpacePlaceholder from './SpacePlaceholder/index.vue'; -import HeaderPlaceholder from './HeaderPlaceholder/index.vue'; -import SettingDrawer from './SettingDrawer/index.vue'; - -export { - GlobalHeader, - GlobalContent, - GlobalFooter, - GlobalLogo, - GlobalMenu, - GlobalTab, - VerticalMixSider, - MixSider, - SpacePlaceholder, - HeaderPlaceholder, - SettingDrawer -}; diff --git a/src/layouts/index.ts b/src/layouts/index.ts index 90c3e369..66e9dc22 100644 --- a/src/layouts/index.ts +++ b/src/layouts/index.ts @@ -1,4 +1,3 @@ -import BasicLayout from './BasicLayout/index.vue'; -import BlankLayout from './BlankLayout/index.vue'; +import Layout from './Layout/index.vue'; -export { BasicLayout, BlankLayout }; +export { Layout }; diff --git a/src/main.ts b/src/main.ts index 85fb667c..07ace1c4 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,29 +1,19 @@ import { createApp } from 'vue'; +import { setupAssets } from '@/plugins'; +import { setupRouter } from '@/router'; +import { setupStore } from '@/store'; import App from './App.vue'; -import AppProvider from './AppProvider.vue'; -import { setupStore } from './store'; -import { setupRouter } from './router'; -import { setupAssets } from './plugins'; -import { setupDirectives } from './directives'; function setupPlugins() { - /** 引入静态资源 */ setupAssets(); } async function setupApp() { - const appProvider = createApp(AppProvider); const app = createApp(App); // 挂载全局状态 setupStore(app); - // 优先挂载一下 appProvider 解决路由守卫,Axios中可使用,LoadingBar,Dialog,Message 等之类组件 - appProvider.mount('#appProvider'); - - // 挂载自定义vue指令 - setupDirectives(app); - // 挂载路由 await setupRouter(app); @@ -32,5 +22,4 @@ async function setupApp() { } setupPlugins(); - setupApp(); diff --git a/src/plugins/assets.ts b/src/plugins/assets.ts index 04c8a700..63c1c20c 100644 --- a/src/plugins/assets.ts +++ b/src/plugins/assets.ts @@ -1,8 +1,5 @@ import 'virtual:windi.css'; -import 'swiper/css'; -import 'swiper/css/navigation'; -import 'swiper/css/pagination'; import '../styles/css/global.css'; -/** 引入静态资源 */ +/** 引入静态资源(全局引入css、字体等) */ export default function setupAssets() {} diff --git a/src/router/constant/index.ts b/src/router/constant/index.ts deleted file mode 100644 index a5abd7c2..00000000 --- a/src/router/constant/index.ts +++ /dev/null @@ -1,319 +0,0 @@ -import type { RouteKey } from '@/interface'; - -interface RouteConst { - /** 路由名称 */ - name: RouteKey; - /** 路由路径 */ - path: string; - /** 路由标题 */ - title: string; -} - -/** 声明的路由名称、路径和标题 */ -const routeConstMap = new Map([ - [ - 'root', - { - name: 'root', - path: '/', - title: 'Root' - } - ], - [ - 'login', - { - name: 'login', - path: '/login', - title: '登录' - } - ], - [ - 'no-permission', - { - name: 'no-permission', - path: '/403', - title: '无权限' - } - ], - [ - 'not-found', - { - name: 'not-found', - path: '/404', - title: '未找到' - } - ], - [ - 'service-error', - { - name: 'service-error', - path: '/500', - title: '服务器错误' - } - ], - [ - 'dashboard', - { - name: 'dashboard', - path: '/dashboard', - title: '仪表盘' - } - ], - [ - 'dashboard_analysis', - { - name: 'dashboard_analysis', - path: '/dashboard/analysis', - title: '分析页' - } - ], - [ - 'dashboard_workbench', - { - name: 'dashboard_workbench', - path: '/dashboard/workbench', - title: '工作台' - } - ], - [ - 'document', - { - name: 'document', - path: '/document', - title: '文档' - } - ], - [ - 'document_vue', - { - name: 'document_vue', - path: '/document/vue', - title: 'vue文档' - } - ], - [ - 'document_vite', - { - name: 'document_vite', - path: '/document/vite', - title: 'vite文档' - } - ], - [ - 'document_naive', - { - name: 'document_naive', - path: '/document/naive', - title: 'naive文档' - } - ], - [ - 'document_project', - { - name: 'document_project', - path: 'https://docs.soybean.pro/', - title: '项目文档(外链)' - } - ], - [ - 'plugin', - { - name: 'plugin', - path: '/plugins', - title: '插件示例' - } - ], - [ - 'plugin_map', - { - name: 'plugin_map', - path: '/plugin/map', - title: '地图' - } - ], - [ - 'plugin_video', - { - name: 'plugin_video', - path: '/plugin/video', - title: '视频' - } - ], - [ - 'plugin_editor', - { - name: 'plugin_editor', - path: '/plugin/editor', - title: '编辑器' - } - ], - [ - 'plugin_editor_quill', - { - name: 'plugin_editor_quill', - path: '/plugin/editor/quill', - title: '富文本编辑器' - } - ], - [ - 'plugin_editor_markdown', - { - name: 'plugin_editor_markdown', - path: '/plugin/editor/markdown', - title: 'markdown编辑器' - } - ], - [ - 'plugin_swiper', - { - name: 'plugin_swiper', - path: '/plugin/swiper', - title: 'Swiper插件' - } - ], - [ - 'plugin_copy', - { - name: 'plugin_copy', - path: '/plugin/copy', - title: '剪贴板' - } - ], - [ - 'plugin_icon', - { - name: 'plugin_icon', - path: '/plugin/icon', - title: '图标' - } - ], - [ - 'plugin_print', - { - name: 'plugin_print', - path: '/plugin/print', - title: '打印' - } - ], - [ - 'component', - { - name: 'component', - path: '/component', - title: '组件示例' - } - ], - [ - 'component_button', - { - name: 'component_button', - path: '/component/button', - title: '按钮' - } - ], - [ - 'component_card', - { - name: 'component_card', - path: '/component/card', - title: '卡片' - } - ], - [ - 'component_table', - { - name: 'component_table', - path: '/component/table', - title: '表格' - } - ], - [ - 'multi-menu', - { - name: 'multi-menu', - path: '/multi-menu', - title: '多级菜单' - } - ], - [ - 'multi-menu_first', - { - name: 'multi-menu_first', - path: '/multi-menu/first', - title: '一级菜单' - } - ], - [ - 'multi-menu_first_second', - { - name: 'multi-menu_first_second', - path: '/multi-menu/first/second', - title: '二级菜单' - } - ], - [ - 'exception', - { - name: 'exception', - path: '/exception', - title: '异常页' - } - ], - [ - 'exception_403', - { - name: 'exception_403', - path: '/exception/403', - title: '异常页-403' - } - ], - [ - 'exception_404', - { - name: 'exception_404', - path: '/exception/404', - title: '异常页-404' - } - ], - [ - 'exception_500', - { - name: 'exception_500', - path: '/exception/500', - title: '异常页-500' - } - ], - [ - 'about', - { - name: 'about', - path: '/about', - title: '关于' - } - ], - [ - 'website', - { - name: 'website', - path: '/website', - title: '网址导航' - } - ] -]); - -/** 获取路由的声明(name、path、title) */ -export function getRouteConst(key: RouteKey) { - return routeConstMap.get(key)!; -} -/** 路由名称 */ -export function routeName(key: RouteKey) { - return routeConstMap.get(key)!.name; -} -/** 路由路径 */ -export function routePath(key: RouteKey) { - return routeConstMap.get(key)!.path; -} -/** 路由标题 */ -export function routeTitle(key: RouteKey) { - return routeConstMap.get(key)!.title; -} diff --git a/src/router/guard/index.ts b/src/router/guard/index.ts index 6abaff0f..532078b9 100644 --- a/src/router/guard/index.ts +++ b/src/router/guard/index.ts @@ -1,27 +1,29 @@ import type { Router } from 'vue-router'; import { useTitle } from '@vueuse/core'; -import { useAppStore } from '@/store'; -import { handlePagePermission } from './permission'; +import { useRouteStore } from '@/store'; /** * 路由守卫函数 * @param router - 路由实例 */ export function createRouterGuide(router: Router) { - const { resetScrollBehavior } = useAppStore(); + const routeStore = useRouteStore(); + const { initDynamicRoute } = useRouteStore(); - router.beforeEach((to, from, next) => { + router.beforeEach(async (to, from, next) => { + if (!routeStore.isAddedDynamicRoute) { + await initDynamicRoute(router); + next(); + return; + } // 开始 loadingBar window.$loadingBar?.start(); - // 页面跳转逻辑 - handlePagePermission(to, from, next); + next(); }); router.afterEach(to => { // 设置document title - useTitle(to.meta.title as string); + useTitle(to.meta.title); // 结束 loadingBar window.$loadingBar?.finish(); - // 重置滚动条行为 - resetScrollBehavior(); }); } diff --git a/src/router/guard/permission.ts b/src/router/guard/permission.ts index f78e68e8..ff8b4c56 100644 --- a/src/router/guard/permission.ts +++ b/src/router/guard/permission.ts @@ -1,56 +1 @@ -import type { RouteLocationNormalized, NavigationGuardNext } from 'vue-router'; -import { routeName } from '@/router'; -import { getToken } from '@/utils'; - -type RouterAction = [boolean, () => void]; - -/** 处理页面的权限 */ -export function handlePagePermission( - to: RouteLocationNormalized, - from: RouteLocationNormalized, - next: NavigationGuardNext -) { - const token = getToken(); - const isLogin = Boolean(token); - const needLogin = Boolean(to.meta?.requiresAuth); - - const routerAction: RouterAction[] = [ - // 已登录状态跳转登录页,跳转至首页 - [ - isLogin && to.name === routeName('login'), - () => { - next({ name: routeName('root') }); - } - ], - // 不需要登录权限的页面直接通行 - [ - !needLogin, - () => { - next(); - } - ], - // 未登录状态进入需要登录权限的页面 - [ - !isLogin && needLogin, - () => { - const redirect = to.fullPath; - next({ name: routeName('login'), query: { redirect } }); - } - ], - // 登录状态进入需要登录权限的页面,直接通行 - [ - isLogin && needLogin, - () => { - next(); - } - ] - ]; - - routerAction.some(item => { - const [flag, callback] = item; - if (flag) { - callback(); - } - return flag; - }); -} +export default {}; diff --git a/src/router/index.ts b/src/router/index.ts index acc35ae8..492a18b9 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,3 +1,18 @@ -export * from './constant'; -export * from './routes'; -export * from './setup'; +import type { App } from 'vue'; +import { createRouter, createWebHistory } from 'vue-router'; +import { routes, constantRoutes } from './routes'; +import { createRouterGuide } from './guard'; + +export const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes, + scrollBehavior: () => ({ left: 0, top: 0 }) +}); + +export async function setupRouter(app: App) { + app.use(router); + createRouterGuide(router); + await router.isReady(); +} + +export { constantRoutes }; diff --git a/src/router/modules/about.ts b/src/router/modules/about.ts deleted file mode 100644 index 49f79b6c..00000000 --- a/src/router/modules/about.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import { setSingleRoute } from '@/utils'; -import { BasicLayout } from '@/layouts'; -import { About } from '@/views'; -import { getRouteConst, routeName } from '../constant'; - -const { name, path, title } = getRouteConst('about'); - -const about: RouteRecordRaw = setSingleRoute({ - route: { - name, - path, - component: About, - meta: { - title, - requiresAuth: true, - keepAlive: true, - icon: 'fluent:book-information-24-regular' - } - }, - container: BasicLayout, - containerMeta: { - title, - order: 7 - }, - notFoundName: routeName('not-found') -}); - -export default about; diff --git a/src/router/modules/component.ts b/src/router/modules/component.ts deleted file mode 100644 index 0852547a..00000000 --- a/src/router/modules/component.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import { BasicLayout } from '@/layouts'; -import { ComponentButton, ComponentCard, ComponentTable } from '@/views'; -import { routeName, routePath, routeTitle } from '../constant'; - -const component: RouteRecordRaw = { - name: routeName('component'), - path: routePath('component'), - component: BasicLayout, - redirect: { name: routeName('component_button') }, - meta: { - title: routeTitle('component'), - icon: 'fluent:app-store-24-regular', - order: 4 - }, - children: [ - { - name: routeName('component_button'), - path: routePath('component_button'), - component: ComponentButton, - meta: { - title: routeTitle('component_button'), - requiresAuth: true, - keepAlive: true - } - }, - { - name: routeName('component_card'), - path: routePath('component_card'), - component: ComponentCard, - meta: { - title: routeTitle('component_card'), - requiresAuth: true, - keepAlive: true - } - }, - { - name: routeName('component_table'), - path: routePath('component_table'), - component: ComponentTable, - meta: { - title: routeTitle('component_table'), - requiresAuth: true, - keepAlive: true - } - } - ] -}; - -export default component; diff --git a/src/router/modules/dashboard.ts b/src/router/modules/dashboard.ts deleted file mode 100644 index 6d45e721..00000000 --- a/src/router/modules/dashboard.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import { BasicLayout } from '@/layouts'; -import { DashboardAnalysis, DashboardWorkbench } from '@/views'; -import { routeName, routePath, routeTitle } from '../constant'; - -const dashboard: RouteRecordRaw = { - name: routeName('dashboard'), - path: routePath('dashboard'), - component: BasicLayout, - redirect: { name: routeName('dashboard_analysis') }, - meta: { - title: routeTitle('dashboard'), - icon: 'carbon:dashboard', - order: 1 - }, - children: [ - { - name: routeName('dashboard_analysis'), - path: routePath('dashboard_analysis'), - component: DashboardAnalysis, - meta: { - keepAlive: true, - requiresAuth: true, - title: routeTitle('dashboard_analysis') - } - }, - { - name: routeName('dashboard_workbench'), - path: routePath('dashboard_workbench'), - component: DashboardWorkbench, - meta: { - keepAlive: true, - requiresAuth: true, - title: routeTitle('dashboard_workbench') - } - } - ] -}; - -export default dashboard; diff --git a/src/router/modules/document.ts b/src/router/modules/document.ts deleted file mode 100644 index 6ea74e90..00000000 --- a/src/router/modules/document.ts +++ /dev/null @@ -1,62 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import { BasicLayout, BlankLayout } from '@/layouts'; -import { DocumentVue, DocumentVite, DocumentNaive } from '@/views'; -import { routeName, routePath, routeTitle } from '../constant'; - -const document: RouteRecordRaw = { - name: routeName('document'), - path: routePath('document'), - component: BasicLayout, - redirect: { name: routeName('document_vue') }, - meta: { - requiresAuth: true, - title: routeTitle('document'), - icon: 'carbon:document', - order: 2 - }, - children: [ - { - name: routeName('document_vue'), - path: routePath('document_vue'), - component: DocumentVue, - meta: { - requiresAuth: true, - title: routeTitle('document_vue'), - fullPage: true, - keepAlive: true - } - }, - { - name: routeName('document_vite'), - path: routePath('document_vite'), - component: DocumentVite, - meta: { - requiresAuth: true, - title: routeTitle('document_vite'), - fullPage: true - } - }, - { - name: routeName('document_naive'), - path: routePath('document_naive'), - component: DocumentNaive, - meta: { - requiresAuth: true, - title: routeTitle('document_naive'), - fullPage: true - } - }, - { - name: routeName('document_project'), - path: routePath('document_project'), - component: BlankLayout, - meta: { - requiresAuth: true, - title: routeTitle('document_project'), - fullPage: true - } - } - ] -}; - -export default document; diff --git a/src/router/modules/exception.ts b/src/router/modules/exception.ts deleted file mode 100644 index 7f8fb19a..00000000 --- a/src/router/modules/exception.ts +++ /dev/null @@ -1,51 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import { BasicLayout } from '@/layouts'; -import { NoPermission, NotFound, ServiceError } from '@/views'; -import { routeName, routePath, routeTitle } from '../constant'; - -const exception: RouteRecordRaw = { - name: routeName('exception'), - path: routePath('exception'), - component: BasicLayout, - redirect: { name: routeName('exception_403') }, - meta: { - requiresAuth: true, - title: routeTitle('exception'), - icon: 'ant-design:exception-outlined', - order: 5 - }, - children: [ - { - name: routeName('exception_403'), - path: routePath('exception_403'), - component: NoPermission, - meta: { - requiresAuth: true, - title: routeTitle('exception_403'), - fullPage: true - } - }, - { - name: routeName('exception_404'), - path: routePath('exception_404'), - component: NotFound, - meta: { - requiresAuth: true, - title: routeTitle('exception_404'), - fullPage: true - } - }, - { - name: routeName('exception_500'), - path: routePath('exception_500'), - component: ServiceError, - meta: { - requiresAuth: true, - title: routeTitle('exception_500'), - fullPage: true - } - } - ] -}; - -export default exception; diff --git a/src/router/modules/index.ts b/src/router/modules/index.ts deleted file mode 100644 index 49b246eb..00000000 --- a/src/router/modules/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { transformRouteModules } from '@/utils'; -import type { ImportedRouteModules } from '@/interface'; - -const modules = import.meta.globEager('./*.ts') as ImportedRouteModules; - -const customRoutes = transformRouteModules(modules); - -export default customRoutes; diff --git a/src/router/modules/multi-menu.ts b/src/router/modules/multi-menu.ts deleted file mode 100644 index 95d0db7f..00000000 --- a/src/router/modules/multi-menu.ts +++ /dev/null @@ -1,41 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import { BasicLayout } from '@/layouts'; -import MultiMenuFirstSecond from '@/views/multi-menu/first/second/index.vue'; -import { routeName, routePath, routeTitle } from '../constant'; - -const multiMenu: RouteRecordRaw = { - name: routeName('multi-menu'), - path: routePath('multi-menu'), - component: BasicLayout, - redirect: { name: routeName('multi-menu_first') }, - meta: { - title: routeTitle('multi-menu'), - icon: 'carbon:menu', - order: 6 - }, - children: [ - { - name: routeName('multi-menu_first'), - path: routePath('multi-menu_first'), - redirect: { name: routeName('multi-menu_first_second') }, - meta: { - title: routeTitle('multi-menu_first') - }, - children: [ - { - name: routeName('multi-menu_first_second'), - path: routePath('multi-menu_first_second'), - component: MultiMenuFirstSecond, - meta: { - title: routeTitle('multi-menu_first_second'), - requiresAuth: true, - keepAlive: true, - fullPage: true - } - } - ] - } - ] -}; - -export default multiMenu; diff --git a/src/router/modules/plugin.ts b/src/router/modules/plugin.ts deleted file mode 100644 index fa5e867f..00000000 --- a/src/router/modules/plugin.ts +++ /dev/null @@ -1,118 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import { BasicLayout } from '@/layouts'; -import { - PluginMap, - PluginVideo, - PluginEditorQuill, - PluginEditorMarkdown, - PluginSwiper, - PluginCopy, - PluginIcon, - PluginPrint -} from '@/views'; - -import { routeName, routePath, routeTitle } from '../constant'; - -const plugin: RouteRecordRaw = { - name: routeName('plugin'), - path: routePath('plugin'), - component: BasicLayout, - redirect: { name: routeName('plugin_map') }, - meta: { - requiresAuth: true, - title: routeTitle('plugin'), - icon: 'clarity:plugin-line', - order: 3 - }, - children: [ - { - name: routeName('plugin_map'), - path: routePath('plugin_map'), - component: PluginMap, - meta: { - requiresAuth: true, - title: routeTitle('plugin_map'), - fullPage: true - } - }, - { - name: routeName('plugin_video'), - path: routePath('plugin_video'), - component: PluginVideo, - meta: { - requiresAuth: true, - title: routeTitle('plugin_video'), - fullPage: true - } - }, - { - name: routeName('plugin_editor'), - path: routePath('plugin_editor'), - redirect: { name: routeName('plugin_editor_quill') }, - meta: { - title: routeTitle('plugin_editor') - }, - children: [ - { - name: routeName('plugin_editor_quill'), - path: routePath('plugin_editor_quill'), - component: PluginEditorQuill, - meta: { - requiresAuth: true, - title: routeTitle('plugin_editor_quill'), - fullPage: true - } - }, - { - name: routeName('plugin_editor_markdown'), - path: routePath('plugin_editor_markdown'), - component: PluginEditorMarkdown, - meta: { - requiresAuth: true, - title: routeTitle('plugin_editor_markdown'), - fullPage: true - } - } - ] - }, - { - name: routeName('plugin_swiper'), - path: routePath('plugin_swiper'), - component: PluginSwiper, - meta: { - requiresAuth: true, - title: routeTitle('plugin_swiper') - } - }, - { - name: routeName('plugin_copy'), - path: routePath('plugin_copy'), - component: PluginCopy, - meta: { - requiresAuth: true, - title: routeTitle('plugin_copy'), - fullPage: true - } - }, - { - name: routeName('plugin_icon'), - path: routePath('plugin_icon'), - component: PluginIcon, - meta: { - requiresAuth: true, - title: routeTitle('plugin_icon') - } - }, - { - name: routeName('plugin_print'), - path: routePath('plugin_print'), - component: PluginPrint, - meta: { - requiresAuth: true, - title: routeTitle('plugin_print') - } - } - ] -}; - -export default plugin; diff --git a/src/router/modules/website.ts b/src/router/modules/website.ts deleted file mode 100644 index a255c411..00000000 --- a/src/router/modules/website.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import { setSingleRoute } from '@/utils'; -import { BlankLayout } from '@/layouts'; -import { Website } from '@/views'; -import { getRouteConst, routeName } from '../constant'; - -const { name, path, title } = getRouteConst('website'); - -const website: RouteRecordRaw = setSingleRoute({ - route: { - name, - path, - component: Website, - meta: { - title, - icon: 'codicon:remote-explorer', - notAsMenu: true - } - }, - container: BlankLayout, - containerMeta: { - title, - order: 8 - }, - notFoundName: routeName('not-found') -}); - -export default website; diff --git a/src/router/routes/constant-routes.ts b/src/router/routes/constant-routes.ts deleted file mode 100644 index c56f24cb..00000000 --- a/src/router/routes/constant-routes.ts +++ /dev/null @@ -1,85 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import { BlankLayout } from '@/layouts'; -import type { LoginModuleType } from '@/interface'; -import { Login, NoPermission, NotFound, ServiceError } from '@/views'; -import { getLoginModuleRegExp } from '@/utils'; -import { routeName, routePath, routeTitle } from '../constant'; -import { ROUTE_HOME_NAME } from './route-home'; - -/** - * 固定不变的路由 - * @description !最后一项重定向未找到的路由须放置路由的最后一项 - */ -const constantRoutes: RouteRecordRaw[] = [ - { - name: routeName('root'), - path: routePath('root'), - redirect: { name: ROUTE_HOME_NAME } - }, - { - // 名称、路径随意,不在路由声明里面,只是为各个子路由充当应用BlankLayout布局的桥梁,因此访问该路由时重定向到404 - name: 'constant-single_', - path: '/constant-single_', - component: BlankLayout, - redirect: { name: routeName('not-found') }, - meta: { - title: 'constant-single_', - keepAlive: true - }, - children: [ - // 登录 - { - name: routeName('login'), - path: `${routePath('login')}/:module(${getLoginModuleRegExp()})?`, - component: Login, - props: route => { - const moduleType = (route.params.module as LoginModuleType) || 'pwd-login'; - return { - module: moduleType - }; - }, - meta: { - title: routeTitle('login'), - fullPage: true - } - }, - // 403 - { - name: routeName('no-permission'), - path: routePath('no-permission'), - component: NoPermission, - meta: { - title: routeTitle('no-permission'), - fullPage: true - } - }, - // 404 - { - name: routeName('not-found'), - path: routePath('not-found'), - component: NotFound, - meta: { - title: routeTitle('not-found'), - fullPage: true - } - }, - // 500 - { - name: routeName('service-error'), - path: routePath('service-error'), - component: ServiceError, - meta: { - title: routeTitle('service-error'), - fullPage: true - } - } - ] - }, - // 匹配无效的路径重定向404 - { - path: '/:pathMatch(.*)*', - redirect: { name: routeName('not-found') } - } -]; - -export default constantRoutes; diff --git a/src/router/routes/constant.ts b/src/router/routes/constant.ts new file mode 100644 index 00000000..0e0e348e --- /dev/null +++ b/src/router/routes/constant.ts @@ -0,0 +1,59 @@ +/** 固定的路由 */ +const constantRoutes: AuthRoute.Route[] = [ + { + name: 'root', + path: '/', + redirect: '/dashboard/analysis', + meta: { + title: 'Root' + } + }, + { + name: 'login', + path: '/login', + component: 'blank', + meta: { + title: '登录', + single: true + } + }, + { + name: 'no-permission', + path: '/no-permission', + component: 'blank', + meta: { + title: '无权限', + single: true + } + }, + { + name: 'not-found', + path: '/not-found', + component: 'blank', + meta: { + title: '未找到', + single: true + } + }, + { + name: 'service-error', + path: '/service-error', + component: 'blank', + meta: { + title: '服务器错误', + single: true + } + }, + // 匹配无效的路径重定向not-found的页面 + { + name: 'redirect-not-found', + path: '/:pathMatch(.*)*', + component: 'blank', + meta: { + title: '未找到', + single: true + } + } +]; + +export default constantRoutes; diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts index 89423316..3f133e4a 100644 --- a/src/router/routes/index.ts +++ b/src/router/routes/index.ts @@ -1,11 +1,8 @@ import type { RouteRecordRaw } from 'vue-router'; -import { transformMultiDegreeRoutes } from '@/utils'; -import customRoutes from '../modules'; -import constantRoutes from './constant-routes'; - -const transformRoutes = transformMultiDegreeRoutes(customRoutes); +import { transformAuthRouteToVueRoute } from '@/utils'; +import constantRoutes from './constant'; /** 所有路由 */ -export const routes: RouteRecordRaw[] = [...transformRoutes, ...constantRoutes]; +export const routes: RouteRecordRaw[] = constantRoutes.map(item => transformAuthRouteToVueRoute(item)); -export { ROUTE_HOME } from './route-home'; +export { constantRoutes }; diff --git a/src/router/routes/route-home.ts b/src/router/routes/route-home.ts deleted file mode 100644 index de71fae6..00000000 --- a/src/router/routes/route-home.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { getRouteHome } from '@/utils'; -import { routeName } from '../constant'; -import customRoutes from '../modules'; - -/** 路由首页的名字 */ -export const ROUTE_HOME_NAME = routeName('dashboard_analysis'); - -/** 路由首页 */ -export const ROUTE_HOME = getRouteHome(customRoutes, ROUTE_HOME_NAME); diff --git a/src/router/setup/cache.ts b/src/router/setup/cache.ts deleted file mode 100644 index d47a5b0f..00000000 --- a/src/router/setup/cache.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { getCacheRoutes } from '@/utils'; -import { routes } from '../routes'; - -/** 缓存的路由对应vue页面的名称 */ -const cacheRoutes = getCacheRoutes(routes); - -export default cacheRoutes; diff --git a/src/router/setup/index.ts b/src/router/setup/index.ts deleted file mode 100644 index 2e3ab9f7..00000000 --- a/src/router/setup/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { createRouter, createWebHistory, createWebHashHistory } from 'vue-router'; -import type { App } from 'vue'; -import { routes } from '../routes'; -import { createRouterGuide } from '../guard'; - -/** 用于部署vercel托管服务 */ -const isStaging = import.meta.env.VITE_HTTP_ENV === 'STAGING'; - -export const router = createRouter({ - history: isStaging ? createWebHashHistory() : createWebHistory(), - routes -}); - -export async function setupRouter(app: App) { - app.use(router); - createRouterGuide(router); - await router.isReady(); -} - -export { default as cacheRoutes } from './cache'; -export { menusList, menus } from './menus'; diff --git a/src/router/setup/menus.ts b/src/router/setup/menus.ts deleted file mode 100644 index 81bc755a..00000000 --- a/src/router/setup/menus.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { transformRouteToMenu, transformRouteToList } from '@/utils'; -import customRoutes from '../modules'; - -/** 菜单 */ -const menus = transformRouteToMenu(customRoutes); -/** 菜单搜索列表 */ -const menusList = transformRouteToList(customRoutes); - -export { menus, menusList }; diff --git a/src/service/api/auth.ts b/src/service/api/auth.ts index c0da5e4b..2786deb6 100644 --- a/src/service/api/auth.ts +++ b/src/service/api/auth.ts @@ -1,8 +1,15 @@ -import { consoleLog } from '@/utils'; import { mockRequest } from '../request'; +import { userRoutesMiddleware } from '../middleware'; -/** 测试mock数据 */ -export async function fetchTestMock() { - const { data } = await mockRequest.get('/api/getUser'); - consoleLog('data: ', data); +/** + * 获取用户路由数据 + * @param userId - 用户id + * @description 后端根据用户id查询到对应的角色类型,并将路由筛选出对应角色的路由数据返回前端 + */ +export async function fetchUserRoutes(userId: string = 'soybean') { + const { data } = await mockRequest( + { url: '/getUserRoutes', method: 'post', data: { userId } }, + false + ); + return userRoutesMiddleware(data); } diff --git a/src/service/api/common.ts b/src/service/api/common.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/service/api/demo.ts b/src/service/api/demo.ts deleted file mode 100644 index a8ba0265..00000000 --- a/src/service/api/demo.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { requestMiddleware } from '@/utils'; -import type { ResponseDictionary, Dictionary } from '@/interface'; -import { request } from '../request'; -import { fecthDictionaryMiddleware } from '../middleware'; - -// 接口示例 - -/** - * 获取数据字典(不加middleware处理) - * @param keyword - 关键词 - */ -export function fetchDictionary(keyword: string) { - return request.post('/emoss-entropy/ehe/model/getByIndicator', { - indiCatorName: keyword - }); -} - -/** - * 获取数据字典(加middleware处理) - * @param keyword - 关键词 - */ -export async function fetchDictionaryWithMiddleware(keyword: string) { - const res = await request.post('/emoss-entropy/ehe/model/getByIndicator', { - indiCatorName: keyword - }); - - return requestMiddleware(fecthDictionaryMiddleware, [res]); -} diff --git a/src/service/api/index.ts b/src/service/api/index.ts index 34122eac..269586ee 100644 --- a/src/service/api/index.ts +++ b/src/service/api/index.ts @@ -1,2 +1 @@ -export * from './demo'; export * from './auth'; diff --git a/src/service/middleware/auth.ts b/src/service/middleware/auth.ts new file mode 100644 index 00000000..8e2296ea --- /dev/null +++ b/src/service/middleware/auth.ts @@ -0,0 +1,10 @@ +import type { RouteRecordRaw } from 'vue-router'; +import { transformAuthRouteToVueRoute } from '@/utils'; + +export function userRoutesMiddleware(data: ApiRoute.ResponseRoute | null) { + if (!data) return []; + + const routes: RouteRecordRaw[] = data.routes.map(item => transformAuthRouteToVueRoute(item)); + + return routes; +} diff --git a/src/service/middleware/demo.ts b/src/service/middleware/demo.ts deleted file mode 100644 index cf30278e..00000000 --- a/src/service/middleware/demo.ts +++ /dev/null @@ -1,23 +0,0 @@ -import type { ResponseDictionary, Dictionary } from '@/interface'; - -export function fecthDictionaryMiddleware(data: ResponseDictionary[]): Dictionary[] { - return data.map(item => { - const { - modelName: label, - modelCharactorName: charactorLabel, - modelIndicator: indicatorKey, - modelIndicatorName: indicatorLabel, - remarks: remark, - formula - } = item; - - return { - label, - charactorLabel, - indicatorKey, - indicatorLabel, - remark, - formula - }; - }); -} diff --git a/src/service/middleware/index.ts b/src/service/middleware/index.ts index 689b5cbc..269586ee 100644 --- a/src/service/middleware/index.ts +++ b/src/service/middleware/index.ts @@ -1 +1 @@ -export * from './demo'; +export * from './auth'; diff --git a/src/service/request/index.ts b/src/service/request/index.ts index c8f64e78..002242f0 100644 --- a/src/service/request/index.ts +++ b/src/service/request/index.ts @@ -1,12 +1,8 @@ -import { REQUEST_TIMEOUT } from '@/config'; import { createRequest } from './request'; +import { serviceEnv } from '~/.env-config'; -export const request = createRequest({ - baseURL: import.meta.env.VITE_HTTP_URL, - timeout: REQUEST_TIMEOUT -}); +const { url } = serviceEnv[import.meta.env.VITE_HTTP_ENV]; -export const mockRequest = createRequest({ - baseURL: '', - timeout: REQUEST_TIMEOUT -}); +export const request = createRequest({ baseURL: url }); + +export const mockRequest = createRequest({ baseURL: '/mock' }); diff --git a/src/service/request/instance.ts b/src/service/request/instance.ts index 2459da71..0fe02fa1 100644 --- a/src/service/request/instance.ts +++ b/src/service/request/instance.ts @@ -1,7 +1,14 @@ import axios from 'axios'; import type { AxiosRequestConfig, AxiosInstance, AxiosError, CancelTokenStatic } from 'axios'; -import { getToken, transformRequestData, handleAxiosError, handleResponseError, handleBackendError } from '@/utils'; -import type { BackendServiceResult } from '@/interface'; +import { REQUEST_TIMEOUT } from '@/config'; +import { + getToken, + transformRequestData, + handleAxiosError, + handleResponseError, + handleBackendError, + handleServiceResult +} from '@/utils'; /** * 封装axios请求类 @@ -15,7 +22,11 @@ export default class CustomAxiosInstance { cancelToken: CancelTokenStatic; constructor(axiosConfig: AxiosRequestConfig) { - this.instance = axios.create(axiosConfig); + const defaultConfig: AxiosRequestConfig = { + timeout: REQUEST_TIMEOUT + }; + Object.assign(defaultConfig, axiosConfig); + this.instance = axios.create(defaultConfig); this.cancelToken = axios.CancelToken; this.setInterceptor(); } @@ -36,26 +47,26 @@ export default class CustomAxiosInstance { }, (axiosError: AxiosError) => { const error = handleAxiosError(axiosError); - return Promise.reject(error); + return handleServiceResult(error, null); } ); this.instance.interceptors.response.use( response => { const { status } = response; if (status === 200 || status < 300 || status === 304) { - const backendServiceResult = response.data as BackendServiceResult; - if (backendServiceResult.code === this.backendSuccessCode) { - return Promise.resolve(backendServiceResult.data); + const backend = response.data as Service.BackendServiceResult; + if (backend.code === this.backendSuccessCode) { + return handleServiceResult(null, backend.data); } - const error = handleBackendError(backendServiceResult); - return Promise.reject(error); + const error = handleBackendError(backend); + return handleServiceResult(error, null); } const error = handleResponseError(response); - return Promise.reject(error); + return handleServiceResult(error, null); }, (axiosError: AxiosError) => { const error = handleAxiosError(axiosError); - return Promise.reject(error); + return handleServiceResult(error, null); } ); } diff --git a/src/service/request/request.ts b/src/service/request/request.ts index a5a462fd..5329d849 100644 --- a/src/service/request/request.ts +++ b/src/service/request/request.ts @@ -1,66 +1,111 @@ -import type { AxiosRequestConfig, AxiosInstance, AxiosResponse } from 'axios'; -import type { RequestServiceError, CustomSuccessRequestResult, CustomFailRequestResult } from '@/interface'; +import { ref } from 'vue'; +import type { Ref } from 'vue'; +import type { AxiosInstance, AxiosRequestConfig } from 'axios'; +import { useLoading, useBoolean } from '@/hooks'; import CustomAxiosInstance from './instance'; -/** - * 封装各个请求方法及结果处理的类 - * @author Soybean - */ -export class Request { - instance: AxiosInstance; +type RequestMethod = 'get' | 'post' | 'put' | 'delete'; - constructor(instance: AxiosInstance) { - this.instance = instance; - } +type RequestResultHook = { + data: Ref; + error: Ref; + loading: Ref; + network: Ref; +}; - static successHandler(response: AxiosResponse) { - const successResult: CustomSuccessRequestResult = { - data: response as unknown as ResponseData, - error: null - }; - - return successResult; - } - - static failHandler(error: RequestServiceError) { - const failResult: CustomFailRequestResult = { - data: null, - error - }; - - return failResult; - } - - get(url: string, config?: AxiosRequestConfig) { - return this.instance - .get(url, config) - .then(res => Request.successHandler(res)) - .catch(Request.failHandler); - } - - post(url: string, data?: any, config?: AxiosRequestConfig) { - return this.instance - .post(url, data, config) - .then(res => Request.successHandler(res)) - .catch(Request.failHandler); - } - - put(url: string, data?: any, config?: AxiosRequestConfig) { - return this.instance - .put(url, data, config) - .then(res => Request.successHandler(res)) - .catch(Request.failHandler); - } - - delete(url: string, config?: AxiosRequestConfig) { - return this.instance - .delete(url, config) - .then(res => Request.successHandler(res)) - .catch(Request.failHandler); - } +interface RequestParam { + url: string; + method?: RequestMethod; + data?: any; + axiosConfig?: AxiosRequestConfig; } export function createRequest(axiosConfig: AxiosRequestConfig) { const customInstance = new CustomAxiosInstance(axiosConfig); - return new Request(customInstance.instance); + + /** + * hooks请求 + * @param param - 请求参数 + * - url: 请求地址 + * - method: 请求方法(默认get) + * - data: 请求的body的data + * - axiosConfig: axios配置 + * @param hookMode - 是否启用hook写法 + */ + function request(param: RequestParam, hookMode: true): RequestResultHook; + function request(param: RequestParam, hookMode: false): Promise>; + function request( + param: RequestParam, + hookMode: boolean + ): RequestResultHook | Promise> { + const { url } = param; + const method = param.method || 'get'; + const { instance } = customInstance; + if (hookMode) { + return useRequest(instance, method, url, param.data, param.axiosConfig); + } + return asyncRequest(instance, method, url, param.data, param.axiosConfig); + } + + return request; +} + +function useRequest( + instance: AxiosInstance, + method: RequestMethod, + url: string, + bodyData?: any, + config?: AxiosRequestConfig +): RequestResultHook { + const { loading, startLoading, endLoading } = useLoading(); + const { bool: network, setBool: setNetwork } = useBoolean(window.navigator.onLine); + + startLoading(); + const data = ref(null) as Ref; + const error = ref(null); + + function handleRequestResult(response: any) { + const res = response as Service.RequestResult; + data.value = res.data; + error.value = res.error; + endLoading(); + setNetwork(window.navigator.onLine); + } + + getRequestResponse(instance, method, url, bodyData, config).then(handleRequestResult); + + return { + data, + error, + loading, + network + }; +} + +async function asyncRequest( + instance: AxiosInstance, + method: RequestMethod, + url: string, + bodyData?: any, + config?: AxiosRequestConfig +): Promise> { + const res = (await getRequestResponse(instance, method, url, bodyData, config)) as Service.RequestResult; + + return res; +} + +async function getRequestResponse( + instance: AxiosInstance, + method: RequestMethod, + url: string, + data?: any, + config?: AxiosRequestConfig +) { + let res: any; + if (method === 'get' || method === 'delete') { + res = await instance[method](url, config); + } else { + res = await instance[method](url, data, config); + } + return res; } diff --git a/src/settings/index.ts b/src/settings/index.ts deleted file mode 100644 index a56b260d..00000000 --- a/src/settings/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './theme'; -export * from './website'; diff --git a/src/settings/theme.json b/src/settings/theme.json deleted file mode 100644 index 9cb25250..00000000 --- a/src/settings/theme.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "darkMode": false, - "themeColor": "#409EFF", - "themeColorList": [ - "#409EFF", - "#2d8cf0", - "#0960bd", - "#009688", - "#536dfe", - "#ff5c93", - "#ee4f12", - "#0096c7", - "#9c27b0", - "#ff9800", - "#FF3D68", - "#00C1D4", - "#71EFA3", - "#171010", - "#78DEC7", - "#1768AC", - "#FB9300", - "#FC5404" - ], - "otherColor": { - "info": "#2080f0", - "success": "#67C23A", - "warning": "#E6A23C", - "error": "#F56C6C" - }, - "navStyle": { - "mode": "vertical", - "theme": "light" - }, - "menuStyle": { - "width": 200, - "collapsedWidth": 64, - "mixWidth": 80, - "mixCollapsedWidth": 48, - "horizontalPosition": "flex-start", - "horizontalPositionList": [ - { - "value": "flex-start", - "label": "居左" - }, - { - "value": "center", - "label": "居中" - }, - { - "value": "flex-end", - "label": "居右" - } - ] - }, - "headerStyle": { - "height": 56, - "bgColor": "#fff" - }, - "multiTabStyle": { - "height": 44, - "visible": true, - "bgColor": "#fff", - "mode": "chrome", - "isCache": true, - "modeList": [ - { - "value": "button", - "label": "按钮风格" - }, - { - "value": "chrome", - "label": "谷歌风格" - } - ] - }, - "crumbsStyle": { - "visible": true, - "showIcon": true - }, - "footerStyle": { - "height": 48 - }, - "pageStyle": { - "animate": true, - "animateType": "fade-slide", - "animateTypeList": [ - { - "value": "zoom-fade", - "label": "渐变" - }, - { - "value": "zoom-out", - "label": "闪现" - }, - { - "value": "fade-slide", - "label": "滑动" - }, - { - "value": "fade", - "label": "消退" - }, - { - "value": "fade-bottom", - "label": "底部消退" - }, - { - "value": "fade-scale", - "label": "缩放消退" - } - ] - }, - "fixedHeaderAndTab": true, - "showReload": true -} diff --git a/src/settings/theme.ts b/src/settings/theme.ts deleted file mode 100644 index a12ee8e1..00000000 --- a/src/settings/theme.ts +++ /dev/null @@ -1,92 +0,0 @@ -import type { ThemeSettings } from '@/interface'; -import { EnumAnimate, EnumMultiTabMode, EnumHorizontalMenuPosition } from '@/enum'; -import customThemeSettings from './theme.json'; - -const themeColorList = [ - '#409EFF', - '#2d8cf0', - '#0960bd', - '#009688', - '#536dfe', - '#ff5c93', - '#ee4f12', - '#0096c7', - '#9c27b0', - '#ff9800', - '#FF3D68', - '#00C1D4', - '#71EFA3', - '#171010', - '#78DEC7', - '#1768AC', - '#FB9300', - '#FC5404' -]; - -const defaultThemeSettings: ThemeSettings = { - darkMode: false, - themeColor: themeColorList[0], - themeColorList, - otherColor: { - info: '#2080f0', - success: '#67C23A', - warning: '#E6A23C', - error: '#F56C6C' - }, - navStyle: { - mode: 'vertical', - theme: 'light' - }, - menuStyle: { - width: 200, - collapsedWidth: 64, - mixWidth: 80, - mixCollapsedWidth: 48, - horizontalPosition: 'flex-start', - horizontalPositionList: [ - { value: 'flex-start', label: EnumHorizontalMenuPosition['flex-start'] }, - { value: 'center', label: EnumHorizontalMenuPosition.center }, - { value: 'flex-end', label: EnumHorizontalMenuPosition['flex-end'] } - ] - }, - headerStyle: { - height: 56, - bgColor: '#fff' - }, - multiTabStyle: { - height: 44, - visible: true, - bgColor: '#fff', - mode: 'chrome', - isCache: true, - modeList: [ - { value: 'button', label: EnumMultiTabMode.button }, - { value: 'chrome', label: EnumMultiTabMode.chrome } - ] - }, - crumbsStyle: { - visible: true, - showIcon: true - }, - footerStyle: { - height: 48 - }, - pageStyle: { - animate: true, - animateType: 'fade-slide', - animateTypeList: [ - { value: 'zoom-fade', label: EnumAnimate['zoom-fade'] }, - { value: 'zoom-out', label: EnumAnimate['zoom-out'] }, - { value: 'fade-slide', label: EnumAnimate['fade-slide'] }, - { value: 'fade', label: EnumAnimate.fade }, - { value: 'fade-bottom', label: EnumAnimate['fade-bottom'] }, - { value: 'fade-scale', label: EnumAnimate['fade-scale'] } - ] - }, - fixedHeaderAndTab: true, - showReload: true -}; - -export const themeSettings = (customThemeSettings as ThemeSettings) || defaultThemeSettings; - -export { defaultThemeSettings }; diff --git a/src/settings/website.json b/src/settings/website.json deleted file mode 100644 index 801f012f..00000000 --- a/src/settings/website.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - { - "title": "编程", - "children": [ - { - "title": "网站论坛", - "children": [] - }, - { - "title": "前端", - "children": [] - }, - { - "title": "设计", - "children": [] - }, - { - "title": "工具", - "children": [] - }, - { - "title": "文档", - "children": [] - } - ] - }, - { - "title": "个人", - "children": [] - } -] diff --git a/src/settings/website.ts b/src/settings/website.ts deleted file mode 100644 index ff9af5fa..00000000 --- a/src/settings/website.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type { WebsiteCategory } from '@/interface'; - -import websiteJson from './website.json'; - -export const website: WebsiteCategory[] = websiteJson; diff --git a/src/store/index.ts b/src/store/index.ts index 533287f1..c082cb06 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -1,9 +1,8 @@ import type { App } from 'vue'; import { createPinia } from 'pinia'; -export const store = createPinia(); - export function setupStore(app: App) { + const store = createPinia(); app.use(store); } diff --git a/src/store/modules/app/helpers.ts b/src/store/modules/app/helpers.ts deleted file mode 100644 index 76d25e6c..00000000 --- a/src/store/modules/app/helpers.ts +++ /dev/null @@ -1,45 +0,0 @@ -import type { RouteLocationNormalizedLoaded } from 'vue-router'; -import { ROUTE_HOME } from '@/router'; -import { brightenColor, darkenColor } from '@/utils'; -import type { MultiTabRoute } from '@/interface'; - -export function getHoverAndPressedColor(color: string) { - return { - hover: brightenColor(color), - pressed: darkenColor(color) - }; -} - -/** 获取路由首页信息 */ -export function getHomeTabRoute(route: RouteLocationNormalizedLoaded) { - const { name, path, meta } = ROUTE_HOME; - const isHome = route.name === ROUTE_HOME.name; - const home: MultiTabRoute = { - name, - path, - fullPath: path, - meta - }; - if (isHome) { - Object.assign(home, route); - } - return home; -} - -/** - * 获取该页签在多页签数据中的索引 - * @param routes - 多页签数据 - * @param fullPath - 该页签的路径 - */ -export function getIndexInTabRoutes(routes: MultiTabRoute[], fullPath: string) { - return routes.findIndex(route => route.fullPath === fullPath); -} - -/** - * 判断该页签是否在多页签数据中 - * @param routes - 多页签数据 - * @param fullPath - 该页签的路径 - */ -export function isInTabRoutes(routes: MultiTabRoute[], fullPath: string) { - return getIndexInTabRoutes(routes, fullPath) > -1; -} diff --git a/src/store/modules/app/index.ts b/src/store/modules/app/index.ts index 9808a966..a81ebb8e 100644 --- a/src/store/modules/app/index.ts +++ b/src/store/modules/app/index.ts @@ -1,203 +1,25 @@ -import { nextTick } from 'vue'; -import type { RouteLocationNormalizedLoaded } from 'vue-router'; -import type { ScrollbarInst } from 'naive-ui'; +import type { Ref } from 'vue'; import { defineStore } from 'pinia'; -import { router, ROUTE_HOME } from '@/router'; -import { store, useThemeStore } from '@/store'; -import { getTabRouteStorage } from '@/utils'; -import type { MultiTab, MultiTabRoute } from '@/interface'; -import { getHomeTabRoute, isInTabRoutes } from './helpers'; +import { useReload } from '@/hooks'; -/** app状态 */ -interface AppState { - layout: LayoutState; - menu: MenuState; - multiTab: MultiTab; - /** 重新加载标记 */ - reloadFlag: boolean; - settingDrawer: SettingDrawer; +interface AppStore { + /** 重载页面的标志 */ + reloadFlag: Ref; + /** + * 触发重载页面 + * @param duration - 延迟时间(ms, 默认0) + */ + handleReload(duration?: number): void; } -/** 布局状态 */ -interface LayoutState { - scrollbar: ScrollbarInst | null; -} +export const useAppStore = defineStore('app-store', () => { + // 重新加载页面 + const { reloadFlag, handleReload } = useReload(); -/** 菜单状态 */ -interface MenuState { - /** 菜单折叠 */ - collapsed: boolean; - /** 混合菜单vertical-mix是否固定二级菜单 */ - fixedMix: boolean; -} + const appStore: AppStore = { + reloadFlag, + handleReload + }; -/** 项目配置抽屉的状态 */ -interface SettingDrawer { - /** 设置抽屉可见性 */ - visible: boolean; -} - -const appStore = defineStore({ - id: 'app-store', - state: (): AppState => ({ - layout: { - scrollbar: null - }, - menu: { - collapsed: false, - fixedMix: false - }, - multiTab: { - routes: [], - activeRoute: '' - }, - reloadFlag: true, - settingDrawer: { - visible: false - } - }), - getters: { - activeMultiTabIndex(state) { - const { routes, activeRoute } = state.multiTab; - return routes.findIndex(v => v.fullPath === activeRoute); - } - }, - actions: { - /** 设置scrollbar的实例 */ - setScrollbarInstance(scrollbar: ScrollbarInst) { - this.layout.scrollbar = scrollbar; - }, - /** 重置滚动条行为 */ - resetScrollBehavior() { - const { scrollbar } = this.layout; - setTimeout(() => { - scrollbar?.scrollTo({ left: 0, top: 0 }); - }, 250); - }, - /** 折叠/展开菜单 */ - handleMenuCollapse(collapsed: boolean) { - this.menu.collapsed = collapsed; - }, - /** 设置混合菜单是否固定 */ - toggleFixedMixMenu() { - this.menu.fixedMix = !this.menu.fixedMix; - }, - /** 切换折叠/展开菜单 */ - toggleMenu() { - this.menu.collapsed = !this.menu.collapsed; - }, - /** 添加多页签的数据 */ - addMultiTab(route: RouteLocationNormalizedLoaded) { - const { fullPath } = route; - const isExist = isInTabRoutes(this.multiTab.routes, fullPath); - if (!isExist) { - this.multiTab.routes.push({ ...route }); - } - }, - /** 删除多页签的数据 */ - removeMultiTab(fullPath: string) { - const isActive = this.multiTab.activeRoute === fullPath; - const { routes } = this.multiTab; - const updateRoutes = routes.filter(v => v.fullPath !== fullPath); - this.multiTab.routes = updateRoutes; - if (isActive) { - const activePath = updateRoutes[updateRoutes.length - 1].fullPath; - router.push(activePath); - this.setActiveMultiTab(activePath); - } - }, - /** - * 删除所有多页签只保留路由首页 - * @param exclude - 保留的多页签 - */ - clearMultiTab(exclude: string[] = []) { - const remain = [ROUTE_HOME.path, ...exclude]; - const { routes } = this.multiTab; - const updateRoutes = routes.filter(v => remain.includes(v.fullPath)); - this.multiTab.routes = updateRoutes; - const activePath = updateRoutes[updateRoutes.length - 1].fullPath; - router.push(activePath); - this.setActiveMultiTab(activePath); - }, - /** 删除左边多页签 */ - clearLeftMultiTab(fullPath: string) { - const { routes } = this.multiTab; - const currentIndex = routes.findIndex(route => route.fullPath === fullPath); - const activeIndex = this.activeMultiTabIndex; - if (currentIndex > -1) { - const remain = [ROUTE_HOME.path, ...routes.slice(currentIndex).map(v => v.fullPath)]; - const updateRoutes = routes.filter(v => remain.includes(v.fullPath)); - this.multiTab.routes = updateRoutes; - if (activeIndex < currentIndex) { - const activePath = updateRoutes[updateRoutes.length - 1].fullPath; - router.push(activePath); - this.setActiveMultiTab(activePath); - } - } - }, - /** 删除右边多页签 */ - clearRightMultiTab(fullPath: string) { - const { routes } = this.multiTab; - const currentIndex = routes.findIndex(route => route.fullPath === fullPath); - const activeIndex = this.activeMultiTabIndex; - if (currentIndex > -1) { - const remain = [ROUTE_HOME.path, ...routes.slice(0, currentIndex + 1).map(v => v.fullPath)]; - const updateRoutes = routes.filter(v => remain.includes(v.fullPath)); - this.multiTab.routes = updateRoutes; - if (activeIndex > currentIndex) { - router.push(fullPath); - this.setActiveMultiTab(fullPath); - } - } - }, - /** 点击单个页签tab */ - handleClickTab(fullPath: string) { - if (this.multiTab.activeRoute !== fullPath) { - router.push(fullPath); - this.setActiveMultiTab(fullPath); - } - }, - /** 设置当前路由对应的页签为激活状态 */ - setActiveMultiTab(fullPath: string) { - this.multiTab.activeRoute = fullPath; - }, - /** 初始化多页签数据 */ - initMultiTab() { - const theme = useThemeStore(); - const { currentRoute } = router; - const isHome = currentRoute.value.name === ROUTE_HOME.name; - const home = getHomeTabRoute(currentRoute.value); - const routes: MultiTabRoute[] = theme.multiTabStyle.isCache ? getTabRouteStorage() : []; - const hasHome = isInTabRoutes(routes, home.fullPath); - const hasCurrent = isInTabRoutes(routes, currentRoute.value.fullPath); - if (!hasHome) { - routes.unshift(home); - } - if (!isHome && !hasCurrent) { - routes.push(currentRoute.value); - } - this.multiTab.routes = routes; - this.setActiveMultiTab(currentRoute.value.fullPath); - }, - /** 重新加载页面 */ - handleReload() { - this.reloadFlag = false; - nextTick(() => { - this.reloadFlag = true; - this.resetScrollBehavior(); - }); - }, - /** 打开配置抽屉 */ - openSettingDrawer() { - this.settingDrawer.visible = true; - }, - /** 关闭配置抽屉 */ - closeSettingDrawer() { - this.settingDrawer.visible = false; - } - } + return appStore; }); - -export default function useAppStore() { - return appStore(store); -} diff --git a/src/store/modules/auth/index.ts b/src/store/modules/auth/index.ts index 519deec3..f99994bd 100644 --- a/src/store/modules/auth/index.ts +++ b/src/store/modules/auth/index.ts @@ -1,48 +1,31 @@ +import { ref, computed, reactive } from 'vue'; +import type { Ref, ComputedRef } from 'vue'; import { defineStore } from 'pinia'; -import { store } from '@/store'; -import { clearAuthStorage, getToken, getUserInfo } from '@/utils'; -import type { UserInfo } from '@/interface'; +import { getUserInfo, getToken } from '@/utils'; -interface AuthState { - /** 用户token */ - token: string; +interface AuthStore { /** 用户信息 */ - userInfo: UserInfo; + userInfo: Auth.UserInfo; + /** 用户token */ + token: Ref; + /** 是否登录 */ + isLogin: ComputedRef; + /** 用户角色 */ + role: Ref; } -const authStore = defineStore({ - /** 区分不通状态的唯一标识 */ - id: 'auth-store', - /** 状态 */ - state: (): AuthState => { - return { - token: getToken(), - userInfo: getUserInfo() - }; - }, - getters: { - /** 是否登录 */ - isLogin: state => Boolean(state.token) - }, - actions: { - /** 设置Auth状态 */ - setAuthState(data: Partial) { - Object.assign(this, data); - }, - /** 重置auth状态 */ - resetAuthState() { - clearAuthStorage(); - this.$reset(); - }, - /** 判断用户权益是否变更 */ - getIsAuthChange() { - const token = getToken(); - const tokenChange = token !== this.token; - return tokenChange; - } - } +export const useAuthStore = defineStore('auth-store', () => { + const userInfo: Auth.UserInfo = reactive(getUserInfo()); + const token = ref(getToken()); + const isLogin = computed(() => Boolean(token.value)); + const role = ref('super'); + + const authStore: AuthStore = { + userInfo, + token, + isLogin, + role + }; + + return authStore; }); - -export default function useAuthStore() { - return authStore(store); -} diff --git a/src/store/modules/index.ts b/src/store/modules/index.ts index 450ad363..068758fd 100644 --- a/src/store/modules/index.ts +++ b/src/store/modules/index.ts @@ -1,5 +1,4 @@ -import useThemeStore from './theme'; -import useAppStore from './app'; -import useAuthStore from './auth'; - -export { useThemeStore, useAppStore, useAuthStore }; +export * from './app'; +export * from './theme'; +export * from './auth'; +export * from './route'; diff --git a/src/store/modules/route/index.ts b/src/store/modules/route/index.ts new file mode 100644 index 00000000..68d8fcf2 --- /dev/null +++ b/src/store/modules/route/index.ts @@ -0,0 +1,68 @@ +import { ref } from 'vue'; +import type { Ref } from 'vue'; +import type { Router } from 'vue-router'; +import { defineStore } from 'pinia'; +import { constantRoutes } from '@/router'; +import { useBoolean } from '@/hooks'; +import { fetchUserRoutes } from '@/service'; +import { findAuthRouteByKey } from '@/utils'; + +/** 路由状态 */ +interface RouteStore { + /** 动态路由 */ + routes: Ref; + /** 设置动态路由数据 */ + setRoutes(data: AuthRoute.Route[]): void; + /** 是否添加过动态路由 */ + isAddedDynamicRoute: Ref; + /** 初始化动态路由 */ + initDynamicRoute(router: Router): Promise; + /** 获取路由名称(优先使用) */ + getRouteName(key: AuthRoute.RouteKey): AuthRoute.RouteKey; + /** 获取路由路径 */ + getRoutePath(key: AuthRoute.RouteKey): AuthRoute.RoutePath<''> | undefined; + /** 获取路由路径 */ + getRouteTitle(key: AuthRoute.RouteKey): string | undefined; +} + +export const useRouteStore = defineStore('route-store', () => { + const routes = ref([]); + function setRoutes(data: AuthRoute.Route[]) { + routes.value = data; + } + + const { bool: isAddedDynamicRoute, setTrue: setAddedDynamicRoute } = useBoolean(); + async function initDynamicRoute(router: Router) { + const routes = await fetchUserRoutes(); + routes.forEach(route => { + router.addRoute(route); + }); + setAddedDynamicRoute(); + } + + function getRouteName(key: AuthRoute.RouteKey) { + return key; + } + function getRoutePath(key: AuthRoute.RouteKey) { + const allRoutes = [...constantRoutes, ...routes.value]; + const item = findAuthRouteByKey(key, allRoutes); + return item?.path; + } + function getRouteTitle(key: AuthRoute.RouteKey) { + const allRoutes = [...constantRoutes, ...routes.value]; + const item = findAuthRouteByKey(key, allRoutes); + return item?.meta?.title; + } + + const routeStore: RouteStore = { + routes, + setRoutes, + isAddedDynamicRoute, + initDynamicRoute, + getRouteName, + getRoutePath, + getRouteTitle + }; + + return routeStore; +}); diff --git a/src/store/modules/theme/helpers.ts b/src/store/modules/theme/helpers.ts deleted file mode 100644 index 4cceaa8e..00000000 --- a/src/store/modules/theme/helpers.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { brightenColor, darkenColor, addColorAlpha } from '@/utils'; - -type ColorType = 'primary' | 'info' | 'success' | 'warning' | 'error'; - -type ColorScene = '' | 'Suppl' | 'Hover' | 'Pressed' | 'Active'; - -type ColorKey = `${ColorType}Color${ColorScene}`; - -type ThemeColor = { - [key in ColorKey]?: string; -}; - -interface ColorAction { - scene: ColorScene; - handler: (color: string) => string; -} - -/** 获取主题颜色的各种场景对应的颜色 */ -export function getThemeColors(colors: [ColorType, string][]) { - const colorActions: ColorAction[] = [ - { scene: '', handler: color => color }, - { scene: 'Suppl', handler: color => color }, - { scene: 'Hover', handler: color => brightenColor(color) }, - { scene: 'Pressed', handler: color => darkenColor(color) }, - { scene: 'Active', handler: color => addColorAlpha(color, 0.1) } - ]; - - const themeColor: ThemeColor = {}; - - colors.forEach(color => { - colorActions.forEach(action => { - const [colorType, colorValue] = color; - const colorKey: ColorKey = `${colorType}Color${action.scene}`; - themeColor[colorKey] = action.handler(colorValue); - }); - }); - - return themeColor; -} diff --git a/src/store/modules/theme/index.ts b/src/store/modules/theme/index.ts index 98ea149a..1d5a0fe0 100644 --- a/src/store/modules/theme/index.ts +++ b/src/store/modules/theme/index.ts @@ -1,138 +1,7 @@ import { defineStore } from 'pinia'; -import type { GlobalThemeOverrides } from 'naive-ui'; -import { themeSettings, defaultThemeSettings } from '@/settings'; -import { store } from '@/store'; -import type { ThemeSettings, NavMode, MultiTabMode, AnimateType, HorizontalMenuPosition } from '@/interface'; -import { getThemeColors } from './helpers'; -type ThemeState = ThemeSettings; +// interface ThemeStore { +// primary: string; +// } -const themeStore = defineStore({ - id: 'theme-store', - state: (): ThemeState => ({ - ...themeSettings - }), - getters: { - /** naive UI主题配置 */ - themeOverrids(): GlobalThemeOverrides { - const { - themeColor, - otherColor: { info, success, warning, error } - } = this; - - const themeColors = getThemeColors([ - ['primary', themeColor], - ['info', info], - ['success', success], - ['warning', warning], - ['error', error] - ]); - - const colorLoading = themeColor; - - return { - common: { - ...themeColors - }, - LoadingBar: { - colorLoading - } - }; - }, - isVerticalNav(): boolean { - const { mode } = this.navStyle; - return mode === 'vertical' || mode === 'vertical-mix'; - }, - pageAnimateType(): AnimateType | '' { - return this.pageStyle.animate ? this.pageStyle.animateType : ''; - } - }, - actions: { - /** 设置默认配置 */ - setDefaultThemeStore() { - Object.assign(this, defaultThemeSettings); - }, - /** 设置暗黑模式 */ - handleDarkMode(isDark: boolean) { - this.darkMode = isDark; - }, - /** 切换暗黑模式 */ - toggleDarkMode() { - this.darkMode = !this.darkMode; - }, - /** 设置系统主题颜色 */ - setThemeColor(color: string) { - this.themeColor = color; - }, - /** 设置导航栏模式 */ - setNavMode(mode: NavMode) { - this.navStyle.mode = mode; - }, - /** 更改菜单展开的宽度 */ - handleMenuWidth(width: number | null) { - if (width !== null) { - this.menuStyle.width = width; - } - }, - /** 更改混合菜单展开的宽度 */ - handleMixMenuWidth(width: number | null) { - if (width !== null) { - this.menuStyle.mixWidth = width; - } - }, - /** 更改顶部水平菜单的位置 */ - handleHorizontalMenuPosition(position: HorizontalMenuPosition) { - this.menuStyle.horizontalPosition = position; - }, - /** 更改头部的高度 */ - handleHeaderHeight(height: number | null) { - if (height !== null) { - this.headerStyle.height = height; - } - }, - /** 更改Tab标签的高度 */ - handleMultiTabHeight(height: number | null) { - if (height !== null) { - this.multiTabStyle.height = height; - } - }, - /** 设置多页签的显示 */ - handleMultiTabVisible(visible: boolean) { - this.multiTabStyle.visible = visible; - }, - /** 设置多页签的显示 */ - handleMultiTabMode(mode: MultiTabMode) { - this.multiTabStyle.mode = mode; - }, - /** 设置多页签缓存 */ - handleSetMultiTabCache(isCache: boolean) { - this.multiTabStyle.isCache = isCache; - }, - /** 设置面包屑的显示 */ - handleCrumbsVisible(visible: boolean) { - this.crumbsStyle.visible = visible; - }, - /** 设置面包屑图标的显示 */ - handleCrumbsIconVisible(visible: boolean) { - this.crumbsStyle.showIcon = visible; - }, - /** 开启页面切换动画 */ - handlePageAnimate(animate: boolean) { - this.pageStyle.animate = animate; - }, - /** 设置页面切换动画类型 */ - handlePageAnimateType(animateType: AnimateType) { - if (this.pageStyle.animate) { - this.pageStyle.animateType = animateType; - } - }, - /** 固定头部 */ - handleFixedHeaderAndTab(isFixed: boolean) { - this.fixedHeaderAndTab = isFixed; - } - } -}); - -export default function useThemeStore() { - return themeStore(store); -} +export const useThemeStore = defineStore('theme-store', () => {}); diff --git a/src/styles/css/global.css b/src/styles/css/global.css index fdae5040..e17043b3 100644 --- a/src/styles/css/global.css +++ b/src/styles/css/global.css @@ -1,19 +1 @@ @import './scrollbar.css'; -@import './transition.css'; - -html, -body, -#app { - width: 100%; - height: 100%; -} -html { - font-size: 16px; -} -#app { - font-family: Avenir, Helvetica, Arial, sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-size: 14px; - color: rgba(0, 0, 0, 0.65); -} diff --git a/src/styles/css/transition.css b/src/styles/css/transition.css deleted file mode 100644 index 81b4b6fe..00000000 --- a/src/styles/css/transition.css +++ /dev/null @@ -1,86 +0,0 @@ -/* opacity透明过度 */ -.transition-opacity-enter-active, -.transition-opacity-enter-active { - transition: opacity 0.4s ease-out; -} -.transition-opacity-enter-from, -.transition-opacity-leave-to { - opacity: 0; -} - -/* zoom-fade */ -.zoom-fade-enter-active, -.zoom-fade-leave-active { - transition: transform 0.2s, opacity 0.3s ease-out; -} -.zoom-fade-enter-from { - opacity: 0; - transform: scale(0.92); -} -.zoom-fade-leave-to { - opacity: 0; - transform: scale(1.06); -} - -/* zoom-out */ -.zoom-out-enter-active, -.zoom-out-leave-active { - transition: opacity 0.1s ease-in-out, transform 0.15s ease-out; -} -.zoom-out-enter-from, -.zoom-out-leave-to { - opacity: 0; - transform: scale(0); -} - -/* fade */ -.fade-enter-active, -.fade-leave-active { - transition: opacity 0.2s ease-in-out; -} -.fade-enter-from, -.fade-leave-to { - opacity: 0; -} - -/* fade-slide */ -.fade-slide-leave-active, -.fade-slide-enter-active { - transition: all 0.3s; -} -.fade-slide-enter-from { - opacity: 0; - transform: translateX(-30px); -} -.fade-slide-leave-to { - opacity: 0; - transform: translateX(30px); -} - -/* fade-bottom */ -.fade-bottom-enter-active, -.fade-bottom-leave-active { - transition: opacity 0.25s, transform 0.3s; -} -.fade-bottom-enter-from { - opacity: 0; - transform: translateY(-10%); -} -.fade-bottom-leave-to { - opacity: 0; - transform: translateY(10%); -} - -/* fade-scale */ -.fade-scale-leave-active, -.fade-scale-enter-active { - transition: all 0.28s; -} -.fade-scale-enter-from { - opacity: 0; - transform: scale(1.2); -} -.fade-scale-leave-to { - opacity: 0; - transform: scale(0.8); -} diff --git a/src/styles/scss/global.scss b/src/styles/scss/global.scss index c3ecc180..e99a7812 100644 --- a/src/styles/scss/global.scss +++ b/src/styles/scss/global.scss @@ -1,20 +1 @@ -@import './naive.scss'; - -@mixin scrollbar($size:8px, $color:#d9d9d9) { - &::-webkit-scrollbar-thumb { - background-color: $color; - border-radius: $size; - } - &::-webkit-scrollbar-thumb:hover { - background-color: $color; - border-radius: $size; - } - &::-webkit-scrollbar { - width: $size; - height: $size; - } - &::-webkit-scrollbar-track-piece { - background-color: rgba(0, 0, 0, 0); - border-radius: 0; - } -} +@import './scrollbar.scss'; diff --git a/src/styles/scss/naive.scss b/src/styles/scss/naive.scss deleted file mode 100644 index bb31b645..00000000 --- a/src/styles/scss/naive.scss +++ /dev/null @@ -1,6 +0,0 @@ -.n-icon-slot { - width: auto !important; - height: auto !important; - justify-content: center; - align-items: center; -} diff --git a/src/styles/scss/scrollbar.scss b/src/styles/scss/scrollbar.scss new file mode 100644 index 00000000..52a0b637 --- /dev/null +++ b/src/styles/scss/scrollbar.scss @@ -0,0 +1,18 @@ +@mixin scrollbar($size:8px, $color:#d9d9d9) { + &::-webkit-scrollbar-thumb { + background-color: $color; + border-radius: $size; + } + &::-webkit-scrollbar-thumb:hover { + background-color: $color; + border-radius: $size; + } + &::-webkit-scrollbar { + width: $size; + height: $size; + } + &::-webkit-scrollbar-track-piece { + background-color: rgba(0, 0, 0, 0); + border-radius: 0; + } +} diff --git a/src/typings/amap.d.ts b/src/typings/amap.d.ts deleted file mode 100644 index 747c0e88..00000000 --- a/src/typings/amap.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/src/typings/api/route.d.ts b/src/typings/api/route.d.ts new file mode 100644 index 00000000..dcd457b0 --- /dev/null +++ b/src/typings/api/route.d.ts @@ -0,0 +1,10 @@ +/** 后端返回的路由相关类型 */ +declare namespace ApiRoute { + /** 后端返回的路由数据类型 */ + interface ResponseRoute { + /** 动态路由 */ + routes: AuthRoute.Route[]; + /** 路由首页对应的key */ + home: AuthRoute.RoutePath; + } +} diff --git a/src/typings/bmapgl.d.ts b/src/typings/bmapgl.d.ts deleted file mode 100644 index 7d06ad6a..00000000 --- a/src/typings/bmapgl.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -/// -declare namespace BMap { - class Map extends BMapGL.Map {} - class Point extends BMapGL.Point {} -} diff --git a/src/typings/business/auth.d.ts b/src/typings/business/auth.d.ts new file mode 100644 index 00000000..7e6b36b8 --- /dev/null +++ b/src/typings/business/auth.d.ts @@ -0,0 +1,21 @@ +/** 用户相关模块 */ +declare namespace Auth { + /** 用户信息 */ + interface UserInfo { + /** 用户id */ + userId: string; + /** 用户名 */ + userName: string; + /** 用户手机号 */ + userPhone: string; + } + + /** + * 用户角色类型 + * - super: 超级管理员 + * - admin: 管理员 + * - test: 测试 + * - visitor: 游客 + */ + type RoleType = 'super' | 'admin' | 'test' | 'visitor'; +} diff --git a/src/typings/common/common.d.ts b/src/typings/common/common.d.ts new file mode 100644 index 00000000..6c99798e --- /dev/null +++ b/src/typings/common/common.d.ts @@ -0,0 +1,8 @@ +/** 通用类型 */ +declare namespace Common { + /** + * 策略模式 + * [状态, 为true时执行的回调函数] + */ + type StrategyAction = [boolean, () => void]; +} diff --git a/src/typings/common/env.d.ts b/src/typings/common/env.d.ts new file mode 100644 index 00000000..637c222e --- /dev/null +++ b/src/typings/common/env.d.ts @@ -0,0 +1,25 @@ +/// + +declare module '*.vue' { + import { DefineComponent } from 'vue'; + + const component: DefineComponent<{}, {}, any>; + export default component; +} + +interface ImportMetaEnv { + /** 项目基本地址 */ + readonly BASE_URL: string; + /** 项目名称 */ + readonly VITE_APP_NAME: string; + /** 项目标题 */ + readonly VITE_APP_TITLE: string; + /** 项目描述 */ + readonly VITE_APP_DESC: string; + /** 网路请求环境类型 */ + readonly VITE_HTTP_ENV: Service.HttpEnv; +} + +interface ImportMeta { + readonly env: ImportMetaEnv; +} diff --git a/src/typings/common/route.d.ts b/src/typings/common/route.d.ts new file mode 100644 index 00000000..c767b6b5 --- /dev/null +++ b/src/typings/common/route.d.ts @@ -0,0 +1,89 @@ +/** 权限路由相关类型 */ +declare namespace AuthRoute { + /** 路由的key */ + type RouteKey = + // 固定的路由 + | 'root' + | 'login' + | 'not-found' + | 'no-permission' + | 'service-error' + | 'redirect-not-found' // 重定向not-found + // 自定义路由 + | 'dashboard' + | 'dashboard_analysis' + | 'dashboard_workbench' + | 'multi-menu' + | 'multi-menu_first' + | 'multi-menu_first_second' + | 'about'; + + /** 路由Key转换路由Path */ + type KeyToPath = Key extends `${infer Left}_${infer Right}` + ? KeyToPath<`${Left}/${Right}`> + : `/${Key}`; + + /** 路由路径 */ + type RoutePath = + | '/' + | Exclude, '/root' | '/redirect'> + | Key + | '/:path(.*)*' + | '/:pathMatch(.*)*'; + + /** 多级路由分割符号 */ + type RouteSplitMark = '_'; + + /** + * 路由的组件 + * - layout - 基础布局,具有公共部分的布局 + * - blank - 空白布局 + * - multi - 多级路由布局(三级路由或三级以上时,除第一级路由和最后一级路由,其余的采用该布局) + * - self - 作为子路由,使用自身的布局(作为最后一级路由,没有子路由) + */ + type RouteComponent = 'layout' | 'blank' | 'multi' | 'self'; + + /** 路由描述 */ + type RouteMeta = { + /** 路由标题(可用来作document.title或者菜单的名称) */ + title: string; + /** 需要登录权限 */ + requiresAuth?: boolean; + /** 哪些类型的用户有权限才能访问的路由 */ + permissions?: Auth.RoleType[]; + /** 缓存页面 */ + keepAlive?: boolean; + /** 是否是空白布局 */ + blankLayout?: boolean; + /** 菜单和面包屑对应的图标 */ + icon?: string; + /** 是否在菜单中隐藏 */ + hide?: boolean; + /** 是否作为单独的路由(作为菜单时只有自身,没有子菜单) */ + single?: boolean; + /** 路由顺序,可用于菜单的排序 */ + order?: number; + }; + + /** 单个路由的类型结构(后端返回此类型结构的路由) */ + interface Route { + /** 路由名称(路由唯一标识) */ + name: RouteKey; + /** 路由路径 */ + path: RoutePath; + /** 路由重定向 */ + redirect?: RoutePath; + /** + * 路由组件 + * - layout: 基础布局,具有公共部分的布局 + * - blank: 空白布局 + * - multi: 多级路由布局(三级路由或三级以上时,除第一级路由和最后一级路由,其余的采用该布局) + * - self: 作为子路由,使用自身的布局(作为最后一级路由,没有子路由) + */ + component?: RouteComponent; + /** 子路由 */ + children?: Route[]; + /** 路由描述 */ + meta: RouteMeta; + } +} diff --git a/src/typings/common/router.d.ts b/src/typings/common/router.d.ts new file mode 100644 index 00000000..79dda08e --- /dev/null +++ b/src/typings/common/router.d.ts @@ -0,0 +1,7 @@ +import 'vue-router'; + +declare module 'vue-router' { + interface RouteMeta extends AuthRoute.RouteMeta { + title: string; + } +} diff --git a/src/typings/common/service.d.ts b/src/typings/common/service.d.ts new file mode 100644 index 00000000..1844558e --- /dev/null +++ b/src/typings/common/service.d.ts @@ -0,0 +1,54 @@ +/** 请求的相关类型 */ +declare namespace Service { + /** 请求环境类型 + * - test:测试环境 + * - prod:正式环境 */ + type HttpEnv = 'test' | 'prod'; + + /** + * 请求的错误类型: + * - axios: axios错误:网络错误, 请求超时, 默认的兜底错误 + * - http: 请求成功,响应的状态码非200的错误 + * - backend: 请求成功,响应的状态码为200,由后端定义的业务错误 + */ + type RequestErrorType = 'axios' | 'http' | 'backend'; + + /** 请求错误 */ + interface RequestError { + /** 请求服务的错误类型 */ + type: RequestErrorType; + /** 错误码 */ + code: string | number; + /** 错误信息 */ + msg: string; + } + + /** 后端接口返回的数据的类型 */ + interface BackendServiceResult { + /** 状态码 */ + code: string | number; + /** 接口数据 */ + data: T; + /** 接口消息 */ + message: string; + } + + /** 自定义的请求成功结果 */ + interface SuccessResult { + /** 请求错误 */ + error: null; + /** 请求数据 */ + data: T; + } + + /** 自定义的请求失败结果 */ + interface FailedResult { + /** 请求错误 */ + error: RequestError; + /** 请求数据 */ + data: null; + } + + /** 自定义的请求结果 */ + type RequestResult = SuccessResult | FailedResult; +} diff --git a/src/typings/window.d.ts b/src/typings/common/window.d.ts similarity index 100% rename from src/typings/window.d.ts rename to src/typings/common/window.d.ts diff --git a/src/typings/env.d.ts b/src/typings/env.d.ts deleted file mode 100644 index ac91b51d..00000000 --- a/src/typings/env.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -interface ImportMetaEnv { - /** 项目基本地址 */ - VITE_BASE_URL: string; - /** 项目名称 */ - VITE_APP_NAME: string; - /** 项目标题 */ - VITE_APP_TITLE: string; - /** 项目描述 */ - VITE_APP_DESC: string; - /** 网路请求环境类型 */ - VITE_HTTP_ENV: 'DEV' | 'PROD' | 'STAGING'; - /** 网路请求地址 */ - VITE_HTTP_URL: string; -} diff --git a/src/typings/global.d.ts b/src/typings/global.d.ts deleted file mode 100644 index 2305ae02..00000000 --- a/src/typings/global.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/** 构建时间 */ -declare const PROJECT_BUILD_TIME: string; diff --git a/src/typings/router.d.ts b/src/typings/router.d.ts deleted file mode 100644 index a01f4389..00000000 --- a/src/typings/router.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -import 'vue-router'; - -declare module 'vue-router' { - interface RouteMeta { - /** 路由名称(作为菜单时为菜单的名称) */ - title: string; - /** 需要登录权限 */ - requiresAuth?: boolean; - /** 缓存页面 */ - keepAlive?: boolean; - /** 页面占满剩余高度(去除头部、tab和底部后的高度) */ - fullPage?: boolean; - /** 不作为菜单 */ - notAsMenu?: boolean; - /** 菜单和面包屑对应的图标 */ - icon?: string; - /** 导入的路由模块排序,可用于菜单的排序 */ - order?: number; - /** y方向滚动的距离(被缓存的页面保留滚动行为) */ - scrollY?: number; - } -} diff --git a/src/typings/shims-vue.d.ts b/src/typings/shims-vue.d.ts deleted file mode 100644 index 30030494..00000000 --- a/src/typings/shims-vue.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -declare module '*.vue' { - import { DefineComponent } from 'vue'; - - const component: DefineComponent<{}, {}, any>; - export default component; -} diff --git a/src/typings/tmap.d.ts b/src/typings/tmap.d.ts deleted file mode 100644 index 5b1bc80d..00000000 --- a/src/typings/tmap.d.ts +++ /dev/null @@ -1 +0,0 @@ -declare const TMap: any; diff --git a/src/typings/vite-env.d.ts b/src/typings/vite-env.d.ts deleted file mode 100644 index 11f02fe2..00000000 --- a/src/typings/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/src/utils/auth/user.ts b/src/utils/auth/user.ts index 5a248908..898e11e2 100644 --- a/src/utils/auth/user.ts +++ b/src/utils/auth/user.ts @@ -1,5 +1,4 @@ import { EnumStorageKey } from '@/enum'; -import type { UserInfo } from '@/interface'; import { setLocal, getLocal, removeLocal } from '../storage'; /** 设置token */ @@ -34,18 +33,20 @@ export function removeRefreshToken() { /** 设置用户信息 */ export function getUserInfo() { - const emptyInfo: UserInfo = { + const emptyInfo: Auth.UserInfo = { userId: '', userName: '', userPhone: '' }; - const userInfo: UserInfo = getLocal(EnumStorageKey['user-info']) || emptyInfo; + const userInfo: Auth.UserInfo = getLocal(EnumStorageKey['user-info']) || emptyInfo; return userInfo; } + /** 获取用户信息 */ -export function setUserInfo(userInfo: UserInfo) { +export function setUserInfo(userInfo: Auth.UserInfo) { setLocal(EnumStorageKey['user-info'], userInfo); } + /** 去除用户信息 */ export function removeUserInfo() { removeLocal(EnumStorageKey['user-info']); diff --git a/src/utils/common/browser.ts b/src/utils/common/browser.ts deleted file mode 100644 index c3bde4db..00000000 --- a/src/utils/common/browser.ts +++ /dev/null @@ -1,46 +0,0 @@ -interface BrowserInfo { - type: string; - version: string; -} - -/** 获取浏览器版本信息 */ -export function getBrowserInfo() { - const explorer = window.navigator.userAgent.toLowerCase(); - const info: BrowserInfo = { - type: '', - version: '' - }; - function setInfo(data: BrowserInfo) { - Object.assign(info, data); - } - // ie - if (explorer.indexOf('msie') >= 0) { - const [version] = explorer.match(/msie ([\d.]+)/) || ['']; - setInfo({ type: 'IE', version }); - } - // firefox - if (explorer.indexOf('firefox') >= 0) { - const [version] = explorer.match(/firefox\/([\d.]+)/) || ['']; - setInfo({ type: 'Firefox', version }); - } - // Chrome - if (explorer.indexOf('chrome') >= 0) { - const [version] = explorer.match(/chrome\/([\d.]+)/) || ['']; - setInfo({ type: 'Chrome', version }); - if (explorer.indexOf('qqbrowser') >= 0) { - const [version] = explorer.match(/qqbrowser\/([\d.]+)/) || ['']; - setInfo({ type: 'QQ浏览器', version }); - } - } - // Opera - if (explorer.indexOf('opera') >= 0) { - const [version] = explorer.match(/opera.([\d.]+)/) || ['']; - setInfo({ type: 'Opera', version }); - } - // Safari - if (explorer.indexOf('Safari') >= 0) { - const [version] = explorer.match(/version\/([\d.]+)/) || ['']; - setInfo({ type: 'Safari', version }); - } - return info; -} diff --git a/src/utils/common/color.ts b/src/utils/common/color.ts deleted file mode 100644 index a4968d15..00000000 --- a/src/utils/common/color.ts +++ /dev/null @@ -1,38 +0,0 @@ -import chroma from 'chroma-js'; - -/** - * 更亮的颜色 - * @param color - 颜色 - * @param deep - 效果层次 - */ -export function brightenColor(color: string, deep: number = 0.5) { - return chroma(color).brighten(deep).hex(); -} - -/** - * 更暗的颜色 - * @param color - 颜色 - * @param deep - 效果层次 - */ -export function darkenColor(color: string, deep: number = 0.5) { - return chroma(color).darken(deep).hex(); -} - -/** - * 给颜色加透明度 - * @param color - 颜色 - * @param alpha - 透明度 - */ -export function addColorAlpha(color: string, alpha: number) { - return chroma(color).alpha(alpha).hex(); -} - -/** - * 颜色混合 - * @param firstColor - 第一个颜色 - * @param secondColor - 第二个颜色 - * @param ratio - 第二个颜色占比 - */ -export function mixColor(firstColor: string, secondColor: string, ratio: number) { - return chroma.mix(firstColor, secondColor, ratio).hex(); -} diff --git a/src/utils/common/design-pattern.ts b/src/utils/common/design-pattern.ts new file mode 100644 index 00000000..6afdda48 --- /dev/null +++ b/src/utils/common/design-pattern.ts @@ -0,0 +1,10 @@ +/** 执行策略模式 */ +export function exeStrategyActions(actions: Common.StrategyAction[]) { + actions.some(item => { + const [flag, action] = item; + if (flag) { + action(); + } + return flag; + }); +} diff --git a/src/utils/common/icon.ts b/src/utils/common/icon.ts deleted file mode 100644 index 416a7087..00000000 --- a/src/utils/common/icon.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { h } from 'vue'; -import { Icon } from '@iconify/vue'; - -/** - * 动态渲染iconify - * @param icon - 图标名称 - * @param color - 图标颜色 - * @param size - 图标大小 - */ -export function iconifyRender(icon: string, color?: string, size?: number) { - const style: { color?: string; size?: string } = {}; - if (color) { - style.color = color; - } - if (size) { - style.size = `${size}px`; - } - return () => h(Icon, { icon, style }); -} diff --git a/src/utils/common/index.ts b/src/utils/common/index.ts index 12f69ec0..6502676e 100644 --- a/src/utils/common/index.ts +++ b/src/utils/common/index.ts @@ -1,6 +1,3 @@ export * from './typeof'; -export * from './color'; -export * from './icon'; -export * from './browser'; export * from './console'; -export * from './number'; +export * from './design-pattern'; diff --git a/src/utils/common/number.ts b/src/utils/common/number.ts deleted file mode 100644 index e3816f8f..00000000 --- a/src/utils/common/number.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * 获取指定整数范围内的随机整数 - * @param start - 开始范围 - * @param end - 结束范围 - */ -export function getRandomInterger(end: number, start: number = 0) { - const range = end - start; - const random = Math.floor(Math.random() * range + start); - return random; -} diff --git a/src/utils/form/index.ts b/src/utils/form/index.ts deleted file mode 100644 index 0a15f57b..00000000 --- a/src/utils/form/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './rule'; diff --git a/src/utils/form/rule.ts b/src/utils/form/rule.ts deleted file mode 100644 index 3f189d2c..00000000 --- a/src/utils/form/rule.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Ref } from 'vue'; -import type { FormItemRule } from 'naive-ui'; -import { REGEXP_PHONE, REGEXP_PWD, REGEXP_CODE, REGEXP_EMAIL } from '@/config'; - -/** 表单规则 */ -interface CustomFormRules { - /** 手机号码 */ - phone: FormItemRule[]; - /** 密码 */ - pwd: FormItemRule[]; - /** 验证码 */ - code: FormItemRule[]; - /** 邮箱 */ - email: FormItemRule[]; -} - -/** 表单规则 */ -export const formRules: CustomFormRules = { - phone: [ - { required: true, message: '请输入手机号码' }, - { pattern: REGEXP_PHONE, message: '手机号码格式错误', trigger: 'input' } - ], - pwd: [ - { required: true, message: '请输入密码' }, - { pattern: REGEXP_PWD, message: '密码为8-18位数字/字符/符号,至少2种组合', trigger: 'input' } - ], - code: [ - { required: true, message: '请输入验证码' }, - { pattern: REGEXP_CODE, message: '验证码格式错误', trigger: 'input' } - ], - email: [{ pattern: REGEXP_EMAIL, message: '邮箱格式错误', trigger: 'blur' }] -}; - -/** 是否为空字符串 */ -function isBlankString(str: string) { - return str.trim() === ''; -} - -/** 获取确认密码的表单规则 */ -export function getConfirmPwdRule(pwd: Ref) { - const confirmPwdRule: FormItemRule[] = [ - { required: true, message: '请输入确认密码' }, - { - validator: (rule, value) => { - if (!isBlankString(value) && value !== pwd.value) { - return Promise.reject(rule.message); - } - return Promise.resolve(); - }, - message: '输入的值与密码不一致', - trigger: 'input' - } - ]; - return confirmPwdRule; -} - -/** 获取图片验证码的表单规则 */ -export function getImgCodeRule(imgCode: Ref) { - const imgCodeRule: FormItemRule[] = [ - { required: true, message: '请输入验证码' }, - { - validator: (rule, value) => { - if (!isBlankString(value) && value !== imgCode.value) { - return Promise.reject(rule.message); - } - return Promise.resolve(); - }, - message: '验证码不正确', - trigger: 'blur' - } - ]; - return imgCodeRule; -} diff --git a/src/utils/index.ts b/src/utils/index.ts index b1e478de..7d838cc4 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,7 +1,5 @@ export * from './common'; export * from './storage'; -export * from './router'; export * from './service'; -export * from './form'; -export * from './package'; export * from './auth'; +export * from './router'; diff --git a/src/utils/package/index.ts b/src/utils/package/index.ts deleted file mode 100644 index c94104fd..00000000 --- a/src/utils/package/index.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { VersionInfo } from '@/interface'; -import packageJSON from '../../../package.json'; - -interface Package { - name: string; - version: string; - dependencies: { - [key: string]: string; - }; - devDependencies: { - [key: string]: string; - }; - [key: string]: any; -} - -interface PackageJson { - name: string; - version: string; - dependencies: VersionInfo[]; - devDependencies: VersionInfo[]; -} - -const packageWithType = packageJSON as Package; - -function transformVersionData(tuple: [string, string]): VersionInfo { - const [name, version] = tuple; - return { - name, - version - }; -} - -export const packageJson: PackageJson = { - name: packageWithType.name, - version: packageWithType.version, - dependencies: Object.entries(packageWithType.dependencies).map(item => transformVersionData(item)), - devDependencies: Object.entries(packageWithType.devDependencies).map(item => transformVersionData(item)) -}; diff --git a/src/utils/router/cache.ts b/src/utils/router/cache.ts deleted file mode 100644 index b98db4be..00000000 --- a/src/utils/router/cache.ts +++ /dev/null @@ -1,44 +0,0 @@ -import type { Component } from 'vue'; -import type { RouteRecordRaw } from 'vue-router'; - -/** 给需要缓存的页面组件设置名称 */ -function setComponentName(component?: Component, name?: string) { - if (component && name) { - Object.assign(component, { name }); - } -} - -function getCacheName(route: RouteRecordRaw, isCache: boolean) { - const cacheNames: string[] = []; - const hasChild = hasChildren(route); - if (isCache && !hasChild) { - const name = route.name as string; - setComponentName(route.component, name); - cacheNames.push(name); - } - if (hasChild) { - const children = route.children as RouteRecordRaw[]; - children.forEach(item => { - const isChildCache = isCache || isKeepAlive(item); - cacheNames.push(...getCacheName(item, isChildCache)); - }); - } - return cacheNames; -} - -function isKeepAlive(route: RouteRecordRaw) { - return Boolean(route?.meta?.keepAlive); -} -function hasChildren(route: RouteRecordRaw) { - return Boolean(route.children && route.children.length); -} - -/** 获取被缓存的路由 */ -export function getCacheRoutes(routes: RouteRecordRaw[]) { - const cacheNames: string[] = []; - routes.forEach(route => { - const isCache = isKeepAlive(route); - cacheNames.push(...getCacheName(route, isCache)); - }); - return cacheNames; -} diff --git a/src/utils/router/component.ts b/src/utils/router/component.ts new file mode 100644 index 00000000..5b8fcc1f --- /dev/null +++ b/src/utils/router/component.ts @@ -0,0 +1,58 @@ +import type { Component } from 'vue'; +import { + Login, + NoPermission, + NotFound, + ServiceError, + DashboardAnalysis, + DashboardWorkbench, + About, + MultiMenuFirstSecond +} from '@/views'; + +/** 需要用到自身vue组件的页面 */ +type ViewComponentKey = Exclude; + +type ViewComponent = { + [key in ViewComponentKey]: () => Promise; +}; + +/** + * 获取页面导入的vue文件(懒加载的方式) + */ +export function getViewComponent(routeKey: AuthRoute.RouteKey) { + const keys: ViewComponentKey[] = [ + 'login', + 'no-permission', + 'not-found', + 'service-error', + 'dashboard_analysis', + 'dashboard_workbench', + 'about', + 'multi-menu_first_second', + 'redirect-not-found' + ]; + + const key = keys.includes(routeKey as ViewComponentKey) ? (routeKey as ViewComponentKey) : 'not-found'; + + const viewComponent: ViewComponent = { + login: Login, + 'no-permission': NoPermission, + 'not-found': NotFound, + 'service-error': ServiceError, + dashboard_analysis: DashboardAnalysis, + dashboard_workbench: DashboardWorkbench, + about: About, + 'multi-menu_first_second': MultiMenuFirstSecond, + 'redirect-not-found': NotFound + }; + + return () => setViewComponentName(viewComponent[key], key); +} + +/** 给页面组件设置名称 */ +async function setViewComponentName(asyncComponent: () => Promise, name: string) { + const component = (await asyncComponent()) as { default: Component }; + Object.assign(component.default, { name }); + return component; +} diff --git a/src/utils/router/helpers.ts b/src/utils/router/helpers.ts index 06a4ef6e..db71b76b 100644 --- a/src/utils/router/helpers.ts +++ b/src/utils/router/helpers.ts @@ -1,115 +1,121 @@ -import type { Component } from 'vue'; -import type { Router, RouteRecordRaw, RouteMeta } from 'vue-router'; -import type { ImportedRouteModules, LoginModuleType } from '@/interface'; +import type { RouteRecordRaw } from 'vue-router'; +import { Layout } from '@/layouts'; +import { consoleError } from '../common'; +import { getViewComponent } from './component'; -interface SingleRouteConfig { - /** 路由 */ - route: RouteRecordRaw; - /** 路由容器 */ - container: Component; - /** 路由容器的描述 */ - containerMeta: RouteMeta; - /** 404路由的名称 */ - notFoundName: string; -} +type ComponentAction = { + [key in AuthRoute.RouteComponent]: () => void; +}; -/** 设置单个路由 */ -export function setSingleRoute(config: SingleRouteConfig) { - const { route, container, containerMeta, notFoundName } = config; - const routeItem: RouteRecordRaw = { - name: `${route.name as string}_`, - path: `${route.path}_`, - component: container, - redirect: { name: notFoundName }, - meta: { - notAsMenu: true, - ...containerMeta, - title: `${containerMeta.title}-container` - }, - children: [route] +/** 将权限路由类型转换成vue路由类型 */ +export function transformAuthRouteToVueRoute(item: AuthRoute.Route) { + const { name, path } = item; + const itemRoute: Partial = { + name, + path, + meta: item.meta }; + if (hasRedirect(item)) { + itemRoute.redirect = item.redirect; + } + if (hasComponent(item)) { + const action: ComponentAction = { + layout() { + itemRoute.component = Layout; + }, + blank() { + itemRoute.component = Layout; + if (itemRoute.meta) { + itemRoute.meta.blankLayout = true; + } + }, + multi() {}, + self() { + itemRoute.component = getViewComponent(item.name); + } + }; + try { + action[item.component!](); + } catch { + consoleError('路由组件解析失败: ', item); + } + } + if (isSingleRoute(item)) { + itemRoute.children = [ + { + path: '', + component: getViewComponent(item.name) + } + ]; + } else if (hasChildren(item)) { + itemRoute.children = item.children!.map(child => transformAuthRouteToVueRoute(child)); + } - return routeItem; + return itemRoute as RouteRecordRaw; } -/** 处理导入的路由模块 */ -export function transformRouteModules(routeModules: ImportedRouteModules) { - const modules = Object.keys(routeModules).map(key => { - return routeModules[key].default; - }); - const constantRoutes: RouteRecordRaw[] = modules.sort( - (next, pre) => Number(next.meta?.order) - Number(pre.meta?.order) - ); - return constantRoutes; +function hasComponent(item: AuthRoute.Route) { + return Boolean(item.component); +} + +function hasRedirect(item: AuthRoute.Route) { + return Boolean(item.redirect); +} + +function hasChildren(item: AuthRoute.Route) { + return Boolean(item.children && item.children.length); +} + +function isSingleRoute(item: AuthRoute.Route) { + return Boolean(item.meta.single); } /** - * 获取路由的首页 + * 根据路由key获取AuthRoute数据 + * @param key - 路由key * @param routes - 路由 - * @param routeHomeName - 路由首页名称 */ -export function getRouteHome(routes: RouteRecordRaw[], routeHomeName: string) { - let routeHome: RouteRecordRaw; - function hasChildren(route: RouteRecordRaw) { - return Boolean(route.children && route.children.length); +export function findAuthRouteByKey(key: AuthRoute.RouteKey, routes: AuthRoute.Route[]) { + const paths = getRouteKeyPathsByKey(key); + const route = recursiveFindRouteByPaths(paths, routes); + + return route; +} + +/** + * 根据路由key的paths获递归取路由 + * @param paths - 路由key的路径 + * @param routes - 路由 + */ +function recursiveFindRouteByPaths( + paths: AuthRoute.RouteKey[], + routes: AuthRoute.Route[] +): AuthRoute.Route | undefined { + const item = routes.find(route => paths.length && route.name === paths[0]); + + if (item && hasComponent(item)) { + return recursiveFindRouteByPaths(paths.slice(1), item.children!); } - function getRouteHomeByRoute(route: RouteRecordRaw) { - if (routeHome) return; - const hasChild = hasChildren(route); - if (!hasChild) { - if (route.name === routeHomeName) { - routeHome = route; - } + return item; +} + +/** + * 根据路由key获取从第一级路由到当前路由key的paths + * @param key - 路由key + */ +function getRouteKeyPathsByKey(key: AuthRoute.RouteKey) { + const splitMark: AuthRoute.RouteSplitMark = '_'; + const keys = key.split(splitMark); + const keyPaths: AuthRoute.RouteKey[] = []; + + keys.forEach((itemKey, index) => { + if (index === 0) { + keyPaths.push(itemKey as AuthRoute.RouteKey); } else { - getRouteHomeByRoutes(route.children as RouteRecordRaw[]); + const concatKey = keyPaths[index - 1] + splitMark + itemKey; + keyPaths.push(concatKey as AuthRoute.RouteKey); } - } - function getRouteHomeByRoutes(_routes: RouteRecordRaw[]) { - _routes.some(item => { - getRouteHomeByRoute(item as RouteRecordRaw); - return routeHome !== undefined; - }); - } - getRouteHomeByRoutes(routes); - return routeHome!; -} - -/** - * 将多层级路由转换成二级路由 - * @param routes - 路由 - */ -export function transformMultiDegreeRoutes(routes: RouteRecordRaw[]) { - function hasComponent(route: RouteRecordRaw) { - return Boolean(route.component); - } - function hasChildren(route: RouteRecordRaw) { - return Boolean(route.children && route.children.length); - } - - function upDimension(route: RouteRecordRaw): RouteRecordRaw[] { - if (hasChildren(route)) { - const updateRoute = { ...route }; - if (!hasComponent(route)) { - return updateRoute.children!; - } - updateRoute.children = updateRoute.children?.map(item => upDimension(item)).flat(); - return [updateRoute]; - } - return [route]; - } - - return routes.map(item => upDimension(item)).flat(); -} - -/** 获取登录后的重定向地址 */ -export function getLoginRedirectUrl(router: Router) { - const path = router.currentRoute.value.fullPath as string; - const redirectUrl = path === '/' ? undefined : path; - return redirectUrl; -} - -/** 获取登录模块的正则字符串 */ -export function getLoginModuleRegExp() { - const modules: LoginModuleType[] = ['pwd-login', 'code-login', 'register', 'reset-pwd', 'bind-wechat']; - return modules.join('|'); + }); + + return keyPaths; } diff --git a/src/utils/router/index.ts b/src/utils/router/index.ts index 36e852d2..c5f595cf 100644 --- a/src/utils/router/index.ts +++ b/src/utils/router/index.ts @@ -1,4 +1 @@ export * from './helpers'; -export * from './cache'; -export * from './menus'; -export * from './tab'; diff --git a/src/utils/router/menus.ts b/src/utils/router/menus.ts deleted file mode 100644 index eb01cca4..00000000 --- a/src/utils/router/menus.ts +++ /dev/null @@ -1,70 +0,0 @@ -import type { RouteRecordRaw } from 'vue-router'; -import type { GlobalMenuOption } from '@/interface'; -import { iconifyRender } from '../common'; - -/** 判断路由是否作为菜单 */ -function asMenu(route: RouteRecordRaw) { - return !route.meta?.notAsMenu; -} - -/** 给菜单添加可选属性 */ -function addPartialProps(menuItem: GlobalMenuOption, icon?: string, children?: GlobalMenuOption[]) { - const item = { ...menuItem }; - if (icon) { - Object.assign(item, { icon: iconifyRender(icon) }); - } - if (children) { - Object.assign(item, { children }); - } - return item; -} - -/** 将路由转换成菜单 */ -export function transformRouteToMenu(routes: RouteRecordRaw[]) { - const globalMenu: GlobalMenuOption[] = []; - routes.forEach(route => { - const { name, path, meta } = route; - const routeName = name as string; - let menuChildren: GlobalMenuOption[] | undefined; - if (route.children) { - menuChildren = transformRouteToMenu(route.children as RouteRecordRaw[]); - } - const menuItem: GlobalMenuOption = addPartialProps( - { - key: routeName, - label: meta?.title ?? routeName, - routeName, - routePath: path - }, - meta?.icon, - menuChildren - ); - if (asMenu(route)) { - globalMenu.push(menuItem); - } else if (menuChildren) { - globalMenu.push(...menuChildren); - } - }); - return globalMenu; -} - -/** 将路由转换成菜单列表 */ -export function transformRouteToList(routes: RouteRecordRaw[], treeMap: RouteRecordRaw[] = []) { - if (routes && routes.length === 0) return []; - return routes.reduce((acc, cur) => { - if (!cur.meta?.notAsMenu) { - acc.push(cur); - } - if (cur.children && cur.children.length > 0) { - transformRouteToList(cur.children, treeMap); - } - return acc; - }, treeMap); -} - -/** 判断路由是否为Url链接 */ -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); -} diff --git a/src/utils/router/tab.ts b/src/utils/router/tab.ts deleted file mode 100644 index aa37f9ee..00000000 --- a/src/utils/router/tab.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { EnumStorageKey } from '@/enum'; -import type { MultiTabRoute } from '@/interface'; -import { setLocal, getLocal } from '../storage'; - -/** 缓存多页签数据 */ -export function setTabRouteStorage(data: MultiTabRoute[]) { - setLocal(EnumStorageKey['tab-route'], data); -} - -/** 获取缓存的多页签数据 */ -export function getTabRouteStorage() { - const routes: MultiTabRoute[] = []; - const data = getLocal(EnumStorageKey['tab-route']); - if (data) { - routes.push(...data); - } - return routes; -} - -/** 清空多页签数据 */ -export function clearTabRoutes() { - setTabRouteStorage([]); -} diff --git a/src/utils/service/error.ts b/src/utils/service/error.ts index 1a649eda..edf3a4ac 100644 --- a/src/utils/service/error.ts +++ b/src/utils/service/error.ts @@ -1,5 +1,4 @@ import type { AxiosError, AxiosResponse } from 'axios'; -import type { RequestServiceError, BackendServiceResult } from '@/interface'; import { DEFAULT_REQUEST_ERROR_CODE, DEFAULT_REQUEST_ERROR_MSG, @@ -9,33 +8,49 @@ import { REQUEST_TIMEOUT_MSG, ERROR_STATUS } from '@/config'; +import { exeStrategyActions } from '../common'; import { showErrorMsg } from './msg'; type ErrorStatus = keyof typeof ERROR_STATUS; /** - * 处理请求失败的错误 + * 处理axios请求失败的错误 * @param error - 错误 */ export function handleAxiosError(axiosError: AxiosError) { - const error: RequestServiceError = { + const error: Service.RequestError = { type: 'axios', code: DEFAULT_REQUEST_ERROR_CODE, msg: DEFAULT_REQUEST_ERROR_MSG }; - if (!window.navigator.onLine || axiosError.message === 'Network Error') { - // 网路错误 - Object.assign(error, { code: NETWORK_ERROR_CODE, msg: NETWORK_ERROR_MSG }); - } else if (axiosError.code === REQUEST_TIMEOUT_CODE && axiosError.message.includes('timeout')) { - /** 超时错误 */ - Object.assign(error, { code: REQUEST_TIMEOUT_CODE, msg: REQUEST_TIMEOUT_MSG }); - } else if (axiosError.response) { - // 请求不成功的错误 - const errorCode: ErrorStatus = axiosError.response.status as ErrorStatus; - const msg = ERROR_STATUS[errorCode] || DEFAULT_REQUEST_ERROR_MSG; - Object.assign(error, { code: errorCode || DEFAULT_REQUEST_ERROR_CODE, msg }); - } + const actions: Common.StrategyAction[] = [ + [ + // 网路错误 + !window.navigator.onLine || axiosError.message === 'Network Error', + () => { + Object.assign(error, { code: NETWORK_ERROR_CODE, msg: NETWORK_ERROR_MSG }); + } + ], + [ + // 超时错误 + axiosError.code === REQUEST_TIMEOUT_CODE && axiosError.message.includes('timeout'), + () => { + Object.assign(error, { code: REQUEST_TIMEOUT_CODE, msg: REQUEST_TIMEOUT_MSG }); + } + ], + [ + // 请求不成功的错误 + Boolean(axiosError.response), + () => { + const errorCode: ErrorStatus = (axiosError.response?.status as ErrorStatus) || 'DEFAULT'; + const msg = ERROR_STATUS[errorCode]; + Object.assign(error, { code: errorCode, msg }); + } + ] + ]; + + exeStrategyActions(actions); showErrorMsg(error); @@ -47,7 +62,7 @@ export function handleAxiosError(axiosError: AxiosError) { * @param response - 请求的响应 */ export function handleResponseError(response: AxiosResponse) { - const error: RequestServiceError = { + const error: Service.RequestError = { type: 'axios', code: DEFAULT_REQUEST_ERROR_CODE, msg: DEFAULT_REQUEST_ERROR_MSG @@ -69,11 +84,11 @@ export function handleResponseError(response: AxiosResponse) { } /** - * 处理后端返回的错误 + * 处理后端返回的错误(业务错误) * @param backendResult - 后端接口的响应数据 */ -export function handleBackendError(backendResult: BackendServiceResult) { - const error: RequestServiceError = { +export function handleBackendError(backendResult: Service.BackendServiceResult) { + const error: Service.RequestError = { type: 'backend', code: backendResult.code, msg: backendResult.message diff --git a/src/utils/service/handler.ts b/src/utils/service/handler.ts index 7d7f21a2..2e8da924 100644 --- a/src/utils/service/handler.ts +++ b/src/utils/service/handler.ts @@ -1,27 +1,15 @@ -import { CustomRequestResult, CustomSuccessRequestResult, CustomFailRequestResult } from '@/interface'; - -type ResultHandler = (...arg: any) => T; -/** - * 对请求的结果数据进行格式化的处理 - * @param resultHandler - 处理函数 - * @param requests - 请求结果 - */ -export function requestMiddleware( - resultHandler: ResultHandler, - requests: CustomRequestResult[] -) { - const errorIndex = requests.findIndex(item => item.error !== null); - const hasError = errorIndex > -1; - if (hasError) { - const failResult: CustomFailRequestResult = { - data: null, - error: requests[errorIndex].error! +/** 统一失败和成功的请求结果的数据类型 */ +export async function handleServiceResult(error: Service.RequestError | null, data: any) { + if (error) { + const fail: Service.FailedResult = { + error, + data: null }; - return failResult; + return fail; } - const successResult: CustomSuccessRequestResult = { - data: resultHandler(...requests.map(item => item.data)), - error: null + const success: Service.SuccessResult = { + error: null, + data }; - return successResult; + return success; } diff --git a/src/utils/service/msg.ts b/src/utils/service/msg.ts index ef68622a..c697b551 100644 --- a/src/utils/service/msg.ts +++ b/src/utils/service/msg.ts @@ -1,16 +1,16 @@ -import type { RequestServiceError } from '@/interface'; import { NO_ERROR_MSG_CODE, ERROR_MSG_DURATION } from '@/config'; +import { consoleWarn } from '../common'; /** 错误消息栈,防止同一错误同时出现 */ const errorMsgStack = new Map([]); -function addErrorMsg(error: RequestServiceError) { +function addErrorMsg(error: Service.RequestError) { errorMsgStack.set(error.code, error.msg); } -function removeErrorMsg(error: RequestServiceError) { +function removeErrorMsg(error: Service.RequestError) { errorMsgStack.delete(error.code); } -function hasErrorMsg(error: RequestServiceError) { +function hasErrorMsg(error: Service.RequestError) { return errorMsgStack.has(error.code); } @@ -18,11 +18,12 @@ function hasErrorMsg(error: RequestServiceError) { * 显示错误信息 * @param error */ -export function showErrorMsg(error: RequestServiceError) { +export function showErrorMsg(error: Service.RequestError) { if (!error.msg) return; if (!NO_ERROR_MSG_CODE.includes(error.code)) { if (!hasErrorMsg(error)) { addErrorMsg(error); + consoleWarn(error.code, error.msg); window.$message?.error(error.msg, { duration: ERROR_MSG_DURATION }); setTimeout(() => { removeErrorMsg(error); diff --git a/src/utils/service/transform.ts b/src/utils/service/transform.ts index 8ba51793..52e17f36 100644 --- a/src/utils/service/transform.ts +++ b/src/utils/service/transform.ts @@ -1,7 +1,7 @@ import qs from 'qs'; import FormData from 'form-data'; -import { isArray } from '@/utils'; import { ContentType } from '@/enum'; +import { isArray } from '../common'; /** * 请求数据的转换 diff --git a/src/utils/storage/index.ts b/src/utils/storage/index.ts index 3a28b3d7..92359a64 100644 --- a/src/utils/storage/index.ts +++ b/src/utils/storage/index.ts @@ -1,2 +1,2 @@ -export { setLocal, getLocal, removeLocal, clearLocal } from './local'; -export { setSession, getSession, removeSession, clearSession } from './session'; +export * from './local'; +export * from './session'; diff --git a/src/views/about/components/DevDependency/index.vue b/src/views/about/components/DevDependency/index.vue deleted file mode 100644 index 046abe96..00000000 --- a/src/views/about/components/DevDependency/index.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/about/components/ProDependency/index.vue b/src/views/about/components/ProDependency/index.vue deleted file mode 100644 index 59e1046c..00000000 --- a/src/views/about/components/ProDependency/index.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - diff --git a/src/views/about/components/ProjectInfo/index.vue b/src/views/about/components/ProjectInfo/index.vue deleted file mode 100644 index a99b92ec..00000000 --- a/src/views/about/components/ProjectInfo/index.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - diff --git a/src/views/about/components/ProjectIntroduction/index.vue b/src/views/about/components/ProjectIntroduction/index.vue deleted file mode 100644 index 4d113b27..00000000 --- a/src/views/about/components/ProjectIntroduction/index.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - diff --git a/src/views/about/components/index.ts b/src/views/about/components/index.ts deleted file mode 100644 index b23ab76a..00000000 --- a/src/views/about/components/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import ProjectIntroduction from './ProjectIntroduction/index.vue'; -import ProjectInfo from './ProjectInfo/index.vue'; -import ProDependency from './ProDependency/index.vue'; -import DevDependency from './DevDependency/index.vue'; - -export { ProjectIntroduction, ProjectInfo, ProDependency, DevDependency }; diff --git a/src/views/about/index.ts b/src/views/about/index.ts index eb6e60f2..81fd049b 100644 --- a/src/views/about/index.ts +++ b/src/views/about/index.ts @@ -1,3 +1,3 @@ -import About from './index.vue'; +const About = () => import('./index.vue'); export { About }; diff --git a/src/views/about/index.vue b/src/views/about/index.vue index 68d86fb8..96f928d0 100644 --- a/src/views/about/index.vue +++ b/src/views/about/index.vue @@ -1,14 +1,9 @@ - + diff --git a/src/views/component/button/index.vue b/src/views/component/button/index.vue deleted file mode 100644 index 72ea9dfd..00000000 --- a/src/views/component/button/index.vue +++ /dev/null @@ -1,576 +0,0 @@ - - - - diff --git a/src/views/component/card/index.vue b/src/views/component/card/index.vue deleted file mode 100644 index 8270a753..00000000 --- a/src/views/component/card/index.vue +++ /dev/null @@ -1,43 +0,0 @@ - - - - diff --git a/src/views/component/index.ts b/src/views/component/index.ts deleted file mode 100644 index 8fe2c5ec..00000000 --- a/src/views/component/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import ComponentButton from './button/index.vue'; -import ComponentCard from './card/index.vue'; -import ComponentTable from './table/index.vue'; - -export { ComponentButton, ComponentCard, ComponentTable }; diff --git a/src/views/component/table/index.vue b/src/views/component/table/index.vue deleted file mode 100644 index 8563ec79..00000000 --- a/src/views/component/table/index.vue +++ /dev/null @@ -1,85 +0,0 @@ - - - - diff --git a/src/views/dashboard/analysis/components/BottomPart/index.vue b/src/views/dashboard/analysis/components/BottomPart/index.vue deleted file mode 100644 index a62e6d3e..00000000 --- a/src/views/dashboard/analysis/components/BottomPart/index.vue +++ /dev/null @@ -1,137 +0,0 @@ - - - - diff --git a/src/views/dashboard/analysis/components/DataCard/components/GradientBg.vue b/src/views/dashboard/analysis/components/DataCard/components/GradientBg.vue deleted file mode 100644 index 82972956..00000000 --- a/src/views/dashboard/analysis/components/DataCard/components/GradientBg.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - - diff --git a/src/views/dashboard/analysis/components/DataCard/components/index.ts b/src/views/dashboard/analysis/components/DataCard/components/index.ts deleted file mode 100644 index a8834d17..00000000 --- a/src/views/dashboard/analysis/components/DataCard/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import GradientBg from './GradientBg.vue'; - -export { GradientBg }; diff --git a/src/views/dashboard/analysis/components/DataCard/index.vue b/src/views/dashboard/analysis/components/DataCard/index.vue deleted file mode 100644 index 8b9025cd..00000000 --- a/src/views/dashboard/analysis/components/DataCard/index.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - diff --git a/src/views/dashboard/analysis/components/TopChart/data.json b/src/views/dashboard/analysis/components/TopChart/data.json deleted file mode 100644 index 481c9ae7..00000000 --- a/src/views/dashboard/analysis/components/TopChart/data.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - { - "date": "2021/10/1", - "type": "下载量", - "value": 4623 - }, - { - "date": "2021/10/1", - "type": "注册数", - "value": 2208 - }, - { - "date": "2021/10/2", - "type": "下载量", - "value": 6145 - }, - { - "date": "2021/10/2", - "type": "注册数", - "value": 2016 - }, - { - "date": "2021/10/3", - "type": "下载量", - "value": 508 - }, - { - "date": "2021/10/3", - "type": "注册数", - "value": 2916 - }, - { - "date": "2021/10/4", - "type": "下载量", - "value": 6268 - }, - { - "date": "2021/10/4", - "type": "注册数", - "value": 4512 - }, - { - "date": "2021/10/5", - "type": "下载量", - "value": 6411 - }, - { - "date": "2021/10/5", - "type": "注册数", - "value": 8281 - }, - { - "date": "2021/10/6", - "type": "下载量", - "value": 1890 - }, - { - "date": "2021/10/6", - "type": "注册数", - "value": 2008 - }, - { - "date": "2021/10/7", - "type": "下载量", - "value": 4251 - }, - { - "date": "2021/10/7", - "type": "注册数", - "value": 1963 - }, - { - "date": "2021/10/8", - "type": "下载量", - "value": 2978 - }, - { - "date": "2021/10/8", - "type": "注册数", - "value": 2367 - }, - { - "date": "2021/10/9", - "type": "下载量", - "value": 3880 - }, - { - "date": "2021/10/9", - "type": "注册数", - "value": 2956 - }, - { - "date": "2021/10/10", - "type": "下载量", - "value": 3606 - }, - { - "date": "2021/10/10", - "type": "注册数", - "value": 678 - }, - { - "date": "2021/10/11", - "type": "下载量", - "value": 4311 - }, - { - "date": "2021/10/11", - "type": "注册数", - "value": 3188 - }, - { - "date": "2021/10/12", - "type": "下载量", - "value": 4116 - }, - { - "date": "2021/10/12", - "type": "注册数", - "value": 3491 - }, - { - "date": "2021/10/13", - "type": "下载量", - "value": 6419 - }, - { - "date": "2021/10/13", - "type": "注册数", - "value": 2852 - }, - { - "date": "2021/10/14", - "type": "下载量", - "value": 1643 - }, - { - "date": "2021/10/14", - "type": "注册数", - "value": 4788 - }, - { - "date": "2021/10/15", - "type": "下载量", - "value": 445 - }, - { - "date": "2021/10/15", - "type": "注册数", - "value": 4319 - } -] diff --git a/src/views/dashboard/analysis/components/TopChart/index.vue b/src/views/dashboard/analysis/components/TopChart/index.vue deleted file mode 100644 index 678834c0..00000000 --- a/src/views/dashboard/analysis/components/TopChart/index.vue +++ /dev/null @@ -1,129 +0,0 @@ - - - - diff --git a/src/views/dashboard/analysis/components/index.ts b/src/views/dashboard/analysis/components/index.ts deleted file mode 100644 index 8e940b19..00000000 --- a/src/views/dashboard/analysis/components/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import TopChart from './TopChart/index.vue'; -import DataCard from './DataCard/index.vue'; -import BottomPart from './BottomPart/index.vue'; - -export { TopChart, DataCard, BottomPart }; diff --git a/src/views/dashboard/analysis/index.vue b/src/views/dashboard/analysis/index.vue index 420a3258..d3c790d3 100644 --- a/src/views/dashboard/analysis/index.vue +++ b/src/views/dashboard/analysis/index.vue @@ -1,13 +1,9 @@ - + diff --git a/src/views/dashboard/index.ts b/src/views/dashboard/index.ts index 8e2a4da7..06e6c247 100644 --- a/src/views/dashboard/index.ts +++ b/src/views/dashboard/index.ts @@ -1,4 +1,4 @@ -import DashboardAnalysis from './analysis/index.vue'; -import DashboardWorkbench from './workbench/index.vue'; +const DashboardAnalysis = () => import('./analysis/index.vue'); +const DashboardWorkbench = () => import('./workbench/index.vue'); export { DashboardAnalysis, DashboardWorkbench }; diff --git a/src/views/dashboard/workbench/components/WorkbenchHeader/index.vue b/src/views/dashboard/workbench/components/WorkbenchHeader/index.vue deleted file mode 100644 index 5fcb5290..00000000 --- a/src/views/dashboard/workbench/components/WorkbenchHeader/index.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - diff --git a/src/views/dashboard/workbench/components/WorkbenchMain/components/ShortcutsCard.vue b/src/views/dashboard/workbench/components/WorkbenchMain/components/ShortcutsCard.vue deleted file mode 100644 index 93de1348..00000000 --- a/src/views/dashboard/workbench/components/WorkbenchMain/components/ShortcutsCard.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - - diff --git a/src/views/dashboard/workbench/components/WorkbenchMain/components/TechnologyCard.vue b/src/views/dashboard/workbench/components/WorkbenchMain/components/TechnologyCard.vue deleted file mode 100644 index 8c130249..00000000 --- a/src/views/dashboard/workbench/components/WorkbenchMain/components/TechnologyCard.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - diff --git a/src/views/dashboard/workbench/components/WorkbenchMain/components/index.ts b/src/views/dashboard/workbench/components/WorkbenchMain/components/index.ts deleted file mode 100644 index e84b2621..00000000 --- a/src/views/dashboard/workbench/components/WorkbenchMain/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import TechnologyCard from './TechnologyCard.vue'; -import ShortcutsCard from './ShortcutsCard.vue'; - -export { TechnologyCard, ShortcutsCard }; diff --git a/src/views/dashboard/workbench/components/WorkbenchMain/index.vue b/src/views/dashboard/workbench/components/WorkbenchMain/index.vue deleted file mode 100644 index 4ffa23ec..00000000 --- a/src/views/dashboard/workbench/components/WorkbenchMain/index.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - - diff --git a/src/views/dashboard/workbench/components/index.ts b/src/views/dashboard/workbench/components/index.ts deleted file mode 100644 index 208c51c4..00000000 --- a/src/views/dashboard/workbench/components/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import WorkbenchHeader from './WorkbenchHeader/index.vue'; -import WorkbenchMain from './WorkbenchMain/index.vue'; - -export { WorkbenchHeader, WorkbenchMain }; diff --git a/src/views/dashboard/workbench/index.vue b/src/views/dashboard/workbench/index.vue index 9355a59f..265a0709 100644 --- a/src/views/dashboard/workbench/index.vue +++ b/src/views/dashboard/workbench/index.vue @@ -1,11 +1,6 @@ - + + diff --git a/src/views/document/index.ts b/src/views/document/index.ts deleted file mode 100644 index 51ae8dfb..00000000 --- a/src/views/document/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import DocumentVue from './vue/index.vue'; -import DocumentVite from './vite/index.vue'; -import DocumentNaive from './naive/index.vue'; - -export { DocumentVue, DocumentVite, DocumentNaive }; diff --git a/src/views/document/naive/index.vue b/src/views/document/naive/index.vue deleted file mode 100644 index e16de3ea..00000000 --- a/src/views/document/naive/index.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/document/vite/index.vue b/src/views/document/vite/index.vue deleted file mode 100644 index 5cf7da59..00000000 --- a/src/views/document/vite/index.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/document/vue/index.vue b/src/views/document/vue/index.vue deleted file mode 100644 index e5c80ea1..00000000 --- a/src/views/document/vue/index.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - - diff --git a/src/views/index.ts b/src/views/index.ts index 6f341c31..787cfaa8 100644 --- a/src/views/index.ts +++ b/src/views/index.ts @@ -1,8 +1,4 @@ export * from './system'; export * from './dashboard'; -export * from './document'; -export * from './plugin'; -export * from './component'; -export * from './multi-menu'; export * from './about'; -export * from './website'; +export * from './multi-menu'; diff --git a/src/views/multi-menu/first/second/index.vue b/src/views/multi-menu/first/second/index.vue index 1179a2c5..5978db8b 100644 --- a/src/views/multi-menu/first/second/index.vue +++ b/src/views/multi-menu/first/second/index.vue @@ -1,10 +1,6 @@ - + diff --git a/src/views/multi-menu/index.ts b/src/views/multi-menu/index.ts index 554df2ce..ac9b6d86 100644 --- a/src/views/multi-menu/index.ts +++ b/src/views/multi-menu/index.ts @@ -1,3 +1,3 @@ -import MultiMenuFirstSecond from './first/second/index.vue'; +const MultiMenuFirstSecond = () => import('./first/second/index.vue'); export { MultiMenuFirstSecond }; diff --git a/src/views/plugin/copy/index.vue b/src/views/plugin/copy/index.vue deleted file mode 100644 index 38f90afb..00000000 --- a/src/views/plugin/copy/index.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - diff --git a/src/views/plugin/editor/markdown/index.vue b/src/views/plugin/editor/markdown/index.vue deleted file mode 100644 index 0330127b..00000000 --- a/src/views/plugin/editor/markdown/index.vue +++ /dev/null @@ -1,46 +0,0 @@ - - - - diff --git a/src/views/plugin/editor/quill/index.vue b/src/views/plugin/editor/quill/index.vue deleted file mode 100644 index 4100642e..00000000 --- a/src/views/plugin/editor/quill/index.vue +++ /dev/null @@ -1,44 +0,0 @@ - - - - diff --git a/src/views/plugin/icon/icons.ts b/src/views/plugin/icon/icons.ts deleted file mode 100644 index 1af75741..00000000 --- a/src/views/plugin/icon/icons.ts +++ /dev/null @@ -1,32 +0,0 @@ -export const icons = [ - 'mdi:emoticon', - 'mdi:ab-testing', - 'ph:alarm', - 'ph:android-logo', - 'ph:align-bottom', - 'ph:archive-box-light', - 'uil:basketball', - 'uil:brightness-plus', - 'uil:capture', - 'mdi:apps-box', - 'mdi:alert', - 'mdi:airballoon', - 'mdi:airplane-edit', - 'mdi:alpha-f-box-outline', - 'mdi:arm-flex-outline', - 'ic:baseline-10mp', - 'ic:baseline-access-time', - 'ic:baseline-brightness-4', - 'ic:baseline-brightness-5', - 'ic:baseline-credit-card', - 'ic:baseline-filter-1', - 'ic:baseline-filter-2', - 'ic:baseline-filter-3', - 'ic:baseline-filter-4', - 'ic:baseline-filter-5', - 'ic:baseline-filter-6', - 'ic:baseline-filter-7', - 'ic:baseline-filter-8', - 'ic:baseline-filter-9', - 'ic:baseline-filter-9-plus' -]; diff --git a/src/views/plugin/icon/index.vue b/src/views/plugin/icon/index.vue deleted file mode 100644 index 446b6d8c..00000000 --- a/src/views/plugin/icon/index.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - diff --git a/src/views/plugin/index.ts b/src/views/plugin/index.ts deleted file mode 100644 index 3ea33dd5..00000000 --- a/src/views/plugin/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import PluginMap from './map/index.vue'; -import PluginVideo from './video/index.vue'; -import PluginEditorQuill from './editor/quill/index.vue'; -import PluginEditorMarkdown from './editor/markdown/index.vue'; -import PluginSwiper from './swiper/index.vue'; -import PluginCopy from './copy/index.vue'; -import PluginIcon from './icon/index.vue'; -import PluginPrint from './print/index.vue'; - -export { - PluginMap, - PluginVideo, - PluginEditorQuill, - PluginEditorMarkdown, - PluginSwiper, - PluginCopy, - PluginIcon, - PluginPrint -}; diff --git a/src/views/plugin/map/components/BaiduMap.vue b/src/views/plugin/map/components/BaiduMap.vue deleted file mode 100644 index 877af209..00000000 --- a/src/views/plugin/map/components/BaiduMap.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - diff --git a/src/views/plugin/map/components/GaodeMap.vue b/src/views/plugin/map/components/GaodeMap.vue deleted file mode 100644 index f9ce5b45..00000000 --- a/src/views/plugin/map/components/GaodeMap.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - diff --git a/src/views/plugin/map/components/TencentMap.vue b/src/views/plugin/map/components/TencentMap.vue deleted file mode 100644 index d5d1cc09..00000000 --- a/src/views/plugin/map/components/TencentMap.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - diff --git a/src/views/plugin/map/components/index.ts b/src/views/plugin/map/components/index.ts deleted file mode 100644 index b0d67a79..00000000 --- a/src/views/plugin/map/components/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -import BaiduMap from './BaiduMap.vue'; -import GaodeMap from './GaodeMap.vue'; -import TencentMap from './TencentMap.vue'; - -export { BaiduMap, GaodeMap, TencentMap }; diff --git a/src/views/plugin/map/index.vue b/src/views/plugin/map/index.vue deleted file mode 100644 index 9d9c11ee..00000000 --- a/src/views/plugin/map/index.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - diff --git a/src/views/plugin/print/index.vue b/src/views/plugin/print/index.vue deleted file mode 100644 index aeb2dc95..00000000 --- a/src/views/plugin/print/index.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - - diff --git a/src/views/plugin/swiper/index.vue b/src/views/plugin/swiper/index.vue deleted file mode 100644 index f3b0070a..00000000 --- a/src/views/plugin/swiper/index.vue +++ /dev/null @@ -1,118 +0,0 @@ - - - - diff --git a/src/views/plugin/video/index.vue b/src/views/plugin/video/index.vue deleted file mode 100644 index 5208de5b..00000000 --- a/src/views/plugin/video/index.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - diff --git a/src/views/system/exception/403.vue b/src/views/system/exception/403.vue index f89f3155..a49ec556 100644 --- a/src/views/system/exception/403.vue +++ b/src/views/system/exception/403.vue @@ -1,8 +1,6 @@ - + diff --git a/src/views/system/exception/404.vue b/src/views/system/exception/404.vue index ebf4bb5f..37e5be1e 100644 --- a/src/views/system/exception/404.vue +++ b/src/views/system/exception/404.vue @@ -1,8 +1,6 @@ - + diff --git a/src/views/system/exception/500.vue b/src/views/system/exception/500.vue index d75c6bdb..37e5be1e 100644 --- a/src/views/system/exception/500.vue +++ b/src/views/system/exception/500.vue @@ -1,8 +1,6 @@ - + diff --git a/src/views/system/exception/components/ExceptionBase.vue b/src/views/system/exception/components/ExceptionBase.vue deleted file mode 100644 index 4544827c..00000000 --- a/src/views/system/exception/components/ExceptionBase.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - diff --git a/src/views/system/exception/components/index.ts b/src/views/system/exception/components/index.ts deleted file mode 100644 index d8b1dedf..00000000 --- a/src/views/system/exception/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ExceptionBase from './ExceptionBase.vue'; - -export { ExceptionBase }; diff --git a/src/views/system/index.ts b/src/views/system/index.ts index 114d8080..a86e490d 100644 --- a/src/views/system/index.ts +++ b/src/views/system/index.ts @@ -1,6 +1,6 @@ -import Login from './login/index.vue'; -import NoPermission from './exception/403.vue'; -import NotFound from './exception/404.vue'; -import ServiceError from './exception/500.vue'; +const Login = () => import('./login/index.vue'); +const NoPermission = () => import('./exception/403.vue'); +const NotFound = () => import('./exception/404.vue'); +const ServiceError = () => import('./exception/500.vue'); export { Login, NoPermission, NotFound, ServiceError }; diff --git a/src/views/system/login/components/BindWechat/index.vue b/src/views/system/login/components/BindWechat/index.vue deleted file mode 100644 index cac5cad1..00000000 --- a/src/views/system/login/components/BindWechat/index.vue +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/src/views/system/login/components/CodeLogin/index.vue b/src/views/system/login/components/CodeLogin/index.vue deleted file mode 100644 index f1143b9f..00000000 --- a/src/views/system/login/components/CodeLogin/index.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - diff --git a/src/views/system/login/components/PwdLogin/components/OtherLogin.vue b/src/views/system/login/components/PwdLogin/components/OtherLogin.vue deleted file mode 100644 index ba1c4546..00000000 --- a/src/views/system/login/components/PwdLogin/components/OtherLogin.vue +++ /dev/null @@ -1,13 +0,0 @@ - - - - diff --git a/src/views/system/login/components/PwdLogin/components/index.ts b/src/views/system/login/components/PwdLogin/components/index.ts deleted file mode 100644 index b4e6386c..00000000 --- a/src/views/system/login/components/PwdLogin/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import OtherLogin from './OtherLogin.vue'; - -export { OtherLogin }; diff --git a/src/views/system/login/components/PwdLogin/index.vue b/src/views/system/login/components/PwdLogin/index.vue deleted file mode 100644 index ea573e27..00000000 --- a/src/views/system/login/components/PwdLogin/index.vue +++ /dev/null @@ -1,73 +0,0 @@ - - - - diff --git a/src/views/system/login/components/Register/index.vue b/src/views/system/login/components/Register/index.vue deleted file mode 100644 index 75bd1485..00000000 --- a/src/views/system/login/components/Register/index.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - diff --git a/src/views/system/login/components/ResetPwd/index.vue b/src/views/system/login/components/ResetPwd/index.vue deleted file mode 100644 index 5dee7596..00000000 --- a/src/views/system/login/components/ResetPwd/index.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - - diff --git a/src/views/system/login/components/common/LoginAgreement.vue b/src/views/system/login/components/common/LoginAgreement.vue deleted file mode 100644 index 9288983c..00000000 --- a/src/views/system/login/components/common/LoginAgreement.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - diff --git a/src/views/system/login/components/common/index.ts b/src/views/system/login/components/common/index.ts deleted file mode 100644 index 16fc87f3..00000000 --- a/src/views/system/login/components/common/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import LoginAgreement from './LoginAgreement.vue'; - -export { LoginAgreement }; diff --git a/src/views/system/login/components/index.ts b/src/views/system/login/components/index.ts deleted file mode 100644 index df9f43c8..00000000 --- a/src/views/system/login/components/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import PwdLogin from './PwdLogin/index.vue'; -import CodeLogin from './CodeLogin/index.vue'; -import Register from './Register/index.vue'; -import ResetPwd from './ResetPwd/index.vue'; -import BindWechat from './BindWechat/index.vue'; - -export { PwdLogin, CodeLogin, Register, ResetPwd, BindWechat }; diff --git a/src/views/system/login/index.vue b/src/views/system/login/index.vue index 4be97214..a49ec556 100644 --- a/src/views/system/login/index.vue +++ b/src/views/system/login/index.vue @@ -1,76 +1,6 @@ - - + + diff --git a/src/views/website/components/WebsiteHeader.vue b/src/views/website/components/WebsiteHeader.vue deleted file mode 100644 index 82f301cf..00000000 --- a/src/views/website/components/WebsiteHeader.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/src/views/website/components/index.ts b/src/views/website/components/index.ts deleted file mode 100644 index 7fabde1a..00000000 --- a/src/views/website/components/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import WebsiteHeader from './WebsiteHeader.vue'; - -export { WebsiteHeader }; diff --git a/src/views/website/index.ts b/src/views/website/index.ts deleted file mode 100644 index 14396605..00000000 --- a/src/views/website/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import Website from './index.vue'; - -export { Website }; diff --git a/src/views/website/index.vue b/src/views/website/index.vue deleted file mode 100644 index c65ac632..00000000 --- a/src/views/website/index.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/tsconfig.json b/tsconfig.json index 1bf19f3e..39a0482a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,22 +1,24 @@ { "compilerOptions": { + "baseUrl": "./", "target": "esnext", + "useDefineForClassFields": true, "module": "esnext", "moduleResolution": "node", + "isolatedModules": true, "strict": true, "jsx": "preserve", - "allowSyntheticDefaultImports": true, "sourceMap": true, - "baseUrl": "./", - "paths": { - "@/*": [ - "./src/*" - ] - }, "resolveJsonModule": true, "esModuleInterop": true, - "lib": ["esnext", "dom"] + "importHelpers": true, + "paths": { + "@/*": ["src/*"], + "~/*": ["./*"] + }, + "lib": ["esnext", "dom", "dom.iterable", "scripthost"], + "skipLibCheck": true }, - "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue", "./**/*.ts", "mock/**/*.ts"], + "include": ["vite.config.*", "src/typings/*.d.ts", "src/**/*", "src/**/*.vue", "mock/**/*.ts", "build/**/*.ts", ".env-config.ts"], "exclude": ["/dist/**", "node_modules"] } diff --git a/vite.config.ts b/vite.config.ts index 34902cb6..96439b9b 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,18 +1,19 @@ +import { fileURLToPath } from 'url'; import { defineConfig, loadEnv } from 'vite'; -import path from 'path'; -import { plugins, define } from './build'; +import { setupVitePlugins } from './build'; -export default defineConfig(({ mode }) => { - const viteEnv = loadEnv(mode, `.env.${mode}`); +export default defineConfig(configEnv => { + const viteEnv = loadEnv(configEnv.mode, `.env.${configEnv.mode}`); return { - base: viteEnv.VITE_BASE_URL, + base: viteEnv.BASE_URL, resolve: { alias: { - '@': path.resolve(__dirname, './src') + '@': fileURLToPath(new URL('./src', import.meta.url)), + '~': fileURLToPath(new URL('./', import.meta.url)) } }, - define, + plugins: setupVitePlugins(configEnv), css: { preprocessorOptions: { scss: { @@ -20,18 +21,13 @@ export default defineConfig(({ mode }) => { } } }, - plugins, server: { fs: { strict: false }, host: '0.0.0.0', - port: 3100, + port: 3200, open: true - }, - build: { - brotliSize: false, - sourcemap: false } }; }); diff --git a/windi.config.ts b/windi.config.ts index b60c27af..49a1b798 100644 --- a/windi.config.ts +++ b/windi.config.ts @@ -8,55 +8,41 @@ export default defineConfig({ darkMode: 'class', shortcuts: { 'wh-full': 'w-full h-full', - 'center-layout': 'w-1280px mx-auto px-15px', 'flex-center': 'flex justify-center items-center', 'flex-col-center': 'flex-center flex-col', 'flex-x-center': 'flex justify-center', 'flex-y-center': 'flex items-center', - 'inline-flex-center': 'inline-flex justify-center items-center', - 'inline-flex-x-center': 'inline-flex justify-center', - 'inline-flex-y-center': 'inline-flex items-center', - 'flex-col-stretch': 'flex flex-col items-stretch', - 'inline-flex-col-stretch': 'flex flex-col items-stretch', + 'i-flex-center': 'inline-flex justify-center items-center', + 'i-flex-x-center': 'inline-flex justify-center', + 'i-flex-y-center': 'inline-flex items-center', + 'flex-col': 'flex flex-col', + 'flex-col-stretch': 'flex-col items-stretch', + 'i-flex-col': 'inline-flex flex-col', + 'i-flex-col-stretch': 'i-flex-col items-stretch', 'flex-1-hidden': 'flex-1 overflow-hidden', - 'absolute-center': 'absolute left-0 top-0 flex-center wh-full', 'absolute-lt': 'absolute left-0 top-0', 'absolute-lb': 'absolute left-0 bottom-0', 'absolute-rt': 'absolute right-0 top-0', 'absolute-rb': 'absolute right-0 bottom-0', + 'absolute-tl': 'absolute-lt', + 'absolute-tr': 'absolute-rt', + 'absolute-bl': 'absolute-lb', + 'absolute-br': 'absolute-rb', + 'absolute-center': 'absolute-lt flex-center wh-full', + 'fixed-lt': 'fixed left-0 top-0', + 'fixed-lb': 'fixed left-0 bottom-0', + 'fixed-rt': 'fixed right-0 top-0', + 'fixed-rb': 'fixed right-0 bottom-0', + 'fixed-tl': 'fixed-lt', + 'fixed-tr': 'fixed-rt', + 'fixed-bl': 'fixed-lb', + 'fixed-br': 'fixed-rb', 'fixed-center': 'fixed left-0 top-0 flex-center wh-full', 'nowrap-hidden': 'whitespace-nowrap overflow-hidden', 'ellipsis-text': 'nowrap-hidden overflow-ellipsis' }, theme: { - extend: { - colors: { - primary: 'var(--primary-color)', - 'primary-hover': 'var(--primary-color-hover)', - 'primary-pressed': 'var(--primary-color-pressed)', - 'primary-active': 'var(--primary-color-active)', - info: 'var(--info-color)', - 'info-hover': 'var(--info-color-hover)', - 'info-pressed': 'var(--info-color-pressed)', - 'info-active': 'var(--info-color-active)', - success: 'var(--success-color)', - 'success-hover': 'var(--success-color-hover)', - 'success-pressed': 'var(--success-color-pressed)', - 'success-active': 'var(--success-color-active)', - warning: 'var(--warning-color)', - 'warning-hover': 'var(--warning-color-hover)', - 'warning-pressed': 'var(--warning-color-pressed)', - 'warning-active': 'var(--warning-color-active)', - error: 'var(--error-color)', - 'error-hover': 'var(--error-color-hover)', - 'error-pressed': 'var(--error-color-pressed)', - 'error-active': 'var(--error-color-active)', - light: '#ffffff', - dark: '#18181c', - 'deep-dark': '#101014' - }, - transitionProperty: ['width', 'height', 'background', 'background-color', 'border-color', 'right', 'fill'] - } + extend: {} }, variants: {}, plugins: []